8 ms·
Random Thoughts about Unity
- raytopia 2y agoUnity is still a pretty good tool overall but just like the author states they are going in too many directions at once and it's hurting usability. And of course there's the problem with Unity Technologies not making enough income to be sustainable long term and trying to capture more value from its users. I know a lot of people are very excited about Godot replacing Unity but I honestly hope that the 3D engine market becomes more diverse. I'd argue a lot of engine tech and ways of creating games hasn't innovated as much as it could have if there was more competition in the space. There's a lot of awesome 3D frameworks and engines out there and they should get some attention too.
- deleted 2y ago[deleted]
- Caitlynmeeks 2y agoNice one Aras. I can't say I recognize the company anymore, so disfigured from what it once was, but I still love the engine and editor and still use it day to day.
- nosioptar 2y agoUnity games always seem to have memory leaks. I'm not sure if it's the engine or the game. If I use ulimit to set a memory limit, the games behave. Otherwise, they'll keep sucking of memory till my computer crashes.
- msk-lywenn 2y agoIsn't that just how the C# garbage collector works?
- neonsunset 2y agoNot really, there is a big difference in how Unity and CoreCLR GCs work. CoreCLR itself has two-ish GC implementations that are very differently tuned (WKS GC and SRV GC aka Workstation and Server). This is further complicated by DATAS mode, if we talk about implementation, as it dynamically scales heap count and sizes based on application allocation behavior, time spent in GC and the proportion of memory used (enabled by default in .NET 9 for SRV). AFAIK Unity uses Boehm GC based implementation with augmentations for incremental per-frame collection. It can sustain much, much lower allocation throughput than what CoreCLR uses (and CoreLib APIs try to be not allocatey as well). Would be interesting to read more if someone with better Unity knowledge chimes in.
- BryanLegend 2y agoThere's a pretty good memory profiler for it now that can find and fix this. It's possible to leak memory in any game engine.
- bob1029 2y agoI recently started looking at Unity again - not for gaming, but as a way to deliver cross platform B2B products. Primarily leveraging the 2D layout primitives rather than the 3D rendering pipeline, but perhaps taking advantage of things like TextMeshPro instead of traditional techniques. The overall architecture would be client-server, very similar to a typical web app. Unity on the client, some backend written in .NET (so we can share contracts). If I was forced to do a proper "native" experience on every platform, I may spend a more significant amount of time on this path. The licensing arrangement with Unity isn't perfectly ideal, but in the realm of B2B products it's probably a manageable cost of doing business.
- pests 2y agoThis is kinda similar to what Caves of Cud did. Pretty much wrote the entire game from scratch and then used Unity as a dumb renderer/UI handler/multi platform support. When the licensing fiasco happened the creator spent a live stream "converting" it to godot. He didn't open godot until the very end - just to start a thread with his code. Nor did he open unity at all either. Reminded me of your idea.
- neonsunset 2y agoI'm aware of at least one client terminal SW that uses Unity as a way to ensure consistent UI. This was way before AvaloniaUI was a thing and .NET became what it is today. Likely today we are spoiled for choice even if each one has tradeoffs (every crossplat GUI framework has and even native development can make engineers suffer just as much).
- awfulneutral 2y agoI spent a while working on a digital painting app in Unity. UIToolkit is not complete, but it is pretty good for web-like UI, and you can leverage existing knowledge of HTML/CSS layout. With some tweaks you tell Unity to only redraw the screen on demand, which is better for battery life. My experience is that Unity could be pretty good for cross-platform semi-graphical app development. Except that Unity dev is miserable (slow, never-ending compilation, bad docs, constant bugs, glacial update pace, broken Linux editor, etc etc etc).
- pathless 2y agoUnity has become an unfocused, poorly optimized, half-baked mess. This WAS bad for the independent and small developer market that actually uses their engine for final builds, but they've begun a mass exodus to Godot, which happened to go from "ok" to "great" JUST as Unity ruined their platform with their short lived "20 cents per install" policy. Someday soon, we will see Godot eclipse Unity in the same fashion that so many other proprietary juggernauts were slowly cannibalized by laser-focused open source projects over the years: In 2022, the split among GMTK participants was 16% Godot to 61% Unity. In 2023, it was 22% Godot to 49% Unity. This year, it was a whopping 37% Godot to 43% Unity: https://pbs.twimg.com/media/GVfo5-0WQAAIMAQ?format=jpg https://pbs.twimg.com/media/GVfo5-0WQAAIMAQ?format=jpg This is major, because Godot has just had another round of home run improvements that brought in even more developers. I think 2025 is the year that Godot effectively replaces Unity for new developers.
- BlueTemplar 2y agoIf you start using Unity, you're not an independent developer any more : has there been a point where Unity did not require a subscription yet ? And when did it became a platform ?
- diggan 2y ago> If you start using Unity, you're not an independent developer any more How so? The usual definition is that if you're self-publishing, you're independent, but you seem to go by some other heuristic. > has there been a point where Unity did not require a subscription yet ? Yes, up until 2016 Unity sold "normal" paid licenses (as well as offering a free version), meaning pay once and keep using, rather than subscription-based like it is now.
- pizza234 2y ago> In 2022, the split among GMTK participants was [...] This year [...] 37% Godot to 43% Unity: Jam and commercial games have different requirements. > I think 2025 is the year that Godot effectively replaces Unity for new developers. For game jams, possibly. Unity and Unreal have still a very large market share for commercial games.
- petermcneeley 2y ago> A group of brilliant, top-talent engineers seemed to want to build technology that is the opposite of what Unity is or has been. In their ideal world, everyone would be writing all the code in SIMD assembly and lockless algorithms. He is talking about you Mike Acton.
- tuna74 2y agoAKA, "60 fps is no benefit over 30 fps"-guy.
- ahoka 2y agohttps://web.archive.org/web/20101213015155/http://insomniacgames.com/blogcast/blog/mike_acton/1503082/ https://web.archive.org/web/20101213015155/http://insomniacg... What a joke.
- petermcneeley 2y agoI really dont see what the big deal is here with the 60/30; who cares it was 15 years ago. I was more identifying the philosophy present in this talk https://www.youtube.com/watch?v=rX0ItVEVjHc https://www.youtube.com/watch?v=rX0ItVEVjHc
- Phil_Latio 2y ago[flagged]
- jarsin 2y agoMy final straw for unity was when they locked my org due to fraud. I appealed the case thinking it was a false positive by some automated system and they would correct the error. It took them 3 months to finally unlock, but by that point I just moved on to Unreal and never looked back.
- d13 2y agoExactly the same thing happened to us. Accounts suspended, no information or recourse.
- golergka 2y ago> For example, in the old Unity’s built-in render pipeline, you had a choice between say “deferred lighting” and “per-vertex lighting”, and while these two target extremely different hardware capabilities, result in different rendering and support different graphics features, they work on the same data. Which means the choice between them is “just a setting” somewhere, and not an up-front decision that you have to make before even starting your project. That's untrue. I've worked on a project that used forward lighting. Converting it to deferred was not an easy task, we had to remove and work around so many transparent objects.
- moi2388 2y agoAnd their moronic new licensing. We’re testing a product. Going with unreal because it lets us test for free with better features. I can’t see myself ever using unity for anything. Either unreal or Godot. There is no good use case for unity anymore
- Firaxus 2y agoDid you mean to say unity in your first paragraph? Your second paragraph suggests you’re using a different platform.
- moi2388 2y agoNo I did not. Fixed.
- bluescrn 2y agoThe uses cases for Unity haven't changed. While development has stagnated, It's still the best tool for many small teams wanting to avoid the pain of Unreal's C++ or the downsides of Godot (less mature, non-standard scripting language, console support) The problem is that it's become a much riskier business decision. What if Unity just disappears, or is bought out by another company, or hikes up fees again? What if there's unfixed crash bugs in the big black box of that closed-source engine, bugs that may go unresolved for far longer since the mass redundances and could sink an entire project?
- jncfhnb 2y agoI’m curious about the C++ issues with Unreal. I am a hobbyist game dev. I did a couple years with Unity, learning C# on the fly; and a few years with Unreal more recently learning mostly blueprints but a decent chunk of C++ where needed. My day job is python based and I never really did OOP aside from AP computer science in Java a decade ago. I definitely have not felt like the language was a top of mind issue for either engine. Much more important is just the built in features that the engine has for things like movement and what not. I tend to assume that dedicated developers are more skilled than I am. So why do people care so much about cpp? Imo it’s just been a tiny bit of extra boilerplate and a sprinkling of macros.
- mkoubaa 2y agoDoes anyone think Omniverse can become a viable alternative to Unity?
- diggan 2y agoAre you talking about nvidia's Omniverse? If so, I think its use case is more for simulations and tooling, rather than gaming. "Omniverse game engine" doesn't seem to find anything in particular.
- waynecochran 2y agoYes, the original DOTS idea had a very strong vision and direction. I don’t know what the current DOTS vision is. But to me the original DOTS vision felt a lot like it is trying to be something else than Unity... What is DOTS?
- swaginator 2y agoUnity's ECS framework
- waynecochran 2y agoWhat is ECS?
- ezekg 2y agoEntity Component System.
- waynecochran 2y agoI should have known that last one -- I have been programming using Apple's RealityKit for a year and a half which is an ECS -- I guess I get lost in all the acronyms ...
- deleted 2y ago[deleted]
- msk-lywenn 2y agoIt stands for Data Oriented Tech Stack. It's their ECS (Entity Component System) + "high performance c#" (a C# subset with their custom compiler). I used to call it Unity 2, since it was so different and incompatible with Unity itself.
- DDSDev 2y agoDOTS stands for “Data-Oriented Technology Stack”, which is a collection of Unity technology to include their Entity Component System framework, the Burst Compiler, and their Job system. Each of these technologies have their own descriptions, but a very quick (and perhaps over simplified) explanation: ECS is a framework where you have entities that themselves have one or more components, acted on by systems. The way these components are laid out in memory and acted upon by systems is typically more cache friendly then traditional game engine design with heap allocated GameObjects that are themselves a mess of pointers (Structs of Arrays vs Arrays of Structs) Burst allows you to annotate functions, jobs and systems written in a subset of unmanaged C# that compiles to highly optimized instructions for better performance. The job system allows you to schedule jobs with dependencies in a useful way that can help enable parallelism without manually having to deal with thread primitives. The jobs can also be burst’s themselves and used in a non-parallel manner if you don’t have something easily parallelizable.
- vyrotek 2y agoBy trade I'm a C#/.NET dev. Unity made it easy to dabble with gamedev on the side. But I've since moved to Godot. Their approach makes a lot more sense. Unfortunately, the C# experience isn't quite there. GDScript is just barely OK. You really start to miss a lot of advanced features on bigger projects. Generics, Typed Dictionaries, Extension Methods, etc. Godot adoption will skyrocket further once they add proper C# Web Export. Unfortunately, they claim to be blocked by this .NET team issue. https://github.com/godotengine/godot/issues/70796#issuecomment-1618006609 https://github.com/godotengine/godot/issues/70796#issuecomme... https://godotengine.org/article/platform-state-in-csharp-for-godot-4-2/#web https://godotengine.org/article/platform-state-in-csharp-for...
- cheschire 2y agoI came from the same direction. I ended up using ChatGPT to teach me how to convert my C# expectations into UE5 compatible C++. Between that, and the blueprints, it's not the most painful thing to do as a hobby. Not sure this approach is scalable of course, and I wouldn't recommend taking this approach for making Real Games. But for a little gamedev dabbling? Sure.
- awfulneutral 2y agoI have FINALLY made the decision to leave Unity for my hobby games/programs, after about 10 years using it fairly heavily. It is just making my life miserable and I sincerely hate using it, with the latest beta being almost literally unusable on my computer. I do disagree with the author about UIToolkit though - that is one of the only things Unity has done in the last 5 years that is actually useful. I'm not sure what to move to. I think there is a big vacuum for a code-first, open source framework that basically does what Unity does without the awful editor. I know a lot of people like GDScript in Godot, but to me it looks like the same mistake Unity made with UnityScript, which they eventually got rid of.
- treyd 2y agoGDScript does have pretty good integration with the engine's internal data models, especially when it comes to persistence. But Godot does also have first-class C# support thanks to the Microsoft grant and the community-made Rust gdext crate is very nice to use once you've gotten used to how it presents the Godot types.
- awfulneutral 2y agoIt just feels like C# is always going to be the better choice though. Why have both, with one of them inevitably getting less attention, and why spend resources reinventing the wheel?
- bjconlan 2y agoIt's also important not to forget other integrations such as that promoted by "the mono guy" ("one of those" or xamarin or even ximian guys if you're that old) himself: https://github.com/migueldeicaza/SwiftGodot https://github.com/migueldeicaza/SwiftGodot
- d13 2y agoGDScript is really nice! It’s a 99% clone on Python with some extra lovely functional programming features added that make it much, much nicer than Python. Try it, it’s really fun to use. Or, just code in C#, which has complete API support.
- AndrewKemendo 2y agoUnity is a terribly managed company led by people who know next to nothing about gaming or simulation Unity is in the “transition into hedge fund” phase of corporate development - but they don’t know how to make the kind of long term revenue that is necessary for that, the same way eg MSFT or Uber does with exceptionally predictable product revenue JR couldn’t care less about customers, product or anything other than making investors richer - he pushed the whole company whatever direction investor sentiment went (metaverse, ads, Weta failed acquisition etc…) and we see how that went. MW was a weaker less psychotic version of JR, and couldn’t make a game in Unity if you forced him to. The new CEO is whatever who cases, just another psychopath trying to pretend he cares about developers. Yawn. Overall there a lot of people who care about gaming and simulation toiling at Unity and only keep going cause the remnants of a great engine still produce value - however waning. Investors, management however don’t and never did. Unity sealed their fate going public when they had no long term way to sustain it without destroying it (I’m unaware of a company who didn’t destroy the original products after going public, so, who is surprised)
- neonsunset 2y agoWith all the hype going around Godot in light of Unity failings, I'm hopeful Stride3D will eventually see more light of day as it focuses on high-end rendering and VR, and will eventually integrate Bepuphysics2 to trade blows with big boy engines. Written in pure C#.