Vigilance.Debug 0.2.13

dotnet add package Vigilance.Debug --version 0.2.13
                    
NuGet\Install-Package Vigilance.Debug -Version 0.2.13
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Vigilance.Debug" Version="0.2.13" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Vigilance.Debug" Version="0.2.13" />
                    
Directory.Packages.props
<PackageReference Include="Vigilance.Debug" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Vigilance.Debug --version 0.2.13
                    
#r "nuget: Vigilance.Debug, 0.2.13"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Vigilance.Debug@0.2.13
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Vigilance.Debug&version=0.2.13
                    
Install as a Cake Addin
#tool nuget:?package=Vigilance.Debug&version=0.2.13
                    
Install as a Cake Tool

Vigilance

Vigilance is a 2D game engine/framework for C# and .NET, built on Raylib and focused on developer experience and performance. It runs natively on desktop and in the browser through WebAssembly, and it is compatible with Native AOT.

Documentation

The engine documentation and API reference are available at vigilance.samaelheaven.workers.dev.

Features

  • Entity component system: components are stored in sparse sets, so adding, removing, and iterating them stays cheap. Structural changes can be deferred while you iterate, and every add, set, and remove can be observed through events.
  • Scenes: a scene ties everything together. It holds your entity hierarchies and the systems that act on them, and supports names, prefabs, and transitions between scenes.
  • Game loop: the frame runs through update, fixed update, and render phases, each with its own pre and post steps. Transforms are interpolated between fixed updates, so motion stays smooth at any frame rate.
  • Systems: write your logic as ordered systems that hook into any phase. Built-in systems already handle physics, sprite batching, drawables, animations, UI, and more!
  • Rendering: draw sprites, animations, shapes, and text with FreeType fonts, use shaders, render textures, and cameras, and batch sprites through instancing.
  • Physics: Box2D bodies and shapes, with contact and sensor events and ray casts.
  • UI: high-level UI elements laid out with flexbox, usable in both immediate and retained mode.
  • Input: keyboard, mouse, gamepads, and the clipboard.
  • Audio: sounds, music, and audio streams.
  • Utilities: collections, math, tweens, timers, assets, logging, HTTP requests, and more!

Installation

Vigilance targets .NET 10 and later.

dotnet add package Vigilance

Vigilance.Debug is the same engine with internal assertions enabled, for catching misuse during development. To use it in Debug builds and the regular package in Release builds, add both references to your project, replacing x.y.z with the latest version:

<PackageReference Include="Vigilance" Version="x.y.z" Condition="'$(Configuration)' == 'Release'" />
<PackageReference Include="Vigilance.Debug" Version="x.y.z" Condition="'$(Configuration)' == 'Debug'" />

Benchmarks

The engine's entity operations and queries are compared against Flecs.NET after each release. The ratio column compares each Vigilance benchmark with the Flecs.NET baseline of the same operation; the measurements come from a shared CI machine, so the ratios are more meaningful than the absolute times.

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.5 LTS (Noble Numbat)
AMD EPYC 7763 3.24GHz, 1 CPU, 2 logical cores and 1 physical core
.NET SDK 10.0.402
  [Host]     : .NET 10.0.13 (10.0.13, 10.0.1326.50504), X64 RyuJIT x86-64-v3
  Job-NHQAEU : .NET 10.0.13 (10.0.13, 10.0.1326.50504), X64 RyuJIT x86-64-v3

Entities

EnvironmentVariables=DOTNET_TieredCompilation=0 InvocationCount=1 IterationCount=12 UnrollFactor=1 WarmupCount=4

Method Categories EntityCount Mean Error StdDev Ratio RatioSD Gen0 Gen1 Gen2 Allocated Alloc Ratio
Vigilance_AddComponent AddComponent 1000 32.17 μs 1.062 μs 0.768 μs 4.08x faster 0.11x - - - 41408 B NA
Flecs_AddComponent AddComponent 1000 131.09 μs 3.077 μs 2.035 μs baseline - - - - NA
Vigilance_AddComponent AddComponent 100000 2,330.88 μs 29.558 μs 19.551 μs 5.10x faster 0.04x - - - 4598704 B NA
Flecs_AddComponent AddComponent 100000 11,877.08 μs 41.045 μs 29.678 μs baseline - - - - NA
Vigilance_Create Create 1000 54.34 μs 4.582 μs 3.031 μs 1.02x faster 0.08x - - - 59608 B NA
Flecs_Create Create 1000 55.10 μs 4.739 μs 3.427 μs baseline - - - - NA
Vigilance_Create Create 100000 5,679.41 μs 73.344 μs 53.033 μs 1.21x slower 0.01x 1000.0000 1000.0000 1000.0000 6958440 B NA
Flecs_Create Create 100000 4,709.20 μs 39.926 μs 28.869 μs baseline - - - - NA
Vigilance_CreateWithComponents CreateWithComponents 1000 108.27 μs 12.417 μs 8.213 μs 2.48x faster 0.20x - - - 142424 B NA
Flecs_CreateWithComponents CreateWithComponents 1000 266.80 μs 4.857 μs 3.212 μs baseline - - - - NA
Vigilance_CreateWithComponents CreateWithComponents 100000 12,116.18 μs 156.185 μs 112.932 μs 2.36x faster 0.02x 2000.0000 2000.0000 2000.0000 16156160 B NA
Flecs_CreateWithComponents CreateWithComponents 100000 28,532.92 μs 126.633 μs 83.760 μs baseline - - - - NA
Vigilance_Destroy Destroy 1000 96.01 μs 1.343 μs 0.888 μs 1.34x slower 0.05x - - - 8392 B NA
Flecs_Destroy Destroy 1000 71.56 μs 3.637 μs 2.630 μs baseline - - - - NA
Vigilance_Destroy Destroy 100000 7,871.87 μs 40.844 μs 31.889 μs 1.54x slower 0.01x - - - 1048944 B NA
Flecs_Destroy Destroy 100000 5,118.64 μs 15.925 μs 11.515 μs baseline - - - - NA
Vigilance_RemoveComponent RemoveComponent 1000 23.15 μs 0.385 μs 0.255 μs 4.21x faster 0.11x - - - - NA
Flecs_RemoveComponent RemoveComponent 1000 97.50 μs 3.299 μs 2.385 μs baseline - - - - NA
Vigilance_RemoveComponent RemoveComponent 100000 1,888.56 μs 22.728 μs 16.433 μs 4.39x faster 0.04x - - - - NA
Flecs_RemoveComponent RemoveComponent 100000 8,298.29 μs 46.970 μs 31.068 μs baseline - - - - NA

Components

IterationCount=12 WarmupCount=4

Method Categories EntityCount Mean Error StdDev Ratio RatioSD Allocated Alloc Ratio
Vigilance_Get Get 1000 3.236 μs 0.0117 μs 0.0077 μs 3.69x faster 0.01x - NA
Flecs_Get Get 1000 11.930 μs 0.0521 μs 0.0345 μs baseline - NA
Vigilance_Get Get 100000 324.902 μs 1.5651 μs 1.0352 μs 3.69x faster 0.01x - NA
Flecs_Get Get 100000 1,198.552 μs 2.9561 μs 2.1374 μs baseline - NA
Vigilance_Has Has 1000 2.245 μs 0.0246 μs 0.0192 μs 5.44x faster 0.05x - NA
Flecs_Has Has 1000 12.202 μs 0.0439 μs 0.0318 μs baseline - NA
Vigilance_Has Has 100000 229.439 μs 0.4282 μs 0.2832 μs 5.35x faster 0.01x - NA
Flecs_Has Has 100000 1,227.746 μs 3.8997 μs 2.5794 μs baseline - NA
Vigilance_Set Set 1000 9.090 μs 0.1116 μs 0.0871 μs 3.99x faster 0.04x - NA
Flecs_Set Set 1000 36.310 μs 0.0878 μs 0.0581 μs baseline - NA
Vigilance_Set Set 100000 929.367 μs 2.3432 μs 1.5499 μs 3.66x faster 0.01x - NA
Flecs_Set Set 100000 3,400.592 μs 10.9230 μs 7.2249 μs baseline - NA
Vigilance_Write Write 1000 4.607 μs 0.0268 μs 0.0194 μs 2.61x faster 0.01x - NA
Flecs_Write Write 1000 12.010 μs 0.0307 μs 0.0222 μs baseline - NA
Vigilance_Write Write 100000 459.068 μs 1.5561 μs 1.1251 μs 3.59x faster 0.01x - NA
Flecs_Write Write 100000 1,648.848 μs 7.3571 μs 5.3197 μs baseline - NA

Queries

IterationCount=12 WarmupCount=4

Method Categories EntityCount IsFragmented Mean Error StdDev Ratio RatioSD Allocated Alloc Ratio
Vigilance_OneComponent OneComponent 1000 False 699.2 ns 2.56 ns 1.69 ns 1.20x faster 0.00x - NA
Flecs_OneComponent_Each OneComponent 1000 False 839.8 ns 2.75 ns 1.82 ns baseline - NA
Flecs_OneComponent_Iter OneComponent 1000 False 841.1 ns 2.53 ns 1.83 ns 1.00x slower 0.00x - NA
Vigilance_OneComponent OneComponent 1000 True 697.9 ns 1.90 ns 1.38 ns 2.27x faster 0.01x - NA
Flecs_OneComponent_Each OneComponent 1000 True 1,582.1 ns 7.12 ns 4.71 ns baseline - NA
Flecs_OneComponent_Iter OneComponent 1000 True 1,501.9 ns 4.51 ns 2.98 ns 1.05x faster 0.00x - NA
Vigilance_OneComponent OneComponent 100000 False 67,523.2 ns 285.74 ns 189.00 ns 1.05x slower 0.00x - NA
Flecs_OneComponent_Each OneComponent 100000 False 64,067.8 ns 157.43 ns 104.13 ns baseline - NA
Flecs_OneComponent_Iter OneComponent 100000 False 63,718.8 ns 281.62 ns 186.28 ns 1.01x faster 0.00x - NA
Vigilance_OneComponent OneComponent 100000 True 67,554.7 ns 232.98 ns 154.10 ns 1.02x slower 0.00x - NA
Flecs_OneComponent_Each OneComponent 100000 True 66,445.6 ns 149.77 ns 99.07 ns baseline - NA
Flecs_OneComponent_Iter OneComponent 100000 True 65,920.8 ns 319.92 ns 211.61 ns 1.01x faster 0.00x - NA
Vigilance_ThreeComponents ThreeComponents 1000 False 544.4 ns 0.93 ns 0.68 ns 1.25x faster 0.00x - NA
Flecs_ThreeComponents_Each ThreeComponents 1000 False 678.1 ns 2.35 ns 1.56 ns baseline - NA
Flecs_ThreeComponents_Iter ThreeComponents 1000 False 589.5 ns 8.06 ns 5.83 ns 1.15x faster 0.01x - NA
Vigilance_ThreeComponents ThreeComponents 1000 True 547.2 ns 0.97 ns 0.64 ns 2.21x faster 0.01x - NA
Flecs_ThreeComponents_Each ThreeComponents 1000 True 1,208.4 ns 3.66 ns 2.65 ns baseline - NA
Flecs_ThreeComponents_Iter ThreeComponents 1000 True 1,218.9 ns 4.92 ns 3.25 ns 1.01x slower 0.00x - NA
Vigilance_ThreeComponents ThreeComponents 100000 False 53,959.8 ns 276.03 ns 182.58 ns 1.07x slower 0.00x - NA
Flecs_ThreeComponents_Each ThreeComponents 100000 False 50,615.1 ns 81.27 ns 53.75 ns baseline - NA
Flecs_ThreeComponents_Iter ThreeComponents 100000 False 47,927.6 ns 98.67 ns 65.26 ns 1.06x faster 0.00x - NA
Vigilance_ThreeComponents ThreeComponents 100000 True 56,599.7 ns 595.95 ns 430.91 ns 1.08x slower 0.01x - NA
Flecs_ThreeComponents_Each ThreeComponents 100000 True 52,268.7 ns 394.15 ns 307.72 ns baseline - NA
Flecs_ThreeComponents_Iter ThreeComponents 100000 True 49,513.1 ns 142.33 ns 102.91 ns 1.06x faster 0.01x - NA
Vigilance_TwoComponents TwoComponents 1000 False 851.4 ns 2.13 ns 1.54 ns 1.18x faster 0.01x - NA
Flecs_TwoComponents_Each TwoComponents 1000 False 1,004.7 ns 7.54 ns 4.99 ns baseline - NA
Flecs_TwoComponents_Iter TwoComponents 1000 False 858.9 ns 3.29 ns 2.38 ns 1.17x faster 0.01x - NA
Vigilance_TwoComponents TwoComponents 1000 True 852.8 ns 2.62 ns 1.89 ns 2.31x faster 0.01x - NA
Flecs_TwoComponents_Each TwoComponents 1000 True 1,969.1 ns 4.69 ns 3.39 ns baseline - NA
Flecs_TwoComponents_Iter TwoComponents 1000 True 1,943.0 ns 5.16 ns 3.41 ns 1.01x faster 0.00x - NA
Vigilance_TwoComponents TwoComponents 100000 False 80,930.3 ns 249.05 ns 164.73 ns 1.15x slower 0.00x - NA
Flecs_TwoComponents_Each TwoComponents 100000 False 70,466.8 ns 155.48 ns 102.84 ns baseline - NA
Flecs_TwoComponents_Iter TwoComponents 100000 False 72,566.3 ns 816.52 ns 637.49 ns 1.03x slower 0.01x - NA
Vigilance_TwoComponents TwoComponents 100000 True 80,950.5 ns 125.46 ns 82.98 ns 1.07x slower 0.00x - NA
Flecs_TwoComponents_Each TwoComponents 100000 True 75,484.3 ns 362.36 ns 239.68 ns baseline - NA
Flecs_TwoComponents_Iter TwoComponents 100000 True 75,853.2 ns 97.95 ns 70.82 ns 1.00x slower 0.00x - NA

License

Vigilance is licensed under the zlib License.

Product 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.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.13 41 10/15/2026
Loading failed