How We Created Realistic Duck Flight for BULT Hunting Simulator (And Why It All Started With Walking Around a Table)

Hey everyone! We’re the development team behind BULT - a realistic waterfowl hunting simulator. This is a game where everything is crafted by hunters with real-life experience, from the sounds and behavior of ducks to bullet physics and animal reactions to the player.

Our goal is to deliver an authentic hunting experience in nature: with dynamic weather, realistic ballistics, and most importantly, living, unpredictable birds.

1008(1)

We want to share how we created the duck flight system - and why a simple walk around a table one day helped us solve the most complex navigation challenge.

When “Invisible Rails” Don’t Work

When we first started, we researched how flight is typically implemented in other games. Most commonly, one of two approaches is used:

  • “Rails” - Birds move along pre-defined, scripted paths. It’s convenient: there’s no risk of crashing into trees or cliffs.

  • Straight-Line Flight - Birds ascend to a safe altitude, fly straight, and land.

Sometimes these methods are combined, often by simply disabling collisions. Yes, it’s simple and safe. But it’s also predictable, boring, and unrealistic. Replayability suffers. The player quickly realizes the world is artificial. For instance, when a duck suddenly flies straight through a tree, the magic of the hunting atmosphere is instantly broken.

Unreal Engine and the Lack of Navigation for Flying Creatures

This whole flight journey in BULT began when we hit a fundamental problem in Unreal Engine: there’s simply no ready-made navigation system for flying objects out of the box. There is one for ground-based characters, for vehicles - but not for birds.

So, we started experimenting. Our first prototype worked like this: a duck would cast an invisible line forward (a raycast) to check for obstacles. If something was in the way, it would gain altitude. Later, we added checks to the left and right, allowing the duck to dodge.

It worked… but it looked strange. The birds seemed to move blindly, like a person tapping a cane. The concept was functional, but it wasn’t alive.

“Wait, But We Plan Our Route in Advance!”

The breakthrough moment happened completely by chance. I remember we were sitting with the team late one evening. I was getting up from my chair to walk to the door, when I suddenly realized something simple: “Hold on, I visualize in advance how I’ll walk around the table, where I’ll turn, and where I’ll end up. Why couldn’t a duck do the same?”

And so, the idea for a predictive navigation algorithm was born.

How the “Smart” Duck Works

Now, every duck in BULT doesn’t just react to obstacles; it plans its route in advance, calculating dozens of potential movement branches.

If there’s a tree in the way, the algorithm branches out paths to the left, right, higher, and lower. Unsuitable routes are discarded until only one optimal path remains - the one where the duck reaches the desired altitude without any collisions.

But that’s not all. We added factors like wind, player visibility, and the behavior of other ducks. Now the bird makes decisions: is it more important to climb faster against the wind, avoid a collision, or steer clear of the hunter?

The Result: A Living World

Thanks to this algorithm, ducks in our simulator react dynamically:

  • They can change flight trajectory when a shot is fired.

  • They analyze the terrain before landing.

  • They choose the optimal descent angle and speed.

  • Landing no longer looks “helicopter-like” - it’s all smooth, natural, and true to life.

Yes, this system is far more complex than a simple point A to point B trajectory, but it’s precisely what makes the player feel surrounded by a living world, not a set of pre-recorded animations.