One of the reasons why Quake is set to be around for a while is that it has designed to be extensible. Basically, what this means is that all of the sound, graphics, levels, textures, monsters - in fact, practically everything about it - can be altered to create a new experience. Because of this, various groups of individuals have taken it upon themselves to create TCs - Total Conversions. This new buzzword looks set to change the face of Quake as we know it. How do you do it, then? If you don't want to know how to do it, but just who's doing it, and what they are doing, jump straight to the total conversions stuff. Still here, then? Before we take a look at some of the work that's currently in progress, let's have a look at some of the things that the budding TC'er needs to do to create their own Quake TC. The main components are : Quake Palette One of the things you do need is the Quake Palette before doing any graphics editing. All of Quake's graphics use one Palette, so any graphics you create for Quake need to be mapped with this Palette otherwise that wall you just spent 4 hours on will wind up looking like a groovy circus tent! The best way to do this is to export a texture or something from Quake, open it up in a graphics program that will save palettes (Paint Shop Pro is very good at this), and save the palette out from there. When you are making a new texture, or skin, the first thing to do is re-load the saved palette. If you're using something like Photoshop, the best thing to do for impressive results is create the graphic in 24 bit, remap the palette down to 256 colours using the Quake Palette, then make any changes from there. Console Graphics, Numbers and More Changing the graphics for numbers, etc., is quite easy. First you need to extract the pak0.pak and pak1.pak files. Various utilities are available to extract Quake components; you can download one from ftp.cdrom.com. Pretty much all these graphics are located in the /id1/gfx/ directory. To extract and convert the graphics, you need a utility such as ADQUEDIT. All of the graphics (numbers, loading sign, intro screen, etc.) are in ID's LMP format. A utility such as ADQUEDIT will let you view them, as well as extract and convert the LMP's to PCX files. Once you have extracted the graphics, you can change them with any proprietary graphics editor, then re-map the Quake palette back into the PCX. Once you've saved your changes, load up ADQUEDIT, convert the bitmap to LMP, and put it back into the /id1/gfx/ directory. Textures Used in Levels Editing level textures is very much the same as editing the console, except you edit the map file (e.g. e1m1.bsp) which resides in the /id1/maps/ directory. Once you open the file, there is a list of all the graphics the particular level uses at the time. These graphics are in MIP format rather than in LMP format. MIPs are different from LMPs because they contain 4 graphics in one: a 32x32, 64x64, 128x128, and 256x256 scaled graphics of the original image. These MIPs are then used in Quake to provide the best image quality at each distance; the texture is anti-aliased when scaled down to avoid pixellation at moire effects. When creating new textures, work on the 256x256 one, then export 4 individual PCX files into your Quake directory. It's best to scale down the graphics when in 24-bit mode, as most graphic editors will not anti-alias 256-colour resizes; this will seriously ruin your textures. To insert the new texture, open up ADQUEDIT, then find the first PCX of the new texture and double click on it. The program will now let you convert it the graphic to a MIP. Once that's done, you close the current PCX, then double click on the new MIP texture. ADQUEDIT will now let you import another PCX and choose what size image to be replaced in the current MIP. Once all the PCXs have been inported, simply double-click on the BSP you want to insert the new texture in, select the Replace key, choose the new MIP you just created and you are now the proud owner of a customised Quake map! There are many other great utilities that can extract and import Quake graphics, ADQUEDIT just happens to be the one I have tried out. It's easy to use, has a great interface, and supports almost all the formats in Quake. Player Skins To edit player skins, you need a utility called QuakeMe. Start up QuakeMe and open up the Player.MDL file in your /quake/id1/progs/ directory. You'll then see the player model sitting in that window in 3D. Change to the texture view, then select Export Texture under the FILE menu. It'll export the current texture into a BMP file, Once you have editied the skin, you simply go back to QuakeMe, and select Import from the FILE menu.You are now the proud owner of a customised Quake skin! Creating new sounds for Quake is the easiest out of everything. You'll of course want to extract the pak0.pak and pak1.pak files; all the sounds used in Quake are located in the /id1/sounds/ directories. Almost all the sounds are sampled at 8bit/22khz/mono waveform (.wav) files. You can edit any of these files with a standard WAV editor, such as Cool Edit, which support cue lists. A cue list is a mark in the WAV file which tells the WAV player where the loop point is in the WAV. The cue list in question in a Quake WAV is the whole sample. Once you have created the sound you want, you simply replace the WAV corresponding to the sound you want to change with the edited sound. You can use standard apps like Creative WaveStudio, but want an editor that will let you create effects like reverb, echo, flanges, etc, you can do far worse than Cool Edit 96, available as shareware. All graphic objects in Quake are created as models, so if you want to implement that new chainsaw you've been thinking of, this is what you have to do: Creating the Model Before creating your model, there are several things you need to keep in mind:
Another thing to keep in mind is the number of polygons your model uses. It's really easy to get carried away, and you're almost always using more than you think the model already has. Luckily, most good 3D packages will give you statistics on your model, so you can predict what details you're going to have to leave out. Remember, you can make up for lack of detail in the model by applying a well-designed texture to it. A number around 500 polygons is somewhat pushing it on your normal Pentium, but pretty safe. 800 is asking for trouble, and anything over 1000, well, let's just say get ready for a slide show. You can try polygon reduction if your 3D package supports it, but polygon reduction usually leaves unconnected vertices or flips some polygons when its not supposed to. The 3DUTILS files which ID supply for model compilation require a 3D Studio (3DS) format file, but most 3D editors will export to this format. The Models Scale The scale of model that you create needs to match as close as possible similar models in Quake. If you don't use the correct scale, your gun will end up the size of the Eiffel Tower, and your giant spider will will be the size of a rat dropping. The best way to check the scale is to create a simple cube model, import it into Quake, and see what size it comes out in the "real" world. You can then perform iterative adjustment until you have the right scale, then export your completed model using the same scale as the cube. Model Animation Model animation, which can be as simple as the gun kick-back, and as complicated as the player running, is accomplished by the same sort of techniques as stop-frame animation. Each frame must be exported as a separate model file, and then each model file played in sequence via the model code. To animate a gun, for example, you would export the plain gun as the first frame, then move the gun barrel up by altering the model vertex by vertex until the right amount of change has been made. Export the model as the next frame, etc. The important thing to remember is that all frames in a model must have exactly the same number of vertices and polygons, or the model won't work. Model Textures All you have so far is a wire-frame model. You now need to apply a texture, or skin, to the model. There's a utility called TEXMAKE, which will produce an LBM file from your 3DS model. LBM is a Deluxe Paint proprietry format, but both NeoPaint and Paint Shop Pro will also read LBM files. Alter the texture to make it look like your mother-in-law's dog or whatever, save it, then rename the file to skin.lbm. You're now ready to compile your model. Compiling Your Model You need to create a second file, called a base model, which will reside in the same directory as your SKIN.LBM file. The base model is used by quake as a texture reference, so it needs to be organized so that all of the textures in the model are exposed. Edit the first frame of your model and "flay" it (like creating a bear skin). Use this file to export the LBM to paint the texture, then save it as BASE.3DS. The combination of the BASE.3DS file and the accompanying SKIN.LBM file is what's used to correctly texture-map the in-game model. As long as all the vertices and triangles match in the BASE.3DS and the rest of the FRAME1(2,3,etc).3DS files, it doesn't matter how your model looks in the BAE.3DS; the base model is only used for a texture reference, the actual frames are what are really seen in Quake. QuakeC Code Now that you have your BASE.3DS, THEMODEL.3DS (or whatever you've called it), and SKIN.3DS files, you need to create a QC file, called something like "themodel.qc". it would have this code in it like this: $modelname themodel <--the name of the model (filename) $cd /quake/newmodel/ (the directory the model files are located in) $scale 8 (the scale/size of the model in the Quake world - not necessary) $flags 8 // client side rotate (what the model does - bleeds, etc) $origin 0 0 -8 (its coordinates in the Quake world) $base base (the base model's filename) $skin skin (the texture to be applied to the model) $frame themodel [themodel2...](the filename(s) of the model(s)/frames) There are lots of extra Quake C animation commands, which I'm not going to go into here. Compiling Now that you have all those files, including the "themodel.qc", run MODELGEN and the QC file (Example: MODELGEN themodel.qc), and hey presto, you have a customized model called themodel.mdl. Quake Model Utilities QuakeMe - Great for importing/exporting models textures/skins. Runs under Win95. A version that will allow you to create new models from scratch is coming soon. Quake Utils - DOS Util. These are the utils that Carmack released, the model compiler only reads from the ALIAS (.TRI) format. Quake Utils modified for 3DS (util3d) - DOS Util. These are the same as above, except it accepts files in the 3DS format. MedDLe - Great util for DOS. Will view, import/export models/skins, and much more. For a more detailed explanation of importing/exporting models, you can also check out the Meddle Homepage. Rather than including a whole tutorial on creating Quake Maps, here are links to a few sites. The first place you should start if your just beginning is the Quake Map Specs. Other useful sites are TiC's Quake Editing Tips, THRED's Editing tips, and The Quake Lab Once the models have been created, you need to specify the actions of the models using Quake C. You can imagine that the spec for Quake C is extensive, and you'd be right. Some excellent information on Quake C can be gathered from external sites, including the QuakeC Manual, and the Quake C Specification Draft. Trying out your new stuff Quake has a great command-line option: -game <directory>. To test out your new graphics, sounds, weapons, etc, create a new subdirectory under quake called, say, "Test". Put any altered files in this directory under the equivalent subdirectory, for example you put any altered sounds in a subdirectory of "Test" called "Sounds". If you look at the directory structure of the extracted Quake files, you'll get the picture. Once you have put all the altered files in the "Test" subdirectory, run Quake with the command "Quake.exe -game test", where "test" is the name of the directory. Quake will figure out what's replacing what under the "test" directory, then throw the rest of the original stuff in. You are now the proud owner of a customised version of Quake! Here are previews of some of the great TCs which are being developed: Here are links to other TCs which are being developed: | |||||
![]() | |||||
|
|