W4 Engine architecture

From Ciliz|W4

Scope

The W4 Engine is a library of C ++ modules with framework elements. The Engine allows you to create projects in C ++ that will work in any modern browser.

The ease of installation and templates for creating projects makes it look like a framework, but first of all it is a library of solutions that you can use as you like.

Note. Most templates use the IGame class (it is responsible for the Main Game Loop and implicitly contains the rest of the modules) - this is convenient, but most modules can be used independently.

This article provides a brief description of the engine modules and subsystems. Let's start with a general architectural scheme:

Scope 01.png

The following groups of modules are presented:

Note. Since the W4 Engine is a library of mostly independent modules, this separation serves to understand the modules' scope and does not indicate any relationship between them.

  • Core. Some modules are not related to the render and the game itself. Any of them can be used independently.
  • HAL. Interaction with the platform. In general, the platform is the browser, but there are features for different devices and OS.
  • Render. Modules that are responsible for rendering.
  • Game. An interface designed to make the main game loop easier to implement.
  • Resource. Resource management. In W4 Engine anything that can be loaded (i.e. data without logic) is a resource.

More details are described later in the article, and for complex modules, there are separate articles (pay attention to the hyperlinks in the text).