![Discord](https://img.shields.io/discord/1151582593519722668?style=flat-square)
๐ฎ An Open Source Unity-like Engine! ๐ฎ
- About The Project
- Features
-
Getting Started
- Roadmap
- Contributing
- Acknowledgments
- License
- Dependencies
๐ About The Project ๐
Prowl is an open-source, MIT-licensed game engine developed in pure C# in .NET 8, (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.
The goal is a viable open-source Unity alternative, ideally, Unity projects can port over with as little resistance as possible.
โจ 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 Ingame 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 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 15mb builds - currently working on removing 10mb, Almost done!
- Only exports used assets
- Supports Windows, Mac & Linux
- Navmesh and AI Agents (Recast & Detour)
-
Graphics Rendering:
- Modular Graphics Backend
- PBR (Physically Based Rendering) using Cook-Torrance BRDF
- Albedo Map
- Normal Map
- Roughness Map
- Metallic Map
- Ambient Occclusion Map
- Emission Map
- Deferred Renderer
- Point, Spot, and Directional Lights
- Shadow Mapping + Contact Hardening (Variable Penumbra)
- Post Processing
- HDR with Tonemapping (Melon, Aces, Reinhard, Uncharted, Filmic)
- Bokeh Depth of Field
- Screen Space Reflections
- Kawase Multi-Pass Bloom
- Temporal Anti-Aliasing
- Stochastic Transparency
- Adjustable Render Resolutions per camera
- Dedicated Shadow Pass for Shaders
- Procedural Skybox with Skybox-Blended Fog
- GPU Skinned Mesh Rendering
- Skeletal Animations
-
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!
Note: There are no official releases yet so you need to download this repository to use Prowl!
Prerequisites
Installation
- Clone the repo
- Open
.sln
file with Visual Studio Version 17.8.0+
- That's it! ๐ ๐
(back to top)
๐บ๏ธ Roadmap ๐บ๏ธ
Engine
- ๐ ๏ธ Cross Platform
- โ๏ธ Windows
- โ๏ธ MacOS
- โ๏ธ Linux
- โ Andriod
- โ 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
See the open issues for a full list of proposed features (and known issues).
(back to top)
๐ค Contributing ๐ค
๐ Welcome to the Prowl community! We're thrilled that you're interested in contributing.
We're not too proud to admit it โ we need your help. ๐
Developing a game engine is a colossal task, and we can't do it alone. We need passionate developers, designers, testers, and documentation enthusiasts, people like you to help make Prowl the best it can be. ๐ช
How You Can Contribute
Code Contributions ๐ป
Whether you're a seasoned developer or just getting started, your code contributions are invaluable. We have a list of open issues that you can tackle, or feel free to propose your own improvements.
Bug Reports ๐
Encountered a bug? We want to know! Submit detailed bug reports on our issue tracker to help us squash those pesky bugs.
Feature Requests ๐ก
Have a fantastic idea for a new feature? Share it with us! Open a feature request and let's discuss how we can make Prowl even better.
Spread the Word ๐ฃ
Not a developer? No problem! You can still contribute by spreading the word. Share your experiences with Prowl on social media, blogs, or forums. Let the world know about the exciting things happening here.
Contributor Recognition ๐
We're not just asking for contributors; we're asking for partners in this journey. Every small contribution is a step toward realizing Prowl.
All contributors will be acknowledged in our Acknowledgments section.
Thank you for considering contributing to Prowl. Together, let's build something amazing!
(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.
(back to top)
Contributors ๐
License ๐
Distributed under the MIT License. See LICENSE.txt
for more information.
(back to top)
Dependencies ๐ฆ
Runtime
Editor