Resources
Resources are a core piece of the engine that is responsible to store state/modules/interfaces, which could be used to build application logic.
- Happening inside of BVR_REFLECTION_BLOCK macro
- Runs once before main
- Where Bvr::App initialisation is happening
- Runs once inside main
- Should be used to create resources, add plugins and schedule systems
- Happens once after Build Scope and is responsible for performing complicated engine/game startup logic.
- Is a schedule which can be constructed during Build Scope
- Happens after Build Scope is done
- Runs either:
- Once if Bvr::App::RunOnce is called
- Untill app is terminated if Bvr::App::Run is called
Core engine initialisation is happening inside of the Build Scope, where all plugins are added to the main application. A plugin must satisfy Bvr::Plugin concept. Inside the Build Scope it is also possible to set up runtime startup logic, Which could be dependent on some resources being created or some other piece of code previously executed. Startup system could be scheduled to the app with Bvr::App::AddStartupSystem .
Resources
Resources are a core piece of the engine that is responsible to store state/modules/interfaces, which could be used to build application logic.
Systems
Systems are the core unit of the engine that is responsible for invoking engine logic. All of the systems are organised in a schedule, which itself is split into stages.
Components
For correct functionality, the engine provides a set of components that encapsulate basic functionality: file CoreComponents.hpp Additionally there are more components which in many cases could be replaced by the end user to fit their needs: