Skip to content

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. Contributing
  5. Acknowledgments
  6. License

📝 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 under very active development, Untill a full 1.0 release comes out, breaking changes are expected.

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 with .NET 9
    • GameObject & MonoBehaviour Component Architecture
    • Custom Immediate Mode UI (Paper)
    • Vector Graphics & Text Rendering via Quill
    • Full-Featured Editor
      • Scene View, Hierarchy, Inspector, Project Browser, Console, Game View
      • Custom Component Editors, Property Editors, and Scene View Editors
      • Transform Gizmos (Move, Rotate, Scale)
      • Undo/Redo System
      • Dockable & Resizable Panels with Layout Persistence
      • Drag & Drop (Assets, GameObjects, Components)
      • Multi-Select & Search/Filtering in Editor Panels
      • Asset Thumbnail Generation & 3D Previews
      • Animation Curve & Gradient Editors
      • Rebindable Shortcut/Hotkey System
      • Editor Theming with Customizable Color Palettes and sizing
      • Playtest directly in the Editor
    • Physics using Jitter Physics 2
      • Colliders: Box, Sphere, Capsule, Cylinder, Cone, Convex Hull, Mesh, Model, Terrain
      • Constraints: Ball Socket, Hinge, Fixed Angle, Cone Limit, Distance Limit, Angular Motor, Linear Motor
      • Character Controller
      • Collision Layers & Filtering
      • Raycasting & Shape Casting
    • Audio via MiniAudio
      • Spatial 3D Audio with Attenuation & Doppler
      • Supports WAV, MP3, OGG, FLAC
      • Effect chain (Delay, Distortion, Biquad Filter, Reverb, Phaser) + custom IAudioEffect
    • Serialization via Prowl.Echo
    • Tags & Layers System
    • Scene System with Fog & Ambient Lighting
    • Prefabs with Nested Prefab Support
      • Apply, Revert, Break Instance & Override Tracking
    • Projects & Project Settings
    • Script Compilation via dotnet build (Game & Editor Assemblies)
    • Input Action System with Composites & Processors
      • .inputactions assets with a dedicated editor
      • Action phases (Disabled / Started / Performed / Cancelled)
      • Composite bindings (WASD → Float2, D-pad, etc.) for keyboard, mouse & gamepad
    • Math via Prowl.Vector
      • Matrices (Float4x4), Quaternions, Transform2D
      • Shapes: AABB, Bounds, Frustum, Cone, Ray, Plane, LineSegment, Rect
    • Build System - Build to Standalone Application
      • Packed Asset Files (.prowlpak)
      • Only exports used assets
      • Supports Windows, Mac & Linux
  • Graphics Rendering:

    • OpenGL Backend via Silk.NET
    • Dedicated Render Thread
    • Extensible Render Pipeline (Custom Pipelines Supported)
    • Forward-Lit Pipeline with Thin G-Buffer Pre-Pass (Depth, Normals, Motion, Roughness, Metallic)
    • Custom UV-Unwrapper and Lightmapper
    • Baked Light Probes
    • Custom Shader Language with #include Support, Multi-Pass, and Shader Keywords/Variants
    • Node-Based Shader Graph
      • 150+ nodes across 14 categories (Math, Vector, Color, UV, Geometry, Scene Data, Lighting, Noise, Post-Effect, Utility, …)
      • Vertex-stage support (Position offset for wind / wobble / displacement)
      • Fragment + Vertex + DepthNormals + Shadow pass emission from one graph
      • Alpha cutout + vertex offset forwarded into shadow & depth passes automatically
      • Lighting modes: Unlit / PBR / Lambert / Blinn-Phong
      • Template seed graphs (Lit Basic / Transparent / Terrain / Grass / Particle / Sky / Post Effect / Custom Lighting)
      • Inline Custom Code (raw GLSL) node
      • Control flow (Branch), Local Get/Set variables
      • Noise nodes (FastNoiseLite): OpenSimplex2 / OpenSimplex2S / Perlin / Value / Cellular (Voronoi) / Domain Warp, with FBM / Ridged / PingPong fractal variants
    • HDR & PBR (Physically Based Rendering) - Metallic Workflow
      • Albedo, Normal, Surface (AO / Roughness / Metallic), Emission Maps
    • Mesh Renderer & Skinned Mesh Renderer with Bone Animation
    • Line Renderer
    • Render Textures & Texture3D
    • GPU Instancing & Frustum Culling
    • Point, Spot, and Directional Lights
      • All light types support Shadow Mapping
      • Cascaded Shadow Maps for Directional Lights (up to 4 cascades)
      • Cubemap Shadows for Point Lights
      • Shadow Atlas with Dynamic Packing
    • Post Processing
      • HDR Tonemapping (ACES / Reinhard / Uncharted / Filmic / Melon / AgX)
      • Bloom (dual-filter downsample/upsample)
      • FXAA (Fast Approximate Anti-Aliasing)
      • TAA (Temporal Anti-Aliasing)
      • Ground-Truth Ambient Occlusion (GTAO)
      • Stochastic Screen Space Reflections (SSR)
      • Bokeh Depth of Field
      • Volumetric Fog
      • Cinematic Effects (grain, vignette, chromatic aberration)
    • Transparency
    • Grab Pass (depth-aware) for refraction / heat-haze / frosted glass
    • Procedural / Cubemap / Gradient Skybox
    • Terrain System
      • Quadtree LOD
      • Heightmap & Splatmap Painting
      • GPU-Instanced Grass Rendering
      • Tree Rendering with LOD Distance
      • Dedicated Terrain Editor (Height, Paint, Grass, Trees, Settings)
      • Holes
    • Particle System
      • GPU-Instanced Rendering
      • Modules: Emission, Size/Color/Rotation/Velocity Over Lifetime, Collision, UV Animation
      • Local & World Simulation Spaces
  • Asset Pipeline:

    • GUID-Based Asset References with Meta Files
    • Import Caching & File Watching for Auto-Reimport
    • Custom Importers via Attributes
    • Sub-Assets with Deterministic GUIDs
    • Forward & Reverse Dependency Tracking
    • Threaded Asset Loading
    • Supported Formats:
      • Models: GLTF, GLB, OBJ (Custom Importer, FBX Planned)
      • Textures: PNG, JPG, BMP, TGA, PSD, HDR, DDS, EXR (via Magick.NET)
      • Audio: WAV, MP3, OGG, FLAC

(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. That's it! 😄 🎉

(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.

Contributors 🌟

Dependencies 📦

(back to top)

📜 License 📜

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

(back to top)


Discord

About

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

Topics

Resources

License

Code of conduct

Contributing

Stars

795 stars

Watchers

18 watching

Forks

Contributors