\QUAKE\BOTS\OMICRON Title Omicron Bots Filename Obots100.ZIP Version 1.00 Date 1997-12-04 Authors Mr. Elusive (concept, shell model, Quake C coding & programming) H2SO4 (concept, cloud model, bottalk, readme) Email obots@demigod.demon.nl Contents Credits Creating Static Waypoints The Skin People Map Randomizer The Beta testers Story Stuff Type of Mod The Bots Format of QuakeC The Players Description of the Modification Known problems/bugs Installing the Modification Troubleshooting New console commands Help Normal console Settings Acknowledgements and thanks Administrator Menu Copyright and Distribution Permissions Camper Detection Availability Credits (in no specific order) ID Software Quake and QuakeC(?) Olivier Montanuy QuakeC Manual v1.0 Steven Polge lots of inspiration Uwe Girlich the unofficial DEM format description v1.04 Roscoe A. Sincero lots of ideas for the movement code and several other points of inspiration Alan Kivlin for the code to count the maximum number of clients and ideas for the GLQuake support Meanstryk for beta testing to the max, ideas, chat lines, too many things actually Greg Howell Tiggerskin (+ for giving permission). Tigger Clan for giving permission to us to use their tiggerskin. maxwells@ihug.co.nz (Richard "Jodi" Maxwell) http://homepages.ihug.co.nz/~maxwells/jodi/tiggers/tiggers.html Luke Pope Cowboy Skin (+ for giving permission). Alan Yen Mountie, Punisher and Ironman skin (+ giving permission). Kenneth Scott AKA The Dire Proto-Fiend; skins of Carmack, Qspy, Iceman, Klingon, Terminator, Predator, Robocop, Hitman and Babe, plus parts of the Slaine skin, a well as the Demigod gun (hey...its a cool gun). (there was a readme...sorta...that said we could use the skins if we mentioned him in the readme...well...here it is) Tim Willits For his own skin ;) Mike McMillen AKA Happy Slappy; Slaine skin & Happy Slappy skin, DUH! (+ for giving permission) Elver Bill Gates' Microsoft Skin (using base skin) & Demigod skin Okkun Sven's Swemob Skin Gavin Suntop The Tick's lines, taken from TV/comics. The Tick one-liners: http://www.cu-online.com/~phyber/tick/tickpage.html James Kennison For the great, the fab the one and only ELVIS skin (yep, the King is still alive!!!) (+ for giving permission) Itchiban Turtle skin The Skin People (Who may not be able/wanting/have time to do YOUR/YOUR CLAN skin): I consider these people to make the best skins in the world, and that is the truth...it is the truth that that is my opinion...at this time.... Don't know what my opinion is when you read this...Heheh. James Kennison jamesk@mylink.net http://www.mylink.net/~jamesk/skinsbyjames/ Greg Howell howellg@ihug.co.nz http://homepages.ihug.co.nz/usersdirs/howellg Luke Pope lupope@vt.edu http://www.cs.wm.edu/~pbgonz/gskins.html Alan Yen partycrasher@geocities.com http://www.geocities.com/SiliconValley/Lakes/5544/ Kenneth Scott mfarr@ccinet.ab.ca http://www.brutality.com/skinforge/ Mike McMillen mike.mcmillen@sierra.com http://www.planetquake.com/skintutor/skins/slskins/sl_skins.htm Elver Nobody@demigod.demon.nl http://www.demigod.demon.nl...hey this site looks familiar.... The Betatesters The Omicron bot would never have reached this point without these guys! Many thanks to them. Legion (Roscoe A. Sincero) Meanstryk (Brian Bland) eXorcist (Maarten Winkel) OoXoO Wilfred Death Mr? (Timm Stokke) Alan Kivlin Type of Mod QuakeC: no Sounds: yes Models: yes (but no Claudia Shiffer) Format of QuakeC unified diff: no context diff: no .qc files: no progs.dat: yes (for Quake v1.06 or later) qwprogs.dat: no Description of the Modification This quake add-on contains the following features (and probably a lot more): Dynamic level learning: The omicron bots can quickly learn any level, and remembers where things are as it plays... Try it on a level you don't know, and the bot will know the level "by heart" before you figure out how to get from A to B. Once the bot has "learned" a level, you can easily take that knowledge and put it into the BSP itself. From then on, the bot won't have to relearn that level; it will know it from the start. Optional anti-camper feature; This enables you to weed out all those happy outdoor type people. Make the rain fall...yeah. Advanced routing: Not only does it remember where things are, but it also can plot the shortest route to them, taking into account existing teleporters. It can find enemies in a similar fashion; if it knows where you are, it might come and make a visit. Hearing: The omicron bot can actually "hear" and "understand" some of the sounds around it. If the obot hears you pick something up, for instance, it might figure out where you are. If it does, it might very well decide to come over and put you in backpack mode. Pursuit AI: Using its advanced routing, the omicron bot can be a hard tail to shake. Not only can it chase you down, but it can sometimes use existing map features to actually cut you off at the pass. Fuzzy logic: The bot uses a fuzzy logic AI. It isn't as impressive as it sounds, or so Mr. E. tells me. This allows it an amount of flexibility when making decisions and allows those decisions to appear much more intelligent. Team Support: Not only does the obots support teamplay, it actually supports teamplay with multiple teams! Individualized characters: There are 24 different bots, each with its own respective skin and phrases. You can either choose to load up a random character, or if you have a favorite bot, you can ask for it by name. Bot-Cam: The omicron bot provides an observer mode that allows you to see through the eyes of a client (i.e. bot or player) of your choice, or to follow him in "supersmooth chase-cam"(tm) mode. Deathmatch 3 and 4. (love dm3..don't know about dm 4) Optional removal of the quad, pentagram(or 666 as I like to call it), invisibility and rocket launcher. Randomize maps feature, which makes you jump around quake maps (and other custom maps) to your own liking, ignoring those you hate and dispize (maps, not people that is). Several difficulty levels for the bots; from skill 0 to 3. Actually the difficulty is for you, the player. The higher their skill, the easier you are to kill. Hardcoded waypoints for all deathmatch levels of the original Quake. So it saves you the time of making your own crummy BSP waypoints and then complaining to us that the bots suck. Which we already know....so try and make a better bot yourself..from scratch...HA!!! (Note: this editorial was not put here by Mr E., who wishes to apologize for the entire contents of this readme) ROCKETJUMPING!!!! (I heard that some of the Beta testers themselves were whining over this bit for weeks..this is why it was included last...it had a priority of 1; 0 means...we're not going to do anything about it). Installing the Modification create a subdirectory in your Quake directory. (if C:\QUAKE is your Quake directory you could create C:\QUAKE\OMICRON) copy the contents of the zip file (including the subdirectories) into the created directory. start Quake with the command-line parameter "-game" followed by the name of the directory where the omicron bot is located (for example: quake -game omicron) (IMPORTANT NOTE: all letters in the parameters MUST be lowercase, or Quake will ignore them) New console commands addbot adds one random bot * botpathing toggles bot to learn the map by itself (default=on) botskills print the skills of the bots camname toggles name of client observer is viewing from campmode sets the camping mode * chasecam toggles between cyclecam and chasecam cyclecam cycles the camera to the next bot or player dumpbspwaypoints dumps the waypoints to the console humanpathing toggles bot to learn the map from player (default=on) menu show administrator menu nogrenade disable the grenade launcher * nolightning disable the thunderbolt * nopowerups disable the 666, the quad and invisibility powerup * norocket disable the rocket launcher * nosupernail disable the super nailgun * noweapons disable all weapons * observer toggles observer mode on/off observerfly toggles between flying or walking in observer mode (troubleshooting) removeallbots removes all the bots * removebot removes one bot * skindown cycle through the skins downward skinup cycle through the skins upward stopadmin exits the administrator function team1 - team8 join the specified team * only the administrator can utilize this command with success. Specific bots can be added by typing in the name of the bot on the console. These are: klingon john bill tick terminator tigger ironman predator sven raphael bob qspy iceman happy tim elvis robocop cowboy hitman mountie babe punisher slaine demigod see the Bots for a description of each. Normal console Settings skill sets the skill of the bot 0-3 deathmatch n sets the dm mode to dm n. dm 3 (weapons remain and can be picked up once per "spawning") dm 4 (all players have all weapons, all ammo, 200 health, 250 armor, backpacks also give +10% health; more than 300 health =health 100, plus one gets quad and 666; weapons cannot be picked up, quad does octa damage) Administrator Menu The administrator menu (from console: menu) enables the administrator to change several settings. Select options by entering the number preceding the menu item. (or by typing impulse, followed by that number on the console). See also: Troubleshooting Administrator Menu Deathmatch: off, 1 to 4 Teamplay: off (so there is no teamplay) or 1 through 8 (equals the number of teams) Skill: 1 through 3 Timelimit: off, 0 to 60, increments of 5 Fraglimit: off, 0 to 100; increments of 10 Team Selection Menu By entering 1, 2 up to n where n is the console setting for teamplay, one enters the specific team menu. Here bot(s) can be added to that specific team. Up to 16 clients (=bots and/or players) total can be added (such is the limit of Quake). Although the bots are meant to train people for deathmatch games, Mr. Elusive had one of those brilliant ideas of his and built in teamplay. Note that the bots are extremely humanlike in this aspect, since they have a tendency to fire on other team members. Botmanagement Menus Deathmatch Menu Team n Menu Players can enter a specific team by typing 'team n' on the console where n is the number of the team they want to join. (I assume you can find out for yourself how to operate the rest of the @#!^&*!! menu, after all, you managed to get out of bed, didn't you? and you're reading this, aren't you?) nuff said. Camper Detection The camper detection feature is unlike the patches that just check if a player is standing motionless. The player is allowed to stand motionless and type messages. The feature checks if someone is camping near an interesting item (rocket launcher, red armor etc.), and when a suspected camper is detected every player receives a message with the name and location of the camper. This is followed by a 2nd message if the culprit still plies his "outdoor hobby". The camper receives a personal warning and eventually the camper will be punished. There are several punishments; some bad, some worse, some real funny (to others that is) including a mischievous cloud that follows the camper and lights up his day ;) (now you know what that stupid cloud model is for). The default mode is "detect & punish", but there is a "detect with severe punish" mode, and a "detect only" mode as well. It is also possible to disable both detection and punishment. Creating BSP Waypoints BSP waypoints are needed for the bots to find their way in a given map. All deathmatch levels (DM 1 to 6) are already hardcoded as an added bonus (and because I kept on whining about it..hihi). Making BSP Waypoints for other maps can be accomplished as follows; A player explores a given map each time before bots are added, or it can be done once, then saved in a file on hard disk. In order to accomplish the latter, the following commands must be executed: Start Quake with the following command-line parameter: quake.exe -condebug Now load the map to create the BSP waypoints for. Try to walk through the whole map [no camping trips this time ;)]. After playing this map for a while, dump the waypoints to the console. This can be accomplished by typing 'dumpbspwaypoints'. Quit Quake and take a look at the QCONSOLE.LOG that can be found in the omicron bot directory. All text not between braces {} must be removed. Take the .ENT file of the map. (cut the entities from the .BSP file with wordpad or a similar word-processor if there isn't a .ENT file.) Paste what is left of the QCONSOLE.LOG at the end of the .ENT file. To create the new .BSP file with static waypoints use QBSP.EXE with the following command-line parameter: qbsp -onlyents ?.ent where ? stands for the name of the map (which must be the same as the filename of the .ENT file). The map is now ready to be played again, and the bots do not have to "learn" the map, as they will "know" everything already. See also Quake Features. Map Randomizer This feature enables the administrator to specify up to 64 maps in a configuration file. Quake will randomly choose a map from these. There are always three different maps in a row (assuming you specified more than three maps). You can specify a map by making an alias with the name 'mapX', where X implies an integer in the range 1-64, that executes 'changelevel mapname' where 'mapname' is the name of the map to be played. For instance, one could enter the following: alias map13 "changelevel dm3" With the server variable 'samelevel' you can specify the number of maps. Make sure all the aliases with the name 'map1' through 'map?' are made where ? stands for the number of maps. Setting 'samelevel' to zero will play the original Quake story line. When 'samelevel' is equal to one the current map will be played forever (broken record effect). Story Stuff Mr. Elusive is much better at Quake than me...simply because he spends more time behind the computer playing Doom and Quake and another unnamed 3D game with royalty. Me, well, I've less spare time. So we came up with this training scheme and how it should work to enable me (H2SO4) and the other Clan members (who are worse than me) to get better at quake and get better results on the internet, so as to defend the reputation of Clan Omicron.(...which still sucks as of this writing). Rather than keep this for our clan, we decided to share the bot with the rest of the world. So here it its... Welcome to Omicron's Basically Obscure Training Scheme (OBOTS). Your mission, should you decide to accept, is to kill any- and everybody until you have acquired enough skill to challenge real persons over a LAN for a duel in quake. And will they be surprised by the way your skill has improved. Then you will be surprised. Because they have also downloaded this bot and improved their skill. Or perhaps they were so expert at quake they're already at the top, in which case you know they are bigger nerds than you thought they were. For this particular training mission, we've selected a few good men and digitized them (turned them into bots). Again, the mission of the game is not to kill Shub-Niggurath or Quake or the Cyberdemon...no, it's far easier than that. Just kill anything and everything you see...unless you are in teamplay mode, in which case you should kill anything and everything in sight AND have a few macro's handy such as "sorry", "oops, I didn't realize it was you", "oh yeah, you have got my color", "I thought I was on team red", etc. The Bots 1.KlingonWe kidnapped this one from the Paramount studios. We think his name is K'Tesh and he doesn't speak the stupid Federation language. His universal translator was damaged while testing the rocket launcher. His favorite line seems to be "tlhlngan Hol Dajatlh'a'", whatever that means. 2.John Romero Yes, kidnapped from iD Software himself. Why else would it take so long before Quake II is released? 3.Bill Gates We said, "how about it, Bill?". "No" he said. "It will give you an opportunity to see what OS is on the local hard drive and transmit this information back to Microsoft.com". "Nah, still not interested". "You could advertise Internet Explorer freely to whomever is playing by chatting". "OK, I'm in." 4.Happy Slappy Da man to put a smile on yer face...or he ain't happy and he'll slapp-y. Happy Slappy's favorite rhyme goes like this (by Mike McMillen, who actually is Happy Slappy): (: HAPPY SLAPPY :) I kill you. You kill me I killed yer whole damn family With a big fat Rocket and a shot from me to you Won't you say you'll kill me too 5.Terminator It is a T500. And again, for each one you gib, there is a new T500 waiting to gib you. Still haven't adjusted that voice chip to get rid of the accent... 6.Tigger The hero from Winnie the Pooh. With a punch (pounce?) to make all cadets wish they hadn't joined the OBOTS. 7.Ironman Tony stark has specifically asked to join our ranks, seeing his star fade fast while another bat-eared playboy makes movie after movie. 8.Predator This guy doesn't say much. He just wants to collect trophies. Actually, he wanted to join the Head Hunters add-on, but we told him he could indeed collect, but he would have to relinquish his trophies in order to get the frags...so no deal there. 9.Sven Because our extensive project is funded by the Swedish mob, we had to include one of their controllers to see the money was well spent. (Hey, I mean, we do have to pay for caterers and the costumes and the campers (no not the quake type, the caravan type) where the bots sleep while you turn off your PC...) 10.Raphael One of the Teenage Mutant Ninja Turtles(tm). We told him "One pizza for each frag."; Cowabunga! 11.Bob Some say Bob is one of the actors who once played in an episode from TAXI. He needed the job. Some say he's from the movie Taxi Driver (I think) ....so it must be....Robert deNiro!!! 12.Qspy Qspy is everywhere ...better than spycatcher, better than Bond...with a licence to gib. 13.Iceman This skin was supposed to dress up the Ice Clan (Which no longer exists) so we thought what a shame...such **gasp** beautiful skin....we had to use it!! 14.The Tick "Dinner's great! I especially like how you cut up my hot dogs to look like octopi". "But what this feast needs, Arthur, is PEZ" and "I'm not a villain lady, I'm vanilla" and "The Fourth Dimension is just one big crazy do not enter clambake jungle of weirdity -- and how does it work? Never mind!" TV Reporter: "Can you blow up the Earth with your mind?" The Tick: "I hope not, that's where I keep all my stuff!" 15.Tim Willits Tim said he knew his own levels so well he could kick anyone's butt he was up against...I mean had to DM against...yeah that's it. 16.Slaine Slaine Mac Roth...the Celtic Scourge...Brainbiter included. No peaceful DEATHS ...heh heh heh!!! 17.Robocop Robocop has gone haywire...dead or alive....you're history....You're all carrying illegal fire arms..surrender them or die. 18.Cowboy This flea' bitten, leather slappin' varmit is the meanest, roughest, toughest gunslinger east, west, north, and south of the river Pecos! 19.Hitman Hey! you're actually reading this shit...man go play the bots...get a life, read a book, whatever.....so I didn't put this mumbojumbo here fer nothin'....hihi... U understanda mi...U bin in da biga 'ouse? What U in da bigga 'ouse 4 heh? U wanna weara di concrete shoes? 20.Mountie Yes, its a mountie to the rescue. Unfortunately, he's no Mountie, 'cause he'll gib you anyway. But a damn fine uniform! 21.Babe Ok, we needed a female bot as well. In quake 2 we'll include more chicks (no offense ladies, the demigod is actually a demigoddess you see)...if we can get the skins...cause female skins that look good are about as abundant as the number of Bill Gates' x-mas greeting cards sent to Larry Ellison (Nerd pun here). 22.Punisher What's a guy to say...punish everybody...that's what he's here for...excellent skin.... 23.Elvis Presley From beyond the grave he returns like a bad rerun. Yes folks, it's the only king of rock and roll. Now go tell your mommy that you've seen Elvis....and gibbed him countless of times, you hound-dog you! 24.Omicron Demigod It's the demigod. She is the Nuff Said. The Players You. :) Known problems/bugs So don't mail us about these!!! Large maps cannot entirely be mapped with waypoints, because waypoints are entities, and quake supports but limited number of these. (you know, the world is an entity, you are an entity, a health pack is an entity, Shub-Niggurath is a dangerous entity etc.) The bots can't get down the incline near the thunderbolt in the start map most of the time and the bots will sometimes get stuck walking down the stairs near the start of e1m2. These are bugs in the .BSP files and not in the bot code. Sometimes shell cases float in mid air. Troubleshooting In observermode, the possibility exists that one may become stuck. Simply press the "jump" key and presto. In the menu, each number "n" corresponds with "impulse n"; e.g. the weapons. It has come to our attention that a few people have tied their weapon keys (impulse 1-9) to other keys, for whatever dark and mysterious reason, and should either type impulse n on the console, or should press the appropriate weapon key. Some people encounter problems that they e-mail us about, while they haven't read this document. Well the solution is: they should either burn in hell for 666 years or lick this readme from the hard disk while it is spinning. If deathmatch 4 is too difficult 'cause the bots are whipping your behind, try typing removeallbots on the console (administrator only) Help We will not provide any kind of support for this product. We did this for fun. If you think you have discovered a bug in the obots (and you have read the documentation first), feel free to send email to obots@demigod.demon.nl oh and please no questions about "can I have the code...please" and all that..Mr Elusive says he will take his code to the grave...unless trinity comes out and he has a change of heart...but then it will be a public release only. Don't mail us about the console command 'omicron' either!!! Acknowledgments and thanks Our thanks go out to all the beta testers (couldn't have done it without ya...although...maybe, but it wouldn't have been finished so soon), Olivier Montanuy (QuakeC Manual), Steven Polge (you know, the guru of the reaper bots...we're not worthy), the ENTIRE team at iD ((oooh, we're not worthy)times 40), Uwe Girlich (DEM format), Roscoe A. Sincero (several other points of inspiration), Alan Kivlin (some code to count the maximum number of clients), Meanstryk (several ideas), Greg Howell (tiggerskin..it rocks!), Tigger Clan, Luke Pope (skindude), Alan Yen (another skindude), Kenneth Scott (still haven't actually gotten permission to use his' skins), Tim Willits (did he really do his own skin?), James Kennison (for Elvis' cool skin (so I'm thanking his wife for suggesting he'd make the skin)), me (I'm so nerdish at times) for telling Mr E. to help me get my quake skills up, Mr Elusive (oh I'm not worthy), his oversized monitor, the 3Dfx guys (for the Voodoo Chip), Gordon Moore (for the well designed PC ...NOT), Bill Gates for directX..he wish, I love gibbing a skill zero Bill), the Pope, demigod, Mr. E's parents, his grandparents, my neighbors, their cat, the fleas on the mongrel..eh..cute beastie, still readin' huh? okay let's really do something fun..(at your own risk of course)....type "omicron" on the console ...see what happens ...heheh ...Webster's New Dictionary and Thesaurus (some dinosaur I guess), [concise edition, 1990] (for Latin texts), Marc Okrand's "The Klingon Dictionary" (for the Klingon texts), Marvel, DC and all those other publishers for all the comic characters used, movies for the phrases for the bots, the Team Evolve "Painkeep", beacause we copied their copyright paragraph (we couldn't think of one ourselves), and if we haven't mentioned you, and you know/think you deserve credit...well, here it is...THANKS!!! Copyright and Distribution Permissions Team Omicron grants to the final end user an exclusive right to freely distribute this production in its undisturbed and unaltered entirety provided no exchange, monetary or otherwise, is requested. All other media entities are expressly excluded from this right prior to acknowledge and consent from Team Omicron or one of Team Omicron's duly appointed representatives, agents or subsidiaries. By using this product you agree to exempt, without reservation, the authors and owners of this production or components thereof from any responsibility for liability, damage caused, or loss, directly or indirectly, by this software, including but not limited to, any interruptions of service, loss of business, or any other consequential damages resulting from the use of or operation of this product or components thereof. No warranties are made, expressed or implied, regarding the usage, functionality, or implied operability of this product. All elements are available solely on an "as-is" basis. Usage is subject to the user's own risk. The typing of omicron on the console is also at the typer's own risk. Authors may NOT use these modifications as a basis for other publically available work. Availability http://www.planetquake.com/ramshackle