Game Engines are popular with game developers because they are feature rich, from cross platform support, speed of development, editor, and collaboration with a community it is easier to get more done faster. These and many other benefits are great, I am not proposing avoiding engines. I propose that making a game of any size without a game engine will be more beneficial to your developer toolbox than hitting the ground running with any commercial game engine.

At the core of any game there is a game loop. This loop handles two of the main functions a game needs to have. The first is a place to update input changes, physics, and state, and the second a place to draw pixels/vertices to the graphics card. This is a simplistic definition of a game loop but one that is abstracted by nature in modern engines. Creating a game with a framework or library instead of an engine will push you to learn a bit more about underlying structures and systems. This learning will also make you a better engine user because you’ll be able to put together how the engine abstractions make life easier.

Before there is a loop, there is a call to load assets. Content is one of those things that usually requires establishing a pipeline. Artist will provide PSD, FBX, <fill in the format> and any modern engine already has importers to handle those, making it easy to incorporate any artist output into the development pipeline. This is not the case when working with a library with basic import functionality – sure you might have support for basic image formats but anything more complex will require adding packages or writing your own. Let me just say there is a lot to be learned from writing custom importers and processors of content for games. From reducing size, better compression, to creating atlas and parsers optimize for your game.

Sometimes forcing yourself to reinvent the wheel will yield a truly unique wheel. This is not to say engines can’t produce unique gaming experiences – I have read articles of teams heavily modifying engine source code to achieve their vision, but we are not really talking about AAA team size here. Why take a sledgehammer to an engine when you can build the functionality you need from scratch and leverage all the obstacles in the way to provide your own recipe to solve them. This is to say the way you solve a problem without an existing tool to do it is different than how you solve it when you must create the tool to do so – It is in the latter that remarkable learning takes place.

Don’t wait, pick a library or framework and build a game from scratch. Use any open art asset kit if you must, the goal is to simply see what it takes and appreciate the niceties we get by using an engine. Who knows, might fall enough in love with the process to want to create your very own engine.

Photo by Francesco Ungaro: https://www.pexels.com/photo/mosaic-alien-on-wall-1670977/

Leave a comment