Building maps for Q3 Platformer	  v1.1
===============================

If you are familiar with mapping for Q3A, then you should have no trouble building maps for Q3 Platformer. And best of all, you can e.g. recycle your old FFA maps and rebuild them into new Q3 Platformer maps in about 2-3 days.


Requirements
------------
- Quake III Arena
- This mod: Q3 Platformer
- A level editor like GTKradiant (http://www.q3radiant.com/).

Example maps
------------
Check out the .map source files in the aeplatXXX.pk3 file under maps/.

Index
-----
On 2D mapping - Some background infos
	- The Camera
	- Camera placement
	- Bots/Players
	- Clipping
	- How to turn on horizontal scrolling
	- Placing the Q3 Platformer status bar
	- Map debugging
	- Freezing Jumppads
	- Bot skill level
	- FPS / r_speeds
	- New gametypes	

Quick step by step on Q3 Platformer mapping



On 2D mapping - Some background infos
=============

There are a few things you need to get used to when mapping in 2D as compared to normal 3D editing:


The Camera
----------
Maps are looked at from the side and from the side *only*! 

Either the camera is fixed (e.g. aeplat01 to aeplat07) or the map will scroll left/right following your avatar (e.g. aeplat07). This means that the map only needs to look good from the side.

When using more than one depth level, you should be aware that placing anything into the foreground will hide the players / items in the background, making gameplay more like a ghost hunt. Not good. Try to think of the Q3 Platformer map like a painting, where you can see 'everything' all the time, and thus arrange your architecture.

Note: Since you will never be able to see the 'back' sides of brushes etc. these faces can actually be removed (nodraw/caulk). So done in the aeplatXX.map files.


Camera placement
----------------
The info_player_intermission entity marks the spot where the camera will be placed (in non-scrolling maps).

Note: The info_player_intermission entity is just a *placeholder* to remind you where the hardcoded camera will be placed in the game. If you move to the entity's position in 3D-view and look into the direction the entity is pointing, you will see what the game engine will later on show.

Note also: Moving the info_player_intermission entity will not change the camera perspective, so leave it where it is in the example .map files. Camera axis is hardcoded in the mod.

If you are building a scrolling map (e.g. aeplat07), then the info_player_intermission will mark the 'plane' in which the camera will move, along the x-axis (left/right).


Bots/Players
------------
All players and bots can only move *left* and *right*, look up/down at 45 degree angles and of course jump/fly. So if you want to build a map with more than one depth level, you will need to provide a way to get there.

Changing depth levels via:

- Teleporters (e.g. aeplat01)
- Depth jump-/acceleration pads (e.g. aeplat07)
- Movers (e.g. aeplat03)


Clipping
--------
Since players/bots can only move in the x-z-plane, you can use player clip to make sure the player will not move in depth (y-axis) by accident (splash damage). Normally a 32 units wide (y-axis) player clip corridor will do the job. See the aeplatxx.map files for examples. This will bring down the bot navigation file size significantly!

As any good mapper you should also botclip any area bots should not go/enter e.g. behind jumppads near walls.


How to turn on horizontal scrolling
-----------------------------------
By default any map you build/run with Q3 Platformer will have a fixed camera, at the fixed coordinate denoted by the info_player_intermission placeholder. To turn on horizontal scrolling for 'wider' maps, follow these steps:

- Give the "worldspawn" entity (entity window, 'n'-key for GTKradiant) a
key 'scrolling' with a non-zero value.

From now on the camera will horizontally follow your avatar, placing him in the middle of the screen.

If you want the view to stop scrolling as you reach the edge of your map, add two 'info_xend' entities, one at each end. To do this add any entity, like another info_player_intermission, and edit key 'classname' key, giving it the value 'info_xend' (See aeplat07.map).


Placing the Q3 Platformer status bar
------------------------------------
This mod lets you place the status bar (health, armor, ammo info) either in the top or bottom of your HUD. Depending on the map layout you might want to *suggest* where the status bar should go.

- Give the "worldspawn" entity (entity window, 'n'-key for GTKradiant) a
key 'statuslocation' and set it to a value of 'top' or 'bottom'.

Note: This is only a suggestion on your part, clients can override this, if they choose so.


Map debugging
-------------
Debug mode cg_debugPlat (cheat cvar) puts you in 1st person for whatever reason you need it to be in 1st person. Development aid.


Freezing Jumppads
-----------------
At times, when traversing from one depth level to another, you will want to keep the player from using air control, since this could get him stuck:

The 'freeze' key for jumppads will prevent movement for <value> hundredths of seconds after hitting the jumppad. E.g. a value of 250 equates to 2.5 seconds of frozen movement. 


Bot skill level
---------------
Skill level 4 is recommended for bots to work properly.


FPS / r_speeds
--------------
If you have a map with non-scrolling camera, you can basically go wild with your architecture, since the map does not actually 'move' in real time. E.g. possible lag due to high tris counts will not really be a problem. I would recommend you don't overdo it though, sticking with r_speeds of about 10K might be a good idea.


New gametypes
-------------
To better be able to differ between normal Q3A maps and Q3 Platformer maps, new gametype tags were introduced in the .arena files, e.g.

	type		"plat_ffa plat_team plat_tourney plat_ctf" 

You will need to edit your .arena file to make your new map visible in the Q3 Platformer skirmish menus (See the scripts/aeplatXX.arena files).



Quick step by step on Q3 Platformer mapping
===========================================
The fastest way to build a map, and avoid having to mess with the camera, is to use one of the aeplatxx.map files as a template.

1. 
a) For a fixed camera map, load aeplat06.map into your editor.
b) For a horizonal scrolling camera map, load aeplat07.map into your editor.
                                                      
2. Use the editor's 3D-view to get a feeling for size and layout.

3. Note that info_player_intermission marks the camera position.

4. Notice how everything not visible to the camera was covered with caulk, to remove these tris.

5. As you can see you are basically in a box map. Take a look at the player clipping.

6. Use the box as a template, by deleting all the useless geometry.
a) Fixed camera map: Keep box and info_player_intermission.
b) Scroll map: Keep box and info_player_intermission, and info_xend (2).

7. Start defining your depth levels, add jumppads, platforms, teleporters, and then add weapons, items etc.

8. Add player clipping and botclip.

9. Compile, place map into a pk3, don't forget to update your .arena file, test map etc...

10. Once you have a nifty map done, send it to fatmanfat :)


Hope that get's you folks off to a good start. Have fun...


AEon
6/30/2003 5:29PM