Article Logo
Engine Basics

The engine has 4 main execution scopes:
  1. Reflection scope.
  2. Build scope.
  3. Startup scope.
  4. Scheduled scope.

Reflection scope

  • Happening inside of BVR_REFLECTION_BLOCK macro
  • Runs once before main

Build scope

  • Where Bvr::App initialisation is happening
  • Runs once inside main
  • Should be used to create resources, add plugins and schedule systems

Startup scope

  • 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

Scheduled scope

Initialisation

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 .

Article Logo

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.

Article Logo

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.

Article Logo

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: