ProwlEngine/Prowl

C#
macOSWindowsLinux

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

3dgame-enginegame-engine-3dgameengineopengl3d-engine3d-graphicsgraphicspbrdirectxgamedevmetal
Crecimiento de estrellas
Estrellas
1k
Forks
99
Crecimiento semanal
Issues
19
5001k
sept 25ene 26may 26sept 26
README

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.

Prowl is currently in 1.0-preview, following a complete rewrite of the Editor, renderer, physics, audio, and UI. Projects made with older versions of Prowl are not compatible with 1.0-preview, there is no migration path. Until the final 1.0 release, further breaking changes are still possible.

Join our Discord server! 🎉

image 5
Screenshot Screenshot
image image
UntitledFLightModel Untitled
UntitledFLightModel Untitled

✨ Features ✨

  • General:

    • Cross-Platform! Windows, Linux & Mac, for both the Editor and exported builds
    • Unity-like Editor & Scripting API
    • C# Scripting with .NET 10
    • GameObject & MonoBehaviour Component Architecture
    • Prowl.Runtime works fully standalone from the Editor - reference it directly and ship a game with zero Editor dependency
    • Custom Immediate Mode UI (Paper), Editor built on top of Origami
    • 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
      • Hot-Reloading Scripts
      • Localization - English, German, Spanish, French, Italian, Japanese, Korean, Polish, Portuguese, Russian, Turkish & Chinese
      • Managed & Native Plugins with Assembly Definitions
    • Physics using Jitter Physics 2
      • Colliders: Box, Sphere, Capsule, Cylinder, Cone, Convex Hull, Mesh, Model, Terrain
      • Wheel Collider (raycast-based vehicle wheel, with suspension & slip-based grip)
      • Joints & Constraints: Ball Socket, Hinge Joint, Hinge Angle, Fixed Angle, Cone Limit, Distance Limit, Twist Angle, Prismatic, Universal, Point On Line, Point On Plane, Angular Motor, Linear Motor
      • Character Controller
      • Trigger Volumes (Box, Sphere, Capsule)
      • Collision Layers & Filtering (LayerMask)
      • Raycasting & Shape Query API
    • 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
    • GameObject-Based UI, including World Space UI
      • RectTransform-driven layout, Buttons, Sliders, layout groups, drag & drop event handlers
    • Prowl Actions - persistent, inspector-configurable event callbacks
    • 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
      • Per-platform build profiles
      • Supports Windows, Mac & Linux
    • Unit Tested - 450+ tests across the Runtime and Editor
  • 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)
    • UV-Unwrapping via Prowl.Unwrapper, Progressive Lightmapper via Prowl.Photonic
    • Baked Light Probes
    • Custom Shader Language with #include Support, Multi-Pass, and Shader Keywords/Variants
    • HDR & PBR (Physically Based Rendering) - Metallic Workflow
      • Albedo, Normal, Surface (AO / Roughness / Metallic), Emission Maps
    • Mesh Renderer & Skinned Mesh Renderer with Bone Animation and Blendshapes
    • Line Renderer
    • Sprites, with Sprite Sheet slicing (Grid, Isometric & Automatic alpha-based slicing) and a dedicated Sprite Editor
    • 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)
      • SMAA
      • 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, FBX (via Prowl.Clay)
      • 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!

Prerequisites

Releases

Note: Prowl is now at 1.0-preview, grab it from the Releases page. Projects made with older, pre-1.0-preview versions of Prowl are not compatible and cannot be migrated.

Build from source

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)


Join our Discord server! 🎉

Discord

Repositorios relacionados
mrdoob/three.js

JavaScript 3D Library.

JavaScriptnpmlibraryMIT Licensejavascript3d
threejs.org
115.4k36.5k
DavidHDev/react-bits

An open source collection of animated, interactive & fully customizable React components for building memorable websites.

JavaScriptnpmOtheranimationscomponents
reactbits.dev
47k2.3k
FreeCAD/FreeCAD

Official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.

C++appGNU Lesser General Public License v2.1freecadengineering
freecad.org
33.4k6k
pmndrs/react-three-fiber

🇨🇭 A React renderer for Three.js

TypeScriptnpmMIT Licensereactthreejs
docs.pmnd.rs/react-three-fiber
32.2k2k
4ian/GDevelop

🎮 Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.

JavaScriptnpmOthergamejavascript
gdevelop.io
26.4k1.5k
BabylonJS/Babylon.js

Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.

TypeScriptnpmApache License 2.0webglwebgl2
babylonjs.com
26k3.7k
libgdx/libgdx

Desktop/Android/HTML5/iOS Java game development framework

JavaMavenlibraryApache License 2.0libgdxjava
libgdx.com
25.4k6.5k
ssloy/tinyrenderer

A brief computer graphics / rendering course

C++tutorialOtheropenglc-plus-plus
haqr.eu/tinyrenderer/
24.2k2.3k
pascalorg/editor

Open-source 3D architectural editor with a local CLI, MCP tools, and practical workflows for humans and AI agents.

TypeScriptnpmappMIT License3darchitecture
editor.pascal.app
23k2.9k
blender/blender

Official mirror of Blender

C++Otherb3danimation
developer.blender.org/docs/handbook/contributing/using_git/
20.2k3.2k
lettier/3d-game-shaders-for-beginners

🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.

C++tutorialshaders3d
lettier.github.io/3d-game-shaders-for-beginners/index.html
19.9k1.5k
aframevr/aframe

:a: Web framework for building virtual reality experiences.

JavaScriptnpmMIT Licensevrwebvr
aframe.io
17.6k4.4k