The Killing Floor Viewer
Copyright 1996-2003 Dale Pope
All Rights Reserved
” VGA Planets” is a registered trademark of Tim Wisseman.
The software and any documentation are provided “as is” without express or implied warranty including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. In no event will the author of this software be liable for direct, incidental or consequential damages of any kind, even if the author has been advised of the possibility of such damages.
- Requirements and Installation
- Viewing Combat Results
- Creating Simulations
- THost and TKF Differences
- License and Registration
- Contacting the Author
*The term “object” refers to ships, planets, and starbases. It is used repeatedly throughout the document.
The Killing Floor is a combat replacement for VGA Planets that supports multiple ships fighting together, rather than facing off two at a time. It consists of two programs: the viewer (KFVIEW, used by the players) and the host add-on (KFHOST, used by the host). This is the viewer.
Requirements and Installation
- DOS or Windows 95/98
- at least a 386 processor
- 4 megabytes of RAM
- a video card that supports 256 colors
Windows Viewer Requirements
- Windows 98, 2000, or XP (possibly 95 or NT but it hasn’t been tried and I kind of doubt it)
- DirectX 7 (or better)
Currently, KFVIEW is only available for DOS and Windows 95/98/2000/XP, however, separate versions for the X Window System. KFVIEW for DOS can be run from the Windows 95/98 DOS box but not from Windows NT.
To install The Killing Floor it must first be unzipped into your VGA Planets directory. You may be prompted to overwrite some files in which case I recommend that you do but you may want to back them up first. After that, run KFVIEW.EXE (for the DOS version) or KFVIEWW.EXE (for the Windows version). You’ll have to make any Start Menu or desktop shortcuts that you want to use.
Included in the DOS distribution is CWSDPMI.EXE (a DPMI server) by Charles W. Sandmann. He can be contacted via e-mail at [email protected], or by snail-mail at
Sugar Land, TX 77479
The latest version of CWSDPMI.EXE as well as its source code can be found at ftp.simtel.net . At the time this document was written, the precise location was ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2misc/ . ALTPLN20 is short for Alternate RESOURCE.PLN #20 by Michael Arrowood. It is highly recommended that you install this (The Killing Floor will look much better with it). For more info, see section ALTPLN20. To start The Killing Floor you can just run KFVIEW.EXE (for DOS) or KFVIEWW.EXE (for Windows). KFVIEW will search for games in any subdirectories of where it is located, and (if it finds any game data) will ask you which game (and which race) you want to use. You can also start KFVIEW with parameters telling it which race you’re playing and where the game data is. For example, if you are playing the Birds (race #3) and your game data files were unpacked into the directory C:\PLANETS\GAME1 the command would be: kfview 3 c:\planets\game1
The only other parameters available are:
|-c||If KFVIEW is started with ‘-c’ (i.e., kfview 3 c:\planets\game1 -c), KFVIEW will automatically exit if it can not find any battles to view.|
|-v||This will allow for the selection of a specific video driver.|
|-p||Indicates that your game data is password protected and the password following ‘-p’ should be used to enter your game data (i.e. kfview 3 c:\planets\game1 -p mypassword).|
|-w||(for Windows only) This will start KFVIEW in a window rather than fullscreen. Depending on the resolution set in the Options, KFVIEW may still switch to fullscreen while viewing battles.|
This is a description of ALTPLN20 as written by Michael Arrowood (Bane):
ALTERNATE RESOURCE.PLN #20 Updated for FLEET BATTLES. “The Killing Floor” By Dale Pope. 99.99% redraws on all game graphics. Planets, Industry, ships and more. The pics are all hand drawn with 3d shading. You’ll recognize most ships from what they used to be. Some noteworthy changes. 1: Madon/Trex is a Narn Cruiser 2: Patriot/Scorpius swapped 3: Diamond is now Cardassian ship Included: RESOURCE.PLN All the graphics in the game. TECH.MOF A better font for VGAP DOSPlan (borrowed file) I hope you enjoy all the work I have put into this. B A N E
Viewing Combat Results
First, a small note: when I use the term “object” I am referring to ships, planets, starbases, and, possibly, fighters. To view your combat results you must specify the game (and possibly player number/race) when the Killing Floor viewer is started. This can be done on the command line or by selecting the game’s folder from the dialog that first appears. For more help, see section Installation. If you have any combat results, the circular button on the top left of your screen will show that you are currently in “View Battle” mode. If it shows that you are in “Simulator” mode, then you probably do not have any combat results, however, you can always try switching to View mode to make sure. The ships (and planet or starbase if there is one) will be listed in the box on the left of the screen. The specifics for the selected ship will be listed in the box on the right, and the enemies/allies for the selected race will be listed below. If there is more than one battle, then the “<” and/or “>” buttons above the ship list will be lit. You can scroll through all of your battles by using these buttons. To actually view the battle, just click on “View Combat”.
While viewing the battle you have several options:
|keys ‘1’ to ‘9’ will set the speed of the battle (‘1’ is slowest)|
|‘+’/’-‘ on your keypad will zoom in/out respectively|
|arrow keys will scroll around the battlefield|
|space bar will pause or single step the battle|
|escape will exit the battle|
The keys might not be accepted if you press them while shields, beams, or torpedoes are being drawn. I suggest holding down whichever key you wish to use until it is accepted.
When the battle is over and you return to the main screen, the ships now listed in the box will show their end-of-battle status. You can look through and see how much damage was done, how many torps are left, etc. Ships that were destroyed will not be shown.
If you want to restore the ships to their before-battle status, then press the “Restore List” button. The ships will appear as they did before the last battle and ships that were destroyed will be reborn.
There are two other buttons that you might find useful when viewing battles, “Watch” and “Follow”. Watch will display the status of up to five objects during combat (much like VCR reports shields, damage, remaining crew, etc.). Follow will display the selected object at the center of the screen during combat so you will only see what is within a certain range of that object (use +/- to change the range).
To activate either watch or follow for a certain object, select the object and then just press either of the buttons. A ‘W’ or an ‘F’ will appear beside the object’s name. Only one object can be followed, up to five objects can be watched.
To begin creating a battle list for your own simulations, you must first be in simulate mode (press the “Simulate” button in the top left of the screen). After that, you can add objects and alter the specifics (beam tech, torp tech, etc.). The hull names will be listed in the box on the left, and their specifics in the box on the right. To change specifics just go over to the box on the right and double-click or press the enter key on the item you wish to change.
Adding Objects Pressing “Add ship” will give you another dialog box asking you what ship to add. You can either choose a default ship by selecting the desired hull type, or you can select a ship from your game data. When you select a ship from game data, all the ships at the same location will automatically be added. Pressing “Add planet” will popup with another dialog box asking if you want to add a default planet, or one of your own planets. All your planets (with or without starbases) will be listed in the box. If the planet you select has a starbase, the starbase will be loaded automatically. Pressing “Add starbase” will show another dialog box asking if you want to add a default starbase, or one of your starbases. All your starbases will be listed in the box. Pressing “Delete Object” will delete the selected ship/planet/starbase from the battle list.
Pressing “Clear List” will delete the entire list so you can start adding objects again.
Adjusting Object Specifics To adjust the specifics (damage, beam tech, number of fighters, etc.) of an object, first select the object in the box on the left and then go over to the box on the right. Select the thing you want to change and double-click, or use the enter key, or + and -. Some specifics might only be adjustable by double-clicking/pressing enter, and some might only be adjustable by using + and -. Most, however, use both. Double-clicking or pressing enter will almost always popup a list to select something from (i.e. if you press enter to adjust the beam level, you will get a list of the different beams to select from), or allow you to type the number directly (i.e. if you press enter to adjust damage, you will simply type in the percent of damage you want). Pressing + or – will usually increase or decrease the amount of the selected specific (i.e. if you select beam level, + will go up one level, – will down one). In a lot of cases +/- will increase/decrease the selected specific to its maximum or minimum (i.e. if the number of crew is selected, + will go to the maximum amount of crew (depending on the hull type), – will go to 10 (the number of crew given to a captured ship). Two special cases for +/- are used when adjusting the number of defense posts on planets and starbases. Defense posts have critical amounts where the number of fighters, beam tech, or number of beams increases. For example, 43 planetary defense posts will have 7 fighters, and 4 positron beams. 44 defense posts will have the same. In fact, 56 defense posts will have the same but at 57 defense posts you get 8 fighters and still 4 positron beams. At 61 you get a fifth beam and they’re upgraded to disruptors. In The Killing Floor, if you have selected 43 planetary defense posts, pressing + will increase the number right up to 57. Press + again and go to 61. Press – twice and go back down to 57 and 43. +/- work the same for starbase defense posts but it should be noted that starbase defense posts have different critical points, and planetary defense posts will also have different critical points when a starbase is in orbit. I should also tell you that the minus key does not always work the way it should (sometimes it skips down too far). It is best to set the defense posts to zero and then use + to step up to the critical point you want. The property labeled “Outside” can only be changed to yes or no, and controls where ships start. If it is set to no (the default), then all the ships start at their normal positions and normal combat will occur (when viewed). If you want to simulate an alternate cloak intercept battle, set “Outside” to yes for those ships that are not intercepting or being intercepted. These ships will start farther away from the center behind the rest of their fleet, and you won’t see them on the screen right away. You will either have to scroll the screen with the arrow keys, or zoom out to see them.
The aggression factor of a ship can change its starting position within its fleet, the distance it stays from enemies, and the speed that it travels (0 is the most aggressive, 999 is the least, 1000 is considered normal). A ship with an aggression factor of 0 to 499, moves at top speed, and gets closer to its enemy than a normal ship would. A ship with an aggression factor of 501 to 999, moves slower and stays farther away than a normal ship would. And there is a decreasing distance and speed (i.e. 10 gets closer to enemies than 300, and 501 moves faster than 999).
There are several categories of configuration: sound, graphic delays, image sizes, beam colors, host configuration, and some miscellaneous items.
Sound The adjustments you can make to sound include soundfx volume, and changing the sound that is played for any event. The first thing you will prompted with is volume. You can simply adjust it by clicking on the slider bar. The right is loudest, the left is quietest. If you wish to turn sound off, move the volume slider all the way to the left.
To adjust the sound used for the different sound events, click on “Waves”. You will be presented with a wave directory (the directory where all the wave files can be found), a list of the sound events, the name of the wave file for the selected event, and two buttons. To change the wave directory you have to move the mouse up to the top of the box where the wave directory is listed, and type in the directory where your waves are. Once you have selected the event you want to change, you can either play it, or change it by either just typing in the name of the file, or pressing “Browse” and selecting the wave file you want. All waves must be in the wave directory, you can not use waves that are not in that directory.
Graphic delays (measured in milliseconds) are for the animations (weapons fire, shields, etc.). The shield delay is the amount of time it pauses before displaying each shield image in the sequence (there are five). The beam delay is the amount of time the beam is shown on the screen. The torpedo delay is the amount of time between each movement of the torpedo. The hit delay is the amount of time the “hit” image is shown on the screen.
Image size for ships, planets, and fighters can be adjusted. The sizes given are in pixels and describe the width or height of the object. Fighters and planets can be adjusted to fit whatever size you specify but you can only change a ships minimum size. The size of ships will be determined by both the minimum size specified and the “size” of the hull (i.e. hull mass + cargo space + fuel space).
The 11 different races can each have their own beam colors, if you like. To change a race’s beam color, click on that race, and specify the amount of red, green, and blue you would like the beam to have. KFVIEW (which currently only supports 256 colors) will then try to find the closest color to the one you wanted.
Host Config This is actually just The Killing Floor Host add-on config. It presently consists of a mind-boggling number of configuration options: actually, I lost count. You can configure specific race attributes, change weapon charge rates and ranges, adjust the amount that the engines boost shield power, alter the minimum amount of damage done by a weapon, fiddle with the odds a torpedo has to hit its target, decide if you want planets to fire torpedoes, make conclusions about how you feel towards allowing torpedoes to be fired at fighters, turn alternate cloak intercept on and off, and completely screw up the limitations of fighters. The engine shield boost, you should be familiar with from HCONFIG, but the others may require explanation. In TKF damage is stored to the 100th decimal (i.e. 25.63% damage) so having each weapon doing a minimum of 1% damage is not required (like it is in Host and VCR). The minimum amount of damage can be anywhere between 0.00% and 0.99% inclusive. If you wish to mimic Host, setting the minimum amount of damage to 0.75% should be adequate. The odds of a torpedo hit are just that: the percentage chance that a torpedo has to hit its target. In Host/VCR a torpedo has a 65% chance of hitting its target. You can set it anywhere between 0% and 100%, however, I wouldn’t recommend going below 65%. The alternate cloak intercept puts all ships that are on the same point into combat. Those ships that are cloak intercepting or being cloak intercepted are placed on the combat wheel in the normal fashion with all non-allied ships separated by 60000 meters. Ships that are not intercepting or being intercepted are placed farther away. By default, that distance is 80000 m behind the other ships. For instance, in a two enemy battle the ships are placed 60000 m apart, or 30000 m from the center. Non-intercept(ed/ing) ships would be placed 80000+30000 m from the center. If alternate cloak intercept is turned off, those ships that are being cloak intercepted or doing the cloak intercepting are put into combat in a separate stage, before normal combat. If you choose to do so, you can change the number of combat rounds required to charge the various weapon types. By default, the length of time required to charge any ship or planetary beam weapon is 80 rounds. This is the amount of time required for a 50% charge (the minimum a beam weapon has to be charged before it can fire). A 100% charge, of course, takes twice as many rounds. For torpedo tubes and fighter bays, the default number of rounds between firing is 36 and 23, respectively. Race attributes are configurable in a number of ways. Each race can have its own number of bonus fighter bays, bonus hull mass, maximum damage before the ship explodes, and damage scale factor (which determines how fast weapons are lost due to damage). Each race can also be set to have weapons that are immune to damage, have a 3x kill factor on their beam weapons, or be able to beam up debris after a battle. By default, the Feds have the Fed bonus which entitles them to 3 bonus fighter bays, 50 kt of bonus hull mass, and weapons that are immune to damage. The Lizards ships can take 150% damage before exploding, and their weapons are damaged on a 150% scale (i.e., if a Lizard ship has 10 weapons, it loses one every 150/10 % of damage). The Privs have a 3x beam kill factor, and the Cyborg can up battle debris.
You can change several settings used by fighters:
|Speed||The number of meters the fighter can move per round of combat. The default is 440 meters per round.|
|Beam range||The minimum distance the fighter can be from its target before firing. Default is 5000 meters.|
|Number of rounds for the beam to become charged||The number of rounds a fighter has to wait between firing. Default is 3 rounds.|
|Explosive factor of the beam||This is the ability of the fighters beam weapon to damage a ships shield and hull. The default is 4. By comparison, a Laser does 3, and a Heavy Phaser does 45.|
|Crew kill factor of the beam||Very similar to explosive factor but this one only kills the crew of the targeted ship. Default is 4. By comparison, a Laser does 10, and a Heavy Disruptor does 50.|
|Energy||The total amount of energy given to a fighter at launch time. The default is 1840.|
|Energy used to charge the beam one level||The amount of energy used to charge the beam during one round of combat. The total amount of energy used to charge the beam fully is equal to this value times the number of rounds for the beam to become charged. The default is 61. So, if the default number of rounds for the beam to become charged is 3 then the total amount of energy used to the charge the beam is 61 * 3 = 183. The default amount of total energy given to a fighter is 1840. That means that the default fighter can fire 1840 / 183 = 10 shots (with a remainder of 10 units of energy).|
|Energy used by one round of movement||The amount of energy used during one round of movement (to move the distance given in “Speed”). The default is 8 units of energy. The default fighter can move a maximum of (1840 / 8) * 440 = 101200 meters (assuming it never charges its beam weapon). However, let’s say it has to move 29920 meters to its target. To move that far, the default fighter consumes (29920 / 440) * 8 = 544 units of energy leaving it with 1840 – 544 = 1296 units of energy. That is enough energy to fire 1296 / (61 * 3) = 7 shots. After a fighter has used up all of its energy it returns to the nearest allied carrier (no energy is required to make this return trip home).|
Miscellaneous items include the help line, and the combat resolution.
The help line can be turned on and off (just click the box).
There are several different resolutions for combat (and only during combat; the main screen will always be 640×480). Before you select a resolution higher than 640×480 please be sure that your monitor and video card are capable of the resolution you want. I (the author) will not be held liable for any effects (adverse or otherwise) that may occur.
THost and TKF Differences
This section currently contains very limited information. If you have any questions concerning The Killing Floor, e-mail me at [email protected]. The Killing Floor supports a maximum of 2500 objects (i.e. 500 ships, one planet, and 1999 fighter groups) on the battle floor at any particular time. Also, all 11 races can participate in the battle together. Allied races fight like allies, and enemy races, of course, kill each other. It should be noted that the fighter limit is 1999 launched fighter groups, there is no limit as to how many fighters can be sitting in the cargo hold of carriers. In my own testing, this limit has proved more than adequate. The highest number of fighter groups I have seen on the screen at once was 1400 (and that was in a 500 ship battle). One other note, a fighter group can consist of 3 fighters, so 1999 fighter groups could be 5997 fighters. TKF puts no real limits on the number of weapons that a ship can carry (the limit is over 2 million). However, Host’s data files are limited to either 32767 or 65535, I’m not sure which. I would never recommend designing a ship list that would allow that many weapons to be placed on a single ship but maybe that’s just me. TKF leaves you free to do so, if you wish. There are three stages of combat that occur in this order: cloak intercept, cloaked attack, and normal ships vs. ships. vs. planet/starbase combat. Cloak intercept is described below. Cloaked attack allows cloaked ships that have a primary enemy set, to de-cloak, attack their enemy, and re-cloak if they haven’t taken enough damage to prevent cloaking (this is also a stage in Host combat). Normal combat just includes all combat that wasn’t covered in the previous two stages. Cloak intercept can be done in two different ways: the original TKF cloak intercept method, or the alternate cloak intercept method. The original way is described below, and for info on the alternate method see section Host Config. The original TKF cloak intercept occurs before any other forms of combat. A cloaker intercepting an enemy ship will fight with that ship only, even if that ship is part of a fleet. If multiple cloakers are intercepting the same enemy ship, all those cloakers will fight that poor enemy ship simultaneously. If multiple cloakers are intercepting multiple enemy ships, all those cloakers will fight all their intercept targets simultaneously. Multiple enemies: one race with two ships (on the same point) can define two enemies. One ship might have their primary enemy set to Birds, and the other one might have it set to Robots. If either a Bird ship or a Robot ship is on the same point, both ships will attack it. Ships are drawn on the battle floor according to their “size.” A ship’s size is determined by three factors: hull mass, fuel capacity, and cargo capacity. The minimum size that a ship is drawn can be configured in the Options dialog box under Image Sizes. Planets and starbases are always drawn the same size (configurable). Fighters are drawn using their images found in RESOURCE.PLN (unlike the normal VCR, which uses colored triangles). The size of fighters is constant and can be changed on the Options dialog box under Image Sizes.
That’s all that is listed here, e-mail me any questions you have.
License and Registration
License The Killing Floor viewer is a shareware program and is provided to the user for free evaluation. You are free (and encouraged) to distribute unregistered copies of this program to anyone you wish, provided that it is in its original form and has not been altered in any way. The unregistered copy will not be usable in a game that has passed turn 30. If you wish to use it passed turn 30, you must register it.
A registered copy of The Killing Floor Viewer may only be used by the person to whom it was licensed. It must not be distributed to any other person.
Registration The unregistered Killing Floor viewer won’t work on a game passed turn 30. You must register to continue using it passed turn 30. Registered users will also receive free upgrades. The cheapest way to register (at least if you live in North America) is to fill out the order form in KFORDER.TXT and mail your payment of $5.00 US (or $7.00 Canadian) to me (address below). The day I receive your payment I will either e-mail or snail mail you a registration key. I can accept cheques/checks, or money orders. Please make your form of payment payable to Dale Pope. The easiest way to register is probably via PayPal. Just send $6.00 US to [email protected] and let me know where you want the registration key sent. For 9.00 EUROs you can register using a credit card on-line at RCworld Universe’s TKF reg. page. This service is provided by RCworld Universe. If you do not live in North America and cannot (or do not wish to) order by credit card, the best option you have left is a money order (made out for $5.00 US). My understanding is that money orders in Europe (and probably a lot of other places) are very expensive. However, a few people from different countries in Europe have sent me money orders purchased from their post office rather than their bank. Apparently, money orders from the post office are much, much cheaper. The amount of information the post office passes on to me is pretty minimal, so if you are sending a payment by this method, please e-mail me first (just so I can get your name and e-mail address). If you want to find out what $5.00 US is equivalent to in your native currency, I recommend using The Universal Currency Converter.
My mail address is:
Checks and money orders should be made payable to “Dale Pope”. If you included an e-mail address in the order form, you will usually receive your personal registration key within 24 hours of my receiving it. If you don’t have an e-mail address, I can only say that your registration key will be in the mail within 24 hours.
Feel free to contact me if you have any questions or concerns about registering.
Shield bitmaps by Charles Bloom. Used with permission. ALTPLN20 by Michael Arrowood. Used with permission. CWSDPMI.EXE by Charles W. Sandmann (see section Installation for more information). The Killing Floor by Dale Pope. All DOS programs compiled with DJGPP C/C++ compiler with the Allegro game library by Shawn Hargreaves. All Windows programs compiled with MinGW and Allegro. All other executables compiled with the GNU C/C++ compiler using hacked up bits and pieces of Allegro.
My thanks to Tim Wisseman (for VGA Planets), Charles Bloom (for the shield bitmaps), Michael Arrowood (for creating an awesome RESOURCE.PLN, and being extremely helpful with his comments and suggestions), Trent Hoeppner (for being very helpful with his comments and suggestions), to all those wonderful people who gave me bug reports, suggestions, comments, and support during beta testing, and to all VGA Planets players (for creating a wonderful community where the only goal is to destroy your friends).
Contacting the Author
You can contact me via e-mail me at [email protected], or just hold a Simpsons convention (I’ll be the one dressed as Millhouse).
The TKF homepage is located at http://members.shaw.ca/d4pope/tkf.