Live data from Hacker News

Unity Engine ToS change makes cloud-based SpatialOS games illegal

arstechnica.com

261–270 of 277 posts

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#261
post #202

Consider a traditional MMORPG architecture, using a third party engine rather than an in-house engine. The engine ran on the player's computer, and the game company bought one engine license per copy of the game sold. If one were to build an MMORPG with SpatialOS instead of following the tradition approach, how does that change the number of copies of the game engine you need to license? It sounds like the engine run…

It runs in the cloud and on every player's computer.

Not that unity charges per copy in the first place.

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#262

Earlier quoted context omitted.

IIRC, the uproar was less about the principle, and more about how it is defined: > If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge [...] Making the functionality of the Program or modified version available to third parties as a service includes, without limitation,…

Well. No reasonable person would ever say that your website derives its value primarily from the database engine. But lawsuits aren't forced to be reasonable.

Exactly - I don't think it's reasonable, but I also don't think it's clear enough to make a business decision based on it.

I would also find it difficult to argue that it's _not_ "enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network" (given how broad it is), which is the first example given.

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#263
post #37

> 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 d…

I don't know why people are still using unity instead of UE4 except for historical reasons where users of the engine are hesitant to switch and have to relearn some things. Unity is not open source, it does not come with batteries included (so you end up buying a bunch of poorly maintained unity assets/plugins to do stuff that UE4 does out of the box), and I think they're struggling as a company more than people real…

I'm not saying UE4 isn't good, but I have a pretty long list of complaints.

First, their class reference documentation is very poor. The majority of classes and functions have either no description, or a description that basically repeats the function name in sentence form. For example, http://api.unrealengine.com/INT/API/Runtime/CoreUObject/UObj....

UE4 is fairly opinionated about what kind of game you're making. A lot of its core classes, like AActor, AGameMode, etc. are designed with a multiplayer fps in mind. For example, the basic actor class is much heavier than Unity's GameObjects. Every actor gets things like a built-in PointDamage and RadialDamage event so they can be damaged by guns and grenades.

There's a lot of minor issues with API/naming choices. ConvertTransformToRelative() has the Transform and ParentTransforms parameters backwards and instead gives you the ParentTransform relative to Transform. FBox.IsInside() should be named FBox.Contains(). As it stands, "if (MyActorBounds.IsInside(MyContainer)) { }" does the exact opposite of what you'd expect. The sin() and cos() nodes in materials don't take radians, nor degrees by default, but revolutions (so sin(0) == sin(1) == sin(2) == 0), even though the C++ FMath::Sin() function takes radians.

More importantly, we encounter engine bugs and crashes pretty frequently. Just recently, I was unlucky enough to encounter 3 separate bugs with OnAudioPlaybackPercent (it returns wrong values in various circumstances). Atmospheric fog started whiting out the screen after updating engine versions (still investigating this one). We've had tons of issues with child actors either becoming corrupt or losing their default values. I think we encounter some engine issue every week.

My favorite was when deleting a question mark from a comment in C++ caused everyone to be unable to compile. That had us scratching our heads. Any guesses why that would happen? (Hint: it's Unreal's fault.)

"Delete binaries and intermediate folders and recompile" is practically our unofficial office motto due to how often it fixes issues. Which leads me to, compiling C++ is slow. The near instant compile times of Unity are like a breath of fresh air.

Finally, the community and Asset Store for Unity seem much better. I wish we had something like FinalIK for Unreal. The Asset Store has 10x more content than the UE4 Marketplace. We usually look on the Asset Store for stuff like sounds or meshes, but it can be inconvenient, especially if they come with custom materials or code.

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#265

So right now we know the "what", but not the "why". What Improbable really has, or claims to have, is a way to scale massively multiplayer games where everyone is in the same world. They have a back end which is basically a synching system for small data elements between computers in a data center. Think of it as being like the way a shared memory multiprocessor synchs its memory system. Some data items belong to a s…

>world is divided into squares 256m on a side ... about twice an hour you'll have serious trouble at a region crossing and may have to relog.

Eve online has similar division per solar system, last time I played you had to wait up to 30 minutes to cross during massive rush hour, with some cross points being outright disabled when node reached its limit.

Naive mind who never worked in the field would say the most obvious step is following video codec world and moving to dynamic variable block size segmentation (quadtree). Compact sparse regions together, keep dividing the busy ones to manageable levels of load.

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#266

Earlier quoted context omitted.

It's not about the language, C# is generally fine if you know how to work the GC (which admittedly many people don't). The kind of C++ that is used for game code in UE4 isn't exactly "zero-overhead" either and it also uses garbage collection. Plus, on mobile C# in Unity is translated to C++ anyway. My guess is that the difference is negligible in most cases. What really makes the difference is that Unity has light-we…

Can you expand on "knowing how to work with the GC" in Unity? I'm a Unity dev and rarely touch GC other than keeping mindful of the work I'm giving it by size/quantity of objects in my scene/making sure objects are dereferenced/can be collected.

Basically, know what does and doesn't allocate heap memory, don't give the GC more work than it can handle and measure on the target hardware. Do it right at the start of development and consider things like object pooling and the new ECS, if necessary. Understand how your GC works: https://blogs.unity3d.com/2018/11/26/feature-preview-increme...

It's not about performance in 99% of frames, it's about not dropping frames when the GC kicks in and needs more time than your budget accounts for.

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#267
post #225

Earlier quoted context omitted.

Via a plugin developed by some Microsoft employees: https://mono-ue.github.io/

That's either a dead project or it's moved somewhere that I can't find it. Either way it's not something I'd trust enough to use for a commercial project, so I definitely wouldn't say UE supports C#.

No its still there. You just need to first get access to the Unreal Github repo to be able to see it since its a private repo (by signing up for an UE engine dev, it takes a couple minutes).

This is mentioned on the linked site:

"You will need source access to Unreal Engine on GitHub to get access to the MonoUE fork".

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#268
post #225

Earlier quoted context omitted.

Via a plugin developed by some Microsoft employees: https://mono-ue.github.io/

Yeah, the github.io page is still up, but the actual repo for that plugin has been deleted.

It's a private repo so you can't see it without Unreal Engine Github access, see my sibling comment for details.

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#269
post #170

Earlier quoted context omitted.

Without a stable and widely used model format making a game is impossible. You can drag&drop FBX into Unity and Unreal, and its mostly ready for use. Having a broken FBX importer is just a waste of time. You start with a model format, something works, you build a workflow, a system for producing content en masse, and then at some point you must consider throwing away the model format, the workflow and/or the whole en…

Godot doesn't have any broken importers, yet alone FBX which it doesn't have completely for legal reasons. Looking at Collada(.dae) Blender has a super broken exporter, so broken that Godot folks wrote a better one from the frustration. GLTF2 doesn't have enough support, even though it's a good format. The problem is that everyone is just sitting and using proprietary FBX format and don't work towards new open standa…

Fortunately, I have been able to do most of what I want with Blender and Better Collada. But I know that lack of FBX support pretty much makes it a non-starter outside of hobby projects. This also has to factor into a significant labor base that knows Unreal, Unity, CryEngine, Lumberyard...

Re: Unity Engine ToS change makes cloud-based SpatialOS games illegal

#270

Earlier quoted context omitted.

Spatial OS is wholly different from game streaming. Here is the overview provided by one of Unity's streaming partners Genvid [0] "Genvid provides an easy to use SDK, with a C interface, which can be used to automatically capture your game content (audio and video), encode it properly (e.g. H264), and to stream it to a service (e.g. YouTube). It also provides routines to send additional game data to spectators (e.g.…

"SpatialOS is a cloud-based computational platform that lets you use many servers and engines to power a single world. The platform coordinates a swarm of micro-services called workers, which overlap and dynamically reorganize to power a huge, seamless world. The platform also lets you handle a huge number of concurrent players across different devices in one world" I'm planning on releasing something like this, with…

(Unity employee here) While I can't comment on legal specifics, the controversy is entirely about Improbable's server-side use of Unity, so you should be fine. That said, you can send us an email (with details of your specific situation) on terms@unity3d.com and our team can clarify. (You can also wait and see, as we'll be updating the ToS again, as they're evidently much too vague at the moment...)
Post reply on HN