Six games · one trail · 2026

Calm games. Serious systems underneath.

I'm issam, a software engineer from Pakistan who makes games. Everything on this page has two layers. Move your cursor over anythingHold a finger on any picture to look under the snow and see the systems, numbers and tools behind it.

Prefer to see everything at once? Turn on X-ray at the top.

The trail

Six games, in the order I built them. Each one taught me something the next one used. Click a game's name for the whole story, or move your cursor over its trailer to see how it works underneath.

On Google Play (open testing)

The old handheld water toy, rebuilt in 3D: blow bubbles to float rings onto pegs.

Measure it, don't eyeball itTwo physics bugs only showed up once I measured. It was also my first trip through Play Store review.
Tilt code → Decant"Toy first, puzzle second" → Boyle
Trailer · 16 s · a level, then Survival, Timed and Endless
Release scheduled

A puzzle game where your phone is the glass: you pour liquids by turning it.

Let a solver check the levelsA program plays every level by itself and finds the dead ends before a player does.
The solver idea → Boyle
Trailer · 16 s · three levels, played by tilting
World 1 ready to test

Air-pressure puzzles: you never touch the ball, you move it with air.

Build the tools before the levelsThe level checker came first. Then I made all 12 levels of World 1 with it.
Every sound approved by ear → Fresh PowderEvery sound approved by ear → Red DotPlay World 1
Trailer · 17 s · five World 1 levels
Game on hold · netcode finished

An online fighting game for 2 to 4 players, with a game server I wrote and host.

Hide the lagYour moves feel instant, and every test match ended in the server's exact state, even at a quarter-second of lag.
Same inputs, same result → Fresh PowderMy own server and deploy scripts → Fresh Powder
Trailer · 18 s · a real four-player match at 270 ms of lag
Playable right here

A calm sledding game where every run packs down the snow for the next rider.

One simulation, in two placesThe server re-runs every run with the game's own code before it counts. That's the Neon Brawlers idea again.
Build setup → Red DotPlay today's hill
Trailer · 17 s · five hills, played by the game's own bot
Ready to test

A laser puzzle with a cat in it: bend the laser with mirrors so the cat chases the dot into a box.

Work it out live, then test with a fingerStored answers broke a quarter of a degree off, so the laser is traced live, and aiming snaps for real fingers.
Trailer · 14 s · three rooms, each ending in the box
CASE STUDY

The netcode behind Neon Brawlers

0 frames of delay on your own moves. 26 of 26 test matches ended in the server's exact state. Look under this band for the timing.

Read how it works
Me, standing in the snow with mountains behind

By day, software that moves money

I work remotely as a software engineer, writing smart contracts and the Django and Next.js apps around them. Before that I built a self-driving rover that placed third at GIKI. The games are where it all comes together.

Off the trail: robots and drones

Things I build for fun, away from games. Most come with CAD, print files and a simulation that starts with one command. Move your cursor over a picture to see inside it.

  • It put the LiDAR and camera data together to see the road around it.
  • The steering model was shrunk until it ran on the Nano itself.
  • The steering controller was tuned to the delay I measured, not to a guess.
  • It placed third out of more than 100 final-year projects.
Final-year project · third place at GIKILevel 4/5 autonomous roverA rover that drove itself on a Jetson Nano, with LiDAR and a camera. It's where the rest of this started.
CAD render
Built and checked in simulationNav2 DeckTwo printed parts turn a $30 chassis into a robot that runs ROS 2 navigation, with a URDF, a Gazebo world and a launch file.
PX4 and Gazebo simulation
On pauseTiltrotor VTOLA three-rotor drone that takes off straight up and flies like a plane. It flies in the PX4 simulator first.
  • The arm had six printable wrist camera mounts, and none of them worked in ROS 2.
  • I found where the camera sits from the official CAD, using the bolt holes, instead of by eye.
  • One command opens the arm in Gazebo, runs a sweep and streams the wrist camera.
Finished and publishedLeRobot wrist cameraA ROS 2 simulation for a wrist camera on the SO-101 robot arm, so the arm can see what it grabs.

End of the trail, for now