6 ms·
I absolutely love Unity, and it's what I reach for as my default for new projects, despite several years working in the games industry. It's easy to get starte
by Pfhreak 6y ago
I absolutely love Unity, and it's what I reach for as my default for new projects, despite several years working in the games industry.
It's easy to get started, iterate on ideas, there are tons of examples of things online.
That said, it's not without its warts -- APIs change constantly, which means many of the examples or assets you find are no longer functional or need to poking to get working. Sometimes things just... behave oddly... in the editor. And the story around collaborating with friends is still not great (though a free tier for Unity Collaborate has helped with this a bit.)
If you haven't messed around with Unity, I encourage folks to give it a try. The new Universal Render Pipeline stuff they've been building is really nice for a solo/small team project.
- andyfleming 6y agoI’ve had frustration with the warts you describe. Have you tried Godot? Any idea if it’s any better in those regards?
- offtop5 6y agoGodot isn't finished yet. Unless you plan on developing an open source game or need absolute total control over your project I wouldn't use Godot. The greatest advantage of Unity is anyone can develop something for it very fast. The worst part of Unity is anyone can develop something for it very fast. An asset developer might build something which he or she doesn't actually update, or has a nasty habit of completely breaking your project. The one thing I don't like about Unity is the lack of quality control with assets. Some assets will give you a nice foundation for a fantastic project, others will set you back days. Asset authors are almost always either absolute Angels, who will go out of their way to help you and if they can't offer you a refund. Or their jerks, their assets don't do what they promised and they'll refuse to refund your money. If I could fix one thing about the unity ecosystem, I'd tell Unity to give asset buyers a few no contest refunds . I probably spend about 1000$ on Unity assets per year. The one time a $15 asset ends up not working correctly I should be able to get a refund without begging the author for it. Plus it's essential to understand what your goal is. Do you want to actually ship your game within a reasonable amount of time? Or do you feel like creating a project primarily for learning, or to just share the code on GitHub? If you want to ship a game, either use Unity or Unreal. These are the only two engines which are well supported enough where you can get something done within a reasonable amount of time. Open source engines are cool, but there is absolutely no expectation of things working as well. Let's say you want to build a project with Godot, and it's going well so you want to publish it to Switch. You're going to run into a ton of problems off the bat, one open source projects tend to not support closed apis which council manufacturers force you to support. So you're going to have to build your own integration there. Vs clicking a build to Switch button with Unity. Honestly I can't say enough good things about Unity, you have an amazing amount of educational material they publish. And for the most part I've been able to buy assets for $50 or $100, and save myself 80% of the development time on my projects. You aren't going to have a good time with Unity if you're adverse to buying assets.
- Kiro 6y agoWhat kind of assets are you buying? I thought most assets were character models and such but sounds like you buy assets with actual functionality. Do you have any examples?
- offtop5 6y agohttps://assetstore.unity.com/packages/templates/systems/corgi-engine-2d-2-5d-platformer-26617 https://assetstore.unity.com/packages/templates/systems/corg... That's basically a 2D / 2.5d game framework.
- Kiro 6y agoInteresting. Is this essential for people making 2D games in Unity? I see that it's officially recommended by Unity themselves.
- rubito 6y agoIt’s not essential but this is one of Unity’s revenue sources, so they will advertise it . In fact, one key aspect to finding success (disclosure: I am an ex Unity AssetStore publisher) in the AssetStore is to persuade buyers in thinking your asset is essential for making their project come true. It’s all about selling shovels and dreams.
- jpindar 6y agoWhere is it officially recommended? There is other content that is created by Unity but that is clearly labeled as such. Nothing from the Asset Store is essential, but it would take much longer to do everything yourself from scratch, as well as being difficult to learn how to do everything yourself without examples to experiment with.
- Kiro 6y agoI think it was this part: > The Corgi Engine is recommended by Unity as part of its 2D Essentials Pack. Maybe I read too much into it.
- bj-rn 6y agoFor another alternative (especially if you want to stay with C#) have a look at https://stride3d.net https://stride3d.net
- dleslie 6y agoThe most important thing about Unity is to know that the Editor is not the same as the Client. Assets load differently, in surprising ways. Materials may work fine in Editor but not in Client. Code executes differently. Timings are different, the Editor shares managed Heap with the Client, and so garbage collection is different. And so on. Rule 0 with Unity: _do not rely on the Editor for testing_.
- cmeacham98 6y agoHot take: to some extent, this is a good thing as it discourages relying on emergent behavior in the client, like timings, the heap, etc that may or may not differ between your machine, your player's machines, and even future hardware that does not exist right now.
- Eyas 6y agoI'm with you there, but (and, this is an unpopular opinion) I think it would be even better if it went the way of Go. Go will randomize iteration order of unordered collections (at least in development builds?) on purpose so you learn not depend on it. The "tricky" thing with Unity is that you might find a consistent client behavior and unknowingly depend on it. I think with time/experience you'll learn to spot what to ignore (frame lengths, etc) and what you could count on. And just to test fully-build games often, and across clients. * C# does something similar with hash across builds (so you don't depend on serializing/deserializing hashes and expect them to work; they want the freedom to change hash functions).
- conradludgate 6y agoGo doesn't randomise map order, it's just indeterminate. It picks a lot random bucket to start the iteration but the order will always be the same in the end (at least when I last investigated it). It's essentially free, so it does it in production too
- jayd16 6y agoDon't rely on race conditions and your code will run similarly on device and in editor. I agree that you can't easily use editor performance profiles though; there's far too much editor noise.