MainframeEngine
A C# game engine on Vulkan with a Godot-style node tree, and an editor built on its own game UI.
Showcase
Made with Mainframe
Every image is the engine rendering in real time: the editor, the Demo's scenes and the Forest walk.
The editor built with the engine's own game UI
The Demo one scene per feature
The Forest a first-person walk through a generated valley
Audio tools
A DAW inside the editor
Compose music and design sound effects next to your scenes. The built-in instrument needs no other app, and your VST3 plugins work too. Songs render to looping files the game plays like any other sound.
Music editor
Write the soundtrack where you build the game
- Music mode: the whole window for the song, with the transport in the toolbar
- Arrangement: instrument and audio tracks, a loop region, clips that snap, resize and duplicate
- Piano roll with a velocity lane, quantize, and one undo entry per gesture
- Mixer: insert slots, pan, dB faders, peak meters, mute and solo, a master strip
- Browser: every song in the project and every plugin, dragged onto a track or strip
- Mainframe Wavetable: a built-in synth with unison, warps, two filters, a mod matrix, presets and .wav wavetables
- VST3 instruments and effect inserts in a crash-safe plugin host, with delay compensation
- MIDI keyboards: play the armed track, record takes, loop-record, input quantize
- Render to OGG Vorbis or WAV, in the editor or headless in CI
Built-in effects
Mix with effects that ship with the editor
- Channel EQ with a curve you drag, and a resonant filter with a synced sweep
- Compressor, brickwall limiter and noise gate with live gain-reduction meters
- Beat Delay in note values (dotted, triplet, ping-pong) and a reverb with pre-delay
- Chorus, flanger, phaser and tremolo/auto-pan locked to the song
- Saturation, distortion and a bitcrusher, oversampled
- Presets, and one undo step per knob or handle drag; songs play the same everywhere
Wavetable synth
A wavetable synth built into the editor
- Two wavetable oscillators with warps and up to 16-voice unison, plus sub and noise
- Two filters (ladder, SVF, comb, formant) drawn as live curves
- Drag an envelope, LFO, macro or controller onto any knob to modulate it; watch it move
- Envelopes with draggable handles and LFOs you draw point by point
- 39 factory presets, your own as project files, and .wav wavetable import
- Its own effect chain, a mod matrix and an on-screen keyboard
Sound designer
Sound effects without audio files
- ZzFX sounds synthesised at run time from one line of parameters
- Presets: pickup, laser, explosion, hit, jump, blip and power-up
- Randomize and Mutate, then copy or paste the ZzFX line
- A live waveform that replays on every change, with undo
- Export any sound to a WAV file
Video mode
Promo footage without leaving the editor
Record a play session, then flip the Game|Video toggle: the editor becomes a video editor that trims the recording down to the good parts.
Record, trim, export
Cut the dead air, keep the action
- Record any game to MP4 with F10 in the editor or --record, through your own ffmpeg
- Detect Silence and Detect Idle Gameplay cut dead air, idle play, loading and pauses
- Whisper transcripts on your machine: edit the video by clicking words
- Remove Fillers cuts every “um” and “uh”, aligned to the audio
- Gapless preview that plays only the footage you kept
- Export the trimmed MP4, precise or fast, and the transcript as SRT or text
Features
Everything a game needs, in one tree
31 subsystems, each with a design doc that describes it exactly as it is in the code.
Rendering
Vulkan renderer
Vulkan 1.2 on macOS (MoltenVK), Windows and Linux: an in-house GPU allocator, upload queue, persisted pipeline cache and zero allocations per frame.
Materials & meshes
PBR StandardMaterial3D, sRGB-aware textures with GPU mips, instanced and sorted batches, frustum culling, GPU object picking, SubViewports, billboarded sprites with shadows, outlined 3D text labels.
Lighting & sky
Directional, omni and spot lights in linear HDR; procedural, physical, panoramic and cubemap skies with image-based lighting.
Shadows
Four sun cascades, a spot-light atlas and point-light cubes, PCF and soft shadows, cutout casters, per-light settings.
Post-processing
A stack of effects: SSAO, TAA and upscaling, volumetric fog, depth of field, auto exposure, glow, light shafts, FXAA, colour grading, ACES and AgX.
2D canvas & text
Godot-compatible canvas items, sprites, skinned polygons with bones, canvas groups, layers, z-order and y-sort, wrapped TrueType text from the engine's own rasterizer, and Godot's BitMap and Geometry2D for turning sprites into polygons.
Spine animation
Spine skeletons under a 2D or 3D camera, lit and casting shadows, with animation tracks and queues.
Slang shaders
Every shader in Slang, compiled to SPIR-V at build time, with shared includes and limits generated from one file.
Worlds
Terrain
Terrain3D: chunked heightmap meshes with LOD, splat material layers, foliage scatter, exact collision and height queries.
Procedural trees
A port of Ez Tree: 15 presets, realistic or low-poly styles, wind, levels of detail and impostors, from a seed.
Water
Streams along a curve carved into the terrain, ponds and falls with spray, refraction, screen-space reflections and caustics.
Asset import
glTF, FBX and OBJ through Assimp into scenes you can instance, with import settings, an import cache and stable UIDs.
Gameplay
Scene system
A Godot-style node tree: signals, groups, NodePath, pause, [Tool] nodes, JSON scenes with UIDs; metadata from a source generator, no reflection.
Physics
Jitter2 in 3D and Box2D in 2D: rigid, static and character bodies, areas that detect bodies and other areas, 2D joints, layers, raycasts, MoveAndSlide and interpolation.
Input & cameras
Named input actions for keyboard, mouse and gamepad, player rebinding, captured and confined mouse modes, and 2D, 3D and fly cameras.
Saves & settings
Save slots with thumbnails, versioned JSON with migrations, crash-safe writes with recovery, and a drop-in settings menu.
Multiplayer
Generated [Replicated] and [Rpc], delta snapshots, interpolation, authority, late join; ENet, loopback and simulated bad networks.
Localization
gettext catalogs with plurals and contexts, runtime locale switching, translated UI and scenes, a pseudo-locale and tooling.
Steamworks
Lobbies, invites, rich presence, overlay and achievements over Facepunch.Steamworks, with Valve's natives for Windows, Linux and macOS.
Audio
Audio engine
A bus mixer on its own thread, 2D and 3D players, streaming WAV, OGG, MP3 and FLAC, attenuation, low-pass and doppler.
Sound designer
ZzFX sounds synthesised at run time: presets, randomize, mutate, a live waveform and export to WAV, in the inspector.
Music editor
A DAW in the editor's music mode, over the whole window: arrangement, piano roll, mixer, VST3, MIDI recording, render to OGG.
Tools
Editor
Project Manager, scene tree, generated inspector with undo, 3D/2D gizmos, FileSystem panel (Assets and Scripts, or the whole project), Play in its own process, code reload.
Gameplay recording
Record any game to MP4 through your own ffmpeg: F10 in the editor or --record, live or offline, with a sidecar of input, loading and pauses.
Video mode
The editor trims recordings for promo footage: detect silence and idle play, Whisper transcripts, remove filler words, export.
Game UI
RmlUi (HTML and CSS) on Vulkan: data binding, gamepad navigation, hot reload and a widget library. The editor is built with it.
Developer overlay
F12 in any game: frame, renderer, shadow maps, GPU memory, audio mixer, physics and network panels; add your own in one call.
Games in C#
dotnet new mfgame, project.mfproj and GameHost: autoloads, structured logs, the editor link and headless dedicated servers.
NuGet packages
The engine and the project template on nuget.org: build a game with the .NET SDK alone, no checkout or editor needed.
Self-updating editor
The editor finds new releases on GitHub and updates itself in place on macOS, Windows and Linux.
Quality
Zero warnings, 1 600+ tests, golden-image render tests on two drivers, a validation gate and an allocation gate.
Download
Get the editor
Self-contained builds of v1.1.4: unpack and run, no .NET install needed. The Project Manager creates your first game.
MainframeEngine-1.1.4-osx-arm64.tar.gz DownloadYour systemWindowsx64MainframeEngine-1.1.4-win-x64.zip DownloadYour systemLinuxx64MainframeEngine-1.1.4-linux-x64.tar.gz DownloadmacOS: the build is unsigned, so the first time right-click the app and choose Open.All releasesPrefer the command line? The NuGet template
Start building
Read how the engine works, or open the editor and press Play.