Introduction to Astra Engine
This section provides a high-level map of the Astra Engine's modular architecture and core philosophy. Each section links to detailed documentation on the module's role and API.
Table of Contents
- Introduction - An overview of the Astra Engine and its core philosophy.
- Application - Boot sequence and main loop coordination.
- Engine - The ECS backbone for entities, components, and systems.
- Window - OS window creation, graphics context, and input.
- Streams - Data persistence and serialization framework.
- Project - Configuration management and resource path resolution.
- Renderer - Frame graph architecture and GPU resource management.
- Physics - Rigid body dynamics and collision resolution via PhysX.
- Editor - In-engine productivity tools built on ImGui.
- AXSLC - Unified shader compiler for vertex and fragment stages.
Introduction
Astra is a modern game engine designed for high-performance rendering and interactive experiences. It features a modular architecture, a custom shader compiler (AXSLC), and an advanced render graph system for optimized GPU work.
Application
Astra starts here. The Application singleton manages the main loop and ensures subsystems like the Window and Engine are ready before the first frame runs.
Engine
The Engine module implements a data-oriented ECS architecture. It manages entity lifetimes, component storage, and the execution order of systems.
Window
The Window module abstracts OS-specific window management. It initializes the rendering context (OpenGL/Vulkan) and processes hardware input for both event-based and polling-based systems.
Streams
Streams provides a format-agnostic serialization framework. It handles the persistence of game data, configurations, and scenes, primarily using JSON.
Project
A Project is the single source of truth for an application's configuration. It defines the asset root, the active system manifest, and resolves engine-relative resource paths.
Renderer
The Renderer uses a frame graph to schedule discrete rendering passes. It manages GPU resources, performs topological sorting of dependencies, and handles automatic pass culling.
Physics
Powered by NVIDIA PhysX, the Physics module provides rigid body simulation and collision resolution. It synchronizes physical actor poses directly with ECS Transform components.
Editor
The Editor module provides an integrated suite of tools for scene editing and entity manipulation. It is built on ImGui and runs directly within the engine loop.
AXSLC
AXSLC is a custom shader compiler that generates GLSL 4.5 code from a single unified source file. It includes a built-in interface system and per-stage uniform dead-code elimination.