Build games in C#.
namespace Usercode;
public class Spinner : Component
{
/// Rotation speed in degrees per second — editable in the inspector.
public float speed = 90f;
public override void OnUpdate(float deltaTime)
{
Node.Transform.SetRotationX(Node.Transform.Rotation.X + speed * deltaTime);
}
}
A real editor, without the runtime tax
Turian pairs a Unity-style visual workflow with the power of C# and .NET 10. One language from editor to gameplay — no VM boundary, no hidden scripting bridges.
Visual editor
Scene hierarchy, inspector, asset browser and a live 3D viewport — all in a single window built on the Gaya platform.
Component system
Inherit from Component in any C# class and it appears in the Add Component menu with full field inspection.
Live script discovery
Drop a .cs file into Assets/Scripts and your component shows up immediately — compiled and refreshed while the editor runs.
Asset pipeline
Loads glTF 2.0 / GLB, OBJ, PNG, JPG and more, with GUID-stable references that survive moves and renames.
Headless CLI
turian-cli compile builds your game without opening the GUI — the same pipeline your editor produces, ideal for CI.
Built on .NET 10
A single language from scripts to engine internals: C# on .NET 10, with a Vulkan 1.3 renderer and Guinevere immediate-mode UI.
Components are just C# classes
Subclass Component and the editor picks it up. Public fields become inspector controls; lifecycle hooks are plain overrides you implement only when you need them.
- Code-driven discovery — the editor compiles real C#, with full .NET diagnostics and breakpoint debugging in the studio.
- Typed inspector fields — floats, ints, bools, vectors, and object/asset references render automatically.
- Familiar lifecycle — awake, enable, start, update, disable, destroy.
namespace Usercode;
public class Follower : Component
{
/// Drag a GameObject from the Hierarchy onto this field.
public NodeRef target = new();
public float speed = 4f;
public override void OnStart()
{
var node = target.Resolve();
if (node is not null)
Console.WriteLine($"following '{node.Name}'");
}
}
Script. Arrange. Ship.
Scaffold
Add a Scripts folder with a component class, and the studio previews live in the scene tree as you type.
Script & arrange
Open Turian Studio, drop in components, wire up the scene, and tweak fields live in the inspector.
Build & share
turian-cli compile cooks assets and builds the project; export emits a self-contained executable you can hand to anyone.
Join the community
Ask questions, share your work, and help shape the engine — everyone is welcome.
Support Turian's development
Turian is built by volunteers. Your support funds ongoing work and keeps the engine free and open.
Ready to build something?
Clone the repo, build the studio for .NET 10.0, and ship your first scene in minutes.