RecursiveAI.OneGame.Render2D
1.0.0
See the version list below for details.
dotnet add package RecursiveAI.OneGame.Render2D --version 1.0.0
NuGet\Install-Package RecursiveAI.OneGame.Render2D -Version 1.0.0
<PackageReference Include="RecursiveAI.OneGame.Render2D" Version="1.0.0" />
<PackageVersion Include="RecursiveAI.OneGame.Render2D" Version="1.0.0" />
<PackageReference Include="RecursiveAI.OneGame.Render2D" />
paket add RecursiveAI.OneGame.Render2D --version 1.0.0
#r "nuget: RecursiveAI.OneGame.Render2D, 1.0.0"
#:package RecursiveAI.OneGame.Render2D@1.0.0
#addin nuget:?package=RecursiveAI.OneGame.Render2D&version=1.0.0
#tool nuget:?package=RecursiveAI.OneGame.Render2D&version=1.0.0
onegame
A C#-native game engine with no editor: a game is plain C# plus text assets. Entities, sync, rendering and UI are generated or enforced at build time by Roslyn source generators and analyzers, everything is NativeAOT- and trim-clean, and a command line, a C# test API and a live-control protocol (MCP) let you build, run, inspect, capture and replay games from a terminal.
It runs on Windows, Linux (X11 and Wayland, the Steam Deck), macOS, Android, iOS and the web (WebGPU). Clients and servers run the same stack, so state syncs between processes, with prediction, authority transfer and drift detection built in.
Getting started
Games are built against a checkout of this repository. The RecursiveAI.OneGame.* packages on nuget.org carry the engine libraries and analyzers, but a game's build (build/Game.targets, the onegame command, exports) currently comes from the checkout, so start there:
git clone https://github.com/recursive-ai-oss/onegame
cd onegame
dotnet build OneGame.slnx
dotnet run --project src/OneGame.Cli -- new mygame --dir ../mygame --engine .
cd ../mygame
dotnet run --project ../onegame/src/OneGame.Cli -- run --headless --frames 60 --json
Publishing the command once (dotnet publish src/OneGame.Cli -c Release -r linux-x64, or win-x64/osx-arm64) and putting it on your PATH lets you type onegame new, onegame test, onegame export and so on; set ONEGAME_ROOT to the checkout when the command lives elsewhere.
Then read, in order:
- docs/driving-a-game.md: making a game, scenarios, replays, captures and live control.
- docs/ui-guide.md: screens, styling and the component kit.
- docs/exporting.md: Windows, Linux, macOS, Android, iOS, web and dedicated-server builds.
- docs/devices.md: checking a build on real phones, tablets, the Steam Deck and gamepads.
docs/interfaces/: the written contracts between engine areas.
Samples
samples/solitaire: a UI-heavy card game.samples/bricks: a real-time brick-breaker with levels in YAML, power-ups and a high-score table.samples/lanterns: a networked 3D game on two island servers and a master, with players moving between servers and trades settled through the master.
Each sample has scenarios (onegame test --json in its folder) and a README.
Build and test the engine
Requires the .NET SDK pinned in global.json.
dotnet build OneGame.slnx
dotnet test --solution OneGame.slnx
Build output goes to artifacts/ at the repository root; set ONEGAME_ARTIFACTS to put it elsewhere. Shaders are compiled during the build by RecursiveAI.OneShader.Build, and audio decoding and mixing come from RecursiveAI.OneAudio; both restore from nuget.org. Native AOT publishing on Linux needs clang and zlib1g-dev.
Layout
src/: the engine, one project per area, theOneGame.Generatorsanalyzers and source generators, and theonegamecommand inOneGame.Cli.tests/: one test project per area, plusOneGame.AotSmoke, a native-AOT app that touches every runtime assembly.samples/: the sample games.build/: the MSBuild targets games import.tools/: CI and device scripts.docs/: documentation.
Build rules
- Only our code ships: projects under
src/andsamples/may reference the one* family of libraries and nothing else, and the build fails otherwise (build/PackageGuard.targets). Test and tool projects may use any package. - Warnings are errors, nullable is on, builds are deterministic, and every shipping project is checked by the AOT and trim analyzers.
License
Licensed under either of MIT (LICENSE-MIT) or Apache-2.0 (LICENSE-APACHE), at your option. Copyright (c) Recursive AI, LLC.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- RecursiveAI.OneGame.Atlas (>= 1.0.0)
- RecursiveAI.OneGame.Core (>= 1.0.0)
- RecursiveAI.OneGame.Gpu (>= 1.0.0)
- RecursiveAI.OneGame.Text (>= 1.0.0)
- RecursiveAI.OneGame.UI (>= 1.0.0)
- RecursiveAI.OneShader.Build (>= 1.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on RecursiveAI.OneGame.Render2D:
| Package | Downloads |
|---|---|
|
RecursiveAI.OneGame.Host
The game host: window, input, fixed-step simulation, UI and render stage for one game, windowed or headless. |
|
|
RecursiveAI.OneGame.Pages
Draws OneRender pages (builder trees and HTML) through the render graph, with input, host scopes and harness support. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.12.0 | 0 | 10/28/2026 |
| 1.11.0 | 0 | 10/28/2026 |
| 1.10.0 | 0 | 10/28/2026 |
| 1.9.0 | 0 | 10/28/2026 |
| 1.8.0 | 0 | 10/28/2026 |
| 1.7.0 | 0 | 10/28/2026 |
| 1.6.1 | 0 | 10/28/2026 |
| 1.6.0 | 0 | 10/27/2026 |
| 1.5.2 | 0 | 10/27/2026 |
| 1.5.1 | 41 | 10/27/2026 |
| 1.5.0 | 51 | 10/27/2026 |
| 1.4.0 | 46 | 10/27/2026 |
| 1.3.0 | 50 | 10/27/2026 |
| 1.2.0 | 47 | 10/27/2026 |
| 1.1.2 | 44 | 10/27/2026 |
| 1.1.1 | 62 | 10/26/2026 |
| 1.1.0 | 60 | 10/26/2026 |
| 1.0.0 | 61 | 10/26/2026 |