Engie version 0.1


Engie the game engine is now on version 0.1! This means there won’t be any more major rewrites, nor changes to Engie’s folder layout.

First, Engie is only C++ now. Engie’s C code is removed and isn’t coming back.

Second, Engie’s folder layout has been changed for the last time. Adding Engie to your C++ project is now as easy as copying the engie folder into your project, and editing Engie’s Makefile to include your source code. All of Engie’s test files are now in the engie folder, and you can even mod Engie and test it in the middle of your project (not sure why you’d want to, but you can).

Third, I removed Engie’s ngmath module. All the math functions Engie needs are declared inside the modules that use them. This makes the modules independent of each other (except ngcore. every module uses ngcore).

Next, I removed nggraphic’s Rect class and draw_rect function, in favor of Vec and Quad classes and draw_quad function. Quad is like a Rect that can rotate, because I wanted a fallback for draw_image that actually shows the rotation. Vecs and Quads can have Transforms applied to them. Transform is not a matrix, but it can be used to describe one. Engie uses it to describe source rectangles on an Image and destination rectangles on Graphics, but you can use it for whatever you want.

Next, I removed error throwing from Engie. Functions that would throw an error return a boolean: true for no error, false for error. Engie stores the actual error message in a global string. I made this change because often, things would throw errors even if I didn’t care about the error in the context I was using it, and it was annoying being forced to handle these errors I didn’t care about. So now, Engie gives you the choice to care about errors or not. Engie even gives things a valid state when errors ocurr, so you’re actually safe to ignore errors.

Finally, I added the Signal, Observer, and Subject classes, which implement an observer pattern. Basically, Engie provides two event systems by default, one for user input, and another for everything else. Making your own event system is as easy as creating a global Subject.

That’s all for this release. It’ll probably be another few months until version 0.2 releases. Maybe more since I’m not sure what else to add currently. Thank you for reading. If you like what I’m doing here, feel free to donate. Every little bit helps!

Nathanael Specht :)

Files

Engie-0.1.zip 10 MB
Aug 10, 2023

Get Engie

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.