So, with Race mode officially hitting within the next 24 hours, I figured it write up some info for mappers.
BUILDING RACE MAPS:
Starting areas can be created with me_createtype RaceStart. The moment players leave this brush, the timer for the race begins ticking. If players re-enter this brush, their timer is reset. Spawn points and teleporter exits should be placed inside this brush as usual. Ideally, use this brush to surround the entire starting area, rather than creating a thin brush that players run through -- this keeps everything consistent and ensures there is no way to escape the starting area without activating the timer. This brush should also ideally stick inside walls due to the glowing edge effect applied to it -- if you make the start brush sit exactly flush with a wall/floor, you'll get a bright flickering effect that looks rubbish.
Finish lines can be created with me_createtype RaceFinish. The moment a player touches this brush, the timer for the race ends and their score is committed. Maps should include a standard teleporter inside the race finish brush to return players to the starting area -- players should not be forced to suicide to get back to the start line after finishing a run. The RaceFinish brush has the same edge effect as the start line so the same rules apply -- make sure you stick it through walls, not sit it on top of them. Make sure there is no way for players to miss the finish line.
Weapon restrictors can be created with me_createtype WeaponRestrictor. Once a player touches this brush, their weapons are restricted to what has been set until they either die or touch another restrictor. If you want to prevent players just rocket jumping through your map, you should enclose the starting area with a WeaponRestrictor that sets the available weapons to Melee only. Ideally, only allow a single weapon to be used in each area, although the weapon restrictor supports any combination of weapon sets. If you only have a single weapon defined, the game will automatically switch to that weapon when a player touches the brush. The value to use for the restriction is a bit mask, so add up all the numbers for the weapons you want to allow:
2: Burst Bun
8: Grenade Launcher
16: Plasma Rifle
32: Rocket Launcher
64: Ion Cannon
128: Bolt Rifle
256: Stake Gun
You can also use -1 to allow all weapons. Weapon restrictors should generally not be used outside of Race mode, although they work for all modes. Behaviour will be crappy in any mode that doesn't give you all weapons but it could be used to create Arena maps with certain loadouts. If you're using restrictors outside of Race mode though, consider your map a novelty.
GENERAL RACE MAP DESIGN:
Race maps should be designed with easy and hard paths -- race maps are not at all fun if you can't actually complete them. Ideally, each path should provide some kind of hint about its difficulty, such as a different colored trim for each path.
The easy path should obviously be slower and it would be difficult to design one that wasn't. Ideally, the easy path should be created so that it can be completed with only the movement keys + jump. If you want to include more advanced movement techniques, use the most simple versions of them you can. For example, circle jumps that are only slightly beyond what you can do with forward and jump, double jumps that don't a circle jump first, strafe pads that are only 2 jumps long etc. Avoid complex weapon tricks like double rocket jumps, grenade jumps, and extended plasma climbs. Simple, low rocket jumps are fine.
Hard paths can be as difficult as you want to make them. Ideally, they should be designed with a few different options -- maps where there is only one real path to take will quickly end up with stagnating scores as everyone completes the run with only a few milliseconds difference. This is where the easy/hard path design idea helps -- it creates more possible shortcuts. Finding the fastest line is part of mastering the map, so give players options.
This idea becomes difficult for maps that are designed more around tricking cleanly rather than going fast (maps like b0 and ReflexJump). For maps like these, one possible solution is to have alternate routes. For example, ReflexJump starts with the classic CPM3 stairs. It includes both stairs to RA and stairs to MH for a hard/harder path. But the reason this jump is so popular in the first place is that its quicker than taking the long way around. For an easy path, this long way could be added back in with some simple tricks to stop it becoming "walk to the finish line". This also allows more variety in runs where a faster path through an "easy" route might be discovered.
Race has been designed to be a properly competitive mode and does still have an innate risk vs reward which easy/hard paths encourage. Ideally, players should be thinking "do I risk the hard jump and possibly ruining what will likely be a winning time, or do I hit the hard jump and hope for a time that is even harder for others to top?". The last section of reflex-race1 is a good example of this -- hitting the finish line in a single jump can be risky and missing it will likely ruin your time. Dropping directly to one of the lower platforms and then jumping to the finish is lower risk, slower than doing it in one, but faster than missing. These kinds of decisions are good.
Race maps should be designed with "checkpoints", especially longer ones. Checkpoints are created by placing teleporter brushes and target entities. If a player misses a jump, don't return them to the start line -- that's what the suicide command is for. Take them back to the nearest possible place that allows them to finish their run (so don't return them to a strafe pad where they'll no longer have the momentum to make the next one). Never allow players to skip sections of the map through checkpoints -- that's what the easy path/practise is for.
Avoid trying to make your race map too pretty. It's extremely difficult to make large, open maps look good, especially without meshes. Just pick some nice colors and trim the largest brushes. This also helps to avoid any clip bugs that haven't been squashed yet. Sunlight is your friend when creating race maps. Unless you're deliberately designing some kind of "freestyle" or "puzzle" race map, the path from the start to the finish line should be obvious.
Runs should ideally take around 10-30 seconds for the hard path. Don't create 26MB maps that take an hour to finish, especially since the default timelimit is 10 minutes and don't create maps that can be completed in 2 seconds as they'll get repetitive extremely quickly.
There are currently no items worth placing in Race mode. Players already have infinite ammo and take no self damage. In a future update, we will allow powerups with a 0 respawn time to be added to Race for Quad rjump sections etc but until then, pickups should be avoided.
Remember that Racing is a multiplayer activity and there will be other players running around. Make sure you give players room to perform their runs without being stacked inside 6 other players.
If you find tips and guidelines like this useful, let me know. I've been considering writing up something similar for the other modes but haven't gotten around to it.