newborn

Race map editing and design guidelines

15 posts in this topic

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:

 

1: Melee

2: Burst Bun

4: Shotgun

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.

 

And finally..

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.

Share this post


Link to post
Share on other sites
And finally..

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.

 

Definitely useful, thanks. (Can't promise I'll do anything with it, but this has certainly made me more likely to try creating some race maps when I have time.)

Share this post


Link to post
Share on other sites

Great guide, I've committed many of the mistakes you've listed with my race maps (single route, crazy hard rj sections). I have a much better understanding now seeing some of the phgp RRcup maps and reading your guide. My next race maps should be much different. 

Share this post


Link to post
Share on other sites

Not sure why you had to have three different createtypes for these areas instead of having one universal createtype where you can write up their function, whether it's a start point/finish point or a weapon restrictor and even both at the same time. Start and finish had their own textures on them so maybe those could change as well with different functions while using the same createtype. Same could be said about why there's separate createtypes for teleporters and jump pads (which both use targets to dictate their function), while they could just be assigned within one createtype that deals with special effect- surfaces like that.

 

I'm bringing this up, because it's unnecessarily inconvenient to have three separate createtypes and I'm running out of (F)number keys to bind stuff in. 

 

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 obviousness of the shortcuts takes away from the significance of the shortcuts. Speedrunning wouldn't be at all fascinating if every shortcut was made deliberately for the more skilled players to go through. Basically, the more you focus on the geometry detail and looks rather than the scale and preciseness of each jump, the more you're likely to see interesting unintended shortcuts from replays. Defrag is interesting because people get creative and genius at finding shortcuts, it's going to be boring if everyone does their maps with specific skill tiers for different routes in mind. Defrag maps are at their best when a variety of tiers can complete them, but not necessarily due to separate routes that literally comb the skill levels apart like you're advising. This is why by tradition most defrag maps have long/short strafe jump segments, because it's the most subtle way to make the map work for a variety of skill groups.

 

Just some feeble insight of mine. 

Share this post


Link to post
Share on other sites

Might be nice for the folks who are actually into this to post clean screenshots of certain features they added to their maps, and then allowing those images to be used over at the wiki... I'd then create a page for this mode of gameplay using those screenshots and newborn's guide of course. Maybe expand the description with user feedback / suggestions / tips.

matt_au likes this

Share this post


Link to post
Share on other sites

It is time to make some wipeout-ish fast race/dm tracks with rocket launchers and jumppads ;) and i have few ideas to make this possible ...

phgp_zEv likes this

Share this post


Link to post
Share on other sites

The obviousness of the shortcuts takes away from the significance of the shortcuts. Speedrunning wouldn't be at all fascinating if every shortcut was made deliberately for the more skilled players to go through. Basically, the more you focus on the geometry detail and looks rather than the scale and preciseness of each jump, the more you're likely to see interesting unintended shortcuts from replays. Defrag is interesting because people get creative and genius at finding shortcuts, it's going to be boring if everyone does their maps with specific skill tiers for different routes in mind. Defrag maps are at their best when a variety of tiers can complete them, but not necessarily due to separate routes that literally comb the skill levels apart like you're advising. This is why by tradition most defrag maps have long/short strafe jump segments, because it's the most subtle way to make the map work for a variety of skill groups.

 

Just some feeble insight of mine. 

 

Hey, I never said they had to be obvious ;). It's actually an intended part of the design with easy/hard paths that mappers are more likely to accidentally create shortcuts. I've got a 7 second, no weapon record on rflx-jump1 which is the fastest I've seen and it uses an unintended path that uses both the easy and hard path. One thing that I guess I didn't make hugely clear is that these paths should ideally just be shoved over the top of each other to give the maximum possible path options for ALL players, regardless of skill.

Share this post


Link to post
Share on other sites

i think racestart should make gl/rl entities dissapear to prevent restarting timer tricks

Share this post


Link to post
Share on other sites

Not sure why you had to have three different createtypes for these areas instead of having one universal createtype where you can write up their function, whether it's a start point/finish point or a weapon restrictor and even both at the same time. Start and finish had their own textures on them so maybe those could change as well with different functions while using the same createtype. Same could be said about why there's separate createtypes for teleporters and jump pads (which both use targets to dictate their function), while they could just be assigned within one createtype that deals with special effect- surfaces like that.

 

I'm bringing this up, because it's unnecessarily inconvenient to have three separate createtypes and I'm running out of (F)number keys to bind stuff in. 

 

 

As you point out, it's following the same setup as jump pad / teleporter. :-)

Smilecythe likes this

Share this post


Link to post
Share on other sites

newborn could you please write something like that for the replay editor

with common usage examples to give us a quickstart guide

also if you list pitfalls/tbd we could (hopefully) can help prioritize the issues if we run into them (those aren't related to item timers hopefully :D )

Smilecythe and MrOllie like this

Share this post


Link to post
Share on other sites

when I try to create a block with "me_createtype RaceStart" it creates an invisible block that I can't texture and that does nothing, could anyone tell me what I'm doing wrong please?

 

EDIT: I finally found the problem: the server was not in race mode, when I set it to race mode with the command "callvote mode race" it works just fine.

Share this post


Link to post
Share on other sites

Posted (edited)

Looks like it has been a while since this thread was updated. I'm not as experienced a racer, or mapper, as some but here are some random thoughts:

Race is different from other modes in that it is much more linear. There is a start and a finish and what happens in between does not vary between each play through. You can introduce variety in a race map with alternate routes and types of movement required. 

Regarding the traditional/classic strafe-only maps, my personal opinion is that a map is improved with a variety of options, difficulties, and types of movements (strafe, ramp jump, double and triple jumps, etc.). Sometimes this variety emerges naturally from the structure of map, other times it is very much by design. 

My process is very organic. I start with an idea, area, room, or section and test it until I find it enjoyable. Then I add another area, room, or section and test the two together. Rinse and repeat. Once a start and finish are generally created, then I go back through and look for natural elements in the existing design where difficult shortcuts or easier "longcuts" can be added. It should be obvious that the shortest route should also be the most difficult, therefore rewarding skill/practice with a shorter time. 

For making interesting maps, it may be useful to think of patterns in both positive and negative terms. What is the actual pattern that exists and what are the patterns that do not exist? In a way, it is like music with on-beat and off-beat. If you repeat the same situation in a race map, over and over again, it can become boring. Instead, finding ways to break patterns by introducing something unexpected may be a useful way to think about it.

Pat Howard wrote a very interesting article on architectural "connectivity". Although the article is intended as for duel/TDM food for thought, I think the same lines of thinking can be applied to race maps. How do various sections of your race map connect together? Do you put some trick jump between two areas or in the middle of the rooms? Consider all the movement mechanics and possibilities and all the potential combinations thereof. What patterns can you arrange with all these possibilities and how can you interrupt/break these patterns in interesting ways?

Edited by lolograde
/fragile and Jaguar like this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now