Skip to content

Excurs1ons/PrismaEngine

Repository files navigation

Prisma Engine

License: MIT Platform Ask DeepWiki zread

Android APK

CI/CD Status

Build Engine Build Editor Build Windows Runtime Build Android Runtime

Vulkan Backend RenderGraph

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.

Current Progress

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%

Quick Start

Windows

# 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

Linux

# 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

Android

# Using Android Studio
cd projects/android/PrismaAndroid
# Open project in Android Studio
# Click Run or ./gradlew assembleDebug

See: Android Integration

Documentation

Index

Core Docs

Architecture & Design

Platform Integration

Others

Project Structure

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

See: Full Directory Structure

Features

Cross-Platform Support

  • ✅ Windows (DirectX 12, Vulkan)
  • ✅ Linux (Vulkan)
  • ✅ Android (Vulkan)

Rendering Backends

  • DirectX 12: Primary Windows backend
  • Vulkan: Cross-platform support
    • Windows
    • Linux
    • Android (complete implementation, ~1456 lines)

Core Systems

  • ECS (Entity Component System): Component-based architecture
  • Asset Management: Unified resource management
  • Audio System: XAudio2/SDL3
  • Platform Abstraction: Unified platform interface

Namespace

All engine code uses the PrismaEngine namespace:

namespace PrismaEngine {
    namespace Graphic {
        // Rendering code
    }
    namespace Audio {
        // Audio code
    }
}

License

MIT License - see LICENSE for details.

Acknowledgments

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •