I build games in Godot at production scale, and I write C++ for the parts an engine leaves to you.
For the past year I've been the sole front-end engineer on a catalogue of 20+ commercial Godot titles shipped to the browser: one shared runtime replicated across 17 projects, 12 locales including Arabic RTL, and web builds held under a hard byte budget. That work is under contract and lives in a private org — what follows is the part I can show.
Available for contract and consulting work. Web builds that outgrew their byte budget, localization that has to survive a dozen languages, and GDExtension work when the editor won't do what you need.
ZGT — A real terminal inside the
Godot editor's bottom panel. A C++ GDExtension that runs your shell on a
pseudoterminal and draws the character grid itself, so it behaves the same on
X11 and Wayland with no window embedding. Tabs, mouse forwarding, scrollback
search, truecolor — enough to run nvim, htop or lazygit without leaving
the editor.
godot-web-build-budget —
Sixteen production web builds, the same import default every time, cut 23% to
76% with no assets deleted, depending on how much of each pack was lossless art.
Measured again a month after the
fix, the first had 3% left to give. The first went from 119 MB to 37 MB; on
the third, the largest file in the pack was a 7.1 MB JSON that nothing reads at
runtime. What was actually in the .pck, why lossless import inflates art
that was already compressed, and the measurement that contradicted the obvious
fix: VRAM compression made the build 54% larger where lossy cut it 74%. The
later editions add what the export ships that nobody chose (all_resources
sweeps in work files and test scenes, a filter problem rather than a cleanup
one) and where the floor is: the engine alone is 8.9 MB over brotli, confirmed
by an unrelated Godot game at 9.6 MB. Below that you are optimising the engine,
not your game. The editor shows none of these numbers, so the measurement became
godot-proposals#15505,
triaged by the Godot team under topic:editor and topic:import.
playable-budget — A playable ad in PixiJS v8, one HTML file at 630 KB: 31% of Meta's 2 MB cap, with every byte accounted for. 84% of it is the library and 3.7 KB is the game; Pixi bundles three renderers by default, and keeping only WebGL saved 66 KB; inlining the art as base64 costs a third on top. An empty Godot 4.7 web export is 39.8 MB, 19 times the cap, before a single sprite. Play it.
godot-i18n-that-holds-up —
Shipping a Godot 4 game in 12 locales. 3,673 source and translation pairs
measured: the usual advice to reserve 30% runs backwards, because paragraphs sit
at a p95 of 1.30x while buttons hit 2.00x with a worst case of 3.67x, and the
whole tail is in the short strings that make up the UI. Counting with .length
inflates Hindi by 60% and Nepali by 76% and reports exactly 0% growth for Arabic
and German, so the check you would write to catch the bug passes clean. Two
zero-dependency tools: one measures expansion from the reader's CSV, one gates
a build in CI.
godot-canvas-shaders —
Nine canvas_item shaders lifted out of shipped games and documented for reuse.
GL Compatibility, so they survive HTML5 export and low-end mobile. No addon, no
dependencies, MIT.
mcpgodot — MCP server for Godot 4. Scene operations an agent can actually drive, with the token cost of reading a scene tree cut down to something workable.
godot-claude-tools —
Summarises Godot scenes and scripts before an agent reads them. A .tscn that
costs 40k tokens raw costs a fraction of that summarised.
SpineViewer — Inspect Spine skeletons, skins and animation names outside the runtime, before wiring them into a scene.
Nirbija — a Linux mixer that is also an instrument, in the spirit of AUM. 45k lines of C++20 and Qt6. It hosts LV2, CLAP and VST3 in the same slot over JACK or PipeWire with the plugins' own editors embedded — and it ships with a drone synth on just intonation, a sixteen-pad sampler, a looper, a step sequencer, an arpeggiator and a Lua MIDI plugin, so a session does not start empty. Bluetooth LE MIDI is handled directly, because PipeWire advertises the port and never delivers the events. 30 test binaries under AddressSanitizer and ThreadSanitizer, because real-time audio does not forgive a data race. → source · site
Ganja-TUI — Plant growth simulation in the terminal, in Rust. 35 strains with real genetics, seven growth stages, and stress that follows the plant all the way to harvest. The grow was ported to pure QML as Ganja, a plant that lives in the Omarchy bar.
Omahold — A miniature dwarf fortress that lives in the Omarchy shell. 48×30 cells across 8 z-levels, seven dwarves with hunger, mood and trades, digging and brewing and strange moods, caravans, goblin ambushes, floods and magma. 250k of deterministic simulation in plain JavaScript behind a QML surface — no binary, no network, one tick costing a fraction of a millisecond on a 2014 MacBook, and the world keeps ticking while the panel is closed. English and Portuguese.
Shan Shui — An endless Chinese landscape scroll painted across the Omarchy desktop, stroke by stroke, in the theme's colors, built on LingDong-'s {Shan, Shui}*. The landscape is generated outside the shell at the lowest CPU priority, as a painting and a delay map per screen-wide strip, and on screen it is one shader comparing two numbers per pixel. At 12 fps it costs 2–3% of one core, paused or under a fullscreen window it costs nothing, and strips generated independently meet pixel for pixel.
All three are listed in the Omarchy plugin marketplace and install with
omarchy plugin add — zed.omahold ·
zed.ganja ·
zed.shanshui.
omarchy-zero — The Omarchy shell on a plain Arch install, without the official installer. Measured layer by layer on a 2018 laptop: the shell costs 149 packages over base, and the file manager alone costs 174. The installer runs as a dry run first, marks the 124 pending migrations done the way Omarchy's own finalizer does, and puts a guard in front of the 16 commands that would rewrite the machine. It builds on omarchy-guest, which runs the same shell on top of an existing Hyprland setup and checks every upstream ref against a written contract before it lands, then lets each update in gate by gate: 114 of their migrations skipped across two machines, each with the reason on file.
On itch.io/zedcave, and the two worth your time are playable in the browser:
Ciberteia — a cyberpunk text MMO in Godot exported to the web, with an authoritative backend on Cloudflare Workers. Server owns the world state, the client reconciles; the interesting part is what happens to a session when the connection does not cooperate.
Rinha — a real-time strategy game in the StarCraft lineage, also in the browser. One performance pass, measured in Firefox on a real GPU: the opening went from 1,565 draw calls a frame to 29, and a late game with 700 units from 36 to 57 fps (p95 30 to 55). Most of it was static scenery drawn one shape per call, grass rebuilt from script 30 times a second, and an AI target search that compared every unit against every other.
Web games in Godot with the art included, from USD 8,000 · bringing a Godot game to the browser, from USD 4,000 · playable ads, from USD 2,500 · a web build audit, USD 1,200 in 3 business days with no access to your source. Fixed scope, fixed price, agreed up front. What each one includes → · zednaked@gmail.com
Curitiba, Brazil · remote, any timezone · Godot · GDScript · C++ · Qt · Rust · Linux



