- Nov 2, 2007
- 409
- 117
I. Why I am making this post
I am making this post for a couple reasons. First, because I have been organizing the game day and seen a wide variance in the way maps are named, some hypothetical examples:
Also, I am an avid TF2 Custom map fan, as such I like to see custom maps prosper. This is one area where I think custom maps really, really need to improve.
II. Why Good naming is important
A good, systematic naming scheme does several things.
An example to start things off, here is what I consider a good name:
ctf_mymap2_b3a
Why do I think this is a good name?
IV: Some basic rules
I am making this post for a couple reasons. First, because I have been organizing the game day and seen a wide variance in the way maps are named, some hypothetical examples:
- cp_goodname_a1
- cp_badname_alpha1
- cp_HorribleName_2
- WhyGodName
Also, I am an avid TF2 Custom map fan, as such I like to see custom maps prosper. This is one area where I think custom maps really, really need to improve.
II. Why Good naming is important
A good, systematic naming scheme does several things.
- Makes it easy for server admins to set up servers.
- Makes it easy for players and admins to keep track of what edition of map they are playing
- Makes it easy for players to see what type of map they are joining.
An example to start things off, here is what I consider a good name:
ctf_mymap2_b3a
Why do I think this is a good name?
- ctf
- Starts off by telling you what type of map this is. Just by browsing the server list I can see they are playing a ctf map, if I want to play a ctf game then bam, I join the server. Many people leave off this designation for some reason, however I think its vital to include it. If your map is not exactly one of the main categories, try to pick the one that is closest.
- Look at all Valve maps for good examples.
- mymap2
- Here you can see the name of my map, and the fact that it is the second edition of the map I am making.
- Look at Castle3, Dust2, Science2, dual_duel2, the list goes on.
- b3a
- b
- Signals that this is a beta map, if it were an alpha it would be a3a
- Acceptable annotations here are:
- a - Alpha
- b - Beta
- rc - Release Candidate.
- 3
- Signals that this is the third major release of the beta.
- What constitutes major? Pretty much any design change. You change the layout, you improve some textures, you just need to change something that would be visible to the users.
- a
- Optional, but a good idea.
- Signals that this is the first minor release.
- What constitutes minor? Changes that the user can not see that do not effect gameplay. This saves you from having two different version of the same map with the same name which leads to confusion and problems.
- An example: The compile messed up but you did not catch it until you had already uploaded it to some sites for distribution. Recompile and add a minor release update notation.
- b
IV: Some basic rules
- Don't capitalize any words in your mapname. It is easy to mistype map names when you are putting them on a server, and putting capital letters in the name just makes things harder.
- Use an accepted gametype abbreviation. At the moment I think that those accepted gametype abbreviations are: ctf, cp, pl, and dom.
- When it comes to the Alpha / Beta / Release candidate notation keep this in mind:
- Alpha
- Abv. "a" ex. ctf_map_a3
- Your map has a basic layout down pat, but your still open to sweeping layout changes. Also the map is expected to be less than 75% textured.
- Beta
- Abv. "b" ex. ctf_map_b3
- Your map's layout is nearly finalized, only small basic changes to the layout are expected. Also the map is expected to be mostly, if not completely, textured.
- Release Candidate
- Abv. "rc" ex. ctf_map_rc3
- Your map is nearly finished (or you are nearly finished with it) and you do not plan on making anymore design changes. The textures are 100% completed. This is a build to ensure there are no sever crashing bugs and that all textures are in the map, all cubemaps are built, and that generally the map looks polished.
- Alpha
- Major vs. Minor versions.
- A major version would be switching from ctf_map_b2 -> ctf_map_b3.
- A minor version would be switching from ctf_map_b2 -> ctf_map_b2a -> ctf_map_b2b
- What is a major version?
- Major version is when you have improved the map in some way. You updated textures, changed the layout, or generally just did more work on the map.
- Minor version is when something goes wrong with your build and you have already distributed your map to someone or some website.
- Why is this important?
- rebuild the cubemaps and postLets say you build your map, post it to FPSBanana, then suddenly realize you forgot to build cubemaps for map ctf_supercool_b1. You rush back to your computer and it back to FPSBanana with the same title. Little did you realize that 3-4 server admins had already downloaded the map. You now have two versions with the same name being used on different servers. So when one users joins a server running one version he downloads it. He then goes to a different server and is told that his version of the map does not match the servers version. If he wants to play on the new server he has to alt-tab out, delete the old map file, and then join the server again to redownload the correct version.
- You could argue that the above problem could also be solved by just updating the major version number, however I think this is also a bad idea becuase you are not really changing anything major, just fixing a minor problem.
- Special Cases:
- The *_v# case, aka "cp_mappy_v2" *note* this is still not the *best* way to go about it. I still prefer to just rename to cp_mappy2.
- So you released your map as cp_mappy, after a few weeks you realize that cp_mappy has a problem, it has an exploit or crashing problems.
- If you fix the problem and release the map with the same name, you will run into the problem that servers running the new edition of your map will not be compatible with people who previously downloaded the map and they will get an annoying "Local Map differs from server version"
- The Solution: rename the new version of your map from cp_mappy to cp_mappy_v2
- The *_v# case, aka "cp_mappy_v2" *note* this is still not the *best* way to go about it. I still prefer to just rename to cp_mappy2.
Last edited: