Navy Seals -- quake.zone browser build Repacked for browser play from: http://www.quaketerminus.com/mods/navy3.zip Only runtime files are included in the game package; the original documentation is reproduced below. All rights remain with the original authors. Runs on LibreQuake (../../librequake/NOTICES.txt) and FTEQW (GPL-2.0, ../../licenses/gpl-2.0.txt). ===== navy3.zip/breakout.txt ===== Date: 25th Nov 97 Map: Breakout... Author : Zakalwe (Judson Eiloart) Author Info : Musician(Synth programming, guitar, electronics, etc) Closet World creator/ Designer Map Info: Map designed for the Navy seals project Single player : Yes Co-op: Yes Deathmatch: Yes, 8 starts Difficulty settings: Yes Textures: Yes, some textures from the "colony" wad Sounds : No QC No Editors: Worldcraft,Qart, wQBSP, ArghLite,R-Vis. Build time: 60+Hrs Compile time: 23 mins 55 sec (total, Level-4 vis, Extra Light) Bugs : None Notes : This map will be perfectly playable in regular Quake, but is optimized for the Navy Seals patch. I expect there is more on the way....enjoy. Legal: This map remains the intellectual property of the author It may be distributed for NON-profit only and not sold as part of any compilationCD_rom without the authors permission. This text file must be distributed with the aforementioned Map/.BSP Quake, and the textures in this map are the copyright of id software.The colony textures are the intellectual property and/or copyright of their respective author(s) Worldcraft is the copyright of Valve software/Ben morris(I think) ===== navy3.zip/navystart.txt ===== **** This map designed for the Navy Seal TC **** 971129 ================================================================ Title : NavyStart Filename : navystart.bsp Author : Mikael Ranbro aka Smilodon Email Address : smilodon@bt.ml.org Description : Start map for the Navy Seals TC. Additional Credits to : MyrddiN, for some texture wads. Check out my hompepage for latest version: http://www.efd.lth.se~d96mr/ ================================================================ * Play Information * This map is designed for the Navy Seal TC Single Player : Yes Cooperative : Yes Deathmatch (2-16) : No Difficulty Settings : Yes New Sounds : No New Graphics : Some textures New Music : No Demos Replaced : None * Construction * Base : New level from scratch Editor used : Worldcraft 1.5 Known Bugs : none Build Time : - * Other Info * How to use this map: Copy the navystart.bsp file into your quake\id1\maps directory. Then run quake. In the console, type "map navystart" (without the quotes) If you want to play on a QW server running this map, copy the navystart.bsp file into your quake\qw\maps directory. Mission briefing: ... ===== navy3.zip/ns30.txt ===== *************************************************************************** * NAVY SEALS 3.0 QUAKE PARTIAL CONVERSION * *************************************************************************** Filename : NAVY3.ZIP Version : 3.0 (includes Navy SEALs sQuad bot) Date : 12/19/98 Author : Minh Le (Gooseman), SkullHunter, William, Maverick, Christian Oelund, Andres Email : see Navy SEALs pages at http://seals.warzone.com, sqdbot20.txt and readme.txt Credits : The authors of QME and QUARK!! and id software for giving me reason to live (QUAKE2) ***************** * Type of Mod * ***************** Quake C : yes + help from Skullhunter, William (see sqdbot20.txt), and Maverick Sound : yes + help from Kevin Crocker!! MDL : yes about 100+ hours worth of modelling and skinning. + help from Skullhunter, Christian Oelund(see readme.txt), and Andres Graphix : yes + help from Warped of the QCA archives for the awesome console background. + help from Skullhunter Levels : yes - please see the respective text files for information ************************************* * Description of the Modification * ************************************* New Features since Navy SEALS 2.2 - added new player model by Andres. - added impulse command to cycle through player skins - added GL-compatible models - added autoexec.cfg to automatically bind impulses (if you want to change them, open up this file in any text editor, or just delete it. I tried to bind them to keys that matched what the impulses do, as you'll see later. Also, I made the crouching behave like Quake 2, if you want the way it was before there are instructions in the .cfg file on how to change it back) - source code included (see ns30src.zip) - everything in the patch now in a Pak0.pak file - 3 demos to replace the original ones in Quake. They glorify the Mk-23, which is one of my favorite weapons, but besides that I wanted to use the NS maps for these demos and they don't offer a lot of variety unless you want to record a demo of the entire level. (And have an extra 2+MB for a download) - made an option to display the current ammo as how much ammo is in the clip of the weapon you are using. *(Note: This is active by default, so when Navy Seals starts up and the display looks a little funky, don't panic, it's not a bug =). If this freaks you out too much, just use impulse 201 to put things back to normal, but not if you are firing or reloading. I basically made this because when I'd be play testing I could never remember how much ammo I had left in a clip when I switched weapons and always ended up having to reload in the middle of a gunfight hehe)* - imploding grenades are gone, too much hate mail =) - bug fixes, bug fixes, bug fixes - included the add on levels available at the NS homepage - New Features since Navy SEALS 1.91 - new weapons (MP5SD (silencer equipped MP5), M16RAW (anti-armor rocket launching version of M16, Barrett sniper rifle) - flash grenades (in addition to hand grenades) - replaced shotgun - support for NS maps - new animations (death sequences for pistol guy and machine gun guy) - bots included for playing on e1m1 (see sqdbot20.txt) - clips of MK23 and MP5 now have real-life capacity (instead of 25 resp. 60 bullets as in 1.91 and earlier) - bug fixes New Features since Navy SEALS 1.81 - new pistol guy replaces grunts (mp5 guy replaces enforcers now) - bug fixes ******IMPORTANT INFORMATION********** -Note: Impulses 101, 102, 103, and 105 require that you are using that weapon IMPULSE DEFAULT KEY DESCRIPTION |-------------|-----------------|------------------------------------| | 99 | M | Menu for Squadbots (see text file) | |-------------|-----------------|------------------------------------| | 100 | R | Reloads the current weapon | |-------------|-----------------|------------------------------------| | 101 | G | Fires a grenade from M16-A2 | |-------------|-----------------|------------------------------------| | 102 | I | Zoom with PSG-1/Barrett (Not in GL)| |-------------|-----------------|------------------------------------| | 103 | O | Return to normal view | |-------------|-----------------|------------------------------------| | 104 | X | Hold to crouch, release to stand | |-------------|-----------------|------------------------------------| | 105 | F | Switches firing mode of MP5/MP5-SD | |-------------|-----------------|------------------------------------| | 200 | B | Toggles Normal/Flashbang grenades | |-------------|-----------------|------------------------------------| | 201 | W | Switch Ammo Display Mode | |-------------|-----------------|------------------------------------| | 205 | S | Toggles Player Skin (0 - 8) | |-------------|-----------------|------------------------------------| ******* Patch Information *********** Gooseman: " This is the Navy Seals Weapons compilation patch. I'm not sure which version you're playing right now but the Final version is intended to replace all 8 of the original Quake weapons with weapons taken directly from the arsenal of the Navy Seals special ops division. Some of these weapons include : Heckler & Koch MP5 submachine gun, mossberg tactical shotgun, Heckler & Koch Mk. 23 handgun, and the M-16 Assault Rifle (with grenade launcher attached :-). This mod has been a true labour of love. I've gone through MANY revisions on each gun and may yet to go through more revisions.. suffice to say, the version of Navy Seals you're playing right now contains the most current revision of my gun and hopefully the most accurate. I first started this weapons mod back in Early June with the intention of only doing an M-16 but after I got blasted for such shoddy craftsmanship I decided to show those who blasted me that I can do it right (hopefully). " Maverick: This is going to be my final update of Navy Seals. The source code is included with this release so if you Navy Seals nuts out there want to pick this up and take it further, you can do so. (It's pretty ugly, I haven't had the time to go through and comment it as well as I would have liked. Feel free to e-mail me with any questions you have about anything, and I'll see if I can clarify it for ya.) I would liked to have tried for a Quakeworld port, but I am working 50+ hours a week and going to night school (finals comin up in a week or so), so my free time is scarce to none. Also, I just want to apologize to all you Navy Seals fans for the last version (2.2). I didn't play test it nearly enough, it ended up being down right hideous when I really looked at it. Guess I just got caught up in the excitement of bein a part of this great team. Also, in case any of you were wondering where the hell I've been the last 3-4 months, I had a lot of computer troubles and couldn't get a working computer until about a month ago. Thankfully William still had the source to 2.0.1 or I'd have been screwed for gettin this started again. Sorry for all the bantering, but I feel I owe everyone an explanation for the long delay. Anyways, enjoy the new version! =) P.S. I'm finally free of A.O.Hell, my new e-mail addy is: beefcake@pioneerplanet.infi.net (I'll try to get back to ya as soon as I can, but don't be surprised if it takes a few days) *********************** * FEATURES * *********************** - Heckler & Koch Mk. 23 : This is the handgun that recently won the SOCCOM project. Soon , all special ops forces in the USA will be using this gun. IT uses .45 calibre bullets and carries 12 bullets in its clip. Due to the method in which the bullets travel the gun is best used at close range where maximum torque on the bullet can severely hurt the intended victim. At ranges greater than 20 feet the power of the bullet dissipates quite rapidly.. Expect to see 1/4th of the power at a range greater than 200 feet. - Mossberg 590 tactical shotgun : I don't know much about this shotgun other than the fact that it's a 12 gauge and uses shells. - Heckler & Koch MP5 Submachine gun : The world famous MP5 submachine gun has become a staple in all special ops forces in the USA. It's stability while firing, durability, and ease of use make it the predominant submachine gun in the world. The MP5 fires 9mm rounds and carries 30 bullets in its clip. - Colt M-16 Assault Rifle : Standard issue assault rifle in the USA. The M-16 fires 5.56 mm NATO bullets and carries 30 bullets in its clip just as in real life. The grenade launcher attached to the barrel uses 1 rocket per grenade launch and is fired by invoking 'impulse 101'. - PSG-1 At a cost of $5,000 per rifle, the PSG-1 defines itself as THE MOST ACCURATE semiautomatic sniper rifle in production. With a $1,200 scope, it's obvious that HK weren't skimping out anywhere! The PSG-1 clip carries 20 rounds of .308 bullets. - M60 With a top rate of fire in excess of 500 rds/minute the M60 can lay down an impressive amount of lead in a very short time frame. The M60 fires 7.62 mm NATO specified bullets and has a 200 round belt. - ASSAULT SHOTGUN Powerful shotgun with no reloading necessary. Uses 2 shells per shot. - H&K MP5 SD silencer equiped version of MP5 described above. You will be issued this weapon as soon as you receive your second MP5. - M16 RAW M16 equiped with anti-armor rocket launcher. You will be issued with this weapon as soon as you receive your second M16. - Barrett Barrett sniper rifle. You will be issued with this weapon as soon as you receive your second PSG-1. ***************************** * Known bugs in 3.0 * ***************************** - There is a bug with the scopes that I have been unable to fix. If you walk through a level exit while zoomed in, the view gets messed up when the next level starts. If anyone can get this fixed, e-mail me, I'd be curious to find out how you did it. (It has to be something with getting the "fov" settings to reset properly.) Also, if it happens just use impulse 102 then impulse 103 to return the view to normal. ***************************** * Known bugs in 2.0.1 * ***************************** - GLQuake crashes when running Navy SEALs 2.0 (problems with meshing a number of the new models for weapons) - selecting the Barrett sniper rifle looses the MK23 handgun (probably a bitfield overflow) - obituary messages for players killed by handgrenades mention any weapon but a handgrenade ***************************** * How to use Modification * ***************************** 1.> If you have no previous version of Navy Seals, make a folder in Quake called "navyseal", Then unzip the contents of this zip file into that folder. If you had version 2.2 or lower, just delete everything in the folder and unzip the new version into there. 2.> If you have Win95/98, run the seals.bat file to play. (*NOTE!* You must have at least 16MB of system memory to use this patch, and you MUST have the patch installed in a \quake\navyseal folder, or else the batch file will not work. You will need to change the foldername in the seals.bat if you didn't install to \navyseal) 3.> otherwise, go to your Quake folder and type: quake -game navyseal ===== navy3.zip/ns30src__x/FILE_ID.DIZ ===== P r o Q C C v 1 . 6 0 =================================== One of the best QuakeC compilers out. ProQCC can decompile progs.dat of any size to native quakec code. The compiler can compile projects of any size, and does it 3 times faster then qccdos. ===== navy3.zip/ns30src__x/ns30src.txt ===== Ok, here is the source code for Navy Seals 3.0 Everything is in here, including the Squad Bots. I've also included the ProQCC compiler by Lee Smith. If you have a different compiler you like to use, go ahead and use it, but regular QCC chokes and dies tryin to compile this much code. If you want to make changes to the game, you will need to unpak the Pak0.pak file with a program like WinPak or QPED. If you have any questions with the code, feel free to e-mail me and I will try to help you out as best I can. If someone reading this is wanting to take this a step further, some things I feel it could use are a couple new enemies, and maybe some new weapons, like explosives or something. Also, a QuakeWorld version would be nice. (I wanted to do this, but since I've had my computer back I have been just too busy to try to get it started) But most of all, just have fun with this! =) Maverick ===== navy3.zip/ns30src__x/PROQC160.TXT ===== ============ ProQCC v1.60 6/18/97 ============ "Awesome" - Inside.QC Features: * Decompiles progs.dat no matter what size to native qc * Compiles regular quakec code 3 times faster then qccdos * Compiles projects no matter what size * Now has the fastest compiler ever * Cool looking interface * Can now log errors during compiling/decompiling to error.log This is a modification to John Carmack's Quake-C compiler. It allows for decompiling to qcc native code, and it is a compiler that is well over 3 times faster then the standard qcc. Command line options: By default, ProQCC looks for progs.src in the current directory -dec [datfile] : decompile progs.dat -src : look in a different directory -copy : build a clean data tree -pak : build a clean pak file -bspmodels : bsp all bmodels -nolog : does not write error.log if there are errors during compiling/decompiling After taking a look at Armin Rigo's deacc/reacc programs, I thought it was awesome, the only problem was that I wasn't used to the source files it produced, and didn't really have time to learn it. I already had a super fast qc compiler in the works, and decided to try to add a decompiler to it. This is probably the fastest quakec compiler out. Just as a benchmark, I compiled the standard v1.01 code using both normal qcc and proqcc. The normal qcc took 10 seconds on my P200, 32 Meg RAM, Win95 and took 3 seconds using ProQCC. This is for the compiler in proqcc.exe, the slower version, but it can compile projects of any size, and is quite a bit faster then qccdos. In proqccf.exe, it compiles well over 10 times as fast as qccdos, but doesn't compile projects of any size. Use which ever suits your needs. Incase any programmers out there wondered how I achieved the speed for this compiler, I use hash tables for the list of opcodes and all constants and defined variables. I use DJGPP v2 to compile, and have optimized it for Pentiums. The usage is the same as standard qcc except for decompiling, use proqcc -dec to decompile the progs.dat in the current directory. You can also use proqcc -dec [yourprogs.dat] to decompile yourprogs.dat. With the decompiler, it usually works perfectly fine, however sometimes it gets confused. This happens when it can't determine the return type of the function or entity function field. When this happens, it makes the function a float (which is usually right) also it marks all its prototypes with a comment that is '/* Warning: Could not determine return type */' (original don't you think) you can usually figure out what it should be easily. You sometimes need to edit by hand what it outputs. If it crashes with an error message of "DEC_FastImmediate - Index (%i) out of bounds" then try decompiling it with the 'industrial strength' decompiler, if you're using that and get a similar message about DEC_Immediate, then email me and tell me what you're decompiling (It shouldn't happen =)! Another thing, I've gotten some mail about this, the error in line 153 of misc.qc that you'll get during recompilation is NOT ProQCC's fault. Seems id screwed up on this one. Global variables are only initialized if their name starts with uppercase letters. Otherwise their (potential) initial value is enclosed in a comment. This works for all vital system constant such as TRUE, FL_xx, etc. but e.g. the chase cam mod uses some lowercase constants. Again, check the source and fix by hand. Couple of bugs in the decompiling functions. Sometimes when ProQCC gets confused it doesn't decompile perfect, you may get some errors if you try to compile it right away, but it's nothing that you shouldn't be able to logically figure out. Since there are so many changed features in this version I haven't been able to test it as much as I would like, so there is a chance that this is buggy. Common Errors in decompiled source files How to fix them ----------------------- --------------- misc.qc, line 153: not a name delete the 'if (!self.speed)...' part there are several definitions delete all those and make one that is like float org_x, float org_y vector org; etc. In future versions, I hope to speed up the decompiling, and somehow make it able to decompile any progs.dat no matter how large (DONE!). NEW: I would like to be able to set the maximum no local immediates (controls how fast or good it decompiles) via the command line, right now it's a #define. Another thing I'd like to do is to make the decompiler bullet-proof. Right now it produces errors in the code it generates, this isn't really a bad thing, because after all, you weren't supposed to be able to decompile things in the first place =). So a little qc knowlege about how to fix things should be a requirement. ProQCC is now distributed with WiCKeD Development's QcBud, Steven Possehl/John Bock's ClanRing CTF, and David Hesprich's Quake Server Mods. There also is a possibility parts of it will be included in Rene Post's QuakeME 4.0. Just for legal purposes, Lee Smith takes no responsiblity for use or misuse of this program. He is not responsible for any damage caused by it or any people who you piss off by ganking their qc patches. This program is not a production of id Software, and will not be supported by id. You may distribute this Quake modification in any electronic format as long as all the files in this archive remain intact and unmodified and are distributed together. Also, please tell me if you are going to include this on a CD, I'd just like to know. Porting Issues: As of right now, I only have access to DOS and Windows, so I can't do any ports to other OS's. If any kind soul wants to do a port to another system, like Linux, AIX, Macintosh, etc, sent me some mail and we'll see what we can do. Just a note, with all the text mode color and such, porting it to another OS would be a pretty hard task (I think). Changes since v0.90: Added a timer, tells how long it took to compile/decompile. Sped up the decompiling routine (a little). Hope to speed it up even more in the future. Stupid me, I always run Win95, so I don't worry about a DPMI server, for those of you who run dos, I've included cwsdpmi that djgpp uses as a DPMI server for dos. Small bug fixes. Changes since v0.92: Almost total rewrite of compiling routines. Due to some mail I've recieved from people who would rather have the ability to compile larger projects then just sheer speed. Doubled number of maximum local immediates in the decompiling functions, this makes it go much slower, BUT I think it will decompile ANY progs.dat you throw at it :) (FvF and ZeusBot decompile fine now). Changes since v0.95: You now have 2 different options for decompiling. Use the normal -dec option for it to be very slow, but you can decompile progs.dat any size. Or you can use -fastdec for it to decompile fast, but the progs.dat must be under 500k (good for small mods). Included proqccw.exe, proqcc compiled as a native win32 console application, should run a bit faster under Win95 or NT4. Changes since v0.97: In the future I'd like to build a BSP to MAP converter that actually works good. Look around for it in the future. Also might put up a web page for my programs. Fixed a couple of wierd little bugs. Sped up compiling a bit. Improved decompiling a little bit. Changes since v0.99: Made the error messages easier to understand. Fixed it crashing all the time for no reason. Took out the -fastdec option, it wasn't any faster then -dec. The big addition is the cool looking interface. Took out the Win32 console version of ProQCC, because after running some tests, I found out it is not any faster then the DOS version. That scrambler came out right before I wanted to upload this version, so I didn't have time to write a descrambler (if that's possible) But I will be working on it for the next release. Hope that program doesn't catch on =). Changes since v1.50: Added the progress indicator for decompiling, still have to figure out how to do it for compiling. Fixed a few little bugs. Added graceful crashing. Now it doesn't exit with the ugly DJGPP crash screen. Fixed the error messages. Don't know how that got by me last time =) Increased the pr_globals from 40000 to 100000 that should solve any problems you would have compiling HUGE projects (ie. QkrMods) Changes since v1.52: Added writing errors to a logfile. Not much else left to do (the reason for the 2 months between releases) Working on WinQCC, stay tuned to the Quake news pages for more info. Changes since v1.53: Fixed up interface. Fixed error logging, and made it look better also. (sorry!) Several other small things. Feel free to email me with comments/suggestions on ProQCC! I frequent #quake and #quakeed, so you might catch me on there. Also I'm on inferno.idsoftware.com daily, might see me there too. --- Lee Smith lees@infoave.net Chaos on IRC/Quake ===== navy3.zip/nse1m1.txt ===== **** This map designed for the Navy Seal TC **** 971129 ================================================================ Title : Aircraft Demolition Filename : nse1m1.bsp Author : Mikael Ranbro aka Smilodon Email Address : d96mr@efd.lth.se Description : Map for the Navy Seals TC. Additional Credits to : Linus Pizunski for some custom textures. I have also got textures from Rizzen's map "Colony" which where made by Talon and <--Arrow-<. Check out my hompepage for latest version: http://www.efd.lth.se~d96mr/ ================================================================ * Play Information * This map is designed for the Navy Seal TC Single Player : Yes Cooperative : Yes Deathmatch (2-16) : Yes Difficulty Settings : Yes New Sounds : No New Graphics : Some textures New Music : No Demos Replaced : None * Construction * Base : New level from scratch Editor used : Worldcraft 1.5 Known Bugs : None. Build Time : Too long. * Other Info * How to use this map: Copy the nse1m1.bsp file into your quake\id1\maps directory. Then run quake. In the console, type "map nse1m1" (without the quotes) If you want to play on a QW server running this map, copy the nse1m1.bsp file into your quake\qw\maps directory. ===== navy3.zip/nse1mx.txt ===== **** This map designed for the Navy Seal TC **** 971129 ================================================================ Title : Destroyer Assault Filename : nse1m1.bsp Author : Mikael Ranbro aka Smilodon Email Address : d96mr@efd.lth.se Description : Map for the Navy Seals TC. Additional Credits to : Linus Pizunski for some custom textures and to Ezekiel Draven for a very good advice. Check out my hompepage for latest version: http://www.efd.lth.se~d96mr/ ================================================================ * Play Information * This map is designed for the Navy Seal TC Single Player : Yes Cooperative : Yes Deathmatch (2-16) : Yes Difficulty Settings : Yes New Sounds : No New Graphics : Some textures New Music : No, recommended: 2001 -- A Space Odyssey (Theme) Demos Replaced : None * Construction * Base : New level from scratch Editor used : Worldcraft 1.5 Known Bugs : none Build Time : Way too long. * Other Info * How to use this map: Copy the nse1m1.bsp file into your quake\id1\maps directory. Then run quake. In the console, type "map nse1m1" (without the quotes) If you want to play on a QW server running this map, copy the nse1m1.bsp file into your quake\qw\maps directory. Mission briefing: Destroy the navigation computer, disarm the two RADAK bombs and shut down the engine. ===== navy3.zip/readme.txt ===== Navy Seals GL version 1.0 ##Why##: The reason why Navy Seals 2.2 couldn't run in 3DFX's openGL drivers, was that the people who took over the Ns TC, after Goosemann, fucked up the new models, mp5-sd, barret, m16-raw. So we tested the witch models that was bugging and killed em. Then we change some of the models and it worked. ##Changes##: New Barret Sniper Riefle model Changes in pickup-weapons Changes in m16-raw We are using the mp5 to mp5-sd Explosive mdl changes in mp5-sd ##Man behind it## The Guy who find the reason and made it running in GL is: Christian Oelund - oelund@post8.inet.tele.dk ##Credits## Caspar Milan Nielsen - pelsdyret@vip.cybercity.dk ##Further versions## Not untill we can get the Ns1 source code ===== navy3.zip/sqdbot20.txt ===== Title : Navy SEALs sQuad bots (upgrade of Navy SEALs 2.0) Filename : sqdbt201.zip Version : 2.0.1 Date : 12/12/97 Author : William van der Sterren Email : sterren@iae.nl Credits : id software, for releasing Quake as a modifiable environment Minh Le (gooseman@smartt.com) for starting off Navy SEALs, and for high quality weapons, models and animations Roscoe A. Sincero (legion@keg.zymurgy.org) for a large part of the bot movement code (Norse_movetogoal package v0.32, slightly modified) Alan Kivlin (alan.kivlin@cybersurf.co.uk) for bot rankings code Skullhunter (ChantaclairRose@prodigy.net) for additional weapons and models DnV, Blackhorse, for publicity and testing AssLord, Skullhunter, Spidergecko for testing Build time: over 100 hours ... (I probably spend too much time testing :) ) Type of Mod ----------- Quake C : yes Sound : no MDL : no Important: This modification requires (in the same directory) the Navy SEALs 2.0 modification, (because of its models, sounds and maps). This modification replaces and upgrades the Navy SEALs 2.0 progs.dat. This modification add squadbots to Navy SEALs 2.0 and fixes minor weapon selection problems. If you are impressed by the monsters models and - animations, and by the weapon models, please take a look at the credits again; that wasn't my work. Format of QuakeC (if a Quake C Mod) ----------------------------------- unified diff : no context diff : no .qc files : no progs.dat : yes Description of the Modification ------------------------------- This Navy SEALs sQuad bots modification confronts you with a team of up to four opponent bots, which operate in a (more) intelligent, realistic, and coordinated fashion than current Quake monsters and most other bots. This modification aims to enhance your "single player" Quake with more realism and replayability. Navy SEALs sQuad bots do not passively wait for you to eliminate them, nor do they forget to pursuit you when you try to run. These sQuad bots come to help their team mates if you try to attack one of them. These sQuad bots enter formations and try to stay within supporting distance of each other. These sQuad bots move out of each other lines of fire, if "asked" by their team mates. Navy SEALs sQuad bots fully use the professional animations and sounds, created by Minh Le and friends, to sit down and fire, to reload, and to roll. Navy SEALs sQuad bots have NOT been designed with ordinary deathmatch in mind. Most real life soldiers and terrorists do not wait near the red armor spawn location, do not dive into slime to obtain the quad damage power-up, and do not learn to circle strafe. Nor do these Navy SEALs sQuad bots. Other limitations, specific for this version (and hopefully removed in future versions): - the Navy SEALs sQuad bots currently are limited to operate on map e1m1 ("The Slipgate Complex"), and on new maps especially designed for these sQuad bots. - the Navy SEALs sQuad bots currently are limited to one team only (thus four bots at maximum). - crashes in GLQuake due to some .mdl files that cannot be "meshed" by GLQuake. Look for a patch including new .mdl files at the Navy SEALs home page (http://seals.warzone.com). This problem is a property of both the original and this release of Navy SEALs 2.0. Below, more detailed information is provided to help you: - changes wrt the previous versions - install the patch, - to use the required "impulses", - to use the bots - to use the menu - to use different game modes Even more information is given if you are having troubles or if you are very curious about the bots: - known bugs and problems - "frequently asked" questions and answers - sQuad bot implementation information (may spoil game) - author info Have fun, William New to version 2.0.1 ------------------ Version 2.0.1 differs from version Navy SEALs 2.0 (Dec 4, 1997) and squad bot 1.3 (Dec 8, 1997) as follows: * Navy SEAL differences: - fixes minor problems with weapon cycling/selection, weapon pickup and player respawn - fixes minor problems with obituary messages * squad bot differences: - mk23 armed bots now use realistic 12 bullet clips (instead of the previous 20 bullet clip) - includes Navy SEALs 2.0 animations and weapons; new death sequences have not yet been used - bot menu (via impulse 99) is now unavailable in standard deathmatch and coop modes to prevent cheating in multiplayer games - bots cannot be spawned in standard multiplayer games - rewrote menu for weapon issueing (when using bots). Now, weapons are presented in front of you, and you have about 3 seconds to fetch them. You will not be give a weapon you already have. - bots use MP5SD and flashbang grenades against you. Bots do not hear the differences between the MP5 and MP5SD you use (actually, they don't hear at all) and their vision is not by flashbangs. However, they run from your flashbang grenades. New to version 1.3 ------------------ Version 1.3 differs from version 1.2 (Dec 1, 1997) as follows: - rewritten bot connect/disconnect and setting of models, to solve (a) the "invisible" bot problem a few users had, and (b) to solve the inconsistent "frags" mentioned in the frag list. - the bot squad sometimes to decides to wait for you (ambush) instead of running towards you (that was all to easy :) ). - use some different respawn positions (one of the old position gave problems) - correct version info (v1.2 said "1.1") - some textual clarifications in this readme file - minor tweaks to AI and animations New to version 1.2 ------------------ Version 1.2 differs from version 1.1 (Nov 31, 1997) as follows: - fixed important bug that assigned team number 0 to bots regardless the team value of the player; if player had default pants, thus team 0, bots wouldn't attack him. New to version 1.1 ------------------ Version 1.1 differs from version 1.0 (Nov 20, 1997) as follows: - bots may now use MP5 machine gun and "guard.mdl" animations; - normally a squad consists of up to 4 bots, randomly selected from pistol - and machinegun armed models. The player may customize squad composition using the "squad settings..." menu, then option 5. - bots now use a running number of frags (it was reset to zero after a bot was killed in v1.0). - a full squad is inserted within one second (instead of taking up to 10 seconds). - debug settings is now option 6 in "squad settings" menu, instead of option 5. - minor tweaks to bot AI and animations. - minor tweaks to this text file. - squadbot.cfg file now includes "coop 0". How to install the patch ------------------------ step 1. Make sure you installed Navy SEALs 2.0 (INCLUDING the so-called multiplayer update, available on the news page - until the news page mentions an single zip file). step 2. Extract the progs.dat, squadbot.cfg, and sqdbot20.txt (this file) into the directory where you installed Navy SEALs. Answer yes, if required, to overwrite the existing progs.dat file. Impulses ------------------------ This patch requires keys 1, 2, 3, 4, 5, 6 and key 9 to be bound to "impulse 1", ..., "impulse 6" and "impulse 9" respectively. If you don't understand what I mean, don't worry: default Quake settings meet this requirement. This patch adds one new impulse command to the Navy SEALs impulses: - impulse 99, shows main menu. Choose options 1...6, or choose 9 to exit menu, or ignore menu (will disappear in 10 seconds or so). As long as the menu is screen and you didn't choose one of the options, you won't be able to use impulse 1..6 to select weapons (they select menu options instead). As soon as the menu disappears, or a menu action has been executed (providing you with a reassuring click sound, and a message on screen, starting with "menu:" to confirm your choice). If you choose an option leading to another menu (those menu options end with "...", you won't be able to select weapons using keys 1...6 until you chose a menu action). This may sound awkward, but it works fine. I'll repeat the standard Navy SEALs impulses for you convenience (see Navy SEALs text files for more info): - impulse 100, will reload the guns (except for shotgun which reloads automatically). - impulse 101, will fire the grenade launcher (you must have the M-16 to do this). - impulse 102/103, will zoom in/out with the PSG-1 (this only works in regular Quake). - impulse 104 will toggle crouch mode. - impulse 105 will toggle between MP5/MP5SD single shot / burst rate controlled / fully automatic modes. (You must have the MP5/MP5SD in your hands to toggle this setting). - impulse 200 will toggle between flash-bang grenades and fragmentation grenades. To use the bots ------------------------ To use the bots (and select the most appropriate game mode), please do the following: Fire up Quake using (at least) the following command line options: quake.exe -game navyseal -listen 5 -exec squadbot.cfg (you can use glquake.exe, winquake.exe, etc. as well - use glquake after obtaining the new .mdl patch from the Navy SEALs home page, when available). You'll arrive near the exit of the Slipgate Complex, without seeing the standard powerups. Now pull the console down and type: impulse 99 The menu appears. Just press "1" and a squad of 4 bots will be inserted (somewhere in the level). You may wait for them to come, or go find them. Have fun. The squadbot.cfg file you just used (to start up the game in this mode) contains the following lines: coop 0 skill 3 deathmatch 89 teamplay 1 map e1m1 You can edit the "skill" and "deathmatch" values in this file to suit your own preferences. Do not change the teamplay mode. "Teamplay 1" sets the bots to be immune for friendly fire. Yes, I know, that's not very realistic, but I still am troubled by a bug that tells the bots they won't hit teammates while do hit they mates. Do not try to use some other map. "map e1m1" starts map "The Slipgate Complex", the only map currently supported. Do not remove "coop 0". Coop 1 mode does not allow bots, because it is reserved for multiplayer purposes. Skill sets the bots aiming precision; skill 0 is minimal precision, skill 5 is maximal precision. This does not affect their grenade aiming precision (which cannot be adjusted). The deathmatch value reflects the various game modes. See that section below. By the way, (commercial plug on), I suggest you use the QuakeOn/QTray tools (http://quakeon.stomped.com) to manage the various Quake configurations. They proved essential to me in managing the different games modes I needed to test. (commercial plug off) To use the menu ------------------------ Because I hate to remember and program a lot of impulses (I used a lot of them during testing), and because I saw the elegant menu solution in the TeamFortress patch, I added menus to the sQuad bot patch. As stated above, use impulse 99 to display the main menu. And choose options 1...6, or choose 9 to exit menu. Every choice you make is confirmed with a nice click, and you'll be given either a new (sub)menu or confirmation of your choice. You are able to automate frequently used menu interactions. For example, bind "," "impulse 99; wait; impulse 4; wait; impulse 6; wait; impulse 5" toggles the bot targeting the player in fraction of a second, without showing you the 3 menus. Below, you can find a brief explanation of the menus (in a tree format): 1. Insert sQuad [action] inserts a squad of bots, if there is no squad active. if you choose "auto respawn" in the mission settings, you have to insert a squad only once. 2. Mission settings... [submenu] 1. Infiltrate start to exit [action] has player start near start of level, and bots come to the start of level. Takes effect after restart mission. 2. Infiltrate exit to start [action] has player start near exit of level, and bots come to the exit of level. Takes effect after restart mission. 3. Toggle sQuad bots auto respawn [action] toggles whether the squad automatically respawns after all its members got killed. The console shows the new setting. Takes effect immediately. 4. Toggle item availability [action] toggles whether powerups, weapons, ammo etc. is present on this level. If item availability is toggled to "no", items are removed immediately. To have items available again, toggle to "yes" and restart game. 5. [action] whatever the label says, it does not do anything except for exiting the menu. 6. Restart mission [action] restarts mission, so new mission settings can take effect. Similar to typing "restart" at the console. Note: these mission settings are recorded as different values for the deathmatch console variable. By looking at the deathmatch value that corresponds to your favorite mission settings (type "deathmatch" at the console) and using this setting in your squadbot.cfg file, the game will automatically start using these settings. 3. Weapon settings... [submenu] 1. Close Range Weapons [submenu] 1. H&K MP5 [action] spawns the H&K MP5 weapon in front of the player, 2. H&K MP5SD [action] spawns the H&K MP5SD weapon in front of the player, 3. Mossberg shotgun [action] spawns the Mossberg shotgun in front of the player, 4. Assault shotgun [action] spawns the assault shotgun in front of the player, 2. Other Range Weapons [submenu] 1. Colt M16-A2 [action] spawns the Colt M16-A2 weapon in front of the player 2. Colt M16-A2+RAW [action] spawns the Colt M16-A2+RAW weapon in front of the player. No clip for normal M16 operation provided. 3. PSG1 sniper rifle [action] spawns the PSG1 sniper rifle in front of the player. 4. Barrett M-82 sniper rifle [action] spawns the Barrett M-82 sniper rifle in front of the player. 5. M60 machine gun [action] spawns the M60 machine gun in front of the player. Note, to receive a weapon, there must be plenty of free space in front of you. You cannot receive a weapon you already have. You have only 3 seconds to pick up the weapon. If you do not pick up the weapon, it will disappear and you have to try again. A bug in Navy SEALs 2.0 tends to mess up your weaponry arsenal if you obtain the Barrett. You'll loose your Mk23 for sure. But hey, you wanted to be sniper! 4. Squad settings... [submenu] 1. Set sQuad size to 1 member [action] sets squad size to 1 member only. Takes effect when a new squad is inserted / respawns. 2. Set sQuad size to 2 member [action] sets squad size to 1 member only. Takes effect when a new squad is inserted / respawns. 3. Set sQuad size to 3 member [action] sets squad size to 1 member only. Takes effect when a new squad is inserted / respawns. 4. Set sQuad size to 4 member [action] sets squad size to 1 member only. Takes effect when a new squad is inserted / respawns. 5. Toggle sQuad composition [action] toggles squad composition from "mixed" (both machinegun armed and handgun armed guys) to "handgun armed guys" to "machinegun armed guys". Default, after startup is "mixed". "handgun armed" is probably the easiest setting. 6. Squad debug settings... [submenu] 1. Toggle team state info [action] no info :) 2. Toggle member state info [action] no info :) 3. Toggle waypoint visibility [action] no info :) 4. Display current states of members and team [action] no info :) 5. Toggle bots targeting player [action] useful to observe the wonderful animations and sometimes cool behavior of the bot Note: I don't think these squad settings are useful for the normal player. However, if you come across some annoying bugs and want to provide me addition info, you can use these settings to isolate and document the problem. And if you like to know what's happening in the minds of the bots, you're welcome as well. However, it may spoil the game :). 5. Remove powerups/items [action] removes items, powerups and weapons from this level. Please use the "Mission Settings...", "Toggle item availability" to have the items removed by default. I consider the availability of red armor, medikits, etc. (combined with the effortless picking up of this stuff) a bit unrealistic. If Navy SEALs really were to pick up all this stuff, they probably have a shopping cart as part of their basic arsenal. 6. About / credits... [info] our attempt to become rich and famous (yeah, right). Credits to the people that devoted a significant part of their ideas and time to a Quake patch you get for free. 9. Exit menu [action] exits menu, allowing you to use your weapon selection keys. Navy SEALs sQuad bots game modes ------------------------ As said above, the mission settings are recorded in the deathmatch console variable. Here is an overview of the different modes and values: no items auto respawn start-to-exit exit-to-start deathmatch -------- ------------ ------------- ------------- 8 = X 9 = X 24 = X X 25 = X X 72 = X X 73 = X x 88 = X X X 89 = X X X Other values may result in strange behavior. Coop == 1, and normal deathmatch values are reserved for multiplayer (network) play and do not allow bots nor the extra menu. I prefer to use values 88 and 89. Known bugs and problems ------------------------ The following bugs and problems have not been resolved before releasing this patch. (I consider these problems minor compared to the fun this patch may already provide you). Navy SEALs - GLQuake crashes when running Navy SEALs 2.0 (problems with meshing a number of the new models for weapons) - selecting the Barrett sniper rifle looses the MK23 handgun (probably a bitfield overflow) - obituary messages for players killed by handgrenades mention any weapon but a handgrenade squad bots - frag counter does display inconsistent values - bots sometimes get stuck in each other in the elevator near start - bots sometimes have trouble coming out of the water/slime - bots sometimes display really bad strafing behavior - bots sometimes hit teammates The latter bug is very annoying to me, as I programmed to bots to check for teammates in their lines of fire. It probably has something to do with the difference between bounding boxes and real size of the model. "Frequently asked" question and answers --------------------------------------- * What's the idea behind these squad bots? I developed squad bots because I wasn't challenged by all those "super bosses", thus monsters becoming more dangerous because they'd have heavier weapons and armor. (Of course, I'm still afraid of Doom's Cyberdemon, but that's a different story). As soon as I learned about bots (December '96), I set out to develop "lightweight" bots that are dangerous because of their cooperation and "brains". In the second half of '97, I came across Gooseman's high quality animations, which allowed the bots to appear more realistic. Also the more realistic use of weapons in Navy SEALs attracted me. Gooseman generously provided me the sources and his support. * Why are these bots limited to map e1m1 (The Slipgate Complex)? These bots need waypoint information to efficiently move across a level. The waypoint information also tells them some important issues of the level (good places to go into formation again, places to blindly run through a door, etc.). It is quite a lot of work to add waypoint information for a specific level. In addition, a number of levels is just not suitable for a cooperating squad of bots. (They didn't learn about lava environments and moon-like gravity in their basic training). The squad bots operate most effectively in urban environments (houses, windows, doors, some stairs, not that much water, no small ledges, etc.). For newly created maps, a Worldcraft definition of waypoint entities is available. Send me an email, and I'll be happy to send you the Worldcraft .fgd file and additional explanation. * Why are do these bots suck in normal deathmatch? These bots have not been designed for normal deathmatch. Use the Zeus-, Reaper- or Omicron bot for that. But please don't expect the Zeus-, Reaper- or Omicron bot to work together, reload their gun or keep close to their teammates. * Why don't these bots use secret passages in e1m1? It was hard for me to have the bots operate efficiently in close hallways (for example, near the pillar in the main building). That's why I didn't inserted waypoints for these locations. So, use it to your advantage! * If I use the sniper rifle, or M60, the bots are as dangerous as Hexen II sheep! First of all, try skill = 5. (Type skill 5 on the command line) and try again. These bots won't shoot that bad anymore. I consider it realistic that the bots, armed with a pistol or light machinegun, only effective at short ranges, don't stand a chance against your sniper rifle or M60. I do think it is unrealistic that you are able run around at high speeds with your M60 and shoot without being pushed back or loosing aiming precision. I may do something about latter cause when I have some time available. * I have this COOL idea about adding cruise missiles, two hundred Nazi's, HUMV vehicles, speech recognition, twin Vulcan machine guns, and mine hunting dolphins. You MUST add that to your patch! Please consider my situation. I do have a day job, a lovely girl friend, friends, and other hobbies. I started working on these cooperating bots because I liked the combination of Quake, programming some "AI", 3D environments and a realistic combat simulation. Because I have received support from various people in the Quake community, I could come up with this patch. I publish this patch as a "thank you" to these people and to enable other people enjoy this. I don't publish this patch to have other people tell me what to do. I don't work on this patch to do the programming other people don't like to do themselves. However, I do love to receive any ideas, and feedback, especially for the bot AI. And, as long as I have the time, I love to cooperate with other people committed to getting their concepts to work. (Hi there, Gooseman and Skullhunter!). My focus is (and will be) programming bot AI. By the way, isn't your idea a bit over the top? * These bots, are they very specific for Navy SEALs? Only partially - reloading, grenade throwing/detection, sitting, rolling and the animations are specific for Navy SEALs. The AI could be useful in many more patches. Why are you asking? * What about QuakeWorld support? This patch does not support Quakeworld environments. However, if you could explain to me what is required to support QuakeWorld (both technically, and in terms of effort), I might consider working on QW support. * What about these bots and Quake2? Porting these bots to Quake2 (actually, redesigning the bots and then putting the into Quake2) is definitely on my mind. Whether that'll be in a Navy SEALs context, or some other context, I don't know. About the Navy SEALs sQuad bot implementation --------------------------------------------- Each bot is implemented as a so-called state machine; at every moment in time, the bot is exactly in one single state, and that state determines how the bot reacts to his environment. To illustrate the state machine idea, the bots can have the following states: - wait, reload, patrol, hunt stuff, hunt enemy, strafe, defend, attack, pain, die, assemble, position, guard, run to help, spread, check, run for cover, ambush Let me explain a bit about these states: The states assemble, position and guard are used to have the bots enter a specific formation. If a bot has to enter a formation, he changes to state "assemble". In that state, the bot runs to the assembly area, using waypoints. Also specific for that state, the bots ignore a.o. all nice stuff that could be picked up, but still look for enemies and incoming grenades. As soon as the bot arrives at the assembly location, the team determines the exact location for the bot to go to. He does so in state "position", which means he walks to the specific position, now ignoring waypoints. Again the bot is ignoring stuff. Finally, when the bot arrives at his position, he will stay there until the whole team is assembled, or a time out occurs. While at his position, he is in state "guard", and checks his surroundings. Note that neither state machines (well known as FSM-s or Finite State Machines) nor this bot implementation are very new or special. The interesting bit in the "squad bots" is added by a team coordination entity: the squad! ("team" has less in common with "quake" than "squad" has, that's why it is called "squad"). To coordinate a squad of bots (and to process the communication between the bots), the squad entity is created. Again, this entity is a state machine, and has at least the following states: - create team, uncoordinated team, assembly team, spread out team Depending on actions, observations and states from the squad bots, the squad entity itself changes state, and instructs the squad bots. For example, if a bot arrives at location suitable for a re-formation of all the bots in the squad, it notifies the squad itself. The squad entity determines if the bots should enter formation (again), and decides which bots apply to enter formation with a certain time span. Similarly, if a bot detects an enemy, he will signal his squad (state-of-art radio equipment), which is to decide if and who is to help him. The squad will take care of coordination of lines of fire. Special behavior also applies when an enemy has gone out of sight, or when entering a building. While writing about 100 pages (A4) of squad bots code, I made the following observations about Quake bot AI: - we already know bot movement is hard (Nelno has written an interesting article about that, see PlanetQuake); I think bot formation movement is just as complex (having bots keep a certain distance to other bots, negotiate about lines of fire, negotiate who is to trigger buttons, when to use which formation). At least, the QuakeC code I wrote for this is complex. I personally look forward to see Half-Life's "flock" type of formation AI for the monsters. - though the current Quake monster AI is bad (all those monsters just waiting by themselves for you to come kill them), adding AI similar to the squad bots AI would not make it that much better: - level design/monster balancing becomes more complex, because monsters act (more) autonomously; it is hard to ensure the player has both a fair chance and a challenge to finish/survive a level - much of the inter-monster coordination is not visible to the player; in the case of squad bots, all their formation code (keeping them together), is more or less hidden for the player. You won't see these bots use formations when they kill you. - bot AI becomes more interesting to a player if bots are cooperating with the player. I didn't feel emotionally attached to my squad bots, except for some moment when they completely surprised me (the catwalk near the exit allows them to move in ways I didn't expect). However, playing Scourge of Armagon, or better: Soldier of Fortune, where you receive support from cooperating monsters (bots), made me feel responsible for those monsters (bots). That's the way to go. It seems Ion Storm's Daikatana (sp?) is also promising in that aspect. The squad bots can operate in coop mode with the player; I strongly encourage map designers to take advantage of that. I'm also glad to assist in providing any "scripted" behavior for such levels. Just think about situations where both the player and the bots have different but interdependent goals in a level. - I haven't seen many really intelligent bots. For me, intelligence has something to do with learning. There are only a couple of bots available that really learn while they play - think of Reaper, Zeus and now Omicron. Frankly, my squad bots should not be considered intelligent - they don't learn while playing, nor do they employ "strategies". (Since v1.3, they do sometimes decide to ambush instead of attack). However, these bots do employ tactics, and communicate which makes them challenging to play (at least, for me). About the author ---------------- William is a bloke of about 28 years, living in the Netherlands, with a background in computer sciences. William did not previously publish any other Quake modifications. He started working on this patch as early as December 1996. He is interested in continuing this bot AI programming for Quake II. Copyright and Distribution Permissions -------------------------------------- The modifications included in this archive are Copyright 1997, William van der Sterren (unless specified otherwise - see credits). The original QuakeC source is Copyright 1996, id software. This modification may be electronically distributed only if all the files in this archive remain intact and unmodified and are distributed together, AND if this modification is distributed at NO CHARGE to the recipient. This modification cannot be used or modified in any way without written permission from the author. I would also like to request any who reviews this patch to kindly inform me that they have done so. Thanks:) Availability ------------ See http://www.planetquake.com/qca/goose