Skip to content
View zednaked's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report zednaked

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
zednaked/README.md

Thiago Gonçalves

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.

zednaked@gmail.com · LinkedIn

Godot

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.

Systems

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

Nirbija

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.

Shan Shui painting across the desktop

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.

Games

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.


Work with me

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

Pinned Loading

  1. Nirbija Nirbija Public

    Linux plugin host and mixer in the spirit of AUM — LV2, CLAP and VST3 in the same slot over JACK or PipeWire, with native plugin editors embedded. C++20 and Qt6.

    C++ 3

  2. godot-web-build-budget godot-web-build-budget Public

    Sixteen production Godot web builds cut 23% to 76%, set by how much of each pack was lossless art; the first measured again a month later: 3% left. What the .pck really holds, why VRAM compression …

    1

  3. godot-i18n-that-holds-up godot-i18n-that-holds-up Public

    Shipping a Godot 4 game in 12 locales: the layout-direction gate, font fallback, measured text expansion, and the currency contract. Two zero-dependency tools.

    JavaScript

  4. omarchy-zero omarchy-zero Public

    The Omarchy shell on a plain Arch install: no official installer, only the packages the shell calls

    Shell 3

  5. Ganja-TUI Ganja-TUI Public

    Terminal cannabis grow simulation in Rust — 35 strains with real genetics, seven growth stages, stress that follows the plant to harvest.

    Rust 1

  6. omarchy-shanshui omarchy-shanshui Public

    An endless Chinese landscape scroll painted on your Omarchy desktop, stroke by stroke, in your theme's colors. Built on LingDong-'s {Shan, Shui}*.

    JavaScript 2