Omni-bot 0.7
From Omni-bot Wiki
| Releases | Omni-bot 0.7 Changelog | Omni-bot 0.66 |
Contents |
Omni-bot 0.7 Changelog
This changelog isn't anywhere near complete. It would take probably a weeks worth of evenings going through the logs to compile a complete list of what has changed. We'll update this page with as much as possible.
Warning
Install Omni-bot fresh, and DO NOT use old waypoints and/or map scripts. It is very likely that they are NOT compatible. To be more specific, 0.7 will load old waypoints fine, but chances are the map scripts are not compatible. We have gone through all the waypoints and scripts in the download section to update them to at least fix the script errors.
Updates
Bot
- Completely new bot goal system - see below
- New trigger system to allow box or sphere triggers to be set up to call script functions when certain entities enter/exit.
- Updated linux builds to libstdc++.6 to fix memory leaks that occur with libstdc++.5
- Debug window to view much useful information - bot dwon
- Ability to group all goal types. see SetGoalGroup
- Stance property for attack, defend, and snipe goals
- More bug fixes than I can count
Enemy Territory
- Added XP accessor, see GetEntityStat
- Added a bunch of new triggers that can be used in map scripts, simplified their naming.
- Trigger for mover states opened, closed, opening, closing (team doors, additional lever support, etc)
- 30 seconds left trigger
- 2 minutes left trigger
- Round End trigger
- Added additional entities to breakable / shootable category ( chairs, etc )
- Added seperate goals for Panzer and Flamethrower camp locations
- Added Mobile Mortar goal
- Bots will commit suicide 2 seconds before next spawn if a class or weapon change request has been given rather than immediatly
- Fixed invalid characters from being used in goal names so it doesn't cause script errors.
- Simplified names for map goals. This effects the naming used in scripts. Apologies for breaking existing scripts. This is why we went through the scripts in our download section and fixed them.
- MAP_CONSTRUCTION is now BUILD
- MAP_DYNAMITE_TARGET is now PLANT
- MAP_DYNAMITE is now DEFUSE
- MAP_FALLEN_TEAMMATE is now REVIVE
- MAP_MOVER is now MOVER
- MAP_MOUNTABLE_MG42 is now MOUNTMG42
- MAP_REPAIR_MG42 is now REPAIRMG42
- MAP_MOBILE_MG42_SPOT is now MOBILEMG42
- MAP_MOBILE_MORTAR_SPOT is now MOBILEMORTAR
- MAP_ARTYSPOT is now CALLARTILLERY
- MAP_ARTYTARGET_S is now ARTILLERY_S
- MAP_ARTYTARGET_D is now ARTILLERY_D
- PLANT_MINE_GOAL is now PLANTMINE
- HEALTH_CABINET is now HEALTHCAB
- AMMO_CABINET is now AMMOCAB
- MAP_FLAG is now FLAG
- MAP_CAPPOINT is now CAPPOINT
- MAP_CAPHOLD is now CAPHOLD
- MAP_FLAG_RETURN is now FLAGRETURN
- See below for a more complete guide to updating 0.66 map scripts to 0.7
Scripts
- Completely new script goal system - see below
- Moved MinBots, MaxBot functionality completely into script, added BalanceTeams functionality to it. See global_scripts/server_manager.gm
Waypoints
- Updated a metric shitload of waypoints and scripts to new goal naming conventions.
Additional Info
New Goal System
- Overhauled goal system into a hierarchical behavior tree, based on Halo2 Hierarchical Behavior Tree Gamasutra Halo2 AI Article
- Much more optimized, extensible, and scalable.
New Script Goal System
- Script goals can be added by simply adding them to the goals folder.
- Script goals compete directly with internal goals, allowing them to be balanced much easier along side other goals.
- Script goals hide much functionality, allowing complex scripts to be written with much less code and much less cpu usage.
- No longer requires edits to def_bot.gm or any other script to load them.
- Much more automatic handling of bot control by individual script goals.
- SetScriptControlled, SetScriptControlledWeapon not necessary anymore, gone.
- No need for a bunch of special logic to prevent leaving bot in a bad state.
- See Omni-bot Script Goals
Updating Map Scripts from 0.66 to 0.7
Due to the sheer amount of changes from 0.66 to 0.7, unfortunately the structure of many things changed such that we could not maintain compatibility with 0.66 map scripts (though the waypoints should still be usable). Here is an overview of what is necessary to update a map script to 0.7
- Rename all references to map goals in the map script using the new naming convention outlined above.
- Remove all calls to SetBiasGoals, it has been removed, and replaced with SetGoalPriority, see Map Scripting Enemy Territory.
- Remove all calls to bot.SetGoalProperty, it has been removed.
- Util.ResetGoals has been removed since the new goal system overrides current goals with higher priority goals.
- The 'Go' nav flag and goal have been removed, so any references to them in map scripts should be removed.
- Any custom bot control threads need to be replaced with the new script goal system (e.g. WatchForElevator threads that take control of a bot).
- Keep in mind that all goals compete equally based on priority; including script goals. Setting relatively high priorities for any goals can interfere with execution of script goals.
- The crouch and prone flags at sniper spots are no longer interpreted as stance. If the stance is important, use the command waypoint_setproperty stance crouch/prone to add a stance property to the waypoint. Consider removing the crouch or prone flag since it will be obsolete in most cases.
Updating Script goals from 0.66 to 0.7
The old method of writing scripts that would go into the scripts folder, and then executed by adding a few lines into def_bot.gm is completely deprecated, unsupported, and should not be used. In 0.7 all bot controlling functionality is relocated into script goals.
It is highly recommended that you run 0.7 with a completely fresh installation, and not one that retains a bunch of old scripts that can cause problems.
See the new script goals located in the scripts/goals folder for reference, and see the Omni-bot Script Goals for additional information.