Skip to content
/ Prowl Public
forked from ProwlEngine/Prowl

An Open Source C# game engine under MIT license, inspired by Unity and featuring a Dear ImGUI editor and built on Silk.NET

License

Notifications You must be signed in to change notification settings

JaggerJo/Prowl

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Prowl, An Open Source Unity-like C# Game Engine!

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

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. This engine is intended to be customized to your needs, everything is written to be a "Minimal" Production-Ready Implementation. Ideally, there will be plenty of Modules/Packages to expand on functionality for those who don't want (or are unable) to expand the base engine.

Note: The Engine is very young and far from production-ready, being developed mainly by a single developer in his spare time. And has only been tested and compiled for Windows!

Sponza screenshot

Features

  • General:

    • Unity-like Editor & Scripting API
    • C# Scripting
    • Gameobject & Component structure
    • .NET 8
    • Dear ImGUI Editor, including ImGuizmo, ImPlot, ImNodes
    • Editor with support for Editor Scripts and Custom Editors
    • Physics (Jitter Physics 2)
      • Colliders: Box, Sphere, Capsule, Cylinder, Mesh Collider, Wheel Collider
    • Less than 10k lines of Executable Code for both the Editor and Engine combined!
    • Unity-like Coroutines
    • Playtest directly in Editor
    • ScriptableObjects
    • Projects & Project Settings
    • Unity-like Serializer to create In-Memory Graphs
      • Graph -> Text (System.Text.Json)
      • Graph -> Binary
    • Full 64-bit using Doubles
    • Large World Coordinates Support
      • Camera Relative Rendering
    • Scene System
    • Prefabs
    • Build System - Build to Standalone Application
      • Packed Asset files
    • Node System (A Port of xNode from Unity)
    • CSG (Constructive Solid Geometry) API (No CSG Level Editor Yet)
  • Graphics Rendering:

    • PBR (Physically Based Rendering) using Cook-Torrance BRDF
      • Albedo Map
      • Normal Map
      • Roughness Map
      • Metallic Map
      • Ambient Occclusion Map
      • Emission Map
    • Node-Based Customizable Render Pipelines
    • 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
  • 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

(back to top)

Getting Started

Getting Prowl up and running is super easy!

Prerequisites

Installation

  1. Clone the repo
  2. Open .sln file with Visual Studio Version 17.8.0+
  3. That's it! :D

(back to top)

Roadmap

Engine

  • Cross Platform
    • Windows - Fully functional
    • Linux - Compiles & Opens but OpenGL Fails
    • MacOS - Compiles, M1 fails rest unknown
    • Andriod - Unknown
    • iOS - Unknown
    • Web - Unknown
  • VR Support
    • Editor VR Support - The Entire editor should be able to function in Desktop VR
  • Navmesh and AI Agents
  • Networking Solution

Rendering

  • SSAO, Screen-Space Decals, etc.
  • Realtime GI
  • Lightmaps and Light Probes
  • Cascaded shadow mapping
  • Skinned Mesh Rendering & Animations - Partially Implemented
  • Particle System
  • Terrain Engine

Editor

  • Package Manager (Packages partially implemented)
  • Animation Tools
  • Live Collaborative Tools?
  • Visual Scripting
  • Material Node Editor
  • Basic 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

(back to top)

Screenshots

Bokeh Depth of Field Editor image Flight Model image Skybox-Aware Fog image image

(back to top)

About

An Open Source C# game engine under MIT license, inspired by Unity and featuring a Dear ImGUI editor and built on Silk.NET

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • C# 95.6%
  • GLSL 4.4%