Runtime First

No editor required.

The runtime is an ordinary .NET library. Reference it, write a class, run it.

Program.cs C#
using Prowl.Runtime;
using Prowl.Vector;

new MyGame().Run("Simple Cube", 1280, 720);

public sealed class MyGame : Game
{
    public override void Initialize()
    {
        var scene = new Scene();

        // Camera
        GameObject cam = new("Main Camera");
        cam.Transform.Position = new(0, 2, -8);
        cam.AddComponent<Camera>();
        scene.Add(cam);

        // Light
        GameObject light = new("Directional Light");
        light.AddComponent<DirectionalLight>();
        light.Transform.LocalEulerAngles = new Float3(-80, 5, 0);
        scene.Add(light);

        // Cube
        GameObject cube = new("Cube");
        MeshRenderer mr = cube.AddComponent<MeshRenderer>();
        mr.Mesh = Mesh.CreateCube(Float3.One);
        mr.Material = new(Shader.LoadDefault(DefaultShader.Standard));
        scene.Add(cube);

        Scene.Load(scene);
    }
}

Just a library reference

Add it to a normal .csproj and go.

No editor in the build

Editor code never ships inside your game.

Runs headless

Equally at home in a server, a test, or CI.

The editor is a client

Built on the same public API you write against.

More runtime-only samples
The Prowl Ecosystem

Built from a constellation
of MIT C# libraries.

The runtime is the core, assembled from libraries that each stand on their own. The editor sits on top and depends on nothing else.

Prowl.OrigamiWidgets built on PaperProwl.EmberScript Hot ReloadProwl.PhotonicLightmap BakerProwl.RosettaLocalizationEDITOR ONLYProwl.EditorOPTIONALScene editing, gizmos, hot-reloadonly dependencyProwl.RuntimeCOREComponents, scenes, rendering, physics, audioProwl.GraphiteVulkan / D3D11Prowl.ClayglTF / OBJ / FBXProwl.EchoSerializationProwl.PaperImmediate Mode UIProwl.UnwrapperUV AtlasProwl.ApertureImage LoadingARRIVING TRANSITIVELYProwl.Quillvia PaperProwl.Scribevia QuillProwl.Vectorvia Clay and ScribeEditor depends only on the runtimeDirect package reference

The editor depends only on the runtime. Every box is a standalone, MIT-licensed package in github.com/ProwlEngine/Anthology