Prisma Engine is a cross-platform 3D game engine built with modern C++20, focusing on learning advanced graphics programming techniques and modern rendering architectures.
English | 简体中文
Current Status: Android Vulkan runtime implemented, Windows DirectX 12 backend in development.
| Module | Status | Description |
|---|---|---|
| ECS Component System | ✅ 75% | Entity Component System |
| DirectX 12 Backend | ✅ 65% | Primary Windows rendering backend |
| Vulkan Backend | ✅ 85% | Cross-platform (Windows/Linux/Android) |
| Platform Layer | ✅ 95% | Windows/Linux/Android abstraction |
| Logger System | ✅ 95% | Cross-platform logging |
| Audio System | ✅ 40% | XAudio2/SDL3 backends |
| Resource Management | ✅ 60% | AssetManager implementation |
| Android Runtime | ✅ 85% | Full Vulkan support with game-activity |
| Physics System | ❌ 5% | Planned |
| Editor Tools | ⏳ 10% | ImGui basic integration |
Overall: ~50-55%
# Clone repository
git clone --recursive https://github.com/Excurs1ons/PrismaEngine.git
cd PrismaEngine
# Initialize vcpkg
./vcpkg/bootstrap-vcpkg.bat
./vcpkg/vcpkg install
# Build
cmake --preset windows-x64-debug
cmake --build --preset windows-x64-debug# Clone repository
git clone --recursive https://github.com/Excurs1ons/PrismaEngine.git
cd PrismaEngine
# Initialize vcpkg
./vcpkg/bootstrap-vcpkg.sh
./vcpkg/vcpkg install
# Build
cmake --preset linux-x64-debug
cmake --build --preset linux-x64-debug# Using Android Studio
cd projects/android/PrismaAndroid
# Open project in Android Studio
# Click Run or ./gradlew assembleDebugSee: Android Integration
- Documentation Index - Complete documentation navigation
- Directory Structure - Project organization
- Resource Management - Asset system
- Rendering System - Rendering architecture
- Asset Serialization - Serialization format
- Android Integration - ✅ Implemented
- Google Swappy Integration
- Audio System
- HAP Video System
PrismaEngine/
├── src/ # Source code
│ ├── engine/ # Core engine
│ │ ├── audio/ # Audio system
│ │ ├── core/ # ECS & Asset
│ │ ├── graphic/ # Rendering
│ │ │ ├── adapters/ # DX12, Vulkan
│ │ │ ├── pipelines/ # Forward, Deferred
│ │ │ └── interfaces/ # Rendering interfaces
│ │ ├── input/ # Input system
│ │ ├── math/ # Math library
│ │ ├── platform/ # Platform abstraction
│ │ ├── resource/ # Resource management
│ │ └── scripting/ # Scripting
│ ├── editor/ # Editor application
│ ├── game/ # Game framework
│ └── runtime/ # Runtime environments
│ ├── windows/ # Windows runtime
│ ├── linux/ # Linux runtime
│ └── android/ # Android runtime (Vulkan)
│
├── resources/ # Engine resources
│ ├── common/ # Shared resources
│ │ ├── shaders/
│ │ │ ├── hlsl/ # DirectX 12 shaders
│ │ │ └── glsl/ # Vulkan/OpenGL shaders
│ │ ├── textures/
│ │ └── fonts/
│ └── runtime/ # Platform-specific
│ ├── windows/
│ ├── linux/
│ └── android/
│
├── projects/ # Platform projects
│ └── android/ # Android Studio project
│
├── cmake/ # CMake modules
├── docs/ # Documentation
├── assets/ # Example assets
└── vcpkg.json # Dependencies
- ✅ Windows (DirectX 12, Vulkan)
- ✅ Linux (Vulkan)
- ✅ Android (Vulkan)
- DirectX 12: Primary Windows backend
- Vulkan: Cross-platform support
- Windows
- Linux
- Android (complete implementation, ~1456 lines)
- ECS (Entity Component System): Component-based architecture
- Asset Management: Unified resource management
- Audio System: XAudio2/SDL3
- Platform Abstraction: Unified platform interface
All engine code uses the PrismaEngine namespace:
namespace PrismaEngine {
namespace Graphic {
// Rendering code
}
namespace Audio {
// Audio code
}
}MIT License - see LICENSE for details.
- DirectX 12 - Graphics samples
- Vulkan - Vulkan guide
- SDL3 - Platform abstraction
- Dear ImGui - UI framework
- GLM - Mathematics library