Map Details
Contents
Introduction - aims and intro Developing maps for MFQ3 is a unique and fascinating challenge, both similar and different to mapping for standard Quake3. This section of the manual aims to familiarize you with mapping for MFQ3. If you haven't already done so, I suggest grabbing the latest version of GTKRadiant at www.qeradiant.com. MFQ3 maps are vastly different to normal Quake3 maps. Since the gameplay for MFQ3 is so different to Quake3, mapping requires a different approach to be successful. When planning a map for MFQ3, think carefully about the gameplay. It is preferable that you've played an existing MFQ3 map in a multiplayer (humans please!) environment, so that you can adjust your mapping to the new gameplay styles. Bear in mind that (for now...) most of your players will be continually moving, as they *are* flying. Nice open spaces make for bad cover and good dogfights; and closed in valleys/ridges make for low-flying covered attacks. When designing the layout, I recommend that you aim for a 2-team layout (although not necessarily symmetric). 2 (or any multiple thereof) airfields should also work for FFA gameplay as well. Besides that, the layout is pretty much up to you and the type of gameplay you aim to create. Terrain is the all-important feature which cannot be overlooked. Plan a map that has terrain which is not only as realistic as possible, but also as useful as possible. Try to design the layout so that any line-of-site isn't too long, and so that hills cover bases to prevent too bad an FPS drop. Now onto the specifics of generating the terrain: Terrain revolves around a plugin for GTKRad/Q3Rad named 'Gensurf' by David Hyde. Before we go any further, go and grab it at the website (some of the versions of GTKRadiant come with Gensurf, check under the Plugins menu). Once it's installed, load it up by selecting Plugins > Gensurf > Ground Surface and take a look around. Gensurf creates "terrain" for Quake3 (among other FPSs) in a variety of ways, our interest being the bitmap height map method. You give Gensurf a grayscale bitmap, and it translates the whites into the highest points, and the blacks into the lowest points, and gradients correspondingly in between. For example: The image needs to be a grayscale bitmap for Gensurf to use it correctly, and should be of the same proportions as your terrain (ie.: square, or rectangle with sides of ratio 1:2, or whatever you choose). You can direct Gensurf to the program to your bitmap by first selecting Waveform > From bitmap under the General tab, and then clicking on the Browse button under the Bitmap tab. Find and select your bitmap, then hit Open. If a preview doesn't pop up, click on the Preview box to make it, and have a look at your terrain. Under the General tab, you can add a roughness and a random seed to your terrain if you desire, both pretty self-explanatory. I recommend rather adding a random seed in your image (in the form of blurred noise), so that you can keep some areas perfectly flat for runways. Under the Extents tab, you can (surprise!) define the extents of your terrain, and thus your map. MFQ31 (Desert Storm)'s extents are Lower-left x=-8192 y=-8192, Upper-right x=-8192 y=8192. I suggest keeping your terrain's extents on the grid lines (ie.: a power of 2, eg.: 1024, 2048, etc.). You can alter the terrain's Divisions, which essentially alters the detail of the terrain. Bear in mind that the higher the detail, the larger the FPS drop (and the higher the compile time). Keep the divisions on the grid lines, too. Unless you want to destroy all performance on almost any machine, keep Use Bezier patches off - they may be useful for normal Quake3 maps, but for terrain the size that MFQ3 needs they are just too slow. Don't play with Snap to Grid or Decimate, except to see their effects on the preview. Under the Bitmap tab, you can point Gensurf to your terrain bitmap, as well as changing the height of your terrain. By changing the Map color 255 to to, say, 4096, and keeping Map color 0 to to 0, white will be 4096 units above black. The Fix Points tab alows you to manipulate individual vertices in your terrain map. Not really necessary for MFQ3 mapping... and pretty self explanatory if you must. Under the final Texture tab, you'll find paths to textures for your terrain. You can enter the path of a texture for the Surface to make the entire terrain one texture, but I don't recommend that, as id Software has graced us with a much more powerful terrain texturing feature. Rather direct the Surface box to the common/terrain shader (if you don't have this shader, get a new version of your map editor). Make sure that the Other box has the path common/caulk in it, otherwise Quake3 will draw ALL surfaces... which is a Bad Thing (tm). Don't bother with the Steep and Offset options, as you'll be texturing the terrain in a much more effective way. Press OK and watch the plugin generate the terrain for you. When id Software released their Point Release 1.27, they added an interesting feature to Quake3, one which is used in Team Arena, and some custom Quake3 maps. I suggest reading id Software's terrain manual, although it refers to terrain creation for Quake3:Arena or Team Arena, which is different to MFQ3 (the manual comes with my version of GTKRadiant - 1.1TA, otherwise find it at www.qeradiant.com). Open the included file terreg.zip (that's terrain example), which is a small map (.bsp and .map files) demonstrating both Gensurf terrain and terrain texturing. Once you've created your terrain mesh, select it, and press n to bring up the Entities box. Enter the key terrain, and the value 1. This tells Quake3 to treat the group of brushes as terrain. Critical to your terrain is the meta-shader, a new type of shader specifically for texturing a terrain. All standard shader rules apply, and you can find a demonstration meta-shader in the terrain example zip file terreg.zip, inside the .pk3. I suggest you open it up now and take a quick look. You can texture your terrain with as many textures as you wish (well, up to 255 due to the alphamap below), but for each texture (root shader), you must have a blend texture (blend shader). If you have terreg_0, terreg_1 and terreg_2 as your shaders, then you'll need terreg_0to1, terreg_0to2 and terreg_1to2 as the blend shaders. Note the naming convention "_#" for a root shader, and "_#to#" for a blend shader. Bring up the entities box again, and enter the key layers and the value 3 (or however many root shaders you want to have). Next enter the key shader, and the value as the path of your meta-shader. Corresponding to the meta-shader must be an alphamap texture. An alphamap is an indexed colour .pcx image file with the same number of colours as root shaders in your meta-shader. The alphamap .pcx defines which textures will go where on the terrain. As an example: the alphamap for MFQ31 looks as follows: The white is the rock texture, and the blues are the two other textures. Make sure your alphamap is of the same proportions as your grayscale bitmap and your terrain (ie.: square, or rectangle with sides of ratio 1:2), as this'll make your life a lot easier. You can look at an example of an alphamap in the terrain example pk3. Now bring up the entities box and enter the key alphamap, and the value as the path of the alphamap and the alphamap image's name (with .pcx at the end). Tada! You've completed all the steps to create a (hopefully) working piece of alphamapped terrain. You'll want to play around a lot with all of the settings to create a satisfying terrain - expect to re-build your map repeatedly (use FastVis and Vlight if you want to remain sane). In order to make MFQ3 maps work better (and in some cases: work at all), there have been a number of changes and additions in regards to map entities. I'll cover them here:
This has been a very brief overview of MFQ3 map creation. If you have any questions, please feel free to email me about this and only this (no map submissions, please!) at abbo@planetquake.com, or you can post a topic in the forums at the MFQ3 website - I'll try and answer all of your questions, provided that they aren't already answered here. |