← In development
02 / Scripting language

Nyx

Nyx is a small, statically typed interpreted language embedded in the Umbra ecosystem. It gives gameplay and UI code a high-level surface while leaving ownership, resources, and engine internals to the host runtime.

Technology
C++ / Language design
Status
Active development
Video & streams

Nyx development streams

Videos and live development sessions will appear here as work on the language moves into its next implementation phase.

In production
The challenge

Scripting needs safety without systems-level ceremony.

Gameplay scripting needs to be approachable without becoming disconnected from the engine’s type system. UI authoring adds a second constraint: behavior, component state, and declarative element trees must work together without coupling the language to one renderer or backend.

The approach

Keep the language small and the host boundary clear.

Nyx treats host integration as a first-class boundary. C++ and future Nox types enter through the same runtime registration model, while Chaos builds declarative UI on top of Nyx rather than inside it. Language features earn their place through working gameplay and UI examples.

Inside the project

What it does.

  1. 01

    Static typing with inference where it improves readability

  2. 02

    Lexer, parser, interpreter, diagnostics, and host bindings

  3. 03

    Gameplay behavior and state-transition authoring

  4. 04

    Declarative UI behavior through the separate Chaos layer

  5. 05

    A composition-led object model designed around engine entities and components

Design principles

How decisions
get made.

Small on purpose

A script starts as one file, with no headers or registration ceremony.

Host independent

The language sees registered capabilities, not whether they originated in C++, Nox, or another host.

Readable over terse

Syntax favors immediate comprehension over saving keystrokes.

See the work

Nyx

Follow the work
Next projectCimmerian