I don’t know what mistakes you made to end up here, but welcome! Every so often I start work on the odd game project, which normally languishes on my HDD or Bitbucket and ends up forgotten. With a dev blog, I’ll make tutorials or posts about specific techniques, to hopefully get some productivity out of them – or maybe just inspiration to continue working on them past the “bare skeleton of a project that doesn’t actually do anything” stage.
I start working on stuff like this whenever I get burned out on actual work, so updates will probably be sparse and unscheduled. I have a bad habit of leaving things for months and then getting back to them lol.
Expect stuff on retro aesthetics and procedural generation, but also any Unreal Engine 4 stuff I happen to be doing.
There are two engines/frameworks I tend to favor:
LibGDX: Yes, yes, it’s Java. People tend to have kneejerk reactions towards doing anything game-related in a language with garbage collection. It’s true that this can be a problem, depending on the complexity/scope of your game, but even in Java you can bypass GC entirely using object pooling.
But enough about Java – LibGDX is a fairly robust, mature framework that gives you a lot of options. The LibGDX “Setup UI” starts you off with a barebones project that you can import into your IDE of choice.
It’s a framework, not a library: you’ll implement the Screen interface and write code in its update() function, so you don’t control the game loop itself – but I’ve never run into a situation where I needed more control than I had. There’s easy APIs for both 2D and 3D rendering, and a good selection of extensions for things like AI, ECS, or physics libraries.
Unreal Engine 4: UE4 needs no introduction. I have passable knowledge of C++, but haven’t extensively dived into the UE4 source. Blueprint scripting is frustrating at times, but very capable. The rendering engine is incredible – if you want to try your hand at AAA-quality graphics, I highly recommend UE4.
And since I don’t already have enough of these links on this page, I’m making a game!