Skip to content

Trevor266/bare-bones-game-engine

Repository files navigation

bare-bones-game-engine

A bare bones game engine meant to strip away as much overhead as possible by implementing a thin abstraction layer over the operating system focused around Linux and Windows. The goal is to use this to explore low level code and document how these systems work at a deep level with very little (hopefully zero) third party libraries outside of the operating system.

This project is built with Clang and a simple bat file that you run with an optional release parameter, you just need to edit the bat file to use your debugger of choice. The goal of this build system is to be as thin and out of the way as possible by directly invoking the exact tooling that needs to be invoked, and doing so for the platform in question. I find third party build tools to be unreliable - any given day the author may stop supporting it. It's not to say these tools are bad, I've just been bitten too many times, and I find it to be a trivial amount of work to just learn how to invoke the compiler directly and ask it to do exactly what you want it to do, so to reduce dependencies and make this engine as portable and future proof as possible, everything is just run per platform from a single file (currently just a bat file for windows). This bat file can be trivially edited to utilize your compiler and debugger of choice, simply swap the debugger file location and the compiler command, and you can now build this project with your own tooling.

This is an educational project for myself. I do not endorse any of this code as being correct, any documentation or implementation you see is just my best shot at how to do that thing - please do not view this project as any sort of authoritative reference that you should follow. I do not write engines, C code, or operating system abstractions professionally, I am not an authority on the matter, again, this is purely for my own education.

At the moment this engine is loaded with comments over explanining every single little thing. This is intentional to document things learned along the way - if for some reason you want to branch off this project, feel free to remove these comments - you may modify this code in any way that you wish, but it is provided as is.

About

A bare bones game engine meant to strip away as much overhead as possible by implementing a thin abstraction layer over the operating system focused around Linux and Windows. The goal is to use this to explore low level code and document how these systems work at a deep level.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors