Harpreet Johal

Game Programmer

Go Back

Fly Me Hard

About

Fly Me Hard is a fast-paced, physics-driven action game where you play as a jetpack-wielding cowboy fighting through waves of goblins, skeletons, and magical foes across medieval landscapes. As the Sole Developer, I built core mechanics such as active ragdoll physics, dynamic enemy AI, and more.

Project Info

Play Game

Introduction

This project began as a personal learning experiment—I just wanted to get a better grasp of physics concepts in Unity. But as development progressed, I stumbled upon a pretty unique mechanic that felt like it could evolve into a full-fledged game.

As a solo developer, I handled everything from programming and design to art direction. This gave me a deeper appreciation for the challenges faced in each area—especially how tough design and artistic decisions can be. The experience gave me a holistic understanding of game production, which later helped me collaborate and communicate more effectively with my team at work.

To top it off, the game was picked up by CrazyGames publishers, and my inbox was soon filled with feedback and love from players—which was an incredibly rewarding moment.

Active ragdoll

Games like human fall flat, Gang beasts uses this mechanic to create hilarious, unpredictable physics based moments and I wanted kind of same fun interative experience for my game. Characters use Configurable Joints between each bone, with proper spring and damping settings after lot of trail to follow animator pose but with flexible physics based movement.

Multi-Scene Workflow System

To improve loading efficiency and make the development pipeline smoother, I implemented a multi-scene workflow in my game. Instead of loading entire levels as a single scene, I broke the game into modular scene groups:

Using this system, I built a custom Scene Group Loader Tool that allows quick switching between levels directly in the editor. This gave me:

  • Faster iteration – Test specific levels without restarting the whole game
  • Better memory management – Only active scenes are kept in memory
  • Scalable structure – Easy to add new levels and features without breaking core systems
  • Smaller scene sizes – Scenes are split by responsibility, improving load speed

Grid Based Optimization

In some levels, there are 15–25 enemies, each having multiple rigidbodies and joints with IK animations, causing performance bottlenecks—especially on the web platform.

To solve this, I built a custom grid-based optimization system that automatically stores playable objects based on their position in the grid. Each cell contains playable objects (enemies, props, etc.) and they are only activated when the player enters the cell, as shown in the picture above.

Red cells in the grid represent unvisited areas (objects are inactive), and green areas represent visited ones (objects are active).

Others

There are lot of others systems as well made to polish and finish the game

  • Boss Level
  • Physics based AIs enemies
  • Ik animations
  • Revive System
  • Slow motion effects
  • Score chasing and rank system
  • Game Analytics
  • And lot more do play web version above to know more