Bot InfoBots are, for those of you who don't know, a simulation of the multiplayer (hereafter referred to as MP) opponents/companions you would normally find in a network or modem game of Doom, Quake, et. al. They are very popular because many people don't like the lag that the internet causes in MP games, or they can't find someone to hook up with, or they can't find a server with low enough ping. For whatever reason, they just want some MP action without all the concomitant hassle.
|
||
Deathmatch
Bots: There are currently 3 "real" DM bots. There have been some fake
bots that are simply hacks of monster ai to simulate a bot, but IMHO an
ideal
DM bot should have the following characteristics:
Co-Op Bots: The Doombot & the Cajun Bot now play co-op to an extent, but their ability in this regard is still undeveloped. A few ports have their own cooperative bots. This example of bot behavior had been available at first only with the release of Lee Killough's Marine's Best Friend, which featured helpful dogs, of course. Thrust will feature cooperative player bots. Desireable co-op bot characteristics would include:
These friendly imps are definitely not as smart as the dogs of Lee's MBF, but it is an example of how easy it is to change things with ddf.
The enclosed creature.ddf file is just a simple ddf hack of the imp behavior to make it friendly, if not very smart. You can just unzip it into your dosdoom dir & overwrite your existing creature.ddf if you want. You can always restore the original setting by adding & removing a few sets of {} brackets to comment out & un-comment the affected items.
In the [IMP] section, you will see the following commented-out section (Everything enclosed within the {} brackets is commented):
{SPAWN_STATES=TROO:A:10:NORMAL:LOOKOUT,
That is the original code. It has been replaced by:
SPAWN_STATES=TROO:A:10:NORMAL:SUPPORT_LOOKOUT,
&
the following was added:
MEANDER_STATES=TROO:A:3:NORMAL:SUPPORT_MEANDER,
Which will make the imp behave quite differently. It will attack monsters, & unfortunately barrels
as well, resulting in suicide. It will also wander around aimlessly instead of chasing you around. As you can imagine, you can make any monster friendly using the same method. The only trouble is that they aren't really smart, they don't follow you around, & the change affects the entire species i.e. all imps will be friendly. I'm sure there will be better ways developed, as ddf is very new & very powerful. MBF has an easier,
better way of making friendly monsters, though.
In other
words: the bot should behave like a human player! Here are the 3 current DM bots:
The Cajun Bot & the Doombot can both run in co-op mode.
There are also currently 2 ports that have, or will have, built-in co-op bots:
Hack
Your Own Monster Bots
There are also some little
hacks that can be done to create some friendly monsters that could be considered
co-op bots to some extent.
Here's the text that
comes with my team's friendly
imp ddf hack for DosDoom 0.65:
Marine's
Second-Best Friend
TROO:B:10:NORMAL:LOOKOUT; }
TROO:B:10:NORMAL:SUPPORT_LOOKOUT;
TROO:A:3:NORMAL:SUPPORT_MEANDER,
TROO:B:3:NORMAL:SUPPORT_MEANDER,
TROO:B:3:NORMAL:SUPPORT_MEANDER,
TROO:C:3:NORMAL:SUPPORT_MEANDER,
TROO:C:3:NORMAL:SUPPORT_MEANDER,
TROO:D:3:NORMAL:SUPPORT_MEANDER,
TROO:D:3:NORMAL:SUPPORT_MEANDER;
In
an editor like Deth, just select the monster you want to be friendly &
set its flag to include the "no co-op" setting, in addition to the easy-med-hard
settings.
These friendly monsters are smarter, they follow you around,
& they will attack other monsters of the same species.
Coded in Moscow, Fly's Doombot has been developed extensively, & it is the most capable bot currently available. It uses player weapons, & its frags show up in the scores (except in the intermission screen). It can jump off ledges. The latest version can predict player movement (no, silly, it's not psychic, that means that it will lead its shots with the rl, more like a smart human player would). Hitting "B" will spawn one bot, or you can use the command line parameter -add2bots to have the game start up with 2 bots right away, although the conjoined respawning bug may occur (as is commonly the case in gothic2.wad map 30). In version 2.5, you can use -addbot # to add up to 15 bots. 2.0a was the last version to use the old DosDoom 0.47 code. From 2.1 onward, this bot has been Legacy-based.
Usage:
@doombot.exe -skill 5 -deathmatch 1 -warp 7 -nomonsters %1 %2 %3 %4 %5 %6 %7 See the -warp parameter? Change that to go to the map# you want (i.e. edit the -warp parameter in doombot.bat). DO NOT change maps during the game by using idclev or even the exit, because it will usually crash the Doombot (though you may get lucky on occasion).
Doombot.bat goes like this:
Movement:
In normal deathmatches, the bot will roam around maps, pretty much feeling its way, searching for targets & picking up weapons, health, armor, & megaspheres. The latest version will follow a set of nodes for each map (if they've been set up beforehand), & will know the map like a pro. Early versions of this bot would just bounce off the walls like a pong blip, & it would get stuck on
ledges or walls. The movement code has since been modified so that it can jump on & off ledges, & it will change direction independently of hitting
walls. It will also not go into slime. It doesn't set off "open door" linedefs, so it will get stuck in areas like the BFG room in gothic2.wad map 30. Also, it won't use switches. Combat:
This bot will strafe side to side when attacking, keeping an appropriate distance. It picks up weapons & uses them, & it respawns with the pistol, just like a player. It can lead its shots with the plasma gun & rocket launcher by predicting the player's trajectory. Also, the bot can fire at targets while it is moving to a destination. It will also circle around you very quickly & shoot you in the back if you are not extremely alert. This bot is currently the best DM challenge around. It will usually out-frag me 7-1.
Future Plans:
From Sweden comes the Cajun Bot. Like Fly's Doombot, this bot is for Legacy, though there are plans to port it to DosDoom, replacing or at least merging with the current Deathbot.
Usage:
Command line parameters:
Console commands:
You can edit the bot.cfg to change the following:
In ctf mode, the bot uses nodes to navigate maps to find the enemy flag & bring it back to base for a touchdown. Also, you can place nodes into dm maps for dm play as well, which makes the bot navigate the map like a pro. In co-op mode, the bots are pretty independent, that is, they don't follow you around or anything. They will just roam the map (to some extent--they don't roam very well in co-op) as if you aren't even there. That, & the fact that it crashes when you go to the next level & spawn more bots, makes this bot not the best choice for co-op play.
aiming 0-90: How well the aims, of course.
perfection 0-100: How clumsy the bot is.
reaction 0-100: Self explanatory.
isp 0-100: Instinct of Self Preservation, Determines how brave/crazy the bot is.
team string: The bot's team name.
color 0-9: Determines the color of the bot.
Movement:
This bot uses nodes to calculate movement, & it builds its nodetable from the player's movement through the level (much like Quake's Omicron bot). You can make it stop & start building its nodelist by using nodes 0/1 in the console. You can save & load these nodetables by using console commands save filename & load filename. Console command stat lets you see the current number of nodes. Even without setting up the nodes, it moves & roams pretty well, though it does occasionally get stuck, & moves more slowly than the Doombot 2.5. In co-op mode, the bots will follow you around fairly well, though you will sometimes have to herd them through winding hallways. They will attack monsters, & what is even more remarkable is that if you start shooting while they are in your way, they will step aside to give you a clear shot. Very nicely done. There are times that they will freeze up & stand still. If you shoot them, it sometimes will wake them up to get them going again, otherwise you are on your own for the rest of the map. This seems to happen mostly when they respawn.
Combat:
The bot's combat ability can vary, because each bot can configured via the bots.cfg file. The bots that come included in the Cajun bots.cfg are pretty good. They strafe, they charge. They can use all weapons, even the chainsaw & berserk. They are good, but the Doombot 2.5 is still far tougher. I made up a bot named Arnold who I gave the maximum settings in everything, & I still out-fragged it. The default Doombot 2.5 bot will out-frag me 7-1. But, sometimes you don't want to be completely blown out of the water, & the Cajun is a fairer choice. But for the best challenge, Doombot 2.5 is the bot to beat.
Future Plans:
Darkfang & Fly have collaborated to make these bots possible by sharing Fly's Doombot code & Darkfang's Thrust code to create the helper bots for Thrust. Darkfang describes his plans for these bots:
In the game, they are called Lost Troopers and they are the remaining survivors from the previous squad that attempted the mission before you that got slaughtered. But yet, some remain and they are eagr and willing to help you in your quests. Some might posess keys, a new weapon, health, etc... in which they will give you when you rescue them.
Until they are rescued, they remain idle in hope that someone(like yourself will come along and rescue them). But, while they are idle, they will fire apon any enemys they might see, they will just hold their position and not move while attempting to kill anyone that is not here to help is only part of the problem.
Once rescued, they will give you whatever it is to be given and also sometimes thank you (these bots talk alot somtimes) and offer to joinup. Once this has happened, they follow you around and almost duplicate your moves as you move about the map. But, this quickly changed if any enemy(s) come into sight. If this happens, they will quickly do their own moves and do the crazy strafing and will fire apon will on the enemy. If you get in the way of the bots fire, you take the damage he dishes out. But, if he gets in the way of yours, he'll be nice and won't get mad and start going postal on you :)
Also, to sum it up, they are very interesting as they will yell during a battle "We got company!!". Or, after a battle "See? They ain't so tough". Thats only a few instances. But, they are alot of other things.
Also, I do plan on adding hero bots kinda like starcraft, heros that have beefed up weapons and health and that you must keep alive until you take the hero to a certain point.
According to Darkfang, these bots are currently done! I am looking forward to Thrust--it really sounds like it will have a lot of depth with these npc-type companion bots. I am reminded of Romero's ideas for Daikatana!
Lee's parting gift to the Doom community is
a truly remarkable port, which is based on Boom. It adds many features,
including hi-res graphics, pre-beta Doom emulation (including a very cool
BFG that spews a massive swarm of plasma balls), & some great SP helper
dogs, the Marine's Best Friend referred to in the title. Yes, they are
dogs, which use the german shepherd graphics ripped from Wolfenstein 3d.
They will follow you around & attack enemies, much like the Cujo bot
for Quake. So if you want co-op with dogs, this is for you!
*Friendly Monster AI
+ Friends attack enemies like players
+ Friendliness is a mobj property, like NOGRAVITY or SOLID
+ Friendly single-player helpers (dogs) can fill in coop starts
+ Friendliness is transferred by Arch-Vile, Pain Elemental, and Boss Spawner
+ Player autoaiming avoids friends if enemies are in range
+ Friends with missiles return one shot if shot by friends
+ Friends stay a "comfortable distance" away from players
+ Friends indicated by different color in automap
Usage:
In the options
menu, go to setup,
then enemies. There you
can change the following features, as explained by Lee:
*
Number of single-player helper dogs
This
option allows anywhere from 0 to 3 player starts to be filled with
friendly dogs in single-player games. These might be considered co-op bots,
although they cannot pick up items or operate keyed doors or the like.
*
Distance friends stay away
This
option sets a "comfort distance", which is the distance friends of the
player try to stay away from the player, to avoid getting in your feet.
Under
reasonable circumstances, such as on a crowded lift, or if the friend is
attacking an enemy that's close by, this distance constraint will sometimes
be violated.
*
Allow dogs to jump down
If
this option is set to YES, dogs will jump down from taller ledges towards
their owner. If this option is set to NO, dogs cannot jump down from ledges
taller than 24 (unless deh-modified, perhaps).
The command line mbf
-dogs # will start you with # of dogs. This will override
the # of SP helper dogs setting found in the options-setup-enemies menu.
The Deathbot is the only bot which is currently compatible with DosDoom's DDF (Doom Definition Files). It is also not compatible with dehacked mods. It has been released "as is", & therefore it is not well supported. Plans are in place to release a better Deathbot in the future.
Usage:
Movement:
Combat:
Future Plans:
ddbot -deathmatch 1 -skill 5 -nomonsters -file wadname
Wadname would of course be the name of the pwad you are trying to run.