![]() |
VOOZH | about |
dotnet add package Arch --version 2.1.0
NuGet\Install-Package Arch -Version 2.1.0
<PackageReference Include="Arch" Version="2.1.0" />
<PackageVersion Include="Arch" Version="2.1.0" />Directory.Packages.props
<PackageReference Include="Arch" />Project file
paket add Arch --version 2.1.0
#r "nuget: Arch, 2.1.0"
#:package Arch@2.1.0
#addin nuget:?package=Arch&version=2.1.0Install as a Cake Addin
#tool nuget:?package=Arch&version=2.1.0Install as a Cake Tool
👁 Discord
👁 Maintenance
👁 Nuget
👁 License
👁 C#
A high-performance C# based Archetype & Chunks Entity Component System (ECS) for game development and data-oriented programming.
Download the package, get started today and join the Discord!
dotnet add PROJECT package Arch --version 2.1.0-beta
Arch is bare minimum, easy to use, and efficient. Let's say you want to create some game entities and make them move based on their velocity... sounds complicated? It's not! Arch does everything for you, you only need to define the entities and the logic.
I bet you don't want to read tons of documentation, theory, and other boring stuff right?
Let's just ignore all that deep knowledge and jump in directly to get something done.
using Arch;
// Components
public record struct Position(float X, float Y);
public record struct Velocity(float Dx, float Dy);
// Create a world and an entity with position and velocity.
using var world = World.Create();
var adventurer = world.Create(new Position(0,0), new Velocity(1,1));
// Enumerate all entities with Position & Velocity to move them
var query = new QueryDescription().WithAll<Position,Velocity>();
world.Query(in query, (Entity entity, ref Position pos, ref Velocity vel) => {
pos.X += vel.Dx;
pos.Y += vel.Dy;
Console.WriteLine($"Moved adventurer: {entity.Id}");
});
The example is very simple. There more features including queries without lambda or an API without generics and much more. Checkout the Documentation!
This is all you need to know, with this little knowledge you are already able to bring your worlds to life.
However, if you want to take a closer look at Arch's features and performance techniques, check out the Wiki!
There's more to explore, for example...
Pure-ECS for maximum performance and efficiencyArch has some extensions that add more features and tools. Among them for example :
Arch is already one of the fastest ECS and uses the best techniques under the hood to achieve maximum performance and efficiency. Care is always taken to find a healthy balance between CPU performance and ram utilization.
If you are more interested, have a look at the benchmark!
Were we able to convince you? If so, let's get started. We have prepared a whole wiki to explain all the important aspects and provide examples. Click here for the documentation!
Arch is already used in some projects, for a more detailed look, take a look at the wiki!
Space Station 14 is inspired by the cult classic Space Station 13 and tells the extraordinary story of everything that can go wrong on a shift at a space station. You take on a role and complete your tasks so that the space station doesn't go to the dogs... or do the exact opposite. Prepare yourself for chaos and the finest roleplay. Best of all, SS14 is open-source and anyone can play!
An action-packed c# clone of the hit "vampire survivor" based on monogame and arch!
Fight your way through hordes of different enemies, level up your character, collect permanent items and explore various maps!
Try it out!
👁 Ingame screenshot
Equilibrium Engine is a data-oriented C# game engine that takes advantage of ECS pattern followed by Hot-Reloading of your libraries which allows you to quickly iterate on different aspects of your projects.
👁 Equilibrium Engine screenshot
<a href="https://github.com/genaray/Arch/graphs/contributors"> <img src="https://contrib.rocks/image?repo=genaray/Arch" /> </a>
A huge thanks to all the supporters who did their part, especially TwistableGolf for their dedication and design of the official Arch logo and banner!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 is compatible. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 netstandard2.1 is compatible. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 5 NuGet packages that depend on Arch:
| Package | Downloads |
|---|---|
|
Arch.Persistence
A Persistence-Framework for Arch. |
|
|
Arch.Relationships
Simple Entity-Relationships for Arch. |
|
|
GeWuYou.GFramework.Ecs.Arch
Package Description |
|
|
PdArchEcsCore
PdArchEcsCore description. |
|
|
Undine.Arch
Package Description |
Showing the top 6 popular GitHub repositories that depend on Arch:
| Repository | Stars |
|---|---|
|
JasonBock/Rocks
A mocking library based on the Compiler APIs (Roslyn + Mocks)
|
|
|
genaray/Arch.Extended
Extensions for Arch with some useful features like Systems, Source Generator and Utils.
|
|
|
annulusgames/Arch.Unity
Arch ECS integration for Unity.
|
|
|
Doraku/Ecs.CSharp.Benchmark
Benchmarks of some C# ECS frameworks.
|
|
|
NosCoreIO/NosCore
NosCore is a Nostale emulator in c# (.Net 10) using SuperSocket / Entity Framework / WebAPI / Autofac / Mapster / Serilog
|
|
|
sselecirPyM/Coocoo3D
Experimental MMD renderer using DX12 and DXR.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 2.1.0 | 30,234 | 5/27/2025 |
| 2.1.0-beta | 2,029 | 4/25/2025 |
| 2.1.0-alpha | 221 | 4/24/2025 |
| 2.0.0 | 6,531 | 3/12/2025 |
| 2.0.0-beta | 614 | 3/11/2025 |
| 1.3.3-alpha | 3,252 | 8/15/2024 |
| 1.3.2-alpha | 192 | 8/14/2024 |
| 1.3.1-alpha | 220 | 8/13/2024 |
| 1.3.0-alpha | 520 | 8/12/2024 |
| 1.2.8.2-alpha | 817 | 7/22/2024 |
| 1.2.8.1-alpha | 1,988 | 4/19/2024 |
| 1.2.8 | 20,895 | 3/13/2024 |
| 1.2.7.1-alpha | 808 | 11/20/2023 |
| 1.2.7 | 4,152 | 10/15/2023 |
| 1.2.6.8-alpha | 559 | 9/17/2023 |
| 1.2.6.7-alpha | 285 | 8/27/2023 |
| 1.2.6.6-alpha | 3,899 | 8/25/2023 |
| 1.2.6.5-alpha | 1,493 | 8/19/2023 |
| 1.2.6.4-alpha | 315 | 8/14/2023 |
| 1.2.6.3-alpha | 232 | 8/14/2023 |
Several improvements and minor new features.