#UnityGate – tak nazwano niemałą aferę, która rozpętała się niedawno w związku z Unity Technologies oraz Improbable, o co chodzi i jakie to ma dla nas znaczenie?
O co chodzi?
Szybkie wprowadzenie. Unity Technologies to oczywiście firma odpowiedzialna za silnik Unity. Improbable to również firma, ale odpowiedzialna za SpatialOS. SpatialOS to narzędzie w chmurze, które pozwala deweloperom tworzyć gry multiplayer czasu rzeczywistego różnego rodzaju. Żeby się nie zagłębiać się bardziej – developer tworzy grę na dowolnym silniku, za pomocą SDK łączy się z SpatialOS, które obsługuje wszystko, co serwerowe. Można z tego korzystać niezależnie, co się tworzy i niezależnie na jakim silniku. Ogólnie fajna sprawa.
Problem zaczął się 5 Grudnia, kiedy to Unity Technologies aktualizowało warunki licencyjne. Kością niezgody okazał się punkt 2.4 – oryginalna treść w ramce poniżej.
[stextbox id=’info’ caption=’Fragment licencji Unity’]
2.4 Streaming and Cloud Gaming Restrictions.
You may not directly or indirectly distribute the Unity Software, including the runtime portion of the Unity Software (the “Unity Runtime”), or your Project Content (if it incorporates the Unity Runtime) by means of streaming or broadcasting so that any portion of the Unity Software is primarily executed on or simulated by the cloud or a remote server and transmitted over the Internet or other network to end user devices without a separate license or authorization from Unity. Without limiting the foregoing, you may not use a managed service running on cloud infrastructure (a “Managed Service”) or a specific integration of a binary add-on (for example, a plugin or SDK) or source code to be integrated in the Unity Software or Your Project Content incorporating the Unity Runtime (an “SDK Integration”) to install or execute the Unity Runtime on the cloud or a remote server, unless such use of the Managed Service or SDK Integration has been specifically authorized by Unity. Additionally, you may not integrate the Unity Runtime with a Managed Service or SDK Integration and offer that integration to third parties for the purpose of installing or using the Unity Runtime on the cloud or a remote server. For a list of Unity authorized streaming platforms, Managed Services and SDK Integrations, click here.This restriction does not prevent end users from remotely accessing your Project Content from an end user device that is running on another end user device. You may not use a third party to directly or indirectly distribute or make available, stream, broadcast (through simulation or otherwise) any portion of the Unity Software unless that third party is authorized by Unity to provide such services.[/stextbox]
Zasadniczo punkt zabrania korzystania (bezpośrednio lub pośrednio) z serwisów streamingowych oraz w chmurze. Dokładniej nie można wykorzystać oprogramowania Unity na jednym komputerze, a potem efektów wykorzystania oprogramowania pokazać gdzie indziej. Dozwolone jest to, tylko dla serwisów autoryzowanych przez Unity – a ich lista dostępna na specjalnej podstronie.
SpatialOS działa jako SDK tym samym sam system, jak i gry o niego oparte naruszają prawa licencyjne. Innymi słowy, Improbable oraz wszyscy developerzy tworzący gry na podstawie SpatialOS i Unity zaczęli nielegalnie korzystać z silnika.
Ekipa Improbable wzięła się do roboty. W wydanym dziesiątego Stycznia oświadczeniu powiedzieli, że zmiany w licencji faktycznie uniemożliwiają korzystanie z ich serwisu. Unity zdążyło przesłać im uszczegółowienie (9 Stycznia).
W zasadzie wszystkie firmy tworzące gry w ten sposób (między innymi: Bossa Studios, Spilt Milk Studio) musiały przerwać działania nad swoimi produkcjami oraz wyłączyć tryby multiplayer w swoich już wydanych grach.
Improbable zapewnia, że zrobi wszystko, żeby pomóc studiom. Zbierają fundusze na wypadek pomocy finansowej firmom, które mogą stracić dorobek kilku lat pracy. Dodatkowo zapewniają wsparcie techniczne, gdyby zaszła potrzeba przepisania gier na nowe silniki oraz udostępniają SDK za darmo na licencji MIT jako open source, licząc, że pomoże to rozwiązać problemy, ale przede wszystkim kontaktuje się z Unity, aby znaleźć kompromis.
Co to wszystko znaczy?
Domyślam się, że taki ruch ze strony Unity to próba zabezpieczenia swojego oprogramowania i promowanie własnych rozwiązań. Unity Technologies podchodzi do silnika bardzo kompleksowo. Oferują UNet do systemu sieciowego, Unity Connect jako system kontrolo wersji, masę innych rozwiązań. Bez tego zapisu w zasadzie każdy może zaproponować swoje alternatywne rozwiązanie, które może być lepsze lub gorsze od tego, co proponuje Unity. Teraz z nowym zapisem, każde oprogramowanie działające poza silnikiem, którego w jakiś sposób go rozszerza, wykorzystane w grze czyni ją nielegalną.
Unity rozdaje karty. Jeśli ktoś tworzy alternatywne rozwiązanie musi znaleźć się, na liście dozwolonych. Żeby to zrobić… pewnie trzeba zapłacić. Tym samym Unity Technologies trzyma wszystkie karty, jeśli chodzi o to, kto i w jaki sposób korzysta z silnika.
Jednak może odbić im się to czkawką. Unreal Engine czy CryEngine takich ograniczeń nie mają. Więc jeśli duża liczba niezależnych firm będzie dysponowała ciekawymi rozwiązaniami zewnętrznymi jak np. multiplayer w chmurze, to wielu developerów może zmienić silnik. Nie mówiąc o nadszarpniętej reputacji przez tę aferę. Jeśli teraz zabronili tego, co jeszcze mogą zabronić w przyszłości?
Często niezależne oprogramowanie potrafi dać sporą wartość dodaną. Unity było z reguły bardzo otwarte na użytkowników, stąd taki ruch jest co najmniej zaskakujący i może zaszkodzić wielu deweloperom.
Czy mogę stremować gry zrobione w Unity?
To jest bardzo dobre pytanie, na które nie do końca znam odpowiedź. Na liście dostępnych serwisów wymienione są 4 serwisy do streamowania gier. W moim rozumieniu licencja zabrania streamowania gier zrobionych w Unity np. na Twichtu który tam wymieniony nie jest. Jednak jest to dla mnie kwestia zastanawiająca i mam zamiar wysłać w tej sprawie zapytanie do Unity.
Edit (11.01.2019):
Dziś rano (o północy Polskiego czasu) Unity wydało oficjalne oświadczenie odnośnie do sprawy. W oświadczeniu możemy przeczytać, że Unity postanowiło zerwać swoją współpracę z Improbable, ponieważ Ci łamali warunki licencji, a negocjacje z firmą zawiodły. Jednak Unity informuje, że wszyscy, którzy obecnie tworzą gry na podstawie SpatialOS oraz innych generycznych serwisów w chmurze (takich jak GCP, AWS or Azure) nie odczują żadnych konsekwencji i są chronieni przez EULA. W razie problemów proszą o kontakt z ich supportem.
Unity również wytłumaczyło powód takiego działania. W odpowiedzi czytamy, że Improbable naruszyło warunki licencji przez nieautoryzowane zmiany w oprogramowaniu należącym do Unity Technologies, nazwanie ich “integracją” i sprzedawanie jako własny produkt. Unity Technologies poinformowało Improbable o łamaniu licencji ponad 6 miesięcy temu. Firma nie postanowiła zrobić z tym nic, tym samym dwa tygodnie temu Unity Technologies cofnęło im licencję Editora. Dodatkowo Unity poinformowało Improbable, że deweloperzy nie powinni ponieść konsekwencji ich błędów, przez co dopuszczają użytek poniekąd nielegalnego oprogramowania w grach, które już powstały lub powstają z jego wykorzystaniem. Improbable pominęło jednak tę informację w swoim oświadczeniu, czyniąc z firmy odpowiedzialnej za Unity tego złego.
Na sam koniec Unity informuje, że zmiany w ich warunkach licencyjnych są konieczne z powodu dynamicznie zmieniającego się rynku. Rozumieją jednak, że warunki licencji mogą być mało przejrzyste, dlatego są w kontakcie z community, żeby uprościć język w wątpliwych punktach i uczynić go bardziej jasnym. Przy okazji starają się wytłumaczyć, o co chodzi. Mianowicie, jeśli tworzysz grę opartą o rozwiązania serwerowe bądź w chmurze – np. masz własny serwer albo kupiony hosting gdzie przetrzymujesz dane, takie rozwiązanie jest legalne i użytkownik jest chroniony przez EULA. Jednak w przypadku gdy w chmurze działa oprogramowanie oparte o oprogramowanie Unity, które przetwarza w jakiś sposób dane, to takie rozwiązanie jest dozwolone tylko, gdy taki serwis został zatwierdzony przez Unity Technologies.
Tym samym ogólny streaming gier jest legalny, bo nie operuje na rozwiązaniach działających na podstawie oprogramowania Unity (np. Twitch). Nielegalne mogłoby być streamowanie “wbudowane” w grę, jak np. PlayStation Now – ale akurat to rozwiązanie jest zatwierdzone przez Unity.
Możemy czekać na odpowiedź Improbable, w obecnej chwili wytłumaczenie Unity jest raczej wiarygodne i sensowne. Natomiast to firma odpowiedzialna za SpatialOS wychodzi na kogoś, kto nie zrobił nic przez pół roku, okłamał swoich użytkowników i zrzucił winę na Unity.
Edit (17.01.2019):
No i chyba mamy zakończenie afery. Unity Technologies albo przestraszyło się ucieczki użytkowników (Epic już zbierał fundusze na “pomoc na zmianę silnika”), albo faktycznie źle sformowali całość i po przemyśleniu sytuacji poprawili wątpliwy zapis. W wydanym wczoraj oświadczeniu czytamy nową wersję kontrowersyjnego punktu:
[stextbox id=’info’ caption=’Nowa wersja regulaminu’]
Unity developers are free to use any service offered to Unity developers (each, a “Third Party Service”). Unity does not have any obligation to provide support for any Third Party Service provider or Third Party Service under this Agreement.
Third Party Service providers may not, without Unity’s express written permission: (1) use a stylized version of any Unity name, trademark, logos, images or product icons, or other Unity-owned graphic symbols; (2) use a product name confusingly similar to a Unity product or that could be construed by Unity developers as being a Unity product or service; or (3) create or use any marketing materials that suggest an affiliation with, or endorsement by, Unity. All use of Unity’s trademarks must comply with Unity’s Trademark Guidelines.
[/stextbox]
Innymi słowy, korzystać można z wszystkich alternatywnych rozwiązań, jednak Unity dalej będzie autoryzować konkretne firmy. Korzystając z autoryzowanego dostawcy mamy mieć pewność, że Unity będzie z nim kompatybilne, a wykorzystując inne oprogramowanie, trzeba się liczyć z tym, że po którejś aktualizacji Unity, może ono przestać działać.
Jednak zakazane jest, stosowanie loga Unity do sprzedaży swoich usług, jeśli nie jest się autoryzowanym partnerem Unity. Tym samym użytkownicy SpatialOS od Improbable mogą spać spokojnie, bo firma nie narusza już regulaminu, aczkolwiek Unity podkreśla, że nie są oni partnerem, przez co nie ręczą za ich oprogramowanie, oraz zaznaczają, że firma wprowadzała użytkowników w błąd, sugerując, że współpracują z Unity.
No to chyba koniec!