.:: Bots United ::.  
filebase forums discord server github wiki web
cubebot epodbot fritzbot gravebot grogbot hpbbot ivpbot jkbotti joebot
meanmod podbotmm racc rcbot realbot sandbot shrikebot soulfathermaps yapb

Go Back   .:: Bots United ::. > Cyborg Factory > FritzBot
FritzBot A bot for Return To Castle Wolfenstein - by Maleficus Return to Castle Wolfenstein

Closed Thread
 
Thread Tools
Fritz v.50 BETA Preview Thread
Old
  (#1)
Maleficus
Member
 
Maleficus's Avatar
 
Status: Offline
Posts: 1,054
Join Date: May 2004
Location: Planet Earth
Default Fritz v.50 BETA Preview Thread - 23-03-2005

Well, I'm not totally back from my self-imposed bot coding "vacation" yet (been playing UT2K4), but I've just finished up working on some code that should forever eliminate the annoying bug of bots getting stuck on walls, or just dumbly running into one. o_O

They now have an intelligent understanding of whether something is really "reachable" by them or not.


Dum Spiro Spero


  
Re: Fritz v.50 BETA Preview Thread
Old
  (#2)
Maleficus
Member
 
Maleficus's Avatar
 
Status: Offline
Posts: 1,054
Join Date: May 2004
Location: Planet Earth
Default Re: Fritz v.50 BETA Preview Thread - 27-03-2005

Finally added something I should have added a long time ago: if you just type "addbot" it randomly adds a bot to the game, based on player count and player class count, so that the teams are always balanced, and always have enough soldiers, LTs Meds, ENGs, etc, etc.


Dum Spiro Spero


  
Re: Fritz v.50 BETA Preview Thread
Old
  (#3)
Maleficus
Member
 
Maleficus's Avatar
 
Status: Offline
Posts: 1,054
Join Date: May 2004
Location: Planet Earth
Default Re: Fritz v.50 BETA Preview Thread - 03-04-2005

Heres a shot showing off a bit of what I'm talking about as far as the bot understanding that something is reachable, long before he actually goes about moving towards whatever his goal is (whether its an item, path node, player, etc).

The code is very fast, and uses the BSP information itself, this way the bot is guarenteed to know for sure if some location is reachable.

In this pic, the LT bot to the right wants an health pack, and you see the bot's scan process, and how it sees all obstacles in the way, and concludes that the item is reachable.

I'm standing on top of a low wall that that must be jumped over to reach the other side. Here, you see the code "see" that, and chart out just where the bot will be able to move.

The blue lines represent an area the bot can reach by walking. Green lines represent an area the bot will have to jump to get thru. The white line on the health pack is the goal location.


Oh, and don't worry guys - I've started to work on the script system too, just don't have anything to show for it yet!
Attached Thumbnails
Click image for larger version

Name:	scan1.jpg
Views:	307
Size:	92.3 KB
ID:	659  


Dum Spiro Spero



Last edited by Maleficus; 11-04-2005 at 14:03..
  
Re: Fritz v.50 BETA Preview Thread
Old
  (#4)
Maleficus
Member
 
Maleficus's Avatar
 
Status: Offline
Posts: 1,054
Join Date: May 2004
Location: Planet Earth
Default Re: Fritz v.50 BETA Preview Thread - 11-04-2005

Working on script system ATM.

Theres a LOT to do yet, and will have to transfer a lot of the funky stuff I made that would let the nodes themselves hold this info, to the script system, which in the end will be SO much better for everyone.

Heres an ex using BEACH:

Say, when any of the walls blow, you want some diff things to happen:

1. You want the allied snipers to become venoms.

2. You want more LTs, since you don't need engs anymore.

3. You want paths opened between the nodes that were on either side of the wall to become connected.

4. You want some axis to become flamers.

5. You want path nodes previously restricted to the allies to become open.

Heres what you'd do (so far, this may change) in order from list above:
Code:
 if (ACTION 3) //boolean logic, "if "action 3" == 1 (completed), do this"
  {
 	allies_SwitchFromWeap(sniper, venom)
 
 	allies_SwitchToClass(LT)
 
 	node_connect(23, 24, true) //the "TRUE" means its a 2 way connection
 
 	axis_SwitchToWeap(flame)
 
    openNodeGrpToTeam(1, ALLIES)
 }

Now some explanation.

There is a new keyword in the .bot files. This keyword tells the game if this bot is open to changing its weapon and/or class. If the bot isn't open to changing its stats, it will NEVER respond to a change class/weap command (just like many humans never change their class). However, if the bot IS open, then any cmd to change weap or class will be done by them. You wouldn't want ALL bots on the server to be open to switching, just a few - thus its important to pick which bots you want to play with.

Path nodes can have a "group" number, which is an easy way to group together certain nodes. On beach, all nodes on the axis side of the wall, before any of the walls blow, would be group 1. Any node from group 1 will be off limits to the allies, until at least one of the walls blow.

Comments/ideas/suggestions are welcome.


NOTE: a lot of this is still subject to change, as I find out what works best, and what you guys would like to see.


Dum Spiro Spero



Last edited by Maleficus; 11-04-2005 at 14:07..
  
Re: Fritz v.50 BETA Preview Thread
Old
  (#5)
Maleficus
Member
 
Maleficus's Avatar
 
Status: Offline
Posts: 1,054
Join Date: May 2004
Location: Planet Earth
Default Re: Fritz v.50 BETA Preview Thread - 18-04-2005

Work continues......

The scripting system is now pretty much planned out completely, and is getting implemented ATM.

Currently, Fritz will load a script based on the map name, but you do have the option of telling Fritz what kind of script you want to use thru Cvars. This is useful and fun if you want to try out different scenarios: perhaps when the walls blow on BEACH, you want everyone on allies to become venom and all axis to become flamers, while that wouldn't make much sense - you'll have the freedom to do that using custom scripts and cvars!

The script system is designed to be EXTREMELY flexible, so I'll have no problem adding new features in the future, based on what you guys want to see.

And its very fast codewise - its a LOT faster than anything that Wolf currently uses for scripts (and I hope, a LOT more readable than that "accum" crap!). And the memory overhead is low.

As soon as its done, I'm going to hit the path editor, than I'm going to start farming it out to you waypointers so that you can start working on getting maps supported, while I continue to work on the AI.

My hope is, that by the time I'm ready to release the next version, ALL of the default maps are supported at the very least. If possible more (the more the merrier! ), but I really want the default ones supported first.


Dum Spiro Spero


  
Re: Fritz v.50 BETA Preview Thread
Old
  (#6)
Maleficus
Member
 
Maleficus's Avatar
 
Status: Offline
Posts: 1,054
Join Date: May 2004
Location: Planet Earth
Default Re: Fritz v.50 BETA Preview Thread - 21-05-2005

No, Fritz isn't dead.

I've finished 90% of the script system. This is one of the most powerful system I've seen for any third party bot out there.

To start:

1. You can define what events happens when the map first starts - do most bots go eng? does all axis soldiers use panzers? its your choice!

2. You have the option of turning off/on certain actions on the fly.

Lets give an example from beach: say you want the bots to man the mg42 thats inside the bunker (the one thats beside the ladder that goes up to the upper bunker), if the wall is breached, but not the door (because enemies would just flank around behind you), you can do that. When the wall breaches, turn "on" that action for the mg42, and the bots will hang around it, gunning down anyone who comes thru the breach. When the door breaches, turn it "off", so they focus their efforts elsewhere.

3. You can do conditional actions: if axis have the flag, make them take up camp positions on the beach to harrass the allies, but if allies have the flag, make axis camp the warroom. You can easily turn off/on actions with this system, in realtime, as the battlefield changes.

4. You can play around with bots choosing their class and weapon, based on events in the game.

5. You can control where the bots can and can't move, based on events in the game.

6. This feature is still being worked on, but I'm making it where you can define alternate routes from specific start points to specific action locations: for bots spawning at the flag, you can define as many alternate routes to get to the warroom as you desire - ALL inside the script, so you can change it easily with a simple text editor! You will have a LOT of control of the bots path choices, WITHOUT taking away their ability to think for themselves. And ironically, this system will actually speed up the bots path calculations and is encouraged for the bigger maps like depot.

7. A simple syntax. I've seen other script systems for bots that appear more like cryptic C++ code that only a programmer could understand than a script language. FritzScript will be more like simple english.



Dum Spiro Spero



Last edited by Maleficus; 21-05-2005 at 08:52..
  
Re: Fritz v.50 BETA Preview Thread
Old
  (#7)
Maleficus
Member
 
Maleficus's Avatar
 
Status: Offline
Posts: 1,054
Join Date: May 2004
Location: Planet Earth
Default Re: Fritz v.50 BETA Preview Thread - 30-05-2005

Been too busy to do much the past week, but last night finished the node tools/drawing code.

The only feature missing is waypoint deletion.

The script system is still needs more work as well.

Heres a couple shots of the node drawing code, one of the nodes themselves and their connections, another just showing each nodes radius.
Attached Thumbnails
Click image for larger version

Name:	shot0001.jpg
Views:	186
Size:	53.0 KB
ID:	680   Click image for larger version

Name:	shot0002.jpg
Views:	222
Size:	43.0 KB
ID:	681  


Dum Spiro Spero


  
Closed Thread


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
vBulletin Skin developed by: vBStyles.com