2 registered members (Akow, tomaslolo),
1,536
guests, and 12
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
XSpire AI
#196283
03/20/06 20:06
03/20/06 20:06
|
|
Joined: Jan 2003
Posts: 4,305
OP
Expert
XSpire AI
Spire Homepage Spire AI System, I am working on an upcoming Shooter AI System. The XSpire AI is especially designed for fast, team-based Shooters like Unreal-Tournament or Quake 3 Arena. But it can easily reconfigured to bring fierce enemies into life in classical Singleplayer FPS Missions. It will feature: -different gametypes (Capture the Flag, Domination, Assault etc...) -Different, adjustable Bot-Skill-levels -configurable Weapons and Upgrades. -Node-path editor for BOT-Ai -Fast and challenging Bots -Implementation for classical Singleplayer Missions -Readymade implementation, just create your level, configure the weapons, and edits the BOT-NODES to have a running FPS Shooter. Here is an early version of the AI, to demonstrate how it works. There are still a lot of things missing, and is not focused on nice GFX, as it should mainly show how the AI behaves in an running enviorment. XSpire - AI Shooter Demo , early version, 8MBMore Updates to the datails of the AI, when the project progresses. Damocles
|
|
|
Re: XSpire AI
[Re: Damocles]
#196303
03/25/06 15:23
03/25/06 15:23
|
Joined: Feb 2006
Posts: 371 New England
Rad_Daddy
Senior Member
|
Senior Member
Joined: Feb 2006
Posts: 371
New England
|
I just downloaded the game, and enjoyed it very much. The AI is good, however, I dont feel that the "hard" mode is hard enough. This is just my opinion, but I was able to take on both bots without dieing several times. Also, I went to see what your code was like, and found an unpleasant suprise. I assume that you lumped it together for security purposes, but I was hoping to look at the code because, I have never written a full AI, and am looking for examples and refrences wherever I can get them. I understand if you are unwilling to release the code, but it would be nice as an example . Anyways, I also noticed that, sometimes, the bots do a full 360 when they find me, and then start shooting. This dosent happen all the time, but I have noticed it more than once.
"Read not to contradict and confute, nor to find talk and discourse, but to weigh and consider." Sir Francis Bacon
www.deckscapedesign.com
|
|
|
Re: XSpire AI
[Re: Rad_Daddy]
#196304
03/25/06 16:17
03/25/06 16:17
|
Joined: Jan 2003
Posts: 4,305
Damocles
OP
Expert
|
OP
Expert
Joined: Jan 2003
Posts: 4,305
|
The bots in hard mode muve at the same speed as the player, and dont need to slow down to shoot. They can also turn faster when finding a target and have a good precision when shooting.
I could make them harder, whenever i implement weapons, that have a direct impacts, such as a machinegun. The bot just shoots at his target, but the projectiles need some time to reach the enemy, so that the player has the best chances when moving sideways.
I could also implement a function, that lets the bot shoot, such that the bullet will pass the future position whenever the bot moves constantly towards a certain direction. "Vorhaltewinkel" in german. (I might program + train a neural net to extrapolate on the expected position of the player ... would be some nice task)
I am not the best FPS player, so i count about 30 to 27 at the end of the match in hardest mode.
I could also make the bots harder by "cheating", such that the bot moves faster, bullet fly faster, and he get less damage. But this would not be very nice.
The code is Obfiscated since I have not decided about how the AI will be distributed later, It is in development anyhow. The interesting parts are the Pathfinding and how the AI chooses the states, but there are some good tutorials around here, that I have also looked into.
The bots should not do 360 turns.. Maybe the reason was, that the other red bot was close, so the blue bot changed its mind, who to target quickly, resulting in such a turn.
|
|
|
Re: XSpire AI
[Re: Damocles]
#196305
03/27/06 12:47
03/27/06 12:47
|
Joined: Jan 2003
Posts: 4,305
Damocles
OP
Expert
|
OP
Expert
Joined: Jan 2003
Posts: 4,305
|
Here is a little update: Since my Node-editor works great noe, I have compiled a new Map (dm_18 from Nexuiz) -> http://www.nexuiz.com/ There are some things now working correctly, as my nodeeditor misses some function (bots can wait in the air) But overall it works great. The level is not build with visibility on, so it is not as fast as it could, And here is the new Demo: http://www.direktcontakt.de/xspire_newlevel.zip New Level (taken from Nexuiz)
|
|
|
Re: XSpire AI
[Re: Damocles]
#196308
03/28/06 01:29
03/28/06 01:29
|
Joined: Mar 2005
Posts: 725 USA
TeutonicDarkness
User
|
User
Joined: Mar 2005
Posts: 725
USA
|
WOW! I liked it. The level looks awesome too! I can see small but good changes in the AI I think one thing you need to focus on if you havn't allready started is the AI's Movement! They seem to walk and move kind of clumbsy. ( Although that could be as simple as the animations...not sure) Also Might I suggest adding better detection for example the Ai's can see you better if your above them. Though If they Attack when your above them It would only seem appropriate for them to look up as they fire.. Just my sugestions... Keep up the Great work! *** Teutonic Darkness ***
|
|
|
Re: XSpire AI
[Re: TeutonicDarkness]
#196310
03/28/06 08:15
03/28/06 08:15
|
Joined: Nov 2004
Posts: 7,121 Potsdam, Brandenburg, Germany
Machinery_Frank
Senior Expert
|
Senior Expert
Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
|
Fantastic gameplay. I played it in "hard bot mode" and it was really fun. My team won merely with 60 to 58. When you fight one on one then circle strafing is a really good tactic but when you have different opponents at once this tactic does not help at all.
I am really happy that such an AI becomes available for Gamestudio. I expected such a similiar thing in the template as I first bought GS. After my first tests I was a bit disappointed because I could not make games with the templates. With such a good tool the situation could change definitely.
Best regards, Frank
Models, Textures and Games from Dexsoft
|
|
|
Re: XSpire AI
[Re: Machinery_Frank]
#196311
03/28/06 09:33
03/28/06 09:33
|
Joined: Jan 2003
Posts: 4,305
Damocles
OP
Expert
|
OP
Expert
Joined: Jan 2003
Posts: 4,305
|
Tkanks for the replies, the marine model is not the nicest, but works well. Later I will have seperately moving limps and heads, so the bot actually looks at his target. I might add guns too I need to make a "Vorhaltewinkel", aem a movementprediction for the bot, compensating for the bulletspeed, and the moving enemy. This way an enemy moving in a straigt line, at constant speed will allways be hit by the bullet. -> this is for the hard bot mode. Curently, the bots just shoot direcly, and thus miss a moning target.
|
|
|
Re: XSpire AI
[Re: Damocles]
#196312
03/28/06 12:02
03/28/06 12:02
|
Joined: Aug 2001
Posts: 2,320 Alberta, Canada
William
Expert
|
Expert
Joined: Aug 2001
Posts: 2,320
Alberta, Canada
|
I took this code from the last part of my weapon targeting system(from my kart game) and commented it. It works for the most part, rather simple though. You've gotta find and perfect the offset by trail and error. I used it for my projectile shooting turrets. It sits after a wad of code detecting lock-on angles, hence the additional offset determined by that "temp2 += target_front;". You prolly won't need any additional offset though. But you can use this for dumb A.I, throws the aim off... Code:
//Find x offset between target and future position dist = vec_dist(you.x,my.x); dist = vec_length(dist); dist += you.fspeed*2;//speed of targetx2, change if needed, this adds to offset temp2 += target_front;//additional offeset(if needed, otherwise "1") dist /= temp2; //final offset
//Set and rotate offset by target temp.x = dist; //front-back offset temp.y = you.kslide_speed*3; //set for targets strafe speed temp.z = -15; //height offset if(you.z > vvec){temp.z *= 0.8;}else{temp.z *= 1.2;} vvec = you.z; //If target moves up or down, reflect this in offset vec_rotate(temp.x, you.pan); //find angle to aim the turret at vec_add(temp,you.x); vec_diff(temp,temp,my.x); vec_to_angle(app.pan,temp);
//rotate turrent joint to target, inverse may not be needed with your game app.roll = 0; vec_inverse(app.tilt); vec_sub(app.pan, my.pan); app.pan += 180; ent_bonereset(my,"bone"); ent_bonerotate(my,"bone",app.pan);
|
|
|
|