Dino Run
A three-lane endless runner with eight voxel dinosaurs: a Blender toolchain feeding Unity 6, for mobile.
A three-lane endless runner for mobile and a personal project from the first sketch to the build. The player is a voxel dinosaur: swipe left and right to change lane, up to jump, down to slide. Everything the game asks resolves to one of those four, and the design holds to that.
The eight species — T-Rex, Triceratops, Brachiosaurus, Velociraptor, Stegosaurus, Ankylosaurus, Parasaurolophus and Spinosaurus — start as script-generated voxel bodies, are finished by hand in Blender, then rigged and animated by a Python toolchain, eight clips each, and wired into Unity by editor factories. A change to the rig is a script run, not an afternoon.
Levels are authored as blockouts and validated automatically: every pattern is sampled along the track and rejected if any slice leaves the player no possible answer. Difficulty comes from speed and density, never from an unfair arrangement.
- By
- Özgür Kahraman — 3D & Immersive Artist
- Year
- 2026 — in development
- Role
- Personal project — design, 3D, code
- Tools
- Unity 6
- Blender
- Python
- C#
League 1
Primeval Valley, three ways
The first league, recorded from the build with three of the species in turn: a red-earth trail through a voxel jungle, stone gates, fossil obstacles and the coins between them. Each clip is eighteen seconds of the game playing itself.
League 2
Ancient Wilds
The second league opens with a descent: every course drops a flight of stairs into buried ruins, and the camera leans into it. Three more of the runners, the same eighteen seconds.
The roster
Eight species, one toolchain
Each dinosaur is built by the same scripts — a generated voxel body cleaned up by hand, a rig of eighteen to twenty bones, eight animation clips, a baked palette atlas — so the roster stays consistent and any of them can be rebuilt in minutes.








The toolchain
A hundred levels as blockouts
Levels are laid out grey first — lanes, obstacles, pickups — generated and previewed in Blender before any art goes on. A validator samples every pattern along the track and refuses one the player could not survive.





