Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Automatic Bot Waypoint System

#1
As many of you probably know, there are a lot of custom maps which are pretty well made, but don't have bot waypoints. I propose a method for which an ordinary game server would generate waypoints(if they don't exist already) automatically.

The server would place waypoints at every real player location every second. If a player is within a certain distance to a waypoint, the server would skip creating a waypoint there to prevent creation of too many waypoints.

This way any ordinary map without premade waypoints files would still be able to have somewhat intelligent bots, and maps with existing waypoints could be extended if the server operator wishes(a cvar like g_forceAutomaticWaypoints).
megatog615 - #xonotic@irc.quakenet.org
Reply

#2
im not sure this is a good idea, in my experience auto-waypoints dont work out good. another factor is performance, more waypoints mean more processing; and automatic systems tend to create much more wp's then needed (just look at how Nexuiz spams waypoints for every single item).

They way bots use the waypoint grid is being re-worked tough (cant say if it will be ready for 1.0 tough). The way its re-designed means you need far less wp's to make bots get around; hopefully that will be enough to make ppl create waypoints for their maps. Possibly we can have bot wp-less bot roaming in the future too.
Reply

#3
nice idea but i agree with tZork
Reply

#4
(04-13-2010, 01:31 AM)tZork Wrote: im not sure this is a good idea, in my experience auto-waypoints dont work out good. another factor is performance, more waypoints mean more processing; and automatic systems tend to create much more wp's then needed (just look at how Nexuiz spams waypoints for every single item).

They way bots use the waypoint grid is being re-worked tough (cant say if it will be ready for 1.0 tough). The way its re-designed means you need far less wp's to make bots get around; hopefully that will be enough to make ppl create waypoints for their maps. Possibly we can have bot wp-less bot roaming in the future too.

The server could automatically remove waypoints that are 'old' in a sense that they aren't visited as often as others. Waypoints that get added while a player is high in the air, for example. I don't think this would end up with too many waypoints due to the distance to existing waypoints method i mentioned.
megatog615 - #xonotic@irc.quakenet.org
Reply

#5
(04-13-2010, 01:25 PM)Odin Wrote: The server could automatically remove waypoits that are 'old' in a sense that they aren't visited as often as others.
Unfortunately that wont work in with the current waypoint system, you need to 'relink' when adding / removing waypoints and that takes time (thats why bot games in Nexuiz used to "freeze" at start before mand1nga made then filebuffer links). and that was just one refresh.

(04-13-2010, 01:25 PM)Odin Wrote: Waypoints that get added while a player is high in the air, for example. I don't think this would end up with too many waypoints due to the distance to existing waypoints method i mentioned.
Waypoints should not spawn in the air at all since bots cant use those Tongue Distance based filtering will not work, it would prevent two necessary adjacent wp's on each side of a thin wall.

The digital breadcrumb approach could definitely work, possibly quite well too; but not with the current waypointsystem - its simply not designed to be used that way.
Reply

#6
Well if none of this is possible then at least a big warning message should be shown at the beginning of the map to inform the map developer that there are no waypoints and that bots will stand still. I think the problem is that most map developers just don't know about waypoints.
megatog615 - #xonotic@irc.quakenet.org
Reply

#7
(04-14-2010, 12:13 AM)Odin Wrote: Well if none of this is possible then at least a big warning message should be shown at the beginning of the map.

That could work - a warning dialog message to inform of some issues in the map that is starting, featuring:
1. No bot waypoints
2. Spawnpoints in solid (no more console-only warning)
3. Possibly other map-related problems

This feature should remain a feature, though: the warnings should be shown to a map developer only, they musn't pop-up to an innocent player playing on a server (consider also all maps available at the moment) -> that would have the bad effect of people ignoring popups.

I see these options:

1. Show a warning dialog only when a specific cvar is set (developer_mode)? (although if map developers aren't aware of waypoints how come they are aware of setting a new cvar?)
2. Show a warning dialog when playing in local mode. A message like this:

Quote:
Warning
Current map has no bot waypoints, bots will play dumbed down with no cognition of space.

should fit both developers testing maps and common players who play in single mode.

(04-14-2010, 12:13 AM)Odin Wrote: I think the problem is that most map developers just don't know about waypoints.

And this part should be (or is already, dunno) well-covered in the mapping tutorial.

Let me know what you think about these ideas, anyway.
Reply

#8
Perhaps a command line switch or "mutator" to analyze the map for problems. (local game only wont be any good since bot play is mostly useful for local games Tongue) I like that idea tough. Also instead of warnings or stupid bots with no wp's one could a: refuse maps with no wps if bot_number > 0 or disable bots for that map (the server option, who really needs bots for those anyway).
Reply

#9
Maybe have the map maker tag certain areas as traversable and let the map compiler sprinke in some waypoints while compiling. Then let the map maker go back in and revise/shift placement if needed. The auto waypoint generator may work if the game is run under a "map test" or "developer", and the game tag places of interest. Tagging places of interest - Game marks player positions at regular intervals (1,3,or 5 seconds) of a typical game. At the game end, the area that has a large amount of marks gets tagged. Map maker can then go back and adjust as needed, perhaps also tagging "laser/rocket jump" spots.
Reply

#10
Do youi mena the sorta thing that CS:S does when running a custom map for the first time?


[Image: sig2.png]
Check out my site: www.alisdairrankine.com!
Reply

#11
Another thing about waypoints and bots is an idea of creating such a program for bots that could learn each map by itself.

You let the bot to run alone on each map for some time, he is taking random actions and checking results, building himself his own paths for every map.

Bot's data could be stored and distributed in package with the game, so no one needs to let his bots learn.

Despite the package - creating new bots, with different look and personality, letting them learn on their own - could also be a great fun.

All bots should learn during playing on new maps - that would be very human-like behavior.

For simplification there could be just one path database used by (and created by) all bots.

Just an idea... Smile
I'm making Liblast - a FOSS online FPS game made with Godot 4 and a 100% open-source toolchain
Reply

#12
(04-19-2010, 12:35 PM)unfa Wrote: Another thing about waypoints and bots is an idea of creating such a program for bots that could learn each map by itself.

You let the bot to run alone on each map for some time, he is taking random actions and checking results, building himself his own paths for every map.

Bot's data could be stored and distributed in package with the game, so no one needs to let his bots learn.

Despite the package - creating new bots, with different look and personality, letting them learn on their own - could also be a great fun.

All bots should learn during playing on new maps - that would be very human-like behavior.

For simplification there could be just one path database used by (and created by) all bots.

Just an idea... Smile

The problem with this is that the same issue would happen under this method as well: lazy mappers who don't put waypoints in their maps before packaging them up would not test any kind of 'learning bot' either.
megatog615 - #xonotic@irc.quakenet.org
Reply

#13
I play another game similar to Nexuiz (arena-style crazy-insane FPS) called Sauerbraten, and this is how you placed waypoints in its maps, although it's not really recommended during actual play. Basically, you go to the command-line, set "place_waypoints 1" or something like that, and then you just run around the map, hitting all the places you want bots to be able to go, then turn off place_waypoints and save the map. Made placing bot waypoints a dream. Although I don't really know how feasible this would be in a game like this, since the mapping tool and the game are so distinct. In Sauerbraten, you just hit a key and you were in edit-mode and you could modify the map geometry in-game.
Reply

#14
thats basicaly how it works in nezuiz / xonotic too vede.
g_waypointeditor 1 - enable waypoints editor
g_waypointeditor_spawn - Drop a node at current location
g_waypointeditor_remove - Delete closest node
g_waypointeditor_saveall - Take a guess
g_waypointeditor 0 - turn off waypoints editor

there are more g_waypointeditor_* commands too, but those are the essential ones.
Reply

#15
(04-23-2010, 09:44 PM)vede Wrote: I play another game similar to Nexuiz (arena-style crazy-insane FPS) called Sauerbraten, and this is how you placed waypoints in its maps, although it's not really recommended during actual play. Basically, you go to the command-line, set "place_waypoints 1" or something like that, and then you just run around the map, hitting all the places you want bots to be able to go, then turn off place_waypoints and save the map. Made placing bot waypoints a dream. Although I don't really know how feasible this would be in a game like this, since the mapping tool and the game are so distinct. In Sauerbraten, you just hit a key and you were in edit-mode and you could modify the map geometry in-game.

Um, a lazy map maker will not bother with this step. By the way, if you let 'smart' bots play the map by themselves, chances are they will still play stupidly. Bots have no cognizance of spatial priority. That is, they don't know about chokepoints, camp spots, weapon defending, etc. That's why I suggested the game mapping player positions every few seconds during a testing phase. The bots 'learn' from human players. I think that it would make the bots at least cover areas more realistically. Plus, if average to above average players do the testing, the bots will be tougher to defeat. Position polling would slow down a large server game, but perhaps a small 8 player server would do.
Reply

#16
(04-24-2010, 10:04 PM)GT_Gene Wrote:
(04-23-2010, 09:44 PM)vede Wrote: I play another game similar to Nexuiz (arena-style crazy-insane FPS) called Sauerbraten, and this is how you placed waypoints in its maps, although it's not really recommended during actual play. Basically, you go to the command-line, set "place_waypoints 1" or something like that, and then you just run around the map, hitting all the places you want bots to be able to go, then turn off place_waypoints and save the map. Made placing bot waypoints a dream. Although I don't really know how feasible this would be in a game like this, since the mapping tool and the game are so distinct. In Sauerbraten, you just hit a key and you were in edit-mode and you could modify the map geometry in-game.

Um, a lazy map maker will not bother with this step. By the way, if you let 'smart' bots play the map by themselves, chances are they will still play stupidly. Bots have no cognizance of spatial priority. That is, they don't know about chokepoints, camp spots, weapon defending, etc. That's why I suggested the game mapping player positions every few seconds during a testing phase. The bots 'learn' from human players. I think that it would make the bots at least cover areas more realistically. Plus, if average to above average players do the testing, the bots will be tougher to defeat. Position polling would slow down a large server game, but perhaps a small 8 player server would do.
This is essentially how ACEBot works.
megatog615 - #xonotic@irc.quakenet.org
Reply

#17
I didn't play Quake much, so I don't know how the bots work.
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  A Garry's Mod / sandbox system MirceaKitsune 20 37,865 01-05-2019, 10:52 PM
Last Post: 3agle427
Information Automatic updates for autobuilds divVerent 72 126,669 07-13-2017, 10:17 AM
Last Post: Mario
  Spawn system Mirio 57 41,311 05-28-2016, 03:49 AM
Last Post: Smilecythe
  bot navigation bug needs fixing zwz 0 2,623 09-22-2014, 10:14 PM
Last Post: zwz
  bot navigation mesh creator poVoq 5 5,833 02-22-2014, 01:04 PM
Last Post: tZork
Lightbulb Easy to configure *map* balance system Samual 8 12,025 11-17-2012, 04:14 AM
Last Post: Mr. Bougo
  Big Brother Bot Support Majki 30 26,910 10-16-2012, 12:32 PM
Last Post: Mr. Bougo
  Bone based damage system (feature vote and debate) MirceaKitsune 42 45,208 05-17-2012, 01:29 AM
Last Post: CuBe0wL
  How do I use the newer 48 slot weapon system? May Epper 1 3,810 04-20-2012, 01:28 AM
Last Post: Mr. Bougo
  Bot waypoint format Nodenum 5 7,344 12-23-2011, 07:09 AM
Last Post: Lord Canistra

Forum Jump:


Users browsing this thread:
1 Guest(s)

Forum software by © MyBB original theme © iAndrew 2016, remixed by -z-