← Back to Gunship Origins

Nerding Out About AI Wingmen

by Jamon Holmgren

Although you can fly with only other humans if you want, AI teammates are a big part of Gunship Origins.

What’s really cool is that they’re modeled internally as individual characters (NPCs) with an individual event / decision / action loop which is throttled at their skill level for the given event type.

For an AI-controlled helicopter, there are actually two NPCs in there, not just one generic AI for the whole helicopter.

They split up the responsibilities for operating the helicopter based on their seat’s role (pilot or copilot/gunner), but also will both take events from a prioritized shared queue and do them.

These NPC (non-playable character) pilots have these characteristics already modeled in code or currently planned, among others:

FATIGUE

NPC pilots can get fatigued by long missions, especially if you have many long, intense missions in a row. There’s a build-up of fatigue over time, and you should rest pilots by leaving them in the roster pool for a mission or two; this likely will apply mostly to the campaign mode.

DISTRACTION

NPC pilots can get distracted, depending on their skill/experience and fatigue, which means for a given loop they might not react to an event that comes in as quickly. This is one of the primary ways you’ll notice the difference between better and worse wingmen.

If you have an inexperienced and fatigued pilot (or wounded!), they might be reacting slowly. The other pilot in the helicopter will be taking on more of the shared action queue which will in turn make that pilot less effective.

This means if you have an inexperienced pilot, you should probably put an experienced pilot with them, so the helicopter can still be effective.

SKILL LEVELS

It’s not just a total skill level. Think more like sports games like Madden, NBA 2k.

I currently have piloting, gunnery, and navigation skills modeled, but am going to add more (I hope many more … give me ideas on what kinds of skills you’d like to see and what these might affect)

PILOTING

How quickly and accurately they fly. This affects formation flying, avoiding obstacles, approaching enemies, etc. Inexperienced pilots will “bob” up and down more in terms of altitude or linger in visible areas which might give away your position. Excellent pilots will be precise and quick. When you’re planning your missions, you’ll want to put excellent pilots in the pilot seat, excellent gunners in the copilot/gunner (CP/G) seat.

POTENTIAL

This is a hidden attribute that affects how quickly pilots learn from training and real-world missions. The idea is that you might pick up a good pilot out of flight school, but they’re kind of a slow learner for gunnery, so they just never really get that good at firing the chaingun (they’re inaccurate, waste ammo). Or, you pick up a young phenom, and they quickly become one of your best pilots. (I’m still working on potential / learning, so while this is modeled in code to some degree, it’s still a very rough early concept version.)

RECOVERY

(planned) If an NPC pilot is wounded, it may take a few missions for them to recover. You’ll have a roster with a couple extra pilots to cover for those who are out injured. If you don’t have enough healthy pilots to cover all the crews, you’ll have to fly out with fewer helicopters. If you’re the only pilot available, then you’ll have to skip a mission, which is a negative mission result for the campaign you’re on. Those are the breaks — protect your crews!

NPC PROGRESSION

Of course, NPC pilots have their own ranks, medals, can be WIA (wounded in action) or KIA (killed in action), and you’ll have to replace them with fresh green Warrant Officer 1 pilots just out of Fort Rucker flight school.

RANDOM IDEAS

It would be fun to add chemistry and morale characteristics as well.

Losing a pilot would mean a hit to your pilots’ morale, which would increase their distraction chance, which would make them less focused.

Having a crew that doesn’t get along would also make them less focused. You might need to move them into different helicopters.

These are just ideas. What ideas do you have? Email me at ideas@jammin.games!