UE3 - UT3 Scripting Bots through Kismet

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

CaptainCheerios

New Member
Mar 1, 2008
4
0
0
Ok I am making a single player level in Unreal 3 and there does not seem to be a way to make a single player level, you have to make a DM map and script the bots completely.

So I have gotten down making an Attack Script, a follow script, stop shooting, and a can move the bots.

Now I am working with vehicles and it seems once the Bots enter a vehicle they can not drive or control them. I have not tried having the bots look and target objects and see if they will turn the turret, but my goal has been to get the bots to move first.

I have set enabled the ForceDeathMatch property and the Bots do fight, enter vehicles and drive, but any scripts for the bots seem to be ignored.

So does anyone know how to script bots in unreal 3 so that they will drive and use vehicles.
 

frost0fractal

Frost0Fractal
Mar 13, 2008
82
0
0
NY
Hey, I'm tossing this out there so I can offer assistance.

You want to run through a quick summary of how you got the script stuff working for moving the bots? Once I do that I'll be able to assist in figuring out the rest.

Thanks,

~Frost0Fractal
 

CaptainCheerios

New Member
Mar 1, 2008
4
0
0
I spawned a bot using actory factory X and once it spawned I used the Move to actor latent function. Setting the destination as the scorpion vehicle and the target as the bot.

Once the bot reaches the scorpion I use the Enter Vehicle action telling the bot to enter the vehicle. I then use the Move to actor latent action again telling the bot to go to a path node. The map is completely open so the size of the path is not a problem.

Kismet is not designed for complete AI scripting so i think thats the issue.
 

frost0fractal

Frost0Fractal
Mar 13, 2008
82
0
0
NY
Gotcha,

Remember all those good functions that used to exist within an AI Script from UT2K4.... Play Anim and all those, there isn't any such thing here right? I'd like to have all those options available in Kismet, if they aren't currently available, perhaps the game cutscenes....

Are the game cutscenes all prerendered, or are they real-time matinees?
If they are matinees (they obviously are, but do we have access to those "levels") then perhaps they exist somewhere in file we can look at...

I'd most likely say no, but there has to be some way to do this, even if it requires some programming...

Edit: They made the cutscenes so the functionality exists, the only question is how do we get to it or use it...
 
Last edited:

Jotunheim

Clavicogyre! Rayon Gamma! HelicoPunch!
May 5, 2008
5
0
0
Sydney
I spawned a bot using actory factory X and once it spawned I used the Move to actor latent function. Setting the destination as the scorpion vehicle and the target as the bot.

Once the bot reaches the scorpion I use the Enter Vehicle action telling the bot to enter the vehicle. I then use the Move to actor latent action again telling the bot to go to a path node. The map is completely open so the size of the path is not a problem.

Kismet is not designed for complete AI scripting so i think thats the issue.

Hi Captain Cheerios,

But at least you manage to do that:D.
Would you mind telling me how to start? I mean, I use Kismet and actor FActory EX but how to make the desired pawn ( for example Bishop or a custom charater) spawn? the only thing that work is when I put in the Actor Factory EX--> Factory--> controllerClass-->UTpawn_WeldingrobotController and Factory--> Pawn Class-->UTPawn_Weldingrobot so the robot does spawn but when I try UT pawn or UTbot nothing happened. Thanks in advance for your wise advice
 

KillBait!

New Member
Feb 15, 2006
8
0
0
If you want a dumb bot that does nothing but responds to MoveToActor use an AIController with a UTPawn..

If you want a bot that can be moved/tell it to fire then use a UTBot (Controller) with a UTPawn..

Kismet is not designed for complete AI scripting so i think thats the issue.
While that is kinda true.. there are workarounds..

I have a fully scripted darkwalker wandering about my StalwartXL map, one bot drives/shoots and the other is the gunner, they have basic firing/enemy location/position adjustment. What seemed a simple idea at the start, but turned out to be a lot more complicated than i thought. The end result is quite realistic and you would never know it's scripted unless you knew beforehand.

To be fair, i ended up coding some custom kismet nodes and a custom AIController to achieve what i wanted to do. So many things didnt quite work using the built in controllers and kismet, but it was a learning process and not too difficult to do.

There are so many caveats i came across, too many to list, but here is an example, you can get SeePlayer() events from a bot in kismet, but they only happen while the bot is frozen (which means it's standing still).. if you want a bot to run around finding enemys then thats a problem. There is a bug in AIControllers that under certain circumstances, the bot loses the path network and just suicides.. I had to work this stuff out and either fix it, or work around it..
 

Jotunheim

Clavicogyre! Rayon Gamma! HelicoPunch!
May 5, 2008
5
0
0
Sydney
Hey, Killbait

thanks for your help and your suggestions. I tried as you advised but curiously it spawned an invisible Pawn, I say invisible because when I test the map I hear the noise of the spawn and when I move to place of the pawn I collide with something invisible. A picture is often better than words see the kismet I set. I was wondering if it is because of the PawnName, do I have to fulfill it with a name? How to choose a desired pawn? For example Jester or Bishop? if I put the name "Bishop" it doesn't work...



To be fair, i ended up coding some custom kismet nodes and a custom AIController to achieve what i wanted to do. So many things didnt quite work using the built in controllers and kismet, but it was a learning process and not too difficult to do.

Ah, Ah you are right but I was afraid you will say so!:D Indeed I have no scripting/coding skills, but I suppose sometimes you have to dirty your hands! Do you know any tutorials about scripting when are a complete dummy/noob in this field? I know this one: http://www.xsmod.com/xyx/ut/xs/rants/ut3scriptsetup/index.htm
Do you know others?
Thanks for your help and a have a good tournament!
 

Attachments

  • Kismet.JPG
    Kismet.JPG
    104 KB · Views: 82

Jotunheim

Clavicogyre! Rayon Gamma! HelicoPunch!
May 5, 2008
5
0
0
Sydney
Finally I found the solution by myself, in case somebody encounter the same issue about invisible pawn/bot using movie factory here is the solution : very simple in fact ;) : just rename your map using DM-nameofyourmap or WAR-nameofyourmap and the pawn will be visible when it spawns!
 

bobmdb

New Member
Jul 31, 2008
1
0
0
having some trouble with my bots they are frozen running through animation cycles was wondering if anyone could point me in the right direction. I am extendin utbot class, ai controller and the utgame info class as well. Still though no movment the bot does not seem to recognize the path nodes.
 

Victoryx

New Member
Oct 23, 2008
6
0
0
I have gotten the bots to use a vehicle and move around using the Latent move actor feature. Its quite easy. To do this simply.

Create another AIFactory, in this u can set the typ eof Factory you want , set it to UTVehicleFactory, and choose the vehicle you wish to spawn and to what path node. Assign a Object Varible with the name Car or Vehicle, then where it says spawned on the UT Vehicle Factory assign a named variable the same as you object variable Car or Vehicle. Then in the Move Actor Latent add another Named Variable Car or Vehicle (What ever you named it) and set the path node you wish him to move to. Easy as that. Of course you would want an Enter Vehicle and Exit vehicle at the before/after the Move Actor Action. Hope that helps!
 
Last edited:

Apophis3d

Lord Apophis
Jan 22, 2008
82
0
0
Portland, Oregon
www.apophis3d.net
Gotcha,

Remember all those good functions that used to exist within an AI Script from UT2K4.... Play Anim and all those, there isn't any such thing here right? I'd like to have all those options available in Kismet, if they aren't currently available, perhaps the game cutscenes....

Are the game cutscenes all prerendered, or are they real-time matinees?
If they are matinees (they obviously are, but do we have access to those "levels") then perhaps they exist somewhere in file we can look at...

I'd most likely say no, but there has to be some way to do this, even if it requires some programming...

Edit: They made the cutscenes so the functionality exists, the only question is how do we get to it or use it...

I don't think you have access to those matinee levels for the cutscenes, but yes you would do all that though matinee.