Skip to content

Retroboi64/Project32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project32

A compact yet powerful and flexible C++ Game Engine designed for modern development needs with multi-engine and multi-window support.

image

⚠️ UNDER CONSTRUCTION

This project is currently under active development. Many features are incomplete or subject to change. Use at your own risk for production applications.

🚀 Features

  • Multi-Engine Architecture: Run multiple independent engine instances simultaneously
  • Multi-Window Support: Each engine can manage multiple windows with independent rendering contexts
  • Easy Integration: Simple API and comprehensive documentation (Work in Progress)
  • Hot-Reload Ready: DLL-based architecture enables dynamic loading and reloading
  • Extensible: Modular design allows for easy customization
  • Well-Tested: Comprehensive test suite ensures reliability
  • Self-Contained: All dependencies included in the repository

📋 Requirements

  • Operating System: Windows (macOS and Linux support coming soon)
  • IDE: Visual Studio 2022 with C++ development tools
  • C++ Standard: C++20 or later
  • Dependencies: Everything is included in the repository - no external setup required!

🛠️ Installation and Building

Quick Method

# Clone the repository
git clone https://github.com/Retroboi64/Project32.git
# Navigate to project directory
cd Project32/Project32
# Open solution file
start Project32.sln
# After Visual Studio opens: Build → Build Solution (Ctrl+Shift+B)

Alternative Method

  1. Open Visual Studio 2022
  2. FileOpenProject/Solution
  3. Navigate to Project32/Project32/Project32.sln
  4. BuildBuild Solution (Debug/Release — Only x64 is supported) (or press Ctrl+Shift+B)

🎯 Use Cases

  • Game Development: Build games with multiple viewport support
  • Editor Tools: Create Unity/Unreal-style multi-window editors
  • Simulation Software: Run multiple simulations simultaneously
  • Debugging Tools: Split game and debug views into separate windows
  • Multi-Monitor Setups: Leverage multiple displays effectively

🏗️ Architecture

Multi-Engine System

Project32's unique multi-engine architecture allows you to:

  • Run multiple independent engines in the same process
  • Each engine has its own window manager and render context
  • Engines can run simultaneously or be controlled individually
  • Perfect for complex editor scenarios or multi-view applications

API Layers

  • C API: Core exported functions for DLL interaction
  • C++ Wrapper: RAII-style P32::Engine namespace for modern C++
  • Instance Classes: EngineInstance and WindowInstance for object-oriented usage
┌─────────────────────────────────────────────┐
│            Editor (High Level)              │
│  - Visual tools, scene editing, debugging   │
└─────────────────┬───────────────────────────┘
                  │ uses
┌─────────────────▼───────────────────────────┐
│          Public API Layer (C++)             │
│  - Clean, stable interface                  │
│  - Lua bindings (WIP)                       │
│  - User-friendly functions                  │
└─────────────────┬───────────────────────────┘
                  │ calls
┌─────────────────▼───────────────────────────┐
│        Core Engine (Low Level)              │
│  - Renderer, Window, Input, Threading       │
│  - Direct OpenGL/graphics calls             │
│  - Performance-critical code                │
└─────────────────────────────────────────────┘

📚 Documentation (coming soon)

For detailed documentation, examples, and API reference:

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details on how to:

  • 🐛 Report bugs
  • 💡 Suggest new features
  • 🔧 Submit pull requests
  • 📝 Follow our coding standards

📄 License

This project is licensed under a custom MIT License with Attribution Requirements.

Key Points:

  • Free for personal and commercial use
  • Modify and distribute as needed
  • ⚠️ Attribution required in multiple locations (credits, documentation, store pages)
  • ⚠️ GitHub link required in all attributions
  • ⚠️ Commercial products must display attribution before purchase See the LICENSE file for complete details.

👨‍💻 Author

Patrick Reese (Retroboi64)

⭐ Support the Project

If you find Project32 useful, please consider:

  • Giving it a star
  • 👤 Following @Retroboi64
  • 📢 Sharing it with others
  • 🤝 Contributing to the project
  • 💬 Joining the discussion

🔗 Quick Links


Made with ❤️ by Retroboi64

About

A little game engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published