Welcome to the GameEngine wiki! I plan to document the engine architecture and discuss the implementation decisions here. I aim to learn and understand more about the game engine architecture through this project. Initially, I wanted to write my own game from scratch, but I ended up scratching my head when trying to design the game itself. So I realized why not make a game engine first that I will have complete control on the development road-map as well as provide me with a modular interface for future games. As a result, this small project was born.
Designing comes first and foremost, and in my opinion one of the most important things during development. A badly thought out design will be harder to debug, perform slower, and hard to work on. It also limits future development in case of expansion of the program. I will post a UML diagram very soon addressing the general road-map of the engine. But for starters, we have the main program, which starts an instance of the core engine class. The core engine acts as the main hub between all the features and classes in the project. It contains a window object, to show things on the screen, and a game object to handle input, execute logic, run the game loop, etc. As the project goes, I hope to add handles for the 3d graphics rendering pipeline as well as physics libraries.
(strike-through means that the feature is planned, but not implemented)
Currently, I'm not accepting any contributions to the code base, since it's still in very early development phase. However, if you still want to help out and assuming you have a good understanding of the code base, you can help me add documentation to this wiki. Here are some guidelines to keep in mind for contributing.
Library and References
I will provide links to the different tools that I used or plan to use here in case anyone wants start their own game engine project:
IDE: Visual Studio 2013
Libraries: GL Mathematics, GLEW, Simple Directmedia Library.
Languages: C, C++, GLSL.