This week I made a flying drone enemy type.

They track you, zip around the place, and are fun to shoot.

Initial tests were interesting, almost boids-like:

I found that for the drones I could use a surprising amount of the same code I used for the turrets which was nice. Apart from the actual flying code, a drone is pretty much a turret that moves. And similarly to the turrets I showed last week, they’re made of functional parts just like vehicles. Here’s a group of them where the one on the right has lost its heat sink and is starting to overheat, and another gets it heat sink shot off:



(sorry for the huge gif! Webm support will get better one day…)

I gave the drones some basic AI. I won’t claim it’s anywhere near as interesting as Dave’s vehicle AI but it doesn’t need to be in this case. They don’t “fake” their flying though, they thrust around with real physics, so of course you can shoot or crash into them to throw them off. Hitting stuff way up in the air is tricky and not really good fun, so I’ve designed them to hover along close to the ground.

You can see the physics at work in this scenario when I first gave them weapons…

Yeah so, standard recoil is a bit much for them. Hence I must confess they are cheating a little now: It was either spend ages writing some smart AI that’d attempt to counter weapon recoil while flying somehow, or just let them have less recoil on their guns. I hate it when AI gets to cheat (vehicle AI never cheats by the way, it only sees what it can actually see and collects only scrap that it really collects) but the pragmatic choice here was obvious. So the drones you see elsewhere in this post are using specially engineered reduced-recoil MMGs.

See you next week.