Archived

This topic is now archived and is closed to further replies.

AI In XS

This topic is 5781 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

would any one know what type of AI XS uses? I''m just curious.... In my optinion its the best AI I''ve ever see in an FPS..The damn things are actualy smart.... and they seem to learn your patters after you''ve been playing for a while... I''d guess neural nets but I''m not shure =)

Share this post


Link to post
Share on other sites
XS is an older game (runs in dos)... basicaly the story line is your friend gets kill in a fight to the death compatition... well he''s asked you to take his place... the actual game play goes like this you start off by picking 2 weapons (from a faily large list) and a gernade weapon... then your thrown into an arena with 3 other players (comp controled)... theres a total of about 60 diffrent bots... each with vairing difficults and personalitys.... the first few are easy as hell but they start getting a lot tougher... around the 4 or so mach they bots get real tough for me... then I think its the 6 or 7 match I get stuck =) the winner is the last man standing... they don''t have alot of the problems of quake bots... eg. they don''t jump around all the time, they change there tactices each time they come at you (it take awhile to kill each other so they can try several times in a game), its some realy great AI.... =)

Share this post


Link to post
Share on other sites
The guy that wrote the AI in XS was called Dave Wilson.
He worked at SCi when I was there. I was doing the Sega Saturn
version until it went the way of all Saturn projects. I did do the elevator code and mine in the PC code though. The AI code was node based and written from scratch. As far as I know there was a certain degree of learning. If you leave them long enough they might all become friends and start playing cards.

Share this post


Link to post
Share on other sites
If I remember right, Dave actually implemented dozens of attributes for the characters. Dave was a bit of a boffin type. Unfortunately we seem to have lost touch with him, otherwise I am sure he would give you a very indepth description/explanation.

Share this post


Link to post
Share on other sites
Having been pointed here by JohnnyBoy, here it is from the horse''s mouth. (Thanks for the comments, GM)

Actually, there wasn''t any *learning*. Probably the main reason I didn''t use neural nets was that I wasn''t an AI programmer. Initially, I was supposed to do a couple of month''s research while an AI expert was found. When it was clear an expert couldn''t be found (for the money offered?), I ended up having to do the lot myself. Given that the release date kept slipping, I had time to keep adding more refinements onto the initial primitive code, but never enough time to tear it all up and write it from scratch again, so it sort of evolved. The characters were designed to behave as close as possible to human characters, since the original idea was for a network game, with AI filling in for missing players.

As far as I can recall, through the course of a single level, the AI character''s behaviour might alter depending on their level of damage. Every level essentially started from scratch, though beyond the character mix changing with levels, though I think a ''hardness factor'' may have increased though the game.

Rather than neural nets, the logic was just a hierarchy of actions, generally ''planned'' as infrequently as possible (to minimise per-frame processing), and abandoned and recomputed as conditions required. The higher-level decisions were governed by lots of probability factors which varied between characters.

There were something like 40 low-level operations, like move to point X, change to run/walk/stop/jump, turn and then fire at point Y, strafe (ie sidestep to point X while firing in direction Y), move to point X while turning body to fire at point/character Y.
Some of those operations (like the last one) had parameters governing things like the coarseness of the movements (a poor character might aim less accurately) or the amount of firing.

The simple actions could be choreographed into sequences - dodge from behind cover, fire, dodge back to cover - to make things look more realistic, and so on up to the higher levels.

I have to admit that when I saws the game running, even I sometimes thought that the characters were doing some smart thing or other, before realising I hadn''t told them how to. I guess the code was sufficiently complex that some kinds of intelligent behaviour appeared to emerge.

There wasn''t any cheating as such - I *think* the chances of a character finding you (or each other) may have increased through the course of a level, but only in the sense that the longest-term planned ''searching'' routes were biased towards nodes near where you were at the time the route was planned, so they didn''t home in as such, they were just more likely to bump into you, but would be as surprised as you were.

Since the lowest level movement code was the same as a human would use, the AI was very useful for debugging. I''d just set the game off with random seeds, wait for a crash, examine the logfile to see which frame the crash happened on, then let the game run with the same seeds to the penultimate frame, and step the code to the crash point.

I guess I should try and dig up the source code and have a look for old times'' sake, though it was >10000 lines of C, and somewhat more hacked than designed, so it might take a while to get my head round it.

Dave Wilson

PS - Anyone out there looking for a dirty old C programmer?

Share this post


Link to post
Share on other sites
Tackling the problem again, I guess I could do somewhat more useful design, since I now know roughly what kind of landscape I''m operating in, and what some of the low-level control problems look like. I''ve had some ideas about how to extend things to more team-based or massively multiplayer contexts - maybe tending more towards simulation than small-player count scenarios.

I really don''t know much about modern AI tools (or even ancient ones), but I guess knowing I can at least do something reasonable from experience if research failed, I could afford to risk a little time to check out more advanced methods to enable more intelligent behaviour, given an underlying simple (and hopefully robust) skeleton engine to do much of the frame-to-frame work.

After the release, I had the time to play around and see how much less computation I could get away with. It seemed that I could have done the same with less power, but since the AI only took a small fraction of the time even in the days of 486s, that would probably only be relevant these days with large numbers of AI characters.

Share this post


Link to post
Share on other sites
heh wow... didn''t expect to see the guy that wrote the AI respond =)

sorry about not replying sooner... it looked like a dead topic the last time I was in here =)

thats realy interesting to know... I was figuring that it was going to be some complex nn cause it realy seemed to learn =) but guess not...

heh anyways thanx for the info =)


PS (dave) heh I would but heh not ready to do any real game... maybe in a few years when I write quake 4 I''ll give you a ring =P

Share this post


Link to post
Share on other sites
quote:
Original post by potholer
(Dave Wilson said many cool things...)



Dave that was a great writeup! You did good work on that game.

I wonder...do you mind if I post something about it on the Game AI site?




Ferretman

ferretman@gameai.com
www.gameai.com
From the High, Cold, Snowy Mountains of Colorado

Share this post


Link to post
Share on other sites
Be my guest. Maybe I should try and write a bit more sometimes on ideas I''ve had since.
I''m sure there must be some way to use roughly the same basisc process to allow for users to program characters themselves, and combine primitive operations into higher-level ones. Especially in some team-based game, some kind of ''Program/train your own attack/defence force'' facility seems possible. (Though I guess someone else may well have done something like that already - I''m not up to speed with what games are out there.)

DaveW

Share this post


Link to post
Share on other sites