|
>> Marc Atkin
Name: Marc Atkin
Nickname: None
Irrational Title: AI Programmer
Qualifications: Before here I worked at university, as an academic and got a masters. Working there for a while and decided research wasn't for me and I have been programming games on the side.
Previous games worked on: First job at a games company.

Get ready to rock n'roll!
Hardest moment in development of any game you have worked on: Skiing and jetpacking.
First Gaming system: Apple II
Earliest gaming memories: PONG console.
Favorite game of all time and why: System Shock, the first game when I felt totally immersed in the game and I really thought I was in a story and felt emotionally attached to the characters, and received emails from them and then they were dead by the time you met them, it was just a very immersive game with a great story.
Games currently playing: Knights of the Old Republic on the Xbox, and Splinter Cell on the PC.
Home PC rig: No.
Console or PC: PC in general depends on the type of game, cool thing about the console is you can lie in bed while playing. I didn't really have a console till the Xbox, before that I had an Amiga.
Single player or multi-player or co-op: First Person and RPG's and MMORPG
Questions..
We were talking about AI on the way down to Canberra and I was getting a headache. How do you do AI for intelligently skiing?
We're not doing bots, so we just have to make a good enough SP AI. The physics are always in flux and the AI depends on the physics so when things change I have to change my stuff as well. The project I was working on at University was funded by DARPA, the research arm of the American military, it was a simulator of brigade level land engagements, a lot like an RTS. I knew back then I wanted to do games, a lot of the stuff I worked on then can be used for games, a lot of the techniques just transfer. The thing that is new though is the jetpacking.
The vertical, as in the vertical is new?
Not so much the vertical, you can do path finding on the vertical that's not so problematic, just normal stuff like you have so many CPU cycles and whatever the case is with AI. Alex was actually doing the path finding stuff so I didn't do that. The stuff I was mainly concentrating on was the general way to control AI, basically specifying an architecture so designers can tell AI's what they want, not only do one things at a time, I put that in my designer diary. You can give them multiple goals they might shoot someone while they're moving, things like that, making it fairly seamless.
In layman's terms so we can understand explain AI development?
What do you mean?
Well what's the process, is it a trigger based thing where something the AI sees will trigger it into an action.
Do you mean the process of developing or the process of how AI works?
Probably how AI works in a gaming scenario not in the real world.
Well the way it works in my system, probably in any system, well let me think how to explain it best.
The AI has several different parts, it has designer scripts, or the level tells the AI a goal, and it could be simple like get over here or attack that guy. Once it's been told what to do it starts watching out for events that relate to what it's doing, for example seeing the guy that it's meant to attack. So he might not do anything until he can actually see the guy at least once and then the various actions that make these goals happen start executing and depending on what happens some actions might be shutdown because they are no longer relevant. Lets say there is an incoming projectile, that might trigger a dodge action so it will start dodging then it will finish dodging and go back to attacking then it will continue to do that until it succeeds in it's goal and then it will do the next goal. My system goes on priorities so you can be doing one thing then get interrupted with a goal with a higher priority then do that thing for a while then go back to the first one. Also in my system the AI isn't treated as one thing, it's treated as a collection of parts, so you control the legs and the arms and stuff, the legs and arms can have their own goals so that's how we do running and shooting. So the designer doesn't have to worry about that. So you can give it a goal, attack anyone you see and move to that location over there. If he happens to see anyone while he's moving to the location, if the moving to the location has a higher priority than the attacking thing then if he sees anyone he won't stop moving he'll just swivel and shoot while he's moving, but if the attacking had a higher priority he'd stop and attack until you were dead.
Is the challenge to make the AI reasonably unpredictable?
No the biggest challenge is to make them fun, because it's fairly easy to make the AI so hard that they're not beatable. Especially since they're usually not 1-1, usually it's one against many so you have to make them a little bit dumb so they're fun to play against. You can make them dumb and it looks like they're dumb like, "Ooh that's stupid programming", but we don't want to give that impression. So the biggest challenge is to make them fun to play against and the 2nd biggest challenge is to capture the various things that enemies would do in Tribes. So the way we setup the AI is that there are different classes of AI and they each demonstrate one particular thing, or a particular set of tactics in Tribes. We have the duelist who is really good at dodging and always tries to get height advantage on you and tries to jet behind you and stuff and we have various guys with various weapons.
So there's AI for all branches of armour?
Yes.
So you mean for heavy there is a heavy defender (AI) repairer.
Well we don't have those particular classes but we have the guy with Heavy weapon like a mortar type weapon and he'll be a heavy and we'll have a light guy.
Who tells the AI what it's supposed to do, what its targets are?
Basically the level designers decide that, I just give them the tools to make it happen, so designers are always telling me what they want.
Would you do any level specific tweaks or what works in one level has to work in another level so it's the game designer who changes their level to work with your AI?
I make fairly general systems but they have a lot of parameters so designers can switch a particular thing off in one level, say they want an AI that never dodges in a particular situation they just want it to stand there so they can make it stand there in a particular level.
It's pretty hardcore for us as guys who just play games and don't code, it's pretty full on.
Is AI your love?
Yah, pretty much, I mean I did academic AI before, like AI research now I'm doing gaming.
Do you have like a good looking robot at home that your working on in secret?
No, no, the AI we did was all software it was planning, I mean it works on robots really well but it's not really my thing.
So when are the machines going to take over the world.
Two thousand and uhh….. Fifty-two I think. *chuckles*
Thanks very much for your time Marc.
|