
Checkpoint
Game Engine
Checkpoint is a custom game engine designed for creating highly-optimized 3D games. It provides tools and modules for modern and efficient rendering, physics simulation and more. It is a highly-customizable platform that allows users to create their own systems and packages that fit their needs.
It is a project I am working on alone as it is my personal training ground for learning engine development, it is supposed to showcase my skills and improvements and finally I will be presenting it as my final project at Creajeux.
Development started in November 2024
Checkpoint is made using
- C++
- VulkanLow-level Graphics API
- SlangShader Language
- QtApplication Framework
- GitVersion Control System
- GitHubCode Hosting Platform
- Visual StudioIntegrated Development Environment (IDE)
Main features
Entity-Component-System Architecture
Checkpoint is built with speed and efficiency in mind, using an Entity-Component-System design was my first thought when architecting the engine. Leveraging the power of multi-threading and data-oriented design, I aimed to create a system that can scale with the complexity of modern games and the players' ever-growing expectations.
Dynamic Material System
Checkpoint features a Dynamic Material System that allows for real-time adjustments to material properties, enabling artists to create stunning visuals and fine-tune their work without the need for recompilation. Thanks to Slang's reflection API, any changes made to the shader code are instantly compiled and integrated in the editor, providing a seamless workflow for both artists and developers.
Package Management
Checkpoint includes a Package Management system that allows developers to easily integrate and manage third-party libraries and tools. "Use what you need, leave what you don't" is the credo behind it, Checkpoint aims to provide a fully modular architecture that promotes code reuse and simplifies dependency management. Its second purpose is to speed up the loading and build times of projects by only including the necessary components.
Gallery


What I learned
Checkpoint has been a great learning experience for me, I have learned a lot about game engine development and low-level programming. As Vulkan is my first real experience with graphics APIs, I have gained valuable insights into how modern rendering engines work.
It has considerably improved my knowledge of C++ as I have had to dive deep into the language's features and best practices. In order to achieve the targeted performance, I have had to optimize my code by analyzing Assembly outputs and make use of advanced techniques such as multi-threading.
Checkpoint is the perfect practice project for maths and physics concepts, as I have had to deepen my understanding and application of matrices, quaternions, graphs and other related mathematical tools.
I have also learned a lot about software architecture and design patterns, as I have had to structure my code in a way that is both efficient and maintainable. It allowed me to sharpen my organizational skills by working on UML diagrams and flowcharts to structure my thoughts better, which was my weakest area of expertise.
Finally, I got valuable experience in project management and time management, which will be beneficial for my future projects, personal ones and professional ones. I set realistic deadlines and prioritized tasks effectively, ensuring that I stayed on track and met my goals.