- Description = Axis Spawn causes a map to crash. description = Axis Spawn does not
- Do not allow Mustard anywhere near your brushwork
Here’s an article I wrote right after I finished the major parts of Byzantine, about 45 days into my mapping career:
10 Lessons I Learned In My First 45 Days of Mapping (http://planetwolfenstein.com/4newbies/10lessons.htm)
I first installed SD Radiant on or about 8/31/03 and now, ~45 days later, on 10/17/03, I thought I’d look back and see what lessons I could pass on to new mappers. Keep in mind that my perspective is shaped from what I learned making 2 open city maps, one of which was scrapped and another which is getting beta tested on limited servers.
Just jump in. It is not difficult to develop a reasonable proficiency in mapping, the basics anyways. Find a couple of good tutorials and just start making things and experimenting. I was able to make passable prefabs (bunkers and V2 rockets) within a few days. These led to small maps, then to a large sized map, which was ultimately scrapped, and finally to a public beta or a large-scale city map, Byzantine.
Start small and make Legos. Jumping in and immediately laying out an entire map is a pretty daunting task. So daunting, it can really be demoralizing. Instead, start small and make some of the small stuff that will populate your map. You can make prefab bunkers, buildings, and vehicles. Each is a discrete project that has a distinct point where you can say, “OK, done with that, what’s next?” I think this sense of accomplishment and completion is important to a budding mapper because you get to see a finished product. These smaller projects can later be used to quickly populate a new map, once you’re ready to start with an entire map.
Treat tris and FPS like money. Everything you include in your map comes at a cost. Make sure it’s worth it. Be frugal about where you make your players draw tris and lose FPS. There are great maps out there that never get a second look because they are simply unplayable. The benchmarks I used were a steady 76 FPS on my machine and r_speeds less than 20K. Tris and FPS efficiency up front, lets you add in more goodies at the backend.
Learn scripting up front. Scripting is what brings your map to life. It’ll make your vehicles move, objectives destructable, constructables work etc. It seems like a lot of new mappers think of scripting as an afterthought and really only start learning the basics late in the mapping process. If you learn the scripting early, you can actually build and script all the gameplay components of your map and test gameplay BEFORE putting in all the time texturing your map and making detail. It also helps to know what you can make work, objective-wise before you build a map around something that can’t be done.
Mind the details early. Get in the habit of considering the boring details as early in the process as you can. It will save you tons of time. Making a paned window and forgot to caulk some of the unseen faces? Not a big deal? Wait until you’ve cloned this 200 times for your city map and have to go back and fix the caulking. At least that’s optional. Wait until you’ve realized that you forgot to make all of those brushes detail.
Understand the vis process and the difference between structual and detail brushes. There are a couple of really good tutorials that explain how the game engine determines what can be seen and therefore what should be drawn at any point in the map. This is directly determined by how you build your map. A good understanding of this up front leads to more efficient mapping and better gameplay (e.g., players can maintain more consistant FPS, map plays well on a wider range of machine specs).
Compile and test often. For me, one of the rewards of mapping, is being able to run around in a map I’ve created. It’s motivating and gives me a sense that I’m actually making progress. This also ties into #5 in that I get a chance to check out game flow, the scale of structures, width of hallways, and other critical gameplay issues before I spent the time building everything else out.
Be absolutely anal about saving your work. You will lose work and you will make changes that you wish could be undone. Get in the habit of using the Save As function to save your work under a new file name. I’ve gotten in the habit of saving my file every couple of minutes and, at the beginning of each new day and periodically throughout the day, I’ll Save As my file with a date and time stamp. The same is true whenever I make a major change that I might want to reverse. This way, should I ever want to revert to a previous piece of work, I know exactly where I left off with other files. The autosave and .bak files are useful too, but don’t rely on them.
Make maps with character. I like dark, rainy, beach maps as much as the next guy, but I’m not sure that ET is ready for another one. Make something that’s interesting and different, whether it be the environment, gameplay, or creative use of objectives. Pay attention to the lighting, sounds, and other items, which make a player spend some time just wandering around sightseeing and thinking, “Cool!”.
All script routines need {spawn {wait xxx}} and every map needs a script_multiplayer… I can’t think of a single stupid little detail which has cost me more time then these two. "Nuff said.