Skip to content

Getting Started

Yahasi edited this page Jul 10, 2026 · 2 revisions

🌐 English · Русский

← Home · Controls →

Getting Started

Requirements

  • .NET 10 SDK.
  • Windows. Keyboard input uses the Win32 API, and the wizard's mouse support uses the Win32 console API, so the app is currently Windows-only.
  • A terminal that supports 24-bit ANSI color for the best output (Windows Terminal is recommended).
  • (Optional) An NVIDIA GPU with CUDA — or any OpenCL device — for the GPU renderer. Without one, worlds that ask for the GPU transparently fall back to the CPU.

Build & Run

dotnet build -c Release

Set SampleGame as the startup project in Visual Studio, or run it directly:

dotnet run --project SampleGame -c Release

Note for contributors: a clean/verification build uses dotnet build -c Release --no-incremental (a plain incremental build can report a false "0 warnings"). See Self-Tests for the headless test commands.

The setup wizard

A branded setup wizard runs before the render loop. It is drawn by the engine's own console UI (no external UI toolkit) and driven by keyboard and mouse; it re-lays-out when you resize the terminal. It walks you through, in order:

  1. Nickname — pick a previously used nickname or type a new one. It is remembered locally in SampleGame/users.json (git-ignored) and never gates or isolates content — worlds, models and textures stay shared local files. Your nickname prefixes your chat lines and travels to other peers.
  2. Session mode — local solo, or online.
  3. Network role (online only) — host a Server or join as a Client.
  4. WorldCreate a new world or Load a saved one (worlds/*.json).
    • Create lets you set:
      • the world name;
      • toggles: Shadows, BVH acceleration, Extra fixed light, Disable camera light, Include platform;
      • the RendererCPU or GPU (NVIDIA);
      • the platform shape — Square / Rectangle / Circle — and its size / width / depth;
      • the physics switches — Gravity (+ its strength) + Bounce (restitution 0–1), and Collision.
  5. Network (online only) — the listen port (server) or the server IP + port (client).

A client that joins a server downloads the host's world automatically. See Multiplayer for details.

Zoom & resize

The wizard reflows when you resize the window or use keyboard font-zoom (Ctrl+= / Ctrl+-).

Ctrl+scroll font-zoom does not resize the wizard (it captures the mouse wheel for clicks) — but the in-game 3D still reflows on Ctrl+scroll, as does the startup splash. The whole in-scene HUD adapts live to a window stretch or a font zoom.

Next steps

Clone this wiki locally