This post is part of my Thirty Days of Things, an attempt to post one article on this blog every day for 30 days.
Yesterday I talked about my general dissatisfaction with game engines that I’ve explored in the past. In the spirit of constructive criticism, today I’ll try to describe what I would want in my perfect game engine.
(Since 3D games are so much more complicated and have different needs than 2D ones, I’ll stick to describing what I would want from an engine to make 2D games.)
First and foremost, it should be easy to toss out a prototype project. Something I like about Love2D is that this is all the code you need to get started:
function love:draw() love.graphics.print("Hello world!", 400, 300) end
For comparison, I just spent 15 minutes trying to compile a “Hello world” program with SDL and gave up.
Getting the right level of abstraction is an impossible tightrope to walk, but I’ll do my best. These are the things that I would like my perfect engine to manage for me:
These are the things I would like to manage myself:
It’s dangerous to think about this, because the more I think about it the more I’m tempted to start building my own engine. But that’s a rabbit hole that doesn’t lead to producing anything useful. Just search GitHub for “2d game engine” if you need proof of that.Written on July 26th, 2017 by Noah Muth