![]() |
Fritz v.50 BETA Preview Thread
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. :) |
Re: Fritz v.50 BETA Preview Thread
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.
|
Re: Fritz v.50 BETA Preview Thread
1 Attachment(s)
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! |
Re: Fritz v.50 BETA Preview Thread
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" 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. |
Re: Fritz v.50 BETA Preview Thread
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! :D 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! :D ), but I really want the default ones supported first. |
Re: Fritz v.50 BETA Preview Thread
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. 8) |
Re: Fritz v.50 BETA Preview Thread
2 Attachment(s)
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. |
All times are GMT +2. The time now is 09:27. |
Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.