Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

Revolt Engine

Revolt Engine (RE) is a modern, high-performance, cross-platform game engine designed for desktop platforms (Windows and Linux). It is built with a data-oriented, modular, and performance-first philosophy.

Core Design

  • Language: C++20, utilizing modern features like concepts, constexpr, coroutines, and ranges for performance, control, and safety.
  • Engine Core:
    • ECS (Entity-Component-System): A data-oriented design for cache-friendly and efficient game logic.
    • Job System: A lock-free task graph for massively parallel and scalable multithreaded workloads.
    • Plugin Architecture: All major subsystems (rendering, physics, audio, networking) are modular and can be extended or replaced.

Features & Technology

Revolt Engine integrates a suite of best-in-class, battle-tested libraries for all major functionalities:

  • Rendering:
    • Primary Backend: Vulkan for modern, explicit GPU control.
    • Legacy Fallback: OpenGL 4.6.
    • Libraries: ShaderC, SPIRV-Cross, glm, and Dear ImGui for debug UI.
  • Physics:
    • Default: Bullet Physics.
    • Optional: NVIDIA PhysX.
  • Audio:
    • Default: OpenAL Soft for 3D positional audio.
    • Optional: miniaudio.
  • Asset Management:
    • Model Importing: Assimp.
    • Texture/Audio Decoding: stb_image, stb_vorbis.
    • GPU Texture Compression: Basis Universal.
  • Scripting:
    • LuaJIT for lightweight, high-performance embedded scripting.
    • Python for tooling and asset processing pipelines.
  • Core Utilities:
    • Logging: spdlog.
    • ECS: EnTT or a custom implementation.
    • Job System: Taskflow, folly, or a custom implementation.

Project Layout

The engine is organized into a modular structure:

/revolt
 /engine # Core engine (ECS, job system, resource graph)
/modules
 /render # Rendering backends (Vulkan, OpenGL)
 /physics # Bullet/PhysX wrappers
 /audio # OpenAL/miniaudio layer
 /scripting # Lua/Python integration
/tools
 /editor # Scene editor + material graph
 /profiler # In-engine diagnostics
/assets # Asset pipeline + importers
/tests # Unit + integration tests
/docs # Documentation

Building from Source

The project uses CMake for a unified build system across Windows and Linux. Dependencies can be managed with vcpkg or Conan.

Example Build (Linux):

# 1. Clone the repository
git clone https://github.com/revolt/revolt-engine.git
cd revolt-engine
# 2. Configure CMake
# (Using Release mode for performance)
cmake -B build -DCMAKE_BUILD_TYPE=Release
# 3. Build the project
# This will use all available processor cores
cmake --build build -j$(nproc)

Extending the Engine

Revolt's plugin architecture makes it highly extensible:

  • New Backends: Implement a new rendering backend (e.g., DirectX 12) by extending the RHI plugin.
  • Gameplay Systems: Add new ECS components and systems in C++ or Lua.
  • AI/ML Integration: Use the ECS and job system as a high-performance simulation framework. A Python bridge allows for easy connection to libraries like PyTorch or TensorFlow.
  • Custom Tools: Extend the editor with new panels and windows using Dear ImGui and the scripting layer.

This README was generated based on the project's Build & Architecture Guide.

About

Revolt Engine (RE) is a C++20-based game engine designed with data-oriented design (DOD) and modular extensibility in mind. It emphasizes performance, concurrency, and developer control, while providing optional scripting and tooling layers for productivity.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /