4 ms·
> - In case you don't necessarily expect to sell your game in the future, but would prefer just to learn bunches, consider writing your own engine, or using SDL
by qayxc 5y ago
> - In case you don't necessarily expect to sell your game in the future, but would prefer just to learn bunches, consider writing your own engine, or using SDL/SFML/LWJGL or another solution like that
Make that "in case you never want to actually finish your game :)
The greatest pitfall with rolling your own is that you soon be stuck spending 90%+ of your time working on the engine instead of the actual game.
There's just too many moving parts involved and even libraries like SDL only get you so far. I'd VERY strongly recommend against developing your own game engine IF your goal is to actually make and finish a game.
In case it's more about the learning experience and finishing a game is just nice to have, rolling your own engine is fine.
- TillE 5y agoThere's a big difference between "writing your own engine" (a bottomless pit of features your game probably doesn't need) vs writing a 2D game with a framework like SFML. Engines like Unity can be nice, but they can also be clunky and opaque and get in your way, especially if you're doing something outside the norm. It can be simpler to just write the code you need, as you need it. That said, of course you should use an off-the-shelf engine for a 3D game if you ever hope to finish it.
- AnIdiotOnTheNet 5y ago> Make that "in case you never want to actually finish your game :) I disagree. People overestimate how much of a time sink "writing your own engine" is. Using a generalized engine often suffers from the second system effect, in the end reducing your flexibility while not really saving you that much time.
- qayxc 5y agoLet's not guess and simply checkout a fair comparison, like this gentleman did: https://www.youtube.com/watch?v=tInaI3pU19Y https://www.youtube.com/watch?v=tInaI3pU19Y 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.
- username90 5y agoRolling your own is mostly a fixed cost endeavour. Taking 3.4x more time on a week long project isn't that bad when considering that most projects takes years. And then you have to consider that the guy got 10x the performance on his hand rolled project, getting unity to similar levels of performance would likely take way longer than just using his own engine. > 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. If you don't have the skills required to make your own game engine then you shouldn't do it. You shouldn't learn how to make a game and how to make a game engine at the same time.
- midnightclubbed 5y agoI think it depends very much on how much engine you need. A simple renderer (in 2d or 3d) is a fairly low time investment assuming you are a strong C / C++ programmer. However every thing you add on top of 'draws stuff to the screen' adds at least the same amount of time again. Physics, animation, editor, UI, audio, streaming, packaging, asset import, networking. Plus each one of those new systems may require new features from the existing ones in order to work (eg animations will need asset import support, shader support, and renderer support).
- bitwize 5y agoWriting a basic engine takes no time at all. Writing a complete engine that works across all major consoles plus Windows and mobile, with all the features designers might need including editing and scripting capability, is a HUGE time sink. If you intend to sell your game, stick with Unreal or Unity and save yourself a lot of time and hassle.
- KronisLV 5y agoYep, overall i agree with you. Of course, there are a few people who actually write their own engines AND finish their games, but they're probably in the minority. I guess what i tried to say is that if your goal is to make money, then there are lots of ways to save on time and effort, in the case of gamedev that being using existing technologies and solutions, possibly even assets (as long as you don't mix art styles that don't match). It's much the same as wanting to produce a corporate CRUD web app vs writing a personal blogging engine for a passion project or simply for own amusement. Both can result in finished products, yet the motivations for each would be drastically different.