Awesome
<img src="https://github.com/Kuvrot/Prowl/assets/23508114/5eef8da7-fb84-42f3-9d18-54b4f2d06551" width="100%" alt="Prowl logo image"><p align="center">🎮 An Open Source Unity-like Engine! 🎮</p>
<span id="readme-top"></span>
<span align="center">📝 About The Project 📝
Prowl is an open-source, MIT-licensed game engine developed in pure C# in latest .NET.
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.
Please keep in mind that Prowl is incredibly new and unstable, and it is not yet Game Ready, however, we are hopeful that Prowl will be stable and ready by the end of this year.
<p align="center">Join our Discord server! 🎉</p>
<span align="center">✨ Features ✨</span>
-
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 using Jitter Physics 2
- Colliders: Box, Sphere, Capsule, Cylinder, Cone, Convex Mesh
- Collision Layers
- Unity-like Coroutines
- Playtest directly in the Editor
- ScriptableObjects
- Projects & Project Settings
- Powerful 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
- Supports Nested Prefabs
- Build System - Build to Standalone Application
- Packed Asset files
- Tiny builds
- Only exports used assets
- Supports Windows, Mac & Linux
- Navmesh and AI Agents (Recast & Detour)
- Node Graph (Based on Unity's xNode)
-
Graphics Rendering:
- Near Identical API to Unity
- Modular Graphics Backend
- OpenGL
- OpenGL ES
- Vulkan
- Metal
- DirectX 11
- HDR, PBR (Physically Based Rendering)
- Albedo Map
- Normal Map
- Roughness Map
- Metallic Map
- Ambient Occclusion Map
- Forward Renderer
- Batching & Frustum Culling
- Motion Vectors
- Multiple Shader Passes
- Point, Spot, and Directional Lights
- Spot & Directional Light Shadows - Point shadows is not implemented
- Shadow Atlas
- Dynamic Shadow Resolutions
- Post Processing
- Tonemapping (Melon, Aces, Reinhard, Uncharted, Filmic)
- Motion Blur
- Very fast Kawase Bloom
- Transparency
- Procedural Super Performant Skybox
- Dynamic Resolutions Per Camera
-
Asset Pipeline:
- A Powerful Asset Pipeline
- 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
<span align="center">🚀 Getting Started 🚀</span>
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
- Clone the repo
- Open
.sln
with your editor (Visual Studio Version 17.8.0+, VSCode, Rider, etc.) - Run
UpdateSubmodules.bat
(on Windows) orUpdateSubmodules.sh
(on Linux) - That's it! 😄 🎉
<span align="center">🗺️ Roadmap 🗺️</span>
Engine
- 🛠️ Cross Platform
- ✔️ Windows
- ✔️ MacOS
- ✔️ Linux
- ❌ Android
- ❌ iOS
- ❌ Web
- ✔️ UI Engine
- ❌ VR Support
- ✔️ Navmesh and AI Agents
- 🛠️ Networking Solution
Rendering
- ❌ Realtime GI
- ❌ Lightmaps and Light Probes
- ❌ Cascaded shadow mapping
- ❌ Particle System
- ❌ Terrain Engine
Editor
- ❌ Animation Tools
- ❌ 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.
<p align="right">(<a href="#readme-top">back to top</a>)</p><span align="center">🤝 Contributing 🤝</span>
Check our Contributing guide to see how to be part of this team.
<p align="right">(<a href="#readme-top">back to top</a>)</p><span align="center">🙏 Acknowledgments 🙏</span>
- 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 🌟
- Michael (Wulferis)
- Abdiel Lopez (PaperPrototype)
- Josh Davis
- ReCore67
- Isaac Marovitz
- Kuvrot
- JaggerJo
- Jihad Khawaja
- Jasper Honkasalo
- Kai Angulo (k0t)
- Bruno Massa
- Mark Saba (ZeppelinGames)
Dependencies 📦
Runtime
Editor
<p align="right">(<a href="#readme-top">back to top</a>)</p><span align="center">📜 License 📜</span>
Distributed under the MIT License. See LICENSE for more information.
<p align="right">(<a href="#readme-top">back to top</a>)</p>