Generally, Lightspeed is divided into four major subsystems.
1 Foundation subsystem: Basic subsystem related to the SDK platform, applicable to any platform, including windows, Wii, and Sp3. Is the basis for all other subsystems. It mainly includes memory management, file resource management, thread management, network communication, message system, logs, and assertions.
2 core runtime subsystem: the Core subsystem is mainly used for rendering, animation, effect, Scenario Management, input and output, collision detection, particle effect, terrain system, shadow system, and many other important functions.
3. Game framework subsystem: mainly includes the simulation-related framework, including object definition, behavior, and script execution. The core of this subsystem is a data-driven Entity system, through which you can define the attributes and behaviors of objects as you like through Lua scripts.
4 game modules: it is mainly a custom game extension module subsystem.
From the directory name of the source file in GB, the EFD headers all belong to the Foundation subsystem, ECR stands for the core runtime subsystem, GF stands for the game framework subsystem, and EGM stands for the game modules. From the above introduction, we can see that the entire engine framework of GB is still good. To learn an engine, we must first start with its overall framework, in this way, we can learn from others' good design methods in our own projects. I will introduce the framework and functions of each subsystem in detail later.