Now I'm at 36 games made with it, and I even have proper CI and containerized toolchains for cross-compiling on GNU/Linux for Windows, macOS, GNU/Linux (using either Steam Runtime or Flatpak), Android, Maemo 5 (Nokia N900), PureOS (Librem 5), Emscripten (asm.js/WebAssembly) and Steam Link. The engine also works fine on Raspberry Pi and FreeBSD (there's just no toolchains yet), and I'm looking forward to port it to iOS, DragonBox Pyra, Sailfish, Nintendo Switch and UWP (Windows 10/Xbox One), neither of which should be hard, I just need some time and/or devices. The only significant platform that would need some larger effort that I identified is Playstation.
Some of this stuff wouldn't be possible at all when using Unity or Unreal, or would have been much harder when using Godot.
Having said that, I probably wouldn't start writing a full-blown 3D engine if writing a 3D engine wasn't actually my end goal.
BTW. This "Lonely Cube" game could be easily written in a simple 2D engine using perspective transformations ;)
Is that a technical issue or just conditions you have to satisfy to get a development environment up and running?
It's GPL, but I plan to change it to LGPL once I declare it stable and documented enough.
Games live here: https://dos.itch.io/ (or more specifically, https://itch.io/c/195242/libsuperderpy-engine). Most are small game jam things, but recently I've been working on bigger ones as well.
I think I started my "game engine" as such a few years ago when I got interested in ECS and SDL and wanted to see what it would take to make a "simple game." It's been a constant, almost pathological, cycle of deletion, fence-painting and restarts. Fun, and educational, but I've come to terms with it likely never leading to anything productive.
But, even if it goes nowhere, it can be liberating to work outside the constraints of a framework, in a "chop wood, fetch water" kind of way.
That said they sure are fun to build.
For 2D engine, it's actually a couple of weeks to build one. I have built my own in 2013 and have released 4 games using it so far, two of which were very successful:
For some particular game related tasks on top of the base engine, I found https://www.redblobgames.com/ very useful.
That being said, the game already looks amazing as it is, the graphics are phenomenal. I am pretty sure people would be willing to pick it up after he open sources it.
As far as I can tell, everything is written from scratch, in C++.
The screenshots are pretty though and he's obviously talented. Things would probably be completely different if he had a steve jobs-esque figure to guide him. There's a lot of consternation on HN over business guys trying to find a tech co-founder but in this case we have a reverse. What a shame. Ultimately I see this as a logistical problem in society, our inability to pair people up effectively.
The former is much less focused and you're much more likely to build things that are not exactly what you need, more general than you need, or just because it's some feature a game engine usually has.
I wrote a SDL based software renderer for the first game, then extracted some reusable code for the second game, and just keep using it and adding stuff.
It started as a Linux/Windows SDL thing. Later became OpenGL/DirectX. Then came Mac support. Near the end I added iOS and Android backends.
It was good fun. I'd probably not do it again today.
Basically if your making your own game engine then use the context in which you are working. If you are going to end up with something generic like Unity maybe you should just use something like Unity from the start.
The reasons provided - actually, one reason - is that whenever you need another feature (the second reason provided is the ability to run on another platform) it's easier to just use whatever is there already in the existing software rather than making that feature yourself.
This is a pretty general problem of writing your own parts or taking external pieces, often called "dependencies".
There are problems (and benefits) with those external pieces, not mentioned in the article - cost of learning (vs. cost of creating), cost of bugs (you usually know bugs in your code better), ability to fix bugs (sometimes external teams take forever to do that...), weight of features which you don't need but which exist anyway in the external software (that code takes space, time and sometimes require you to work with that a certain way when you'd maybe prefer another)...
I fully agree that educational value of creating such a system from scratch is quite significant though.
My experience in game development pretty much amount to an incomplete multiplayer tetris game.
I found kikito's bump, gamera, and anim8 libraries to be excellent complements to Love, adding a few of the otherwise missing elements.
I've seen it's praises on HN, but I'm not a game dev so YMMV.
In C++ and their python-like language with bindings to other languages.
In my opinion, if "open source" is a necessity, then Godot currently seems like the leader in terms of community support and maintennance, otherwise I'd suggest going with Unity, even for 2D, and waiting until Godot's featureset matures a bit more.
There may also be issues of asset rights, censorship and copyright involved.