Skip to content

An Open Source C# 3D Game Engine under MIT license, inspired by Unity and featuring a complete editor

License

Notifications You must be signed in to change notification settings

ProwlEngine/Prowl

 
 

Repository files navigation

Prowl logo image

Github top languages GitHub version GitHub license GitHub issues GitHub stars Discord

🎮 An Open Source Unity-like Engine! 🎮

  1. About The Project
  2. Features
  3. Getting Started
  4. Roadmap
  5. Contributing
  6. Acknowledgments
  7. License

📝 About The Project 📝

Prowl is an open-source, MIT-licensed game engine developed in pure C# in latest .NET, (which surprisingly has no runtime fees believe it or not! 😮).

It aims to provide a seamless transition for developers familiar with Unity by maintaining a similar API while also following KISS and staying as small and customizable as possible. Ideally, Unity projects can port over with as little resistance as possible.

Screenshot 2024-06-27 172952 Screenshot 2024-06-27 172106
image image
image image
UntitledFLightModel Untitled

✨ Features ✨

  • General:

    • Cross-Platform! Windows, Linux & Mac!
    • Unity-like Editor & Scripting API
    • C# Scripting
    • GameObject & Component structure
    • A Powerful Custom UI Library
      • Same Library for in-game and Editor UI
      • 3D Drawing in UI used for Gizmo's
      • Immediate Mode with retained properties
    • .NET 8
    • Editor with support for Editor Scripts and Custom Editors
    • Physics (Bepu Physics 2)
      • Colliders: Box, Sphere, Capsule, Cylinder, Mesh Collider - Needs to be re-implemented
      • Triggers
      • Raycasts and Sweeps
      • Non-Kinematic Character Controller (Just a fancy rigidbody)
        • Supports Moving Platforms
      • A ton of physical constraints (All of Bepu's constraints)
    • Unity-like Coroutines
    • Playtest directly in the Editor
    • ScriptableObjects
    • Projects & Project Settings
    • Unity-like Serializer to create In-Memory Graphs
      • Graph → Custom Text Format
      • Graph → Binary
    • Fully 64-bit using Doubles
    • Large World Coordinates Support
      • Camera Relative Rendering
    • Scene System
    • Modular Audio Backend
      • OpenAL
      • Currently only supports .wav files
    • Prefabs
    • Build System - Build to Standalone Application
      • Packed Asset files
      • Less than 15 MB builds (currently working on removing 10 MB, almost done!)
      • Only exports used assets
      • Supports Windows, Mac & Linux
    • Navmesh and AI Agents (Recast & Detour)
  • Graphics Rendering:

    • Modular Graphics Backend
      • OpenGL
      • OpenGL ES
      • Vulkan
      • Metal
    • Powerful Customizable Node-Graph based Render Pipeline
    • PBR (Physically Based Rendering) using Cook-Torrance BRDF
      • Albedo Map
      • Normal Map
      • Roughness Map
      • Metallic Map
      • Ambient Occclusion Map
      • Emission Map
    • Forward Renderer
    • Multiple Shader Passes
    • Point, Spot, and Directional Lights
      • Spot & Directional Light Shadows - Point shadows is not implemented
      • Shadow Atlas
      • Dynamic Shadow Resolutions
    • Post Processing
      • HDR with Tonemapping (Melon, Aces, Reinhard, Uncharted, Filmic)
    • Transparency
    • Procedural Super Performant Skybox
  • Asset Pipeline:

    • A Powerful Asset Pipeline with a very similar structure to unity
    • Meta Files & Reference by GUID
    • Import Caching
    • Support for Custom Importers
    • Supports many major file formats via ImageMagick, Assimp, etc.
    • Sub-Assets, Assets stored inside other assets
    • Dependency Tracking

(back to top)

🚀 Getting Started 🚀

Getting Prowl up and running is super easy!

Releases

Note: There are no official releases yet so you need to download this repository to use Prowl!

Build from source

Prerequisites

Installation

  1. Clone the repo
  2. Open .sln with your editor (Visual Studio Version 17.8.0+, VSCode, Rider, etc.)
  3. Run UpdateSubmodules.bat (on Windows) or UpdateSubmodules.sh (on Linux)
  4. That's it! 😄 🎉

(back to top)

🗺️ Roadmap 🗺️

Engine

  • 🛠️ Cross Platform
    • ✔️ Windows
    • ✔️ MacOS
    • ✔️ Linux
    • ❌ Android
    • ❌ iOS
    • ❌ Web
  • ✔️ UI Engine
  • ❌ VR Support
  • ✔️ Navmesh and AI Agents
  • 🛠️ Networking Solution

Rendering

  • ❌ SSAO, Screen-Space Decals, etc.
  • ❌ Realtime GI
  • ❌ Lightmaps and Light Probes
  • ❌ Cascaded shadow mapping
  • Particle System
  • Terrain Engine

Editor

  • 🛠️ Package Manager (Packages partially implemented)
  • ❌ Animation Tools
  • 🛠️ Visual Scripting
  • ❌ Material Node Editor
  • ❌ 2D Support

The complete list is in our board. Also, see the open issues for a full list of proposed features and known issues.

(back to top)

🤝 Contributing 🤝

Check our Contributing guide to see how to be part of this team.

(back to top)

🙏 Acknowledgments 🙏

  • Hat tip to the creators of Raylib, While we are no longer based upon it, it has shaved off hours of development time getting the engine to a usable state.
  • Some ideas/code have been taken from the amazing 2D Engine Duality.

Contributors 🌟

Dependencies 📦

Runtime

Editor

(back to top)

📜 License 📜

Distributed under the MIT License. See LICENSE for more information.

(back to top)


Discord