During the 2020 map update, I created a QA checklist spreadsheet which (by the time I was done) guaranteed that I had performed all of the necessary steps for each map and would do so in the future.
These are roughly in the order that the task is best performed:
-
Design - Draw the map on paper to visualize what you're trying to achieve. Included mexes and geos.
-
Basefiles - Create a folder containing all of the initial base files for that map. Copy generic map files for doing so. Then edit the mapinfo.lua to match your new map.
-
Heightmap - Produce a greyscale PNG which will instruct the engine on how to shape the terrain. I used photoshop for this.
-
Initial Textures - They don't have to be pretty, just enough to get the map play testable. Also used photoshop here.
-
Startboxes - I used the Startbox Editor widget ingame to produce this file of co-ordinates.
-
Mexes - There's also a mex placement widget. Or you can just put the co-ordinates into the file yourself. It's useful to have a tool to calculate opposing mexes on symmetrical maps.
-
Features - Trees, rocks, geothermal vents etc. I recommend using the SpringBoard program to import your map, then begin placing your features.
-
Reclaim - After the features are placed, you will want to apply the correct properties to them: How much energy/metal they give, and at what speed. Also, whether they are crushable or able to be travelled through.
-
Feature collisions - Using springboard again, alter the collision volumes (only if necessary) to better match the feature in question. For some features like small bushes and grasses, it may be best to turn collision off altogether.
-
Wind - Check that the wind levels are balanced in the areas that you have created. Unfortunately, I couldn't alter these via the file as easily as I wanted to and had to alter my heightmaps retrospectively. This is a very problematic thing to do if you have already placed features - as you will need to do that all over again. This doesn't effect mexes though.
-
Playtest - Get a collective of players to hammer your map with as many factories as possible. This will help you to see problems in your map's design, with pathing, with resources, with map play strategy etc. This should be a very thorough phase with as many people as you can get/trust. That said, you are the executor with your map and outside of real problems, remember that their feedback is just that.
-
Geofix - Always double and triple check that all geos can be placed. If the height of the map has changed, geos may break.
-
Pathing - Put that pathing visualization view on and go over each factory. Make sure that they all can path where you intend for them to without issue. This step is difficult because it requires you to make many small adjustments to the heightmap.
-
Texture - Now that you've playtested the map and fixed any gameplay issues, it's time to produce the high quality base textures. I did this in photoshop.
-
DNTS - If you want your map to really look good, implement DNTS. Texture splatting, specular etc. This can be a very fiddly step to learn but once you've figured it out the results are great. As Anarchid puts it "DNTS is cruise control for cool around here".
-
Typemapping - If your map has varying terrains (stone, sand) it would be good to create a typemap so that you can alter things like whether tracks appear or various other terrain specific things (hardness is one).
-
Team support - Make sure that the game is still playable and has appropriate start boxes for all variations of team sizes. Example, my maps were 1v1 maps but I made them have 3v3 startboxes that also scaled into higher numbers of players. Without this, the map can crash on load.
-
Skybox - If necessary. I used Nvidia tools for photoshop to produce mine.
-
Water, Fog, Sun - Tweak the way they look in your basefiles.
-
File cleanup - Remove any development files and images from your map.
-
Zip it up - Produce an .sd7
-
Upload - Upload on the ZK maps page. You're done.
There are many sub steps inbetween these checkpoints (like using the compiler, lots of booting the game up, testing etc) and those are more the domain of tutorials. This is just a set of rails to stay on.
Good luck!