Sitelet https://github.com/Artromskiy
Skip to content
View Artromskiy's full-sized avatar
🎯
Open to game engine / graphics roles
🎯
Open to game engine / graphics roles

Block or report Artromskiy

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Artromskiy/README.md

Artromskiy

Most of my public work is one long experiment: how much of a game engine can I build myself in C# and Vulkan, and where do the boundaries between its parts need to be?

The current Delta stack is split into the pieces I actually need:

  • DeltaEngine — the host, window and frame lifecycle;
  • DeltaRender — a Vulkan render graph for windowed and offscreen work;
  • DeltaECS — archetypes, chunked SoA storage, queries and generated iteration;
  • DeltaMaths — vectors, matrices and fixed-point math shared by CPU and shader code;
  • DeltaShader — a C# to GLSL/SPIR-V compiler with explicit GPU data packing;
  • DeltaText and DeltaXAML — text shaping and a renderer-neutral UI layer.

This is not a finished engine or a polished framework. It is the engine being assembled: APIs change, parts are replaced, and the useful result is in the code and the small experiments around it.

A few things worth opening

A Unity tactical game prototype I worked on before the Delta stack. The simulation uses fixed ticks and fixed-point math, shares state between client and server, and supports command replay and rollback.

The shader side is deliberately written as a compiler: Roslyn checks the supported C# subset, the compiler builds typed IR, and the backend emits GLSL/SPIR-V artifacts. The CPU-side packing code and ABI are tested alongside the compiler.

The ECS is an attempt to keep the storage core blind and cheap while giving typed C# code a useful way to iterate it. Query plans are cached, structural work is batched, and generated consumers keep type knowledge at the edge.

What I pay attention to

  • data layout, ownership and lifetime before adding another abstraction;
  • the actual JIT output and assembly when a hot loop matters;
  • generated code for repetitive typed paths, with small contracts between projects;
  • deterministic state, rollback and explicit resource transitions.

Email · Telegram @RumTerry

Pinned Loading

  1. SkyPirates SkyPirates Public

    Unity tactical game prototype with deterministic fixed-tick simulation, lockstep networking and rollback.

    C#

  2. DeltaShader DeltaShader Public

    C# shader compiler for Vulkan: Roslyn validation, typed IR, SPIR-V artifacts and generated GPU data packing.

    C#

  3. DeltaECS DeltaECS Public

    Archetype ECS for .NET with chunked SoA storage, cached queries and source-generated iteration.

    C#

  4. DeltaRender DeltaRender Public

    Vulkan render graph for raster, compute and transfer workloads, with windowed and offscreen execution.

    C# 1

  5. DeltaMaths DeltaMaths Public

    Pure C# Vector Library with Fixed Point Math

    C# 1

  6. DeltaEngine DeltaEngine Public

    Minimal game engine in C# and Vulkan

    C# 9 1