Engie version 0.0.4
Engie the Game Engine version 0.0.4 is now live!
I decoupled a lot of things from each other, and moved some functions around. As a result, the graphics, audio, event, time, and math modules are independent. They no longer rely on each other in confusing ways. They only rely on the core module. Additionally, the core is the central place where external code is included, which should help avoid linker errors in the future.
I also made the code a bit more object-oriented. Constructors now initialize all members of each class, as expected. Each class that loads resources has a load function, and each class that must free those resources has a free function. Functions in Engie now use references instead of pointers wherever possible. I also changed variable names, mostly in the audio module, so the code is closer to self-documenting.
Finally, I removed the vector and gui code. See below for why.
You may be wondering why it’s been so long since the last update.
I spent the last month trying to add vectors, matrices, and gui code such as buttons, textboxes, labels, etc. Each time I added something, I realized I could do it better, so I refactored things. After each refactor I noticed something else I could add which would make it more usable. After about a month of living in this vicious cycle I’ve come to the conclusion that linear algebra and GUIs are bottomless systems. No matter how much effort I put into them, they always feel incomplete. I also started both with a blank slate, naively assuming it would be easy to tell when they were done. Without a formal requirements list, things quickly got out of hand.
My linear algebra system was clunky and slow when the point of using it was to speed up calculations. The foundation of my GUI system was based on a flawed implementation of text rendering. So I removed both systems. I will add them again at a later date after I have a better understanding of what those systems should do. I also hope by writing this I help someone else who may be struggling with the same problems I did. To that end, I suggest Eigen for linear algebra, and Qt for GUIs. They are far better than anything I came up with.
That is all. Thank you for reading.
Nathan
Files
Get Engie
Engie
Engie the game engine.
Status | In development |
Category | Tool |
Author | nathanael-specht |
Tags | Game engine, Indie |
More posts
- Engie version 0.1Aug 10, 2023
- I Added Better Audio Processing and Nested Rendering to my Game EngineApr 03, 2023
- I Ported My Game Engine From C to C++Mar 08, 2023
- New Project!Mar 01, 2023
Leave a comment
Log in with itch.io to leave a comment.