This is a basic guideline for beginning and even experienced mapmakers. It is just a rough, generic guide, though - keep that in mind if you choose to use it! You don't need to follow anything on it, but it can provide a generic timetable or checklist of sorts to use. Some steps would only be universally applicable to large projects, anyway.
1. First of all, come up with the basic idea, theme, and concept for your map. Get a general idea of the plot, genre (AoS, RPG, Hero Arena, etc. all have them, whether it be an epic story or merely the summarized history of the main characters or items), characters, and features, that you can use as a reference later on.
2. Think about your map, visualize it in your head, and decide what you want to create and what it should be like. Cement your plans, in other words :>) If you are going to make a campaign, or even just a regular map, you might want to consider having a storyline to make the map more interesting, and then write that down.
3. Sketch out what the terrain will look like on paper or a Photoshop, and add captions or labels to places of interest. Sometimes creating a key, with symbols for unit placements, important areas, traps, and arrows indicating the flow of units, helps as well.
4. Using your map or sketches, place tiles around your map to mark out all the places of interest or unusual size, such as a grand palace or a mountain range. I almost always place a tile in the exact center of the map to help get oriented.
4. With your tiles in place, begin doing the preliminary, large terraining features, such as cities (place 'marker' destructables, or generic destructables that will be replaced with the real unit or doodad later, to show important places, like the main merchant in the town or fountain of health), rivers, and mountains. Don't add doodads yet unless you want to or it is critical.
5. Do some of the more detailed terraining and basic doodad jobs, like making a forest or raising the land in a river of deep water to create a shallow ford. Add in any important destructables you have in mind, as well, such as a gate to the next level or a bridge over a chasm.
6. Finish the rest of the terrain for the map, such as varying the tileset a bit (adding different types of textures to the ground of your map to make it more variable and interesting) and complete all the doodad jobs you wanted to include . This would include things like adding bubbles and fish to a creek, creating bats circling around a tree, and placing lanterns and houses in towns.
7. Test your map. Go through and check it out, to see how it looks. Change things you don't like, like if a waterfall was raised up too high and the effect was that the water was defying gravity, or if a certain area seems too barren and empty. Basically, you are inspecting your terraining, making sure everything looks right, pumping yourself up, stopping yourself from losing interest, and making sure that the pathing works all right (especially important in tower defenses!). Don't fret that nothing else happens.
8. Object data takes precedence next. Create your custom units, doodads, abilities, etc. Don't worry about the import data, such as custom models, yet. We'll get to that last, as it is the least crucial thing ;) Make sure that your techtrees, if you have any, are set up correctly, the tooltips are accurate (tooltips that are spelled incorrectly, left empty, or contradict the unit's data are particularly infuriating! Make sure the data is correct), and all of the abilities work correctly. Double-check your doodads and destructables, as well, and make sure the model file, pathing map, and health are correct.
9. Trigger your map. Add the triggers you want in your map, starting with map initilization triggers and progressing from there in any order you choose (I find it helps to start with the really difficult triggers first, to squash any potiental problems you may have later). Double-check your triggers before you do anything else, and if you have any questions, ask us here at thehelper.net! Do NOT give up on your map because of a stubborn trigger, as there is almost always a way to fix it, substitute it, scrap it, or work around it.
10. Go and change the sky, water tinting, fog, weather, and time of day (locked or not, at midnight, morning, noon, or evening. Keep in mind that you can unlock it in the editor to view your map as you would in the game) values to what you want. Keep in mind that the sky won't be very visible unless you are in a cinematic. Weather is very important (although not all people can see it, due to low graphics settings) to setting the mood of your map, and helps add some ambience. Fog can be very useful in creating a mysterious or spooky setting :) Use water tinting for, say, creating a volcano or abyss; if you color water orange, it will seem like lava, and if black, then it will seem like an empty abyss (useful when you can't use the abyss tile, or can't push it up right next to a cliff).
11. Now go and import your models, music, icons, loading screen images, etc. if you want any in your map. Get them working properly and go touch up anything else in your map, so that it is exactly as you wanted it. Custom models, while usually not crucial to the map, are very useful for going beyond what Blizzard has. Convert music to an mp3 if you do use it, as it takes up a ton of memory (maximum for map is 4 megabytes). The loading screen and preview image can give people an idea of what the map is about and who created it. An interesting thing to do is to toggle the pitch of certain music themes Blizzard provides - it can make the game twice as interesting.
12. Alpha test your map. Play through it and fix every bug you find. If it is a multiplayer-only map, then get a few of your trusted friends and test it with them on B-net. Once you have the bugs fixed and your map is working as you envisioned, you can move onto the next step.
13. Protect your map, if you haven't done so already. Before you do ANY of the protecting steps, make ABSOLUTELY SURE that you have another copy of your map [preferably at least 2, one in another folder or on a disk], as protecting it will make it unopenable. Get one of the map protectors from our tutorial site links, and use it on the map file to damage it and make it unopenable. If anything bad happens, you can always go back and change it :D Just go to your unproteced copy, make the changes, then delete the old protected copy, save and copy the new unprotected copy, and then use your map protector again. Basically, you are working on your map as you normally would, and then simply copying and protecting it each time you release a new version. This step is PURELY OPTIONAL, by the way! It isn't nessacary to protect your map; it only prevnts others from readily opening your map and changing it, and then claiming it was theirs (this is what happened to DotA : C, although DotA was hacked too; there are ways of unprotecting a map, so keep that in mind. Sometimes using two protectors can deter hackers and crackers)
14. Beta test your map. Assemble a group of trusted beta testers, and then test it together in a private custom game on B-net (or just send it to them vai e-mail if it is a one-player map, OR post it here for us to see :D). If it seems to be getting popular, post a teaser to get everyone else's attention.
15. Advertise your map. Tell some of the people you know on B-net to spread the word, possibly get a google ad or something if you really want people to know about your map, make a thread for it here (or ask for a forum from TheHelper) or create your own site about your map. Tell people about some of the features, and post a few screenshots, but leave them guessing about some things :>) Get them excited and talking about your map, but not so much that they get bored and lose interest.
16. Release date! Pick a date to release it, and then post it on your site, your thread in this site, or any other site that will take it. Publicize it, and make sure people know (like adding a link to the download in your signature or tell them where to go in your 'location')! Host it on B-net, and have some of your friends host it too, possibly via download only games.
17. Edit, revise, and release (a) new version(s) of your map. After the initial release, find people who like your game and ask them what can be fixed, added, and improved. Post a 'bug report' thread for people to report bugs, typos, and errors they find, and a 'suggestions and ideas' thread for people to suggest things that can be done and ideas to make it better. Compile all of this into a personal checklist and then fix your map according to this checklist. Add some new features, change a unit's model, make the loading screen image better, etc. Update your credits section, if you have one, (and you should) to include the people who helped you with the updated version, and create (both in the quests section /\ --> ) a status report, showing which bugs you fixed so people won't misguidedly post outdated bug reports. Optimize and enhance the map; cutting size can cu download time, allowing your masterpiece to spread faster.
Added by Rinpun: About Object Editor -- Balancing
This is HARD! But don't let up, keep going at it and you'll get it done and your map might be actually fun to play, with chances to die but also chances to win with no trouble, that your map isn't too boring (too weak monsters) or too stupid (too strong monsters that you can't make any progress)
1 If you want to Balance the stats correctly, you might want to do percentages per level. Basically, you might have level 1 Rogue, Level 2 Rogue Expert, and Level 3 Rogue Master. Through constant testing you might decide that the Level 1 Rogue should have 50 HP. Well, what should the higher levels have? Through constant testing, decide on an increment. You might want the Rogue having, for example, 100% extra health per "level-up". With that for an increment, you will have a Level 1 Rogue with 50 HP, a Level 2 Rogue Expert with 100 HP, and a Level 3 Rogue Master with 200 HP. Same goes with damage done and such. Be very careful, balancing is hard
2 Weigh the stats of abilities carefully. How much damage does it do in the first few seconds? Does it do continuous damage? Does it do too much continuous damage or too much initial damage?
About Importing -- Sound
Sound is a very important thing for setting the atmosphere of your map. Unfortunately, it takes SO much space that it's really more efficient to use music and sound for campaigns, since they have an unlimited amount of space to use (the Dragons Campaign on wc3sear.ch uses 100 megs and each map contains about 8-10 megs a piece!)
Therefore, here are some notes to help you out.
1 WAVs are LARGER than mp3s. Now there are some sound newbs out there who think it's the other way around but no, WAVs are much larger (usually 30x).
2 No, mp3s are not godly. The whole deal with compression is how to lose as little quality as possible while slicing off space. WAVs have amazingly good quality of sound, leaving quite little out of the original recording. Mp3s, however, in their quest to be small, slice off a lot of quality.
3 Use WAVs for "Sounds" and Mp3s for "Music", then. By "Sounds" I mean something you hear for only several seconds while "Music" you hear for a minute or two and, perhaps, repeatedly. Therefore, because you want as much character in your sounds as possible (and by being only several seconds long they're also a lot smaller memory-wise), use a WAV. Because music sounds relatively good no matter how much quality you chop off of it (MIDIs sound good and their music is all notes and nothing real fancy--but they're about 30x smaller than mp3s! Sadly, Warcraft doesn't support MIDIs), use a mp3.
About Importing -- 2d Imagery
Avoid these! That's all I have to say here. While you DO need images to paint on models to give them character (and you'll want a cool-looking LS, icons, and et cetera), they take a lot of data up. Not as much as sound, fortunately.
1 Skins take 30-100 KB; Loading Screens take 130-300 KB (depends on their quality); and Icons take 5-30 KB.
2 Skins actually take more space from their size than their pixel varation (sort of; a rainbow large picture will take up a lot more memory than a blank large picture, but a small rainbow picture will usually take up a lot less memory than a blank large picture). Therefore, I HEAVILY suggest you stick with the usual 256x256 when you're skinning your own models. Don't pay attention to the skinners who say 512x512 is better because it allows for more detail...most of that detail you don't even see on the map and it's taking a good-sized chunk out of your available map memory.
3 Icons have nothing special to say about them except that they're 64x64 and they don't stray from those pixel dimensions...ever. Well, I could also give you a more indirect tip that if you're making your own icon, go off of one already made by the blizzard staff or find an icon template--you usually will want that iron border on your map.
4 Loading Screens should be 512x512 as the computer should stretch it efficiently without distorting the image...too much. Now they say that you can do 256x256, but that takes away too much detail from your Loading Screen. Really, your text will come out looking like uber crap.
About Importing -- 3d models
1 Models have a varying size. You can have 1 KB models that are something as simple as an untextured, unanimated blob you can use the built-in color-tinting to make something simple, like a diving board. You can also have 100-200 KB models that have full animations, full texture wrapping, and look overall cool.
2 Don't use Models unless you absolutely need to if they're over 30 or so KB and/or don't look exactly like you want them to. It really depends if you use the model a lot. You might want a model for a unit, but you might not want one for something as simple as a tent that Blizzard has plenty of (just remember to make it a doodad and forget about original rotations--they suck).