Moderní C++ · Multiplatformní systémy · Kompatibilní vrstvy

C++ softwarový inženýr budující multiplatformní systémy a kompatibilní vrstvy

Navrhuji a implementuji 3D nástroje, C++ frameworky, vrstvy platformní abstrakce a kompatibilní systémy reprodukující chování starších API bez původních závislostí. Moje práce zahrnuje 3D editor scén Mesh Craft, procedurální generátor Mesh World a vrstvy ve stylu XNA, DirectDraw a WinAPI nad SDL3, OpenGL a příbuznými technologiemi — ≈282 tisíc řádků C++ ve veřejných repozitářích.

Vývoj systémů v moderním C++20/23 Windows · Linux · WebAssembly · Android SDL3 · OpenGL · bgfx · CMake Kompatibilita API a platformní abstrakce

O mně

Moderní C++ systémová práce zaměřená na multiplatformní frameworky, kompatibilní vrstvy a přenositelnou architekturu ověřenou skutečnými aplikacemi.

C++ softwarový inženýr budující multiplatformní frameworky, kompatibilní vrstvy a nativní platformní abstrakce skrze veřejné projekty.

Zkušenosti: 9 let profesionálního vývoje softwaru
Typ úvazku: Zaměstnanec
Místo výkonu: Praha · onsite nebo remote
Hlavní stack: Moderní C++, Linux, CMake, Git, SDL3, OpenGL, SQLite, návrh systémů
Aktuální směřování: C++ systémové programování, kompatibilní vrstvy API, multiplatformní frameworky, nástroje a platformní abstrakce

Vytvářím nativní C++ frameworky, platformní vrstvy a kompatibilní systémy. Moje práce zahrnuje vrstvy API ve stylu XNA, DirectDraw a WinAPI implementované nad SDL3/OpenGL, které umožňují běh starších aplikací bez původních závislostí.

Mým vlajkovým projektem je Mesh Craft, C++23 3D editor scén pro formát MC3, spolu s Mesh World, procedurálním generátorem 3D světů postaveným na ekosystému Mesh Craft. Mou největší kódovou základnou je CNA, C++ implementace programovacího modelu ve stylu XNA použitá k portu skutečné C# / XNA aplikace do nativního C++ pro Windows, Linux, WebAssembly a Android. Vytvářím také Free Direct + Free API, kompatibilní vrstvy nad SDL3 pro starší DirectX 3 / WinAPI aplikace — s hratelnými WebAssembly demy na speedyblupi.com.

Hledám C++ pozice zaměřené na systémové programování, multiplatformní software, vývoj frameworků, nástroje, platformní abstrakci nebo vývoj kompatibilních vrstev.

  • Vývoj v moderním C++ přímo navázaný na rozsáhlé veřejné kódové základny a dlouhodobou implementaci.
  • Silná preference explicitního návrhu, udržovatelných vnitřků, modulárních hranic a znovupoužitelných abstrakcí.
  • Systémové myšlení: vlastnictví, životní cyklus, body rozšíření, správa prostředků a architektonická srozumitelnost.
  • Zájem o multiplatformní frameworky, kompatibilní vrstvy, backend platformy, nástroje a infrastrukturní systémy.
Česká zemědělská univerzita v Praze
Bc. v oboru informatika (2014–2017)
Střední průmyslová škola Hořovice
Informatika v ekonomice (2008–2012)
  • Dlouhodobé samostudium C++ postavené na knihách, implementaci a technických poznámkách.
  • Aktuální oblasti studia: moderní C++, architektura runtime, vykreslovací infrastruktura, návrh enginů a nástrojů, základy souběžnosti a návrh znovupoužitelných knihoven.
  • Model učení: teorie z knih kombinovaná se skutečnou implementací ve veřejných repozitářích.

Vybrané knihy z mého dlouhodobého studia C++ a softwarové architektury.

Vybrané knihy
  • Effective Modern C++
  • C++ Software Design
  • API Design for C++
  • C++ Concurrency in Action
  • C++ High Performance
  • The C++ Programming Language
  • C++ Templates
  • Large-Scale C++ Software Design
  • Embracing Modern C++ Safely
  • C++ Core Guidelines Explained

Technologie

Moderní C++ na prvním místě, s multiplatformní architekturou, kompatibilním inženýrstvím, systémovým myšlením a návrhem frameworků viditelnými ve skutečném kódu.

Domény

Moderní C++
Multiplatformní systémy
Kompatibilní vrstvy
Návrh frameworků
Vývoj nástrojů

C++

C++20/23
Návrh API
Vlastnictví a životní cyklus
Modulární architektura
Udržovatelný kód

Systémy

Základy souběžnosti
Vykreslovací infrastruktura
Backend platformy
Multiplatformní nativní vývoj
Povědomí o výkonu

Nástroje

CMake
Git
Linux
GCC / Clang
Bash

Data a úložiště

SQLite
Návrh schémat
Migrace
REST API
Praktická perzistence

Inženýrský styl

Čitelná API
Explicitní návrh
Architektura na prvním místě
Testovací myšlení
Dlouhodobá udržovatelnost

Projekty

Veřejné projekty ukazující kompatibilní vrstvy, multiplatformní frameworky a návrh C++ systémů ověřený na skutečných aplikacích. Živé WebAssembly buildy a videa jsou uvedeny jako technické ověřovací odkazy u příslušných karet projektů.

EditorMesh Craft screenshot

Mesh Craft

3D editor scén a modelovací aplikace pro formát MC3

GitHub: github.com/openeggbert/mesh-craft · Web: meshcraft3d.com · meshcraft.openeggbert.com · Stack: C++23, CNA, sharp-runtime, Dear ImGui · Nativní formát .mc3.xml kompilovaný do glTF/GLB · ≈16,5k LOC

  • 3D modelář s primitivy (kvádr, koule, válec, kužel, rovina, torus, kapsle, disk), CSG booleovskými operacemi (sjednocení, rozdíl, průnik přes Manifold), materiály, PBR texturami a hierarchickými skupinami.
  • Podpora animací: pozice, rotace, měřítko, viditelnost, barva materiálu a deformační kanály; znovupoužitelné definice prefabů/instancí, vrstvy, tagy, kolizní hinty, mlha a nastavení prostředí.
  • Nativní formát .mc3.xml: lidsky čitelný editovatelný XML zdroj kompilovaný do glTF/GLB nebo binárního MCB přiloženými CLI nástroji (mc3togltf, mc3tomcb).
  • Postaveno na CNA + sharp-runtime; skutečná editorová aplikace prověřující celý C++ engine stack.

Stav: Aktivně vyvíjeno — funguje kompletní XML load/save roundtrip, všechna primitiva, CSG booleany, extruze, keyframe animace a export do glTF/GLB.

MESH
WORLD

Mesh World

Procedurální generátor 3D světů a průzkumník v reálném čase postavený na ekosystému Mesh Craft

GitHub: github.com/openeggbert/mesh-world · Web: meshworld3d.com · meshworld.openeggbert.com · Stack: C++23, Mesh Craft, CNA, sol2/Lua 5.4, SQLite · ≈8,6k LOC

  • Generuje nekonečné 3D městské a krajinné chunky z jednoduché JSON konfigurace — 20 C++ generátorů chunků a 17 Lua generátorů objektů pokrývajících parky, silnice, budovy a terén.
  • Skriptovací sandbox Lua (sol2 + Lua 5.4) pro modding obsahu: nový generátor přidáte vložením Lua souboru do adresáře generátorů; automaticky se načte při startu.
  • SQLite balíčky obsahu: registr taxonomií, registr materiálů a sady generátorů zabalené do přenosných .sqlite souborů pro distribuci.
  • 3D průzkumník v reálném čase (MeshWorldApp): streamuje a vykresluje chunky kolem hráče pomocí Mesh Craft + CNA (SDL3/OpenGL).

Stav: 119 procházejících testů, nula varování, CI při každém pushi. Základní pipeline generování chunků a Lua skriptování hotové.

MainCNA
SDL3

CNA

Multiplatformní C++ framework implementující API ve stylu XNA

GitHub: github.com/openeggbert/cna · Web: libcna.com · cna.openeggbert.com · Stack: C++20, SDL3, CMake, OpenGL/easy-gl, bgfx, Windows/Linux/WebAssembly/Android · ≈61,5k LOC

  • API ve stylu XNA v nativním C++ pod Microsoft::Xna::Framework.
  • Vlastní multiplatformní framework s vykreslováním, vstupem, zvukem, životním cyklem prostředků a abstrakcí backendů.
  • Abstrakce backendů nad SDL3, OpenGL/easy-gl a bgfx.
  • Nativní C++/SDL3 implementace nahrazující závislosti na XNA / MonoGame.
  • Použito k portu skutečné C# / XNA aplikace do C++.
  • Stejná C++ kódová základna se sestavuje pro desktop, WebAssembly i Android.
XNA
SAMPLES

CNA Samples

C++ porty kolekce ukázek Microsoft XNA Game Studio 4.0 běžící na CNA

GitHub: github.com/openeggbert/cna-samples · Stack: C++23, CNA, sharp-runtime, CMake · ≈32,3k LOC

  • C++ porty oficiálních ukázek Microsoft XNA Game Studio 4.0 (Platformer, HoneycombRush, NinjAcademy, karetní hry a další) běžící na frameworku CNA.
  • Průběžně rostoucí testovací sada kompatibility prokazující pokrytí API CNA na reálném kódu z éry XNA.

Stav: Migrace probíhá · Webová dema již brzy.

CPP
.NET

Sharp Runtime

C++ reimplementace široké podmnožiny běhového prostředí C#/.NET — API System::* v nativním C++

GitHub: github.com/openeggbert/sharp-runtime · Web: sharpruntime.openeggbert.com · Stack: C++20/23, CMake · Široké pokrytí .NET: jmenné prostory System::*, události, delegáti, výjimky, kolekce · ≈36,4k LOC

  • Implementuje širokou podmnožinu typů .NET/C# pod jmennými prostory System::* v idiomatickém moderním C++ — povědomý návrh API pro C# vývojáře.
  • Pokrývá výjimky, události, delegáty, kolekce a další systémové stavební bloky; stav implementace se sleduje po třídách (Todo / Stub / Partial / Implemented / Verified).
  • Základová vrstva pro CNA, Mesh Craft, Mesh World a Galaxy Eggbert; není to CLR — praktická nativní podmnožina navržená pro skutečné multiplatformní použití.
DX3
CPP

Free Direct

Kompatibilní vrstva DirectX 3 / DirectDraw implementovaná v moderním C++

GitHub: github.com/openeggbert/free-direct · Web: freedirect.openeggbert.com · Stack: C++20, SDL3, podmnožina DirectDraw, podmnožina DirectSound · ≈3,2k LOC

  • Reimplementuje úzkou podmnožinu DirectDraw / DirectSound nad SDL3.
  • Implementuje CPU model surfaces, blitting, color keys, podporu palet, zamykání a prezentaci.
  • Navrženo jako náhrada původních závislostí na DirectX 3 SDK ve vybraných starších aplikacích.
  • Používá se společně s Free API pro kompatibilitu vybraných starších DirectX 3 / WinAPI aplikací.
  • Určeno k reprodukci chování starší grafiky bez původních SDK závislostí.
WIN
API

Free API

Kompatibilní vrstva ve stylu WinAPI implementovaná v C++

GitHub: github.com/openeggbert/free-api · Web: freeapi.openeggbert.com · Stack: C++20, SDL3, hlavičky ve stylu WinAPI, message loop, časovače, MCI/MIDI · ≈4,1k LOC

  • Implementuje okna, message loop, překlad vstupu, časovače a vybraná multimediální API ve stylu WinAPI.
  • Implementace nad SDL3 pro multiplatformní běh bez Microsoft Windows.
  • Spolupracuje s Free Direct jako systémová/běhová strana kompatibility starších aplikací.
  • Spolupracuje s Free Direct jako systémová/platformní strana kompatibility starších aplikací.
  • Pokrývá okna, vstup, časovače, chování message loop a vybraná multimediální API.
FREE
EGGBERT

Free Eggbert

Reverzně inženýrovaná rekonstrukce hry Speedy Eggbert 2, přenositelná díky SDL3

GitHub: github.com/openeggbert/free-eggbert · Web: freeeggbert.openeggbert.com · Stack: C++, Free API, Free Direct, SDL3, Emscripten · ≈28,1k LOC

  • Projekt zachování herního dědictví: sestavitelná rekonstrukce hry Speedy Eggbert 2 (1998–2001) reverzně inženýrovaná z původních binárek (Ghidra, IDA, ILSpy) a porovnávaná s oficiálními zdrojovými kódy Planet Blupi.
  • Běží na Free API + Free Direct místo Windows/DirectX 3 — přenositelné na Linux, web a dál.
  • Webový build v Emscriptenu s ukládáním pozic do IndexedDB.

Stav: Rozpracováno — částečně hratelné.

MOBILE
EGGBERT

Mobile Eggbert

C++ port hry Speedy Blupi (Windows Phone XNA, 2013) běžící na CNA

GitHub: github.com/openeggbert/mobile-eggbert · Web: mobileeggbert.openeggbert.com · Stack: C++, CNA, SDL3, Emscripten · ≈20,5k LOC

  • Migrační řetězec: původní C# XNA 4.0 → dekompilace ILSpy → MonoGame → nativní C++ na CNA.
  • Hratelné na desktopu i v prohlížeči; webový build ukládá pozice do IndexedDB.
  • Kanonická hratelná C++ verze a referenční implementace pro Galaxy Eggbert.
GALAXY
EGGBERT

Galaxy Eggbert

3D remake hry Speedy Blupi postavený na engine stacku CNA

GitHub: github.com/openeggbert/galaxy-eggbert · Web: galaxyeggbert.openeggbert.com · Stack: C++23, CNA, SDL3, easy-gl, bgfx · Cíle: Linux, Windows, WebAssembly, Android · ≈5,4k LOC

  • 3D hra postavená na celém stacku CNA — ověřuje framework jako skutečný multiplatformní herní runtime.
  • Z jedné C++ kódové základny cílí na Linux, Windows, WebAssembly a Android; více vykreslovacích backendů: SDL_RENDERER, easy-gl, bgfx.
  • Vlastní formát světů a pipeline herního obsahu.
EASY
GL

easy-gl

Na toolkitu nezávislý C++20 OpenGL/OpenGL ES wrapper používaný CNA jako grafický backend

GitHub: github.com/openeggbert/easy-gl · Web: easygl.openeggbert.com · Stack: C++20, OpenGL/OpenGL ES, CMake · Bez vazby na okenní toolkit; GL kontext vlastní hostitel · ≈3,6k LOC

  • Na toolkitu nezávislý wrapper nad OpenGL a OpenGL ES — knihovna nevytváří okna ani kontext.
  • Hostitelská aplikace vlastní okno, GL kontext a swap; easy-gl vlastní veškerou interakci s OpenGL.
  • Postaveno nad meta-gl (nízkoúrovňový typově bezpečný loader funkcí); CNA jej používá jako svůj OpenGL vykreslovací backend.
EASY
3D

easy-3d

Malá pomocná knihovna v C++23 vedle CNA pro lehké 3D projekty

GitHub: github.com/openeggbert/easy-3d · Web: easy3d.openeggbert.com · Stack: C++23, CNA, CMake · ≈0,7k LOC

  • Kamery (Camera3D, OrbitCamera, FollowCamera), atlas textur, dávkování billboardů a krychlí, debug draw.
  • Záměrně pomocná knihovna vedle CNA — ne herní engine; žádné ECS, fyzika ani síťování.
  • První konkrétní uživatel: Galaxy Eggbert.
META
GL

meta-gl

Nízkoúrovňový, typově bezpečný loader a wrapper funkcí OpenGL ES 2.0+ v C++23

GitHub: github.com/openeggbert/meta-gl · Web: metagl.openeggbert.com · Stack: C++23, OpenGL ES 2.0+, CMake · Základová vrstva používaná easy-gl · ≈7,8k LOC

  • Běhové načítání OpenGL funkcí přes hostitelem dodaný callback GetProcAddress — žádná okna, žádné vytváření kontextu.
  • Typově bezpečné enum class obálky všech OpenGL konstant (cíle bufferů, typy shaderů, formáty textur atd.).
  • Tenké wrapper funkce ve jmenném prostoru metagl; základová vrstva pro easy-gl a širší vykreslovací stack CNA.
LEGACY
C#

Mobile Eggbert Legacy

Archiv starší C#/MonoGame verze Mobile Eggbert (Speedy Blupi)

GitHub: github.com/openeggbert/mobile-eggbert-legacy · Stack: C#, XNA 4.0, MonoGame, .NET

  • Zachovaná C#/MonoGame fáze migrace Mobile Eggbert: zdrojové kódy z Windows Phone XNA 4.0 dekompilované nástrojem ILSpy.
  • Související repozitáře sloučené přes git subtree pro historické zachování.
LIBGDX
JAVA

Mobile Eggbert LibGDX

Java/LibGDX port hry Speedy Blupi (Mobile Eggbert)

GitHub: github.com/openeggbert/mobile-eggbert-libgdx · Stack: Java, LibGDX, Gradle

  • Pokračuje v linii portů (C# XNA → MonoGame → C++/CNA → Java/LibGDX) s malým kompatibilním můstkem XNA/.NET v core modulu.
  • Cíle: desktop (LWJGL3), Android a HTML.
SPRITE
UTILS

Sprite Utils

Malá C++23 knihovna utilit a assetů pro sprity

GitHub: github.com/openeggbert/sprite-utils · Stack: C++23, CMake · ≈1,2k LOC

  • Utility a assety pro sprity (číselné spritesheety, webová komponenta) podporující herní projekty.
HIVE

Hive

C++ univerzální datový server a backend platforma

GitHub: github.com/robertvokac/hive · Web: hive.robertvokac.com · Stack: C++23, Crow, SQLite, nlohmann/json, GoogleTest · Frontend: Vanilla JS · ≈45,0k LOC

  • Metadaty řízená architektura: jedna definice modelu řídí úložiště, automaticky generované REST API (/api/v1/<model>), validace a dynamické Vanilla JS frontend UI.
  • Vlastní model/ORM vrstva se silně typovanými entitami, metadaty sloupců, abstrakcí repozitářů a transakčními kontrolami integrity migrací (kontrolní součty / řetězené hashe).
  • Systém pluginů: pluginy přinášejí modely, migrace, validátory, triggery (Before/After/InsteadOf), cron úlohy a vlastní SQL dotazy — doménové chování zůstává lokální v každém pluginu.
  • Životní cyklus tokenové autentizace: přihlášení, odhlášení, refresh token, registrace, změna hesla; hashované ukládání tokenů s revokací a sledováním sezení.
  • Doménové pluginy: Slipbox (správa znalostí — poznámky, mapy, odkazy, tagy, HTML export), Repetition (spaced repetition — sezení, opakování, plánování), Dictionary (slovník — pojmy, aliasy, fulltextové vyhledávání).
  • Cron plánovač se synchronizací registru úloh a perzistentní historií běhů; pipeline triggerů a událostmi řízené chování pro každou CRUD operaci.
BIT
BACKUP

bit-backup

Nástroj příkazové řádky pro dlouhodobou integritu dat a detekci bit rotu

GitHub: github.com/robertvokac/bit-backup · Stack: C++23, SQLite, OpenSSL · ≈3,1k LOC

  • Ukládá a ověřuje SHA-512 kontrolní součty v lokální SQLite databázi a odhaluje tak tichou degradaci dat v čase.
  • Zaměřeno na spolehlivost, lokální kontrolu a praktickou dlouhodobou integritu dat.
LEXI
CON

Lexicon

Desktopový znalostní slovník pro strukturované učení a technické poznámky

GitHub: github.com/robertvokac/lexicon · Web: lexicon.robertvokac.com · Stack: C++23, Qt Widgets, SQLite · ≈2,8k LOC

  • Local-first desktopový nástroj pro mapy, pojmy, metadata, zpětné odkazy a technické poznámky v Markdownu.
  • Postaveno kolem praktického vyhledávání, filtrování, stránkování a strukturovaných učebních postupů.
Zázemí v produkčním softwaruPraha · onsite nebo remote

Praxe v produkčním softwaru

9 let profesionálních zkušeností s vývojem softwaru v dlouhodobě provozovaných produkčních systémech. Veřejné portfolio se soustředí na současné C++ směřování: kompatibilní vrstvy, multiplatformní frameworky a nativní platformní práci.

  • Práce na dlouhodobě provozovaných produkčních backend systémech s důrazem na udržovatelnost a stabilitu.
  • Aplikace principů návrhu systémů ve velkých, vyvíjejících se kódových základnách.
  • Návrh a optimalizace databázových struktur a datových toků.
  • Zkušenosti s reálnými omezeními, laděním a produkčními problémy.

Počty řádků (LOC) změřeny nástrojem cloc (červenec 2026): zdrojové soubory a hlavičky C++ (.cpp/.hpp/.h), pouze adresáře src/ a include/, bez testů, vendorovaného kódu a kódu třetích stran. Celkem v portfoliu: ≈282 tisíc řádků C++.