symp

How To Develop a GameEngine Entity-Component-System from scratch in C++20


symp
symp
symp
symp
  • Objective

    Creating a guide for new developers to learn how to build their own game engines from scratch, understanding how memory works and the flow it follows.

  • Date

    2023, May

  • Time Taken

    1 Year

  • Tech Used

    C++20, RayLib & LaTeX

  • Download Book (Spanish)
  • Download Guide Games (Linux)

Info

Currently, video games provide us with many hours of entertainment throughout our lives. That's why there is an increasing focus on advancing and improving technology to achieve the best titles.

This project focuses on a small part within the technology and architecture of game creation, specifically on the software architecture called "Entity Component System" (ECS).

The Challenge

The challenge for this project was to dismantle a proprietary game engine that had already been built and figure out how to explain each part of it step by step from scratch. Additionally, I had to brainstorm and develop each of the examples used in it.

The Result

I have carried out 5 projects, dividing the guide into chapters, from least to most difficulty. From stars moving across the screen (Starfield) to a turn-based roguelike board game (The Final Room)

As a result, we have built 5 mini-games, iterating our engine in each of them, until achieving a basic and useful engine. The idea was to go step by step from scratch, so I couldn't finish this guide with a complete and perfect engine, but the plan is to continue with this project and release a second volume.