1. The mythological era has spawned some interesting characters around. Check them out and be sure to vote for them in the 30th Poll of the Texturing Contest.
    Dismiss Notice
  2. The 20th iteration of the Terraining Contest is upon us! Join and create exquisite Water Structures for it.
    Dismiss Notice
  3. Hivers united and created a bunch of 2v2 melee maps. Vote for the best in our Melee Mapping Contest #4 - Poll!
    Dismiss Notice
  4. Check out the Staff job openings thread.
    Dismiss Notice

The Path Of Proper Map Making - What to do and what should be avoided

Discussion in 'General Mapping Tutorials' started by Septimus, Mar 3, 2009.

  1. Septimus

    Septimus

    Joined:
    May 3, 2008
    Messages:
    4,178
    Resources:
    49
    Packs:
    1
    Maps:
    35
    Spells:
    8
    Tutorials:
    5
    Resources:
    49

    The Path Of Proper Map Making



    A lot of mappers, especially new ones would probably ask this question.

    How to create a good map?



    There are a lot of ways to do so. To start with, I will begin with scripting/triggering.

    The Importance Of Proper Scripting



    A lot of people (Especially new users), often adopt the motto of "As long as it works". This resulted in a poor scripted maps that often cause players to disconnect or long loading time.

    Let us take a example, shall we?

    • Respawn
      • Events
        • Time - Every 30.00 seconds of game time
      • Conditions
      • Actions
        • Unit - Create 1 Footman for Player 1 (Red) at (Center of (Playable map area)) facing 0.00 degrees


    • Respawn
      • Events
        • Time - Every 30.00 seconds of game time
      • Conditions
      • Actions
        • Set Respawn = (Center of (Playable map area))
        • Unit - Create 1 Footman for Player 1 (Red) at Respawn facing 0.00 degrees
        • Custom script: call RemoveLocation (udg_Respawn)


    From what you see. I assume you would said both of them work the same, and you are right. Both triggers are the same, they spawn 1 footman every 30 seconds for player 1.

    Although the concept was the same, but there is something that separates both of them. What is that? One was coded at ineffective way (Results into long loading time, disconnect, lag, file size larger and so on) while the other was coded at optimized way (Results into smooth running map with little or no lag at all).

    The first trigger you had seen works just like the second trigger. Unfortunately, it does not destroy a memory leak which could resulted into a total disaster.

    That is part of the reason of why a proper scripting is important. To know what is memory leak about, search a tutorial about memory leak. Another tutorial of mine have a brief explaination of what is memory leak about. Click at this link below to read my other tutorial.

    The Importance of Efficiency in Coding

    What Should Be Avoid And Why?



    A lot of mapper doesn't like to receive a negative critism. If your map was well develop, would you receive a negative critism about your map? Definitely you would not receive it.

    Surely you can said "I don wanna make uber map", but even if you are trying to make a decent map. There is a guidelines to be follow as well. If you doesn't want to follow it, you would never make a decent map even though you are using World Editor for 5,000 years.

    This is the list of thing you must avoid.

    1) Make a map out of boredom

    This is definitely a NO. When you are making a map out of boredom, it usually turn out to be terrible work as you are making it in such a rush without conducting any test at all.

    If you make such a map, never release it to map section forum at respectable site where the map would be evaluate based on the standard such as wc3c.net or hiveworkshop.com as you would likely get a harsh critism and make a fool out of yourself.

    In the end, you would probably flame the user and get banned or negative reputation by the staff. Do you want that to happen?

    2) Let the user test it

    Never ever release your map in hope of the user itself would test it for you. You should test the map by yourself to know what is wrong even if your map was a multiplayer map as you know better since you was the creator.

    Given a excuse of "This was a multiplayer map" is not a excuse since you could host it yourself at LAN/Internet to try it out. The excuse you given is not to the other, but to yourself.

    If you really need somebody to test it, you should post a request at forum such as Map Development section at hiveworkshop.com or Map Testing section at wc3c.net to get any volunteer to be map tester. Not posting/upload it to map section that are reserve for complete map to get yourself a map tester as it was simply unprofessional.

    If you upload bugged/incomplete map at section that are reserve for complete map. You would likely have your map rejected by the staff or probably worst. The user might not download it and play the map ever again after seeing it as a piece of crap.

    Infact, if the user seen another player host this map at LAN/Internet. The user would probably warn the other not to host it. Do you need people to discourage other from hosting your map? I do not think so.

    3) Never start a mega project

    A lot of mapper especially newbie usually failed in map making. Why? Because they start to make a compleks map without even thinking if they have enough time, skill, dedication and effort to do so.

    This resulted into project being abandon during half way. Some mapper probably create over 10 map, but none of it finish. Why? I guess I already explain it, did't I?

    Waste of time and effort, make your finger and brain sore from all those work for partically nothing. Do you want that?

    4) Lack of Description/Detail/Information

    Whenever you are making a map, detail are always important. It could range from item, quest log, ability, structure, upgrade and so on.

    A indepth description would not only help user, but it would prevent the user from the state of confusion because they do not know what to do. If a user doesn't know what to play and what to do during the gameplay, they would probably quit the game even before they started.

    If you upload the resources to a site where it require you to wrote a description such as hiveworkshop or wc3c. Writing a decent description not only spare your map from rejection, but could probably attract user from downloading your resources.

    A example of a map thread with fine description can be seen below.

    Brotherhood Of Kenji - The Hive Workshop - A Warcraft III Modding Site
    The Chosen Ones 3.1a - The Hive Workshop - A Warcraft III Modding Site
    Diablo III Beta v1.11 - The Hive Workshop - A Warcraft III Modding Site

    As you can see, a good description not only look attractive. But it could also encourage user to download it and helpful in every aspect.

    It might be tendious to wrote those detail, but the work would paid off.

    5) Never accept constructive review

    A lot of mapper fail to make a good map lies at this part as well. They do not accept constructive critism of what's wrong with their map and often regard it as flamming/trolling.

    To make it worst, some mapper have the lack of sportsmanship as well. Just because a much experience mapper or user told them of what's wrong with their map, this type of mapper rant their anger out of them simply by downrating their resources or flamming them. This would eventually resulted into people no longer interest of telling the mapper of what's wrong with their map. By doing this, you not only discourage people from download your map. You also lost a biggest asset of all time.

    To be honest, if you are seeking for map tester to find out what is wrong and a user who appear out of nowhere telling you what's wrong with your map. Ain't you get yourself a free volunteer and free review out of it?

    Accepting a constructive critism from map tester, but not from user is likely to be contradiction. It not only make yourself look foolish if you did that, it also makes yourself look like a perfect idiot and believe me. Nothing is much more suitable to describe a perfect idiot than this.

    To outline a difference of constructive critism or not. Here is a example below.

    As for this, it isn't constructive. So, it was acceptable for you to denied his post.

    As for this quote above, it was a constructive critism. Not flamming the map or the author of the map. So, take note of what it written and hopefully it would help. If there is something you disagree, try to give reason about it.

    Learn to have a sportsmanship, never downrated other people resources out of anger or flamming them especially if they give a constructive critism. Thanks them if they give such a review, you would eventually learn how to make a better map faster than a knife cut through a butter.

    Positive critism is nice to heard and nice to see. But, do they help you in mapping? That is the question you should ask yourself. And if a map was indeed superb, it would definitely earn a positive critism.

    6) Protecting a map

    Protecting a map while you know little to nothing about map editing was a stupid thing to do. First of all, open sources map are easy to be review and also enable a much experience map maker to view the scripting/triggering to point out the flaw of your coding.

    If you know the flaw of your coding, you would be able to fix it and this would benefict your map in term of efficiency. You might also learn something useful from it.

    Protecting a map because you do not want your map idea to be stolen is absolute nonsense because of 3 reasons.

    I) Experience map maker could have easily develop such a map with better concept, better coding and terrain compare to you.
    II) You lost yourself a free volunteer that help you fix/point the bug of the map coding.
    II) It was a idea, anybody could have a similiar idea. For example, just because your map idea was Tower Defense; it doesn't mean other people never though of making a Tower Defense map.

    What Should Be Done?



    Ok, now this is the list of thing you should do if you wish to make a good map.

    1) Planning

    Always plan what to make. Planning doesn't generally like "Oh, I have a idea. Let's do it". The planning revolve a lot of aspect ranging from the game concept, terrain, custom import, scripting/triggering, file size and many more.

    You need to take concern of it or else your map would never became a good map.

    I would take a few example such as file size.

    When you are making a map, you want it to have lot's of fancy model/icon/skin to make your map goes WOW. But, you need to take care the file size as well especially when it was a multiplayer map.

    What happen when your file size exceed 4mb (The max size permitted for multiplayer map) due to custom import? Your map would eventually unable to be host, resulted into nobody playing your map at all.

    Even if your map does not exceed 4mb (Let's said 3.9mb) and your map was a 10 player map. Trying to host it at full house was nearly impossible as the download time could take a hell long time depends on the host and player connection. This resulted into player leaving the room before the game even started.

    Surely you can said "You are hosting this map with bunch of impatient kids". Believe it or not, nobody going to waste a hell long time to download a map that they know nothing about it (Especially new map).

    What happen if they do download it only to find out it was terrible? I guess I do not need to explain this part, do I?

    Planning could take up to a month or probably longer. But once you have a plan, the execution would be quick and smooth.

    2) Research

    Always make a research (Especially scripting/triggering) as you might found something that are useful.

    For example, you only know how to script/trigger in GUI. One day you make a research and found out it could be code at JASS/VJASS and it was far superior.

    What happen? Congratulation, you just take another step in developing a much better map.

    3) Ask

    Do not be shy to post a question at forum when you do not know how to resolve a problem regarding your map. But at the same time, make a research before you ask the question as it might already been answer at tutorial.

    Do not expect user to create the solution for you (Especially in scripting/triggering). Try to make it by yourself first and show your work to the other and they would naturally gives you a better solution.

    Begging and asking someone else to do it for your would likely get your thread ignore.

    4) Testing

    Always test your map as you know your map better than anybody else. Before you release it, it was recommend you conduct more test.

    5) Avoid minor bug

    Minor bug are usually refer to inproper hotkey, missing dis_btn and so on. Even if your map was a beta stage map, always ensure small problem such as inproper hotkey been fix before the map release. Map such as TD or AOS would give a hell lot's of problem to the user if there is a inproper hotkey.

    For example, if I want to select hero A at the tavern and the hotkey that shown was A; I press A button only to get a hero B. It not only annoying, but discourage user from playing it.

    That's all my tutorial at this moment. Hope it could help mapper in developing a much better map in the future.

    Credit List
    bounty hunter2 - Fix grammar mistake.
    Aeroblyctos - Mention a error at the example I show due to exhaustion.
    Eleandor - Point out a grammar error.
     
    Last edited: May 13, 2009
  2. Septimus

    Septimus

    Joined:
    May 3, 2008
    Messages:
    4,178
    Resources:
    49
    Packs:
    1
    Maps:
    35
    Spells:
    8
    Tutorials:
    5
    Resources:
    49
    ===Reserve for future post===

    I have wrote down most of the info. More would be add soon.
     
  3. APproject

    APproject

    Joined:
    Jun 27, 2008
    Messages:
    2,503
    Resources:
    19
    Icons:
    4
    Maps:
    15
    Resources:
    19
    Really great and useful tutorial. Great job, Septimus. Someone must tell them the holy truth about mapping and you're the right person for doing this.
     
  4. Pyritie

    Pyritie

    Joined:
    Nov 26, 2006
    Messages:
    11,357
    Resources:
    60
    Models:
    30
    Icons:
    9
    Packs:
    3
    Skins:
    12
    Tools:
    1
    Maps:
    1
    Tutorials:
    4
    Resources:
    60
    Please use

    ,

    , and

    tags for titles and headings.

     
  5. bounty hunter2

    bounty hunter2

    Joined:
    Sep 27, 2005
    Messages:
    1,949
    Resources:
    7
    Icons:
    3
    Maps:
    3
    Tutorials:
    1
    Resources:
    7
    Septimus I started grammar checking:

    A lot of mapperS, especially NEW ONES would probably ask this question.

    Code:

    How to create a good map?

    There ARE a lot of wayS to do so. To start with, I WILL begin with scripting/triggering.

    The Importance Of Proper Scripting

    A lot of people (Especially new userS), often adopt the motto of "As long as it workS". This resultS IN poor scriptED mapS that often cause playerS to disconnect or long loading time.

    Let us take a example, SHALL we?

    From what you SEE, I assume you would said both of them work TH SAME, and you are right. Both triggerS are the same, THEY spawn 1 footman every 30 seconds for player 1.

    Although the concept was the same, but there is something that separateS both of THEM. What is that? One was coded at ineffective way (ResultS into long loading time, disconnect, lag, file size larger and so on) while the other was coded at optimizeD way (ResultS into smooth running map with little or no lag at all).

    The first trigger you HAD seen workS just like the second trigger. Unfortunately, it does not destroy a memory leak which could result into a total disaster.

    That is part of the reason of why proper scripting is important.
     
  6. busterkomo

    busterkomo

    Joined:
    Jun 17, 2007
    Messages:
    1,424
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    I guess the tutorial is pretty good. However, see the problem I addressed below.
    You have
    Code (vJASS):
    call  RemoveLocation (udg_Point)
    instead of
    Code (vJASS):
    call  RemoveLocation (udg_Respawn)
    You should really just store the location in a variable throughout the whole game. I mean, there isn't much point to set and remove a variable from a constant location repeatedly. Here's an example of what I'm referring to:

    • Events
      • Map initialization
      • Conditions
      • Actions
        • Set Respawn = (Center of (Playable map area))
    • Events
      • Time - Every 30.00 seconds of game time
      • Conditions
      • Actions
        • Unit - Create 1 Footman for Player 1 (Red) at Respawn facing (Position of (Triggering unit))
     
  7. Septimus

    Septimus

    Joined:
    May 3, 2008
    Messages:
    4,178
    Resources:
    49
    Packs:
    1
    Maps:
    35
    Spells:
    8
    Tutorials:
    5
    Resources:
    49
    I know about that.. a typo error.. XD

    Anyway, that was just a sample of proper coding. Actually your way and my way work the same way.
     
  8. Mugzippit

    Mugzippit

    Joined:
    Mar 27, 2006
    Messages:
    21
    Resources:
    0
    Resources:
    0
    Problems following the tutorial

    ive tried to improve the respawn in a map ive been working on but the tutorial doesnt give enough info. it came up with
    Line 539:Expect a name

    The trigger is:
    [​IMG]

    can you say what ive done wrong?
     
  9. Pyritie

    Pyritie

    Joined:
    Nov 26, 2006
    Messages:
    11,357
    Resources:
    60
    Models:
    30
    Icons:
    9
    Packs:
    3
    Skins:
    12
    Tools:
    1
    Maps:
    1
    Tutorials:
    4
    Resources:
    60
    "Respawn" is not a variable?
     
  10. Mugzippit

    Mugzippit

    Joined:
    Mar 27, 2006
    Messages:
    21
    Resources:
    0
    Resources:
    0
    Problems following the tutorial II

    changed (ugd_respawn) to (ugd_RespawnOutpost) and still not working.
    RespawnOutpost is the variable used in the trigger.
     
  11. busterkomo

    busterkomo

    Joined:
    Jun 17, 2007
    Messages:
    1,424
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    Your using a region as the variable. You should instead use a location holding a random point in your region.
     
  12. Septimus

    Septimus

    Joined:
    May 3, 2008
    Messages:
    4,178
    Resources:
    49
    Packs:
    1
    Maps:
    35
    Spells:
    8
    Tutorials:
    5
    Resources:
    49
    That explain your problem.

    This tutorial only explain to you what you should do and why you should do it that way and what not to do in order to make a better map. It doesn't cover the issue on how to solve it.
     
  13. Avator

    Avator

    Joined:
    Aug 23, 2008
    Messages:
    2,309
    Resources:
    1
    Tutorials:
    1
    Resources:
    1
    Good idea to make this. It'll prevent a lot of people from starting something they might regret later and waste time and effort along with it.
     
  14. VeljkoM

    VeljkoM

    Joined:
    Jul 27, 2008
    Messages:
    2,553
    Resources:
    2
    Maps:
    1
    Tutorials:
    1
    Resources:
    2
    Every user should read this.Specially new users.If I knew this first time when I wanted to post my map I probably would think twice and improve map before actually uploading it.

    EDIT:Wait isn't 4MB limit for multiplayer map?
     
    Last edited: Mar 9, 2009
  15. Mugzippit

    Mugzippit

    Joined:
    Mar 27, 2006
    Messages:
    21
    Resources:
    0
    Resources:
    0
    worked it out! (well i think its fixed as the trigger works and has the custom script).

    Thanks for all the help!

    Lack of Description/Detail/Information

    ive looked though the tutorials and theres nothing on how to make a proper description, let alone up to the level of skill used in making the discriptions on the examples. could someone do a quick on describing how to do things like the borders and different colours?
     
    Last edited: Mar 9, 2009
  16. SlayerII

    SlayerII

    Joined:
    Aug 21, 2008
    Messages:
    526
    Resources:
    2
    Maps:
    1
    Tutorials:
    1
    Resources:
    2
    Quite good tutorial:thumbs_up:
    BUT i dont agree with all what you said.
    Wy shouldnt a projekt made cause of borness a good one? I was bored of all the sick bad TD's so i made up my own one. I also started mappink cause of borness.
    Ok that was bit sarcastic.:grin:
    But I still dont agree with that.

    When you wrote about the noob whch never finished a projekt i remember my self something like a year ago. But Cause of Forums like this i went better. And cause of tutorials like this:cute:
     
    Last edited: Apr 22, 2009
  17. Xarwin

    Xarwin

    Joined:
    Nov 16, 2006
    Messages:
    2,233
    Resources:
    3
    Icons:
    1
    Maps:
    1
    Tutorials:
    1
    Resources:
    3
    Great tutorial, but maybe you could add a countdown timer instead of the repeating timer? :)
     
  18. Pyritie

    Pyritie

    Joined:
    Nov 26, 2006
    Messages:
    11,357
    Resources:
    60
    Models:
    30
    Icons:
    9
    Packs:
    3
    Skins:
    12
    Tools:
    1
    Maps:
    1
    Tutorials:
    4
    Resources:
    60
    It's a bit messy (too many lines) but it's approveable.

    You might want to use
    1. tags though.
     
  19. Septimus

    Septimus

    Joined:
    May 3, 2008
    Messages:
    4,178
    Resources:
    49
    Packs:
    1
    Maps:
    35
    Spells:
    8
    Tutorials:
    5
    Resources:
    49
    I give 3 reason of why.

    1) You doesn't ensure yourself if you have enough skill to map what you want, especially when you are new in World Editor. At Scripting/Triggering, that is where a skill require the most.

    2) Without a proper planning and research, you can bet that your work are just going to turn out to be another cheap brand of it.

    3) When you are bored, you are probably making something out of scratch as quickly as possible without testing it and release it asap it to the public.

    4) If your project was a big project, it would consume a lot of time and energy. Maybe you would get bored and quit it before you even get it done. I almost did that when I make my map Harry pottaa and the dining in hell.

    I do believe this tutorial already explain the reason of why you should not make a map out of boredom.

    I give 4 reason :O

    This tutorial is telling you how important it was to have a proper description.
     
  20. Restor

    Restor

    Joined:
    Mar 26, 2005
    Messages:
    726
    Resources:
    0
    Resources:
    0
    Nice tutorial, but "as long as it works" included also lags and so on, at least for me, mosts lags from cins are not leaks but spaming of doodads/effects.

    And couse I am making only cinematics (ok, one adventure maybe), I know how many triggers will run and ergo how many leaks will be. So its not very neccessary in unplayable maps (ok, i try to avoid memory leaks but when i forget, its not a tragedy)

    And i must write this :if someone criticied you, dont hide his post, this is also a good point :)