Skip to content
Realtime & Systems

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.

T-Rex
Triceratops
Brachiosaurus

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.

Velociraptor
Stegosaurus
Ankylosaurus

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 voxel T-Rex, rendered from the Blender toolchain
The voxel Triceratops: green, squat, a bone-white frill of blocks around its head and three horns
The voxel Brachiosaurus: green, a long neck curving up to a small head, tail counterweighting it
The voxel Velociraptor: mottled green, low and level, an amber eye and a mouth of white teeth
The voxel Stegosaurus: green, a double row of rust-red plates along its back, spikes on the tail
The voxel Ankylosaurus: sand-brown and armoured, pale plates over its back and a grey club on the tail
The voxel Parasaurolophus: green, upright on two legs, a long crest sweeping back off its skull
The voxel Spinosaurus: slate blue with a red sail on its back and a long crocodilian jaw

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.

All the levels of a league laid out as grey blockouts, seen from above
A blockout level from the runner's view: three lanes, red obstacles, a coin line
The descent into the underground levels, in blockout
Concept sheet for League 1, Primeval Valley: the dinosaur on a jungle track with the game's menu around it
Ankylosaurus on Primeval Valley, a frame from the capture
Ankylosaurus on Ancient Wilds, a frame from the capture