Game Dev · Python · 3D
Desktop Games
Three playable native desktop games written from scratch in Python — from a 2D vector-physics arcade shooter to a first-person 3D explorer with its own Blender-authored 3D assets, all running on Linux.
Overview
A trio of native games, each built without a game engine. The 2D title runs on a hand-written vector-physics loop; the two 3D titles share a custom asset pipeline I wrote — models are generated procedurally in Blender, exported to glTF, and rendered live in raylib. Each game ships as a trusted desktop launcher with a generated icon, plus a headless self-test so it can be verified in CI without a display.
The games
🪨 Etheric Asteroids
A 2D vector-physics asteroids clone in pygame-ce — momentum, wrap-around space, splitting rocks, and a hand-tuned game loop.
🚀 Etheric Drift
A 3D on-rails flyer: dodge rocks and grab crystals through models authored in Blender and rendered in raylib.
🌲 Etheric Grove
A first-person 3D explorer-shooter — mouse-look, WASD, sprint and jump around a ring-bounded clearing, collect crystals, and fight chasing spectres.
How it works
- Assets: 3D props and enemies are generated procedurally in Blender 5 via
bpy/bmeshand exported to glTF — no hand-modelling. - Runtime: modern Blender has no game engine, so the games run in raylib (
pyray) with cylinder collision, projectile combat, and a HUD. - 2D engine: Etheric Asteroids is a self-contained pygame loop with vector physics and NumPy maths.
- Ship it: each game has a generated icon and a trusted GNOME
.desktoplauncher, so they open from the app grid like any installed app. - Verify it: a headless
--selftestmode (window-hidden raylib / dummy-video pygame) lets each game boot and check itself with no display.