HackerTube

Unity DOTS vs Handbuilt: Sample Project

Nick Caston1 HN recommender · recommended in 2 months, 2020–2021
YouTube
demo · intermediate · 2020–2021 on HN

Nick Caston compares Unity's sample ECS/DOTS project (AngryBots) with his own from-scratch C++ and OpenGL clone. He benchmarks performance and discusses the effort involved in each approach.

HN uses it as concrete data in game engine debates, showing a custom engine far outperforming Unity at several times the effort.

8 comments from Hacker News

@jokoon2020-05 · in “What Unity Is Getting Wrong”

A great demonstration of how unity is bloated: ▶ this video Unity is targeting students and gamedev wannabees. You don't make a game with a framework. Programming is not simple. Same debate of framework vs libraries. I'm even against Godot, which you cannot even use as a rendering library. You end up being too dependent on those platforms and all their assets and plugins. Of course if you intend to make a game that's not too ambitious, if it revolves around the graphics, unity might be ok, but it's just a sophisticated RPG maker 3D. I strongly advise against learning unity or godot. A huge problem is that unity/unreal made it difficult for classic engines/renderers to keep thriving, and it's hard to find a good engine nowadays. There are some, of course, but their community is non-existent, which makes things much harder in open source.

Recommends View on HN
@jokoon2020-01 · in “Godot 3.2”

If one doesn't understand how a game works, a framework is not going to help. This person will probably shoot himself in the foot. Here is a good video about benchmarking unity ▶ this video

Recommends View on HN
@KronisLV2021-11 · in “Ask HN: How were video games from the 90s so efficient?”

> ... it greatly decreases your time-to-market to do things in a straightforward way ... I'd actually like to link the YouTube channel of a person who is writing their own game engine and game at the same time: link You can see how using Godot, Unity or Unreal (or most other engines) would have been much faster in regards to time to market. Similar differences show up when you try to build the same project, once while using an engine and another without it, the performance can be much better if you write your own optimized code (supposing that you can do so in the first place), however the development still takes much longer, for example: ▶ this video Now, whether that matters to you or not is a different matter entirely: some care about learning a lot more about the lower level stuff, others just want to develop games and care more about the art/story/etc., while others care about selling them ASAP.

@qayxc2021-06 · in “Stride Game Engine”

Let's not guess and simply checkout a fair comparison, like this gentleman did: ▶ this video From his perspective as an experienced developer, it took 3.4x more effort to implement a very basic project versus using a fully featured engine. And that's ignoring the editor part, not to forget. I'd call a factor of 3.4 quite significant. In more general terms, it's the difference between actually finishing a game in a 3½ months vs a full year. In other words, you could finish 3 projects in the time it takes you to fully handcraft one, with the added advantage of OOTB multi-platform support. So reality seems to disagree with your "not really saving you that much much time" assumption. It's the small conveniences that add up quickly: exporters/importers for assets, in-game editors, readily available prefabs/blueprints for all kinds of components, stuff like that. Of course it's not rocket surgery to use SDL and a handcrafted engine for a quick little project. Yet, I've witnessed far more game projects die (especially by beginners) that went the handcrafted all-the-way route versus people using game engines.

@ajconway2021-06 · in “Your CPU may have slowed down on Wednesday”

> In many cases, this software doesn't even do anything that is functionally different from 10 or 20 years ago, but it still consumes many more resources I would argue that in most cases the choice is not between fast, optimized and slow, unoptimized software. The choice is between having a functioning program (using a universal, "reasonably" efficient stack) and not having one at all (because the amount of resources it takes to develop a customized, low-level implementation is prohibitively high). A good example: ▶ this video A custom 3D engine performs immensely better than a comparable Unity project, but it took the author 3 to 4 times the effort.