Game development · Godot · Defold · Solar 2D · Panda 3D · Stride

I ship the cross-engine asset pipelines that turn Python into playable games and AI training data.

A decade across Godot, Defold, Solar 2D, Panda 3D and Stride (Xenko). Most of my projects are generated, because project files you can diff are projects you can trust in CI.

Isometric voxel scene rendered from the shared 12x12 world used across all five engine projects
Shared voxel world — rendered live from render_posters.py
Godot 4 Defold Solar 2D Panda 3D Stride (Xenko) GDScript Lua C# / .NET 8 Python glTF .egg YAML .sdscene

Selected projects

Five engine projects generated from a single Python pipeline. Same 12×12 voxel scene across Godot, Panda 3D and Stride so AI captures line up; shared 24-creature sprite atlas across Godot, Defold and Solar 2D.

24-creature sprite atlas — 6 columns by 4 rows of pixel-art creatures with varied colors and gaze directions

Godot 4 · GDScript · glTF

Godot 4 procedural asset pipeline

A valid project.godot plus main.tscn, a GDScript voxel builder that produces a deterministic 12×12 world at runtime, and an AssetExporter autoload that writes glTF when Godot is launched headless — exactly the path AI teams need for dataset captures.

Godot 4.2 · Forward Plus · GDScript · 24-sprite shared atlas · headless glTF export

Read the case study →
24 by 14 tilemap with grass, paths, trees and a water pond, used as the Solar 2D scene background

Solar 2D · Lua · composer

Solar 2D scene generator

Pure-Lua Solar 2D project: main.lua, config.lua, build.settings, a composer scene with the shared atlas and tilemap, a deterministic CPU particle emitter, and a headless capture module that writes behavior.csv per tick.

Solar 2D · composer · deterministic LCG particles · iOS / Android / HTML5 ready

Read the case study →

Defold · Lua · text-format

Defold atlas + behavior capture

game.project + main.collection + creatures.atlas with 24 animations, plus a Lua hero.script that writes per-frame state to CSV when behavior.capture=1. All text-format — clean PR diffs.

Case study →

Panda 3D · Python · .egg

Panda 3D scene + headless capture

178-voxel scene.egg generated as plain text, a ShowBase preview app, and an offscreen framebuffer capture script that renders 120 frames to PNG without a display server — ideal for CV dataset generation in CI.

Case study →

Stride (Xenko) · C# · .NET 8

Stride .NET asset pipeline

.sln + .csproj + .sdpkg + YAML .sdscene, plus a C# DataCaptureComponent : SyncScript that emits per-entity JSONL each frame. Same 12×12 voxel scene as the Godot and Panda projects.

Case study →

Code you can actually run

Every project file on this page is regenerated by GitHub Actions on every push — never pre-baked. Clone the repo, run one script, get bit-identical Godot, Defold, Solar 2D, Panda 3D and Stride projects.

Godot 4 — voxel world + glTF

python scripts/python/build_godot_project.py

Emits project.godot, main.tscn, VoxelScene.gd, AssetExporter.gd, the shared atlas PNG, and a CSV sprite manifest.

Defold — atlas + behavior

python scripts/python/build_defold_project.py

Writes game.project, main.collection, hero.script, creatures.atlas with 24 animations, and a headless behavior capture driver.

Solar 2D — scene + particles

python scripts/python/build_solar2d_project.py

main.lua, config.lua, build.settings, scene.lua, particles.lua, capture.lua, plus three PNGs generated into assets/.

Panda 3D — .egg + offscreen capture

python scripts/python/build_panda3d_project.py

178-voxel scene.egg, Config.prc, runnable main.py, and an offscreen headless_capture.py for CV datasets.

Stride — .NET project + C# capture

python scripts/python/build_stride_project.py

Solution, .csproj, .sdpkg, YAML .sdscene, plus DatasetSandboxGame.cs and DataCaptureComponent.cs.

Rebuild the whole pipeline

python scripts/python/run_all.py

Five engine projects + five posters in one shot. The same script CI runs on every push.

1200 particles bursting in teal, amber and green clouds on an ink background
Deterministic particle burst — 1,200 particles, seeded LCG so CI runs are bit-identical across engines.

Stack

Godot 4

Forward Plus rendering, GDScript voxel builders, autoload singletons, headless glTF export. Text .tscn/.tres so the whole project lives in git.

Defold

Text-format .collection / .atlas, Lua controllers, bob headless builds, shared atlas pipelines with behavior capture to CSV.

Solar 2D

Pure Lua + composer scenes, deterministic particle systems, iOS / Android / HTML5 export, headless behavior capture gated on an env var.

Panda 3D

Hand-written .egg scene graphs, ShowBase apps, offscreen framebuffer capture for CV datasets without a display server.

Stride (Xenko)

.NET 8 + C#, YAML .sdscene and .sdpkg, SyncScript components, JSONL per-frame capture for ML pipelines.

Code & CI

Python generators (numpy, Pillow, matplotlib, PyYAML), Git, GitHub Actions. Every project file, sprite and scene is regenerated on push.

Capability matrix of Godot 4, Defold, Solar 2D, Panda 3D and Stride across seven criteria
Open-source game engines — what each is strong at.

About

I'm a senior game-development specialist shipping cross-engine game and interactive assets — most recently focused on data-generation pipelines for AI research programs. I care about reproducible project files (diff-first, editor-second), deterministic captures, and scripts that produce the same game a year from now.

Open to remote and contract engagements in game development, tools engineering, or research-facing interactive media. The repository linked below is the living portfolio companion to my CV.