Stroggs Gone Mad 05/10/98 ================================================================ Title : Stroggs Gone Mad v1.1.00 Author : Roscoe A. Sincero Email Address : legion@keg.zymurgy.org Description : This mod enhances the fighting abilities of the Strogg enemies. Web site/Home page : legion's Stroggs Gone Mad (http://www.inside3d.com/legion) News site : Inside3D (http://www.inside3d.com) TC Website : http://swtc.telefragged.com. The chase AI used in this mod is slated to be used in the Star Wars TC for Quake II itself. Additional Credits to : id Software for Quake2, especially Paul Steed of id for giving out the stats for the enemies Matt Barnett for leading target code for Iron Maiden (http://ds.dial.pipex.com/town/terace/qg20) used in the monster enhancement mod. The actual code used is a modified version of his. Thus, the soldiers now aim better. NOTE: For a long time, the actual code used in SGM is no longer recognizable from the original. But the aiming function had its beginnings using Barnett's code. Yaya for the scanner tutorial that was posted at Quake Developers Studio (http://www.planetquake.com/qdevels). The pcx files also came from the tutorial. The scanner is no longer part of Stroggs Gone Mad. SaTaN for the chasecam tutorial that was posted at Quake Developers Studio (http://www.planetquake.com/qdevels). William van der Sterren for Dijkstra's method. I've abandoned Floyd's algorithm. Also the rest of the SABIN team (e.g. Dark_Skye) for ideas although currently none of them are implemented or even started. Don't worry, I'll try to see if any can be used for Strogg enemies. SABIN (http://www.planetquake.com/botshop) Michael Smit for the original Navigator Algorithm (http://www.mathcs.carleton.edu/courses/ course_resources/cs227_w/96/smitm/) El Nino Quake Extensions (http://www.telefragged.com/vwep) for the visible weapon's patch. You will need to visit that site and download their pak file. It contains the new models for the visible weapons. Misc : You will need Quake II v3.13 or v3.14. Been tested with v3.13. Known User Problems : a) User attempts to play this mod using older versions of Quake II. End up with "game is version 3, not 1" error or "game is version 3, not 2" usually. b) User fails to follow install instructions detailed below. Thus, user ends up playing regular Quake II instead of SGM. c) User has a copy of a gamex86.dll in the main quake2 directory instead of inside one of the subdirectories like \baseq2\ or \strogg\ where it belongs. d) User's attempt to download file resulted in a corrupted file. Used PKZipFix or similar utility to fix file but resultant gamex86.dll is still corrupted. The DOWNLOAD ATTEMPT corrupted the zip file. The zip file itself at the download site is NOT corrupted. User ends up with "Error during initialization" error. (Note: problems with hard-drive can also cause this same problem.) ================================================================ * Play Information * Single Player : yes Cooperative (2-4) : yes Deathmatch (2-16) : No New Sounds : No New Graphics : No New Music : No System Requirements : Quake II, duh! Windows 95 P200+ recommended highly (formerly P166+) *good* 3D card recommended highly 32 megabytes of RAM min, 48+ recommended min (w/o visible weapons). 64 megabytes recommended min w/ visible weapons Quake II using this mod is not really meant to be played "in software". Get a 3D card. Tested on a P200, no 3D card, 32 megabytes of RAM * Construction * Base : Quake2 DLL Source v3.14 Editor(s) used : Microsoft Visual C++ v4.0 Known Bugs : Who knows. Well, the monsters have a tendency to run up to you and stare at you for a little bit (or run straight at a wall) before finally shooting. Also, when it gets too close to the walls, it can get stuck as usual. That hasn't change. Since the soldiers now move often, you should see this problem a quite a bit more ( unless, of course, you don't move towards the walls at all and there are no walls near the Stroggs). Build Time : I don't know. Forgot. * Install Instructions * 1) Make a dir under your quake2 directory (c:\quake2\strogg) 2) Unzip the gamex86.dll into the dir created in #1 (i.e. C:\quake2\strogg) **3**) Make a directory in that game directory called "pics". In THAT directory, make another directory called scanner. Unzip the pcx files into this \pics\scanner directory. (i.e. C:\quake2\strogg\pics\scanner) THIS STEP IS NO LONGER NEEDED. THE SCANNER IS NO LONGER PART OF THE MOD. 4) Make a directory in that game directory called "routes". In THAT directory, copy all the files with the extension of "*.dat" into that directory. 5) Run Quake2 with the command line "quake2 +set game dir" where "dir" is the directory where you copied the gamex86.dll (i.e. quake2 +set game strogg) 6) start a new game 7) optional: bring down console, type "skill 3" followed by enter. Then type "map base1" (or some other map name) to start a new game at skill 3. skill 3 is the so-called "nightmare level". Obviously, if you unzipped the files keeping the directory names, then the WinZip or PKZIP will place the files in the correct sub-directories for you. That is, you specify the drive to unzip the files and let WinZip or PKZIP create the sub-directories and place the files in the correct sub-directories for you. The only thinking you need to do is figure out what drive Quake II is on. You can also set up a dedicated COOP server by typing this: quake2 +set dedicated 1 +set game strogg +set coop 1 +skill 3 +map base1 * Other Info * This is the post-point-release of the Monster Enhancement mod. I decided to start over from scratch with the coding and gave it a new name. * Summary of Commands * The following commands are executed by typing them at the console. scanner - toggles on/off (default is off) the scanner * scanner feature has been removed* And yes, the scanner was available in previous versions. It was removed in v1.1 so it was available for v1.0.03. The reason it didn't work for some of you when you claimed to have typed "scanner" is because you DID NOT type the word "scanner" and/or you DID NOT LOAD the Stroggs Gone Mad mod. save_nodes - save nodes that were created load_nodes - load nodes that were previously created. mapping - toggles on/off the mapping routine unless a message in the game says otherwise, the mapping routine is always on. *NOTE* if no node is created after two minutes, then the mapping routine is turned off automatically without telling you. chasecam - toggles on/off the chasecam. The default is off. legion-navigator - calculates all the paths. This turns off Dijkstra's algorithm so the monsters won't be calculating paths any more. To turn it back on, turn mapping on. Of course, if mapping is already on, then you have to turn it off then turn it back on. There will be a pause when running this calculation. The more nodes there are, the longer it will take. And, obviously, the slower your machine, the longer it will take. max_performance - turns on/off id's movement code and uses the new movement code. Results in significant performance increase but decrease reliability in Strogg's ability to move around. The default is off--id's movement code is off. * Making a route file * This is optional. This means you do not have to make one. Load a level in exactly the same way you load any level. If you have not performed this simple task before, then I suggest that you make an attempt to play a single-player or multiplayer game at least once before you download or play any mod. Once you load a level, turn on no target (type "notarget" at the console). No target will prevent all monsters from targetting you until you fire at it. Walk around the level. After you visited every spot on the level that you think a monster can reach, save the nodes. Saving the node is accomplished by typing "save_nodes" at the console. See summary of commands above. * Version Info * v1.1.00 (May 10, 1998) - UPON LOADING A LEVEL, the mod will try to load up a route file. If a route file is loaded, it assumes that the route file is a completed file and turns off mapping. - added SaTaN's chasecam using the tutorial posted at QDeveLS. However, there were quite a bit of problems with his chasecam. For instance, it crashes underwater and that the camera goes through walls. In addition, the player "chases" the camera rather than the camera chasing the player. And when the player dies, the camera does not look at the killer. So I fixed these problems and made the camera actually work. In netplay, the camera will be "jumpy". The reason is simple: the camera is an entity in the game like any other entity. This entity is *NOT*, I repeat NOT a player entity. It is an entity like other entities in the game such as items, BFG ball, lasers, monsters, etc. Because of this, the location of this camera entity is only updated 10 times a second. The player's location, on the other hand, can be updated many times more than this. This results in choppy camera movement especially in netplay. - tweaked the code that allows the monster to "hunt" down a sound that it heard. - fixed NO FREE EDICTS crashes. This was confirmed. The only way to cause this now is to play on a map that has lots of entities in them. - another bug was causing occasionally crashes. Fixed that too, I believe. Thus, this version is probably the most stable of all the releases. - started over from scratch in the coding. This is how I fixed the two bugs that causes game crashes. - added the legion-navigator algorithm. If the route file has less than 320 nodes, the mod will calculate all the paths in the beginning so that the Stroggs don't have to calculate any paths. If more than 320 nodes are present, then type "legion_navigator" at the console. Otherwise, the Stroggs will calculate paths using Dijkstra's algorithm during the game. Upon executing legion-navigator algorithm, Dijkstra's algorithm will be turned off. The reason is that the legion-navigator algorithm calculates all the paths. Since all the paths are calculated, there is no reason for the Stroggs to calculate the paths. NOTE: if mapping is on and a new node was added, then Dijkstra's algorithm gets turned back on automatically so the Stroggs will again calculate paths. - messed with movement code so that Stroggs are less likely to get stuck in walls and other such things. Improvement is most notable to melee only Stroggs like berserkers, although, improvement can be seen with other Stroggs. The new movement code, however, is far more CPU intensive than id's original. So I added an option to turn this off. Type "max_performance" to toggle on/off the id's movement code. The default is off. The new movement code allows swimming while id's movement code does not. - tweaked fighting abilities of the berserker and infantry. "Tweaked" the fighting ability of the Makron, too. You might be surprised to see that the Makron appears to be tougher now. - new Strogg weapon--a mini-BFG grenade that explodes on contact. The frequency of the BFG energy is tuned to human DNA so it is toxic to humans but it is harmless to fellow Stroggs. However, the amount of energy that is released is quite substantial so it can do a small amount of damage to other Stroggs on a DIRECT hit. v1.0.03 (April 27, 1998) - must have broken something in previous version. No free edict crashes causes game to end. It either causes Quake II to exit without any warning or it drops to console giving you a reason. Hopefully, this bug is fixed. - I accidently removed the soldier's ability to strafe. ooops v1.0.02 (April 27, 1998) - received a report that Stroggs can walk through closed doors. This only appeared in user-created levels so far. Have not been able to duplicate this bug. However, I deleted the modified g_func.c and replace it with id's original g_func.c and proceeded to modify Touch_Plat_Center so that the Stroggs can activate platforms. All functions related to doors were left untouched, unlike in previous versions. v1.0.01 (April 26, 1998) - fixed "hesitation" bug in which Stroggs are very unlikely to fire at you when you are on higher/lower ground and there is a path towards you but Strogg is unable to get to you due to obstacles (other Stroggs, for instance) in the way or environmental reasons (like cliffs, etc.). However, to increase the difference between skill difficulty levels, I left this bug in for skill levels 0 and 1. v1.0.00 (April 24, 1998) - added El Nino Quake Extensions' (http://www.telefragged.com/vwep) Visible Weapons patch so users can see each other's weapons in multiplayer COOP. - not all Stroggs come running when alerted. This is now random. v.9.04 (April 24, 1998) - fixed COOP bug v0.9.03 (April 18, 1998) - modified SV_movestep again. Decrease performance but increase reliability. This is most important for monsters strafing or monsters with melee attacks only like Berserkers. - added gap checking for bersekers and parasites. CPU intensive routine allows berserkers/parasites to recognize gaps and determines whether or not gap prevents it from walking over it. That is, "broken" ground won't hinder these Stroggs nearly as much as before. However, these Strogg will walk off ledges easier than before. v0.9.02 (April 14, 1998) - changed "map" command to "mapping" to turn on/off mapping v0.9.01 (April 14, 1998) - fixed aiming bug for projectile weaponry - made new route file for base1. Apparently, there was something wrong with it. v0.9.00 (April 11, 1998) - fixed crash when trying to load a route file, hopefully. Don't close a file if a file was not successfully opened - added shielding to Infantry. Allowed infantry to block rather than duck for skill levels 2 and higher. Skill 1 infantry will either duck or block. Skill 0 infantry never block. Shielding is turned on only when blocking. - a blocking infantry at skill 1 will absorb 50% of damage plus protection from shielding - a blocking infantry at skill 2 or higher will absorb 75% of damage plus protection from shielding. - Infantry can now walk and run faster - modified SV_movestep so monster movement for walking monsters now behave better than id's original. It requires more instructions so performance is a tad bit slower - tweaked chase AI to take into account monsters with only true melee attacks (like Berserker) v0.8.03 (April 10, 1998) - made loading of route files automatic. got annoyed having to load the files every time I needed to test out a level. - added route files for base1, base2, and base3 - reduced maximum number of nodes to 512. so mod is a little bit more memory friendly now, a little bit. v0.8.02 (April 9, 1998) - fixed NO FREE EDICTS crashes hopefully. First time I ever had this type of crash for Quake II today. Hopefully, it is the last time I see it for this mod. v0.8.01 (April 8, 1998) - fixed node counting not resetting on level changes as well as node table not reinitializing on level changes. v0.8.00 (April 7, 1998) - worked on mapping code again. Hopefully fix the node linking on the other side of wall problem that has been plaguing mod since the beginning. Additionally, corners of walls now are treated much better as well as stairs/inclines. Result: decrease performance, increase reliability. - changed version number format from x.xxx to a.b.cc. For major revisions, a is increased by one. For minor revision changes (e.g. one or two new but not very significant features added), b is increased by one. For patch updates (usually for bug fixes), cc is increased by one. - added ability to save/load nodes to a file in "..\routes\" directory. Name of file is the name of level with ".dat" extension. New feature -- incremented second digit in version number. save_nodes saves the node. load_nodes loads the nodes from file. Any node that was created before the nodes were loaded from file will be erased. So load the file first once you load the level. Type "save_nodes" at the console to save, type "load_nodes" at the console to load. * NOTE *: If you like killing the Stroggs the minute you see them then none of the changes, since the original, I have been making will be seen by you. The nodes are used for chasing. Obviously, Stroggs won't be chasing if they are dead. - sample route file for base1 have been included. You must load the nodes first before playing; otherwise, any nodes you had created in the game will be erased when you load the nodes. If you load nodes from a file (even if the file is incomplete--the nodes don't cover the entire level), the mapping is automatically turned off so there will be performance benefits in loading the sample route files. The monsters will still calculate paths as usual. You can obviously choose not to load the route files by not loading them. The monsters will not be as "smart", however. For instance, when a Strogg alerts another nearby Strogg, that Strogg might not know how to find you. This is because no nodes have been created yet to teach it. So for faster performance and smarter monsters (in regards to chasing, they are smarter), loading the route files is better. OBVIOUS NOTE: The nodes are not automatically loaded even if a route file for that map is present. This way you have a choice of either loading it or not. This will allow you to see first-hand any differences in the Strogg's IQ as well as differences in the performance (in regards to CPU usage). - although not mentioned before, the nodes do not affect the movement code at all. Thus, monsters that swim will not suddenly jump out of the water and walk. Walking monsters will not suddenly hop into the pool and swim. v0.7.03 (April 6, 1998) - tweaked mapping code so nodes should link up better, decreases performance slightly - improved mapping CAN lead to better pathing once the level is mapped out. This results in more slowdown in mapping routines but less choppy play since pathing code is only executed when needed. Mapping is executed every frame. v0.7.02 (April 3, 1998) - fixed crashing problem with new chase AI (first mode) - fixed incompatibility problems with chase AI modes - increased performance in pathing code a little. Still results in noticeable choppy play for a P200 if a lot of monsters (e.g. 5 or more) are calculating a path at the same time or that the map already has a lot of nodes in them (e.g. 360+) - mapping code will turn off automatically if no nodes are being created after two minutes v0.7.01 (March 31, 1998) - rewrote chase AI. There was a bug that prevented it from chasing. The chase AI falls in two modes. The last "mode" of chasing *IS* id's original chase AI. There is a problem with compatibilty with the two modes--if the first mode fails, the second mode fails too. Bug with first mode appears to be fixed. Incompatibility bug with second mode is still present. Unknown at this time on how to fix said problem. These modes were present in the original release but not documented in text file. - for skill settings of 11 or greater, soldier's weapons are just as powerful as players. Note: this is changed from previous version. The game is not very fun with the previous setting. - first mode of chasing: - monsters dynamically learn the level by dropping nodes - players also drop nodes for monsters to use - in previous version, the dropping of nodes eats up a lot of CPU. It is most noticeable on maps with large number of Stroggs (e.g. greater than 30) or if the map has or will have a lot of nodes in them. - in this version, the routine now runs faster. - monsters use these nodes to find a path from current position to target's position. If no path found, it uses id's chase AI. - limiting CPU sappage now is the path finding routine. Only "solution" is to reduce the maximum number of nodes allowable in the game. It is currently set at 1024, it is reduced to 512 nodes. This will reduce the memory requirement of the mod as well as prevent mod from spawning so many waypoints that the monsters would take too long to calculate the path. - increased performance in mapping code - unlike pathing, mapping routines are executed every frame. v0.7.0 (March 10, 1998) - soldiers will display animations normally not seen very often. the run-n-shoot as well as duck-n-shoot animations will be seen more often. also the run, shoot, and trip animations are displayed--originally id left this out. soldiers can now move and fire at the same time. they have animations to support this so I used them. - soldiers can have mega armor which makes them translucent--practically invisible for some graphics cards. Only skill 4 or higher can have mega armor. - support skill settings upto 2000 - at skill 3 or higher, soldier's firepower have been equalized to that of the player. In other words, they now do as much damage as a player at skill 3 and higher. (Machine gun soldier's firepower has been equalized at skill 4 and higher.) -- blaster soldiers originally did 1/2 damage, now do full damage -- shotgun soldiers originally did 1/2 damage, now do full damage -- machine gun soldiers originally did 1/4 damage, now do full damage * THIS MAKES THE GAME SIGNIFICANTLY MORE DIFFICULT! * This may be a single-player game but do not leave your deathmatch skills out the door. Bring it with you. Start out with skill 1 or 2 to get used to the moving soldiers. Then try the nightmare levels. - added Yaya's scanner. Type "scanner" at the console. With the scanner on, the menu (press escape for menu) will not be active. To activate the menu, turn off the scanner FIRST by typing "scanner" again at the console then press escape. red dots mean Stroggs who are targetting you! The other dots are either Stroggs or some other equipment that provide false positive positions of Stroggs. scanner is short-ranged so don't expect to "see" the entire map with this. The computer [Press F1] is also "down" when the scanner is on. The info will only pop up for a very brief moment when the scanner is on so turn off the scanner if you wish to see the computer update. -- there are some pretty strong limitations to the scanner. In short, too many Stroggs can cause overflow errors which can also lead to other problems as well including but not limited to not being able to find the correct *.pcx file error messages. - NEARYBY Stroggs are alerted by your presence. So if one Strogg sees you and there are others nearby, they will be notified. - obituary has been modified to include new death messages. it is NOT complete. - soldiers can resurrect at skill 3 or higher. Hence, skill 3 is the beginning of the "nightmare" levels. To prevent resurrection, you must gib the body. * Misc Info * I plan to improve most of the Stroggs one class type at a time. So the first Strogg to improve is the soldier class. This is different from the monster enhancement where I was improving a bunch of Stroggs at the same time. I'd really like some of the Stroggs (like the enforcers, for instance) to have animations that include movement while firing their weapons. Without these animations, the Stroggs will look like they are "skating". I won't add movement if the animations don't exist.