Vulkan / C# / Jolt / Editor

KroysEngine

A real-time game engine and editor for scene authoring, native rendering, managed gameplay code, physics simulation, animation workflows, UI documents, and asset-driven iteration.

Vulkan renderer Real-time editor C# scripting Jolt physics Animation controllers UI authoring Asset references

Engine Foundation

Native systems with a managed gameplay layer.

KroysEngine keeps rendering, physics, scene state, assets, and serialization in native engine code, while exposing a focused C# surface for gameplay scripts. The result is an editor-centered workflow where technical systems and content authoring stay close together.

Rendering

Vulkan runtime

Scene rendering, materials, textures, environment lighting, and viewport debugging are built around a native renderer.

Physics

Jolt simulation

Rigid bodies, colliders, ray queries, ragdolls, contacts, and physics debug overlays are part of Play mode.

Authoring

Editor-first tools

Hierarchy editing, inspector controls, animation preview, UI documents, and asset workflows share one interface.

Gameplay

Managed scripts

C# script instances run against native scene data, with serialized fields exposed directly in the editor.

Workflow

Abstract systems, practical editing loop.

Scene

Compose objects and inspect behavior.

Author scene structure, edit transforms, assign assets, and review runtime state in the editor.

Simulation

Preview physics and gameplay together.

Run Play mode with debug overlays, script logs, ray traces, and active physics feedback.

Content

Connect assets to scripts and scenes.

Use serialized asset references and editor fields to keep gameplay data visible and editable.

C# Scripting

Gameplay code that speaks to native engine systems.

Scripts derive from EntityScript, use the Kroys.EngineScripting namespace, and interact with entities, transforms, scene spawning, input, timing, logging, asset references, and physics raycasts.

using Kroys.EngineScripting;
using System.Numerics;

public sealed class Probe : EntityScript
{
    protected override void OnUpdate(float dt)
    {
        Vector3 origin = Transform.Position;
        Vector3 forward = Transform.Forward;

        if (Physics.Raycast(origin, forward, 20.0f, out RaycastHit hit, true, 1.5f))
        {
            Debug.Log($"Hit {hit.Entity.Name}");
        }
    }
}

Documentation

API reference now lives on its own wiki page.

The homepage stays focused on the engine. The scripting API has a dedicated page with navigation, examples, current limits, and copyable snippets.

Open API Wiki