AI Design in Vanduul Swarm
AI Design in Vanduul Swarm
Vanduul Swarm first went out to backers on June 4th, and many of you were waiting in eager anticipation to get your hands on it, for your very first chance to fly your ships and engage in your first Star Citizen dogfights. For our small team here in Edinburgh, Scotland, it was just as momentous – but for different reasons.
We’re the team behind Kythera, the artificial intelligence middleware which powers Star Citizen, and Arena Commander v0.8 was its gameplay debut. We knew what you’d see and what you’d experience, because we’d been improving, testing, tweaking and tuning the AI for weeks. But as we waited for the first feedback from backers, there were some things we just couldn’t be sure of.
Had we got the difficulty curve right? Was there a major bug or exploit that we’d missed? Would you guys think it was fun?
We’ve got a lot of games development experience behind us, but this release was very personal – and very immediate. Hours after that magic build was approved, it was being streamed around the world. 33,000 of you played it in the first 12 hours.
The best moment was tuning in to Twitch, to see an intrepid backer learning to play the game from scratch with thousands of other people looking on.
And he seemed to be enjoying it.
A Balancing Act
After all, fun is what it’s really all about. We at Moon Collider think that you as backers are helping to build the most ambitious game currently in development – but all that vision, realism and immersion would count for nothing if you didn’t think it was entertaining to play. And as developers of your AI dogfighting opponents for Vanduul Swarm, we were right on the fun front-line. And ultimately it all came down to balancing.
While other teams were adjusting weapon capabilities, control schemes and flight control systems in to make the best first space combat experience they could, we worked with designers Ben and Will in Manchester on the AI opponents who focussed that experience to make it fun. And as those underlying systems changed under our feet, the Scythes had to adapt: when missiles became less powerful, we could use them more often; when IFCS made the ship more responsive, our Scythes could display more agility.
Vanduul Swarm came with the extra design challenge that it’s not just your first glimpse of the dogfighting module, but also a training mission: the first opportunity to fly a spaceship in Star Citizen’s universe. There’s a lot to learn, and it’s just no fun if you’re blown to pieces before you’ve even figured out the controls.
You’ll know by now that the Vanduul come in a series of waves: fifteen of them, each more threatening than the last. We made sure that wave 15 is a challenge for even the very best players (nobody on the dev team got through it before release – though as we hoped, it seems a few of you have since!) But making AI hard is easy. Our first and toughest design problems came back in wave 1, when we knew our Vanduul might be facing rookie pilots, still stopping to check the flight manual.
You might think that AI programmers want their AI to be as smart as possible, but the truth is more subtle than that. The best tactics for an AI don’t always appear smart to a player (let alone fun). And while the Vanduul’s AI doesn’t “cheat” – it doesn’t have access to any information a human player wouldn’t have and it does obey all the same physical rules – it is able to process that information much more quickly and respond more precisely than the most experienced fighter ace ever could. So to give its opponents a fighting chance, we had to build in weaknesses as well as strengths.
We didn’t always get it right first time. In an early version of Vanduul Swarm, we simply turned down the accuracy of the enemies’ targeting. It seemed to be working fine, until we noticed you could sit your spaceship motionless in space, and the Scythes would still miss you! (We changed it to vary with your speed, but now it seems some people are doing very well in decoupled mode, as a turret flying in a straight line – maybe we should tighten that up?)
We also wanted to emphasise a particular style of combat in our dogfights. In PvP you’re sure to see ships flying straight towards each other with all guns blazing, which can end up like a medieval joust. But we think what you really want is the thrill of the chase – the chance to hang on an enemy’s tail and pursue your quarry through the blazing void. So we’ve programmed the Vanduul to go into a retreating, “follow me!” behaviour some of the time, to make sure you get that opportunity.
So will the AI always let you win? Definitely not. We may have reined back the Scythes in Vanduul Swarm, trying to ensure everyone finds their level on the difficulty curve in their own time, and we hope you felt we got that about right. But if you’ve made it up to the later waves, you’ll know the best of the Vanduul have a lot more to throw at you. And rest assured that, for the reasons we’ve described, AI design for Vanduul Swarm is quite different from the vision for the larger Star Citizen universe, where you’ll find AI pilots every bit as cunning and ruthless as the best human players.
An Alien Swarm with Personality
Chris has always emphasised to us the importance of personality in Star Citizen’s AI opponents. In response, we built in loads of tunable parameters and a “profiles” framework to help manage them, and Ben Sharples in Manchester was able to put this to good use.
Those spacecraft flying towards you might all be Scythes, but they’re not all the same. You’ll have spotted that the load-out varies – for example the level bosses have missiles even while the grunts of the wave do not. But have you noticed that each boss engages with you in a slightly different way?
The first boss you’ll meet is Little King, who’s programmed to stay at range from you and deploy countermeasures to avoid missile strikes, drawing you away from the centre of the battle. In contrast, the second boss – The Priest – is a close-range fighter, who gets in as close as possible and inflicts damage in terrifying short sharp bursts. (By the way, there’s a rumour on the forums that the Scythes are trying to ram you. They aren’t really. It’s just The Priest’s way of saying hi!)
You’ll see this that taken to the next level in the Persistent Universe and Squadron 42, with individual pilots working to achieve their own long-term objectives as well as short-term goals, and their attitude to you informed by experience and displayed in their combat choices.
Creating those characters will always be a tough job, both for designers and for us in providing them tools up to the job. But we saw one simple thing make a big difference in Vanduul Swarm: giving pilots names. “Boss1” and “Boss2” did behave distinctly, but with a name like “The Priest” to hint at their behaviour, they sprang to life and we could start to get under their skin.
(The teammates, incidentally, were originally called “Ben” and “Willus” (we can’t imagine why). And while we were sad to see them go, “Warlord” and “Vixen” did seem rather more aggressive… )
Finally then, let’s take a quick look at the two allies who accompany you on your mission. “Warlord” and “Vixen” are far from expert pilots, but we think they work pretty well at their real task: to give the Vanduul alternative targets and draw them away from you. This gives you a chance to choose your encounters and to see dogfighting going on around you in its full glory – it always looks best when it’s happening to someone else!
You probably think we’d planned it that way from the start, but we hadn’t. The teammates were a late addition – a flash of inspiration from Will Greenough, a designer at Foundry 42 just down the road from us in Manchester. Adding friendly AI to the design at such a late stage would usually be a pretty scary thing to attempt – and I’ll admit we were nervous of the issues it might raise. But actually, Kythera’s Hornets were dogfighting against each other long before human players could join in.
So we didn’t have to do any coding. And there was virtually no level setup, because our behaviors have always been unscripted – Kythera is all about AI being able to make informed decisions, not slavishly following designer cues.
In fact, the first we heard of the idea was that Will had already tried it and it “brought the whole scene to life.” We thought it was pretty bold but we went for it!
Next: The Universe
So what’s next for Kythera in Star Citizen? Now the dogfighting module is out in the wild, we’re turning our focus to AI in the rest of the game – and we have our work cut out for us!
On Arena Commander launch day, we were actually in Manchester for the Squadron 42 Summit. So we had ample reminders of how much needs to be done for AI in the rest of the Star Citizen universe – in particular FPS gameplay and bringing the enormous and diverse population of the Persistent Universe to life. (We talk about a few of those challenges on our website.)
There will be incremental enhancements to Vanduul Swarm… but if extra features are slow to come, rest assured it’s because we’re working on whole new types of gameplay we know you want to see.
In the meantime, we can’t stress enough how much we value your feedback. It’s hard for us to find and read it all and still develop the game! But we’ve never had such direct contact with you, the players, and we’ve been very grateful for your support. We hope you’ll carry on sharing your thoughts (and your bug reports!) right up to release day.
We hope you’ve been having fun with Vanduul Swarm, but it’s just the first step, and we’re looking forward to bringing the rest of the universe to life.