Creating a game with your own engine for a jam.


I usually participate on game gams using my own "engine". Engine is not the right word, usually I use some basic graphic API (SDL, GLFW, SFML, etc). The most complex engine I used was Raylib. 

It will be unfair to say that your code does not use any library. Where do you trace the line between "library"? You have to open a window, you have to read the keyboard, you have to play sounds, load images...

You can say "ok, you should not use anything that does not comes with the operative system". But what if you don't have an operative system? Like what happens when you compile to webassembly. 

I'll say that I try to "keep my dependency footprint as small as possible". So I try to do everything by hand. I usually try to avoid libraries to load images by using BMP images (which are bery easy to read).

In this case, I used a physics engine that I build after watchign this video. Is not the first time that I used Verlet Integration as a base for a physiscs engine, but this is the time that I better understand it.

On Advantages

What is an advantage? In the context of a game jam, since time is limited, you could have an upper hand if you found a way to add features very fast. In my case I submited the game on the 2nd or 3dr day(don't remember now) after that, I had time to add improvements and bugfixing.

The advantage of using your own code

When you work with a very minimalistic code, and when this code is your own, you have a big advantage, you know the capabilities of your "engine" inside out, and if you run into some limitation, you can easily overcome it by adding some functionality or improving something (like performance).

The advantage of not using art

Another advantage that I had is that I didn't use any art, or sound. Although, my game has graphics and sound, all of them are generated.

The advantage of an easy UI

The fundation of my presentation layer was DearImgui, which is a GUI library that basically runs everywhere. This allowed me to modify very quickly the multiple parameters needed to create entities on my game. Since it's a "The Incredible Machine" clone, it was very important to control how the user adds things on the screen.

Finishing Words

Working with your own code is very rewarding, your imagination feels limitless, I had to force myself to stop working on the game since I was so hook into it and I didn't felt healthy to spend my vacations writing code. 

Needless to say I highly recomend the joy of creating something from scratch, it gives your games a lot of personality and feels nique. And, above all things, you feel very acomplished since you learned a lot at the end of the jam.


Cheers!

Files

index.zip Play in browser
48 days ago

Leave a comment

Log in with itch.io to leave a comment.