DEV Community

Retroboi64
Retroboi64

Posted on

Building a source-inspired game engine from scratch in C++ – Project32

πŸš€ Introducing Project32

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

⚠️ 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!

🎯 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

πŸ“š 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

πŸ‘¨β€πŸ’» 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

Made with ❀️ by Retroboi64

Top comments (0)