Improbable announced today that all existing and in-development games using SpatialOS are now in breach of Unity's TOS. While the TOS was changed on December 5, 2018, Improbable received confirmation of breach on January 9. Improbable had just released the SpatialOS GDK for Unity around the same time as the TOS change.
Improbable is taking steps to help all developers affected by this change, including:
QuoteSteps we’re taking: we also want to reaffirm our support for our incredible developer community and commit to the following:
- Good faith: We will do everything in our power to solve this issue in good faith with Unity. The ideal outcome is a reversion of this terms change.
- Development support: We will do everything in our power to help developers using SpatialOS with Unity to finish, release and operate their games.
- Emergency fund: We are setting up an emergency fund for partners who this action will leave in financial difficulty. Please contact us to discuss further.
- Moving engine: Engine moves are always the last resort, but we and partner companies are working to resource a team to assist if you need to take this step. Please contact us, as this resource may be limited.
- Reaching out: Please contact us to see if we can help you or if you are concerned, we are also contacting many of you proactively.
- Unity GDK will be fully MIT licensed. As a first step, we will be fully open-sourcing under the MIT license the code of our SpatialOS Game Development Kit for Unity, in case this assists individual customers. We will continue to support the GDKs to the best of our ability.
But this change to the Unity TOS may have wider implications for developers in the Unity ecosystem.
The clause in question is Section 2.4, which states:
Quote2.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.
Specifically troubling for all Unity asset and service providers and developers is that Unity now prohibits "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...".
Seeing as this applies to the Unity runtime and Project Content, this could mean that any kind of processing offload for entity state occurring on a server or cloud provider (such as SpatialOS) is no longer allowed. While Unity does provide an authorized list of streaming platforms, with these Terms in place, developers who planned to use Unity in any kind of distributed network capacity may find themselves in a difficult situation.
Update:
Comments from Epic's Tim Sweeney:
Further comments from Sweeney:
Update from Unity
QuotePartnering with technology companies is key to our approach in providing a robust game engine across many platforms. As such, we were excited to listen and explore ideas with Improbable when we started discussions more than two years ago. Unfortunately, Improbable chose an approach which doesn’t involve partnering with Unity, but instead involves making unauthorized and improper use of Unity’s technology and name in connection with the development, sale, and marketing of its own products.
More from Improbable
https://improbable.io/company/news/2019/01/10/an-update-on-todays-events
QuoteWe hope some of the efforts of our team and partners have helped a little, and we have plans on how we can do even more, which we hope to announce soon. Once again, please reach out if we can help in any way.
But honestly, we don’t believe that today was about Unity or for that matter Improbable. Ultimately a commercial dispute between two companies, in which both sides have certainly made errors, should never threaten access to essential technology used by a large number of developers. A world where this happens frequently will be a world with very little innovation in gaming.
We think this incident shows that, as an industry, we might need to consider making some changes which hugely increase the rate of innovation and the collective success we could all experience.
Epic and Improbable Partner Up