Tutorial Speed Up Your Map Making

FhelZone

Have a drink of a nice cold mellowberry juice!
Reaction score
103
Speed Up Your Map Making

Tutorial's Goal
To give some basic information to the reader to speed up their map making. In map making speed is essential to meet your deadlines and to free up some more time to create more spaces for improvements.

The tutorial is in a conversational format, so I just highlighted some important and useful details that you might don't know yet.

Basic Speedups

1. If it is your first time using the world editor, or you are still not much familiar with it here is one good tip to speed up the application.

Go to the main widow of world editor, at the standard toolbar, you will see the word "Window" click on it in this order "Window >> Uncheck Brush List", now you ask, what does it do? Disabling the Brush List speeds up world editor because it does not care arranging the items in it anymore. Try to rename a unit in object editor, and the delay is as good as gone.

2. Are you importing something from one map to another? It would take some time, but let us discuss the basics.

First of all, open the source map and the map where you want to copy the things you need in the source map. Open the two maps, then for you to swap easily, click on the "Window" from any module and you will see at the bottom part some file paths, those are the maps that are currently open. To reduce the number of maps open, just click on it from the "Window" and go to "File" and choose "Close Map".

Now another thing is that swapping map from the "Window" is sometimes taking so long. If you just want to import triggers go to the object editor, and make sure the tab is on "Buffs", the buffs doesn't take so long for World Editor to arrange so the faster your map switching will get. Now, lets go to importing multiple triggers, let's say there are more than one trigger, we wouldn't want you to keep on switching map just to copy some triggers. To import them all, just create a new "Category" and put all the triggers you need under it, though the minor problem would be organizing it again. Now, right click on the category that you've made and choose "Copy", go back to your map and click on the top one on the category tree (Usually has the name of your map, and has the .w3x icon) and choose paste, now you have all the triggers in few clicks.

Now for the variables. (EDIT: Thanks to Darthfett) For the variables, you have a choice to auto create the unknown variables in your triggers. For example, you've imported triggers with lets say 200+ variables, basically you just can't copy paste them all, it would take forever. To autocreate variables, go to the main window of world editor and click on "File >> Preferences >> Check (Automatically Create Unknown Variables While Pasting Trigger Data)."

3. At start the object editor is the laggiest module, except if your terrain is extremely huge filled with too many doodads and units. To start up without any delays, open the object editor, and make sure to click all tabs, that way the application would load everything for you, so that next time, you won't be waiting too much anymore. Except if you open any map, you would have to load the other tabs again.

4. Organize your triggers. Usually we have a lot of triggers on our trigger editor, which makes us so confused and feel that it is pretty messed up sometimes. Make sure to put some trigger comments which is essential for organizing. Now having a lot of categories is possible too, if you still don't know, you could convert a category into a comment. It is pretty simple, just right click on the category and select "Category is Comment". Though the new comment category is still useful for storing your triggers.

5. Add comments on your triggers. This way, the next time you need to edit the trigger, it would be easier for you with a comment. To add one, just click on your trigger, and look above the "Trigger Fuctions". There are two boxes at the left and the top of the "Trigger Functions" naming "Trigger Comment" is where you input your comments.

6. Add suffixes to your buffs. This is really needed because buffs don't usually come with Melee, Campaign, and Custom Categories. They are all included in one long list. So make sure to make a descriptive suffix for your buffs. This can be done by modifying Text - Editor Suffix.

7. Don't touch the standard objects! Don't try and modify the standard objects as much as possible, just copy the object and paste it to make a custom one. Now you ask why? Simple, the standard objects are the base objects for you modifying them would make some complications just let them stay what they are. Though some people modify them because they are lazy to go to the "Melee, Campaign, Custom" in the unit pallet. Another fact, it will make my map size bigger, of course it will, let say .01 kilobyte per custom object, come on, it is not very harmful to your file size.

8. The items may be exceptional from the tip above. If you have a quite slow computer, browsing the items in the Unit Pallet takes so much time to load. So, just modify the existing items. And make sure to categorize them well. If you keep the standard items, it would take you too much list in the unit pallet, making it laggier.

9. Organize your imported files. The imported files may be taking about 50 of them or something, making the import manager in total disorder. Now to organize everything make sure the path is something in your own format. For example, you imported a unit model, so make the path ("Units\Ninja.mdx") something like that would be better than just "Ninja.mdx" and make sure you use this slash (\) not the other one. The reason is that because in Newgen, exporting the objects would cause errors if you used the other slash, that is because windows doesn't allow the use of that slash. Make sure your filepaths does not include the following: (/ | : * ? " < >)

For Advanced Users
Also, I would recommend you to modify the texture paths of some models that are complicated. You can use MDX Pather to change some texture paths. Always use a good format to compile your textures, for example a texture for "Ninja.mdx" change the path to "Textures\Ninja.blp" that way your import manager would look more organized.

10. Tooltip making takes so long, even coloring the text or the letter. To ease your tooltip making just do the following. For the data that you want to display, for example the damage that the ability does, the easy way is to type in the data e.g. <A007: DataD1> this will display the specific vaue. How to display a value? Easy just press CTRL+D and you will see the data the first one "A007" is the object that has the data e.g. Storm Bolt. And the "DataD1" is the damage that stormbolt does, take note that it could be different sometimes depending on the value you want to get. To learn this just take a look at the standard tooltips.

Now you ask, typing in the real value would just have been easier, wrong and wrong. When you change the values of the data for example for balancing purposes, the data code would adjust to it automatically, while typing the real value needs to be edited again. Now you ask it takes to much reviewing if I encoded the right data, simple, just fill up the first tooltip, then rightclick on it and choose "Autofill Levels" and just press enter to make the data synced properly for every other tooltips below.

The Autofill Levels is pretty essential for you to speed up your map making, so try it whenever you see when you right clicked on a value, it even syncs levels like tooltip one indicates "Level - 1" on the tooltip below it would become "Level - 2". This is also good in setting damages, for example you want a fixed value for the skills duration, right click on the duration and just choose Autofill Levels, you would see a box then. Fill the fields up and you have what you want. Though I won't be focusing on Autofill for this tutorial, just try to experiment it with yourself and you will have fun with it.

11. Imported icon paths may take too long to do, though the easiest way to do this is just to copy another imported icons path paste it and change the name at the end for example ReplaceableTextures\CommandButtons\BTNEnvenomed_Arrow.BLP just change the part which is bold and your ready to use the icon.

12. Create a template for certain triggers. This would make your life easier having a template for common triggers, where you just modify few things, here is an example.

Trigger:
  • Actions
    • Unit - Create 1 Dummy for (Owner of (Casting unit)) at Temp_Point facing (Facing of (Casting unit)) degrees
    • Unit - Add Powershot (Dummy) to (Last created unit)
    • Unit - Set level of Powershot (Dummy) for (Last created unit) to (Level of Power Shot for (Casting unit))
    • Unit - Order (Last created unit) to Orc Tauren Chieftain - Shockwave (Temp_Point offset by 50.00 towards ((Facing of (Casting unit)) + 0.00) degrees)
    • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)

So next time when you need to call out a dummy to cast a certain spell, it would be much easier by copying the actions through, pressing SHIFT + Clicking on the actions will select multiple of them, this way just click CTRL + C to copy and CTRL + V to paste. Now you only have to change some few values.

13. Learn basic JASS after mastering GUI. Sticking with GUI won't advance your mapping. To start learning the JASS simply create GUIs use global variables and don't spend so much time to make it MUI just use global variables when it is still in its GUI phase. Convert the GUI code into a custom script, there you could easily substitute the globals with locals, lastly simply declare the locals at the beginning of the script. This is a lot faster than trying to make a really complex spell MUI using loops, extra globals etc. and is good for practicing JASS. - Joccaren

More Basic Speedups

1. Don't get blinded by the rep things in warcraft modding sites. Keep on making your map, just post important threads of your own at the forums. Don't stay too long in forums, just get back from time to time to check for responses to your important posts.

2. Get a crew. Having a crew would be easier. Each member should be specialized at something, if you think you don't have the skills to be a leader, start as a humble member or partner for a project.

Make sure the map's progress is good enough (preferably with the triggers, and most especially the terrain). It is easier and faster to get some helpers to help you with your map, rather than posting a thread saying "hey guys I need sum testers and JASSers" with an almost barren and empty map. Make your map at least convincing. ~jonadrian619

3. Focus on your goal. Just focus on what results you are expecting, and make sure to minimize your expectations, in short be satisfied. For example just make scratches for a skill, then add the effects later when you finished all of them.

4. Always conceptualize. While not doing something, make sure to imagine what good things you might add up to your map, and make sure to list them down in order for you not to forget.

5. Have deadlines. Lets say having only an hour a day to finish something. This way it would make you do things faster and stay focused on a specific thing.

Final Notes
Thank you for reading the simple tutorial. You are free to drop in some comments and suggestions, considering that you abide by the rules of the forums. You are also free to add some tips that may be included in the tutorial.

In the end, those who are truly dedicated to their map is the only ones who can speed it up like a bullet.

More Tutorials

Squishing The Map Size To The Last Byte - A tutorial on minimizing the filesize of your map. Includes different tools and strategies to perform the compressions.
 

jonadrian619

-___-
Reaction score
240
This isn't really a tutorial, but a nice guideline:thup:.

Since I'm a former mapmaker, I'll share or add some tips:

For the Get a crew part, make sure the map's progress is good enough (preferably with the triggers, and most especially the terrain). It is easier and faster to get some helpers to help you with your map, rather than posting a thread saying "hey guys I need sum testers and JASSers" with an almost barren and empty map. Make your map at least convincing.

Some More:
  • Most people usually focus on the implementation of systems, triggers, codes and imports, rather than the features and gameplay of the map. Always keep in mind the gameplay of the map or else things could go wrong.
  • Having prerequisite knowledge on the World Editor and tasks like triggering and terraining really helps you make maps faster. Before you start making your own maps, read tutorials and practice using the WE.

Hope this tutorial goes well. Have fun!
 

FhelZone

Have a drink of a nice cold mellowberry juice!
Reaction score
103
Hmm, I've added the get a crew of yours, though I can't seem to categorize the other two. I'm going to wait for some more, and well add up yours when theres more category I guess.....

Thanks for reading by the way.
 

Romek

Super Moderator
Reaction score
963
The majority of users here use the default theme.
Using eye-frying colours isn't the way forward. :rolleyes:
 

FhelZone

Have a drink of a nice cold mellowberry juice!
Reaction score
103
The majority of users here use the default theme.
Using eye-frying colours isn't the way forward. :rolleyes:

Inspired by the search tool, which make your keywords red and bold hehehe..... I'll color it tomorrow, I still have a class to attend.

EDIT:
Red to GREEN done and done. Just waiting for some more additions I guess.
 

Romek

Super Moderator
Reaction score
963
It looks better now.
But I was talking about that bright pink. :p
 

Sevion

The DIY Ninja
Reaction score
413
Personally, I found text size, bolding, underlining, and red text make the best headings and the same with blue text for other smaller things works best for smaller markers.

Purple and Green aren't so bad, but Pink is an eye-killer.
 

Jackal

You can change this now in User CP... or Die Tryin
Reaction score
38
3. At start the object editor is the laggiest module,

Having object manager open renders everything pretty much unusable due to the lag, for me at least.

2. Get a crew. Having a crew would be easier. Each member should be specialized at something, if you think you don't have the skills to be a leader, start as a humble member or partner for a project.

I disagree. This slows the project down because it runs the risk of someone taking 3-4 days later than everyone else to email in their part of the map.
 

Sevion

The DIY Ninja
Reaction score
413
3. That's probably only for you.

2. That depends on the project and the members of the group.
 

Romek

Super Moderator
Reaction score
963
> Having object manager open renders everything pretty much unusable due to the lag, for me at least.
View -> Brush List
Or w/e it's called. Disable it.

I find mapping in teams awful. Unless it's just a pair - a coder and a terrainer.
Coder also does objects and everything else.
 

GoGo-Boy

You can change this now in User CP
Reaction score
40
Certainly helpful!
:thup:

Maybe you should add something about GUI - JASS. I say that because I found myself wasting quite a lot of time doing stuff in GUI. Especially those guys, who are really interested in deeper Wc3 modding gain a huge advantage by learning JASS early on.

For example: If you're planning to implant difficult to code spells and yet want to keep a good performance as well as MUI, MSI etc. consider switching from GUI to JASS. Although it will cost some time to learn it, it will definitely pay out later in better triggers as well as in faster coding.
 

the_ideal

user title
Reaction score
61
Nice tutorial, +rep.

One thing: You say
Now for the variables. I don't really know any short way of importing the variables, though copy pasting would take a lot of time if there are a lot of variables. I would recommend that you just list down the variables and the type of variable it is, don't forget to put array if there is any. For the default value, I don't think this is usually altered, though double check if there are any altered default values.

You might want to add to this part that you can go to File -> Preferences, and check a field that auto-creates variables. Therefore if you have a bunch of variables in triggers, when you paste the triggers the variables will be created automatically.
 

FhelZone

Have a drink of a nice cold mellowberry juice!
Reaction score
103
Sorry for the late response Romek, I've edited it now though I still left some pink around.
For the variable s I'll edit it.
 

Darthfett

Aerospace/Cybersecurity Software Engineer
Reaction score
615
I disagree. This slows the project down because it runs the risk of someone taking 3-4 days later than everyone else to email in their part of the map.

I find mapping in teams awful. Unless it's just a pair - a coder and a terrainer.
Coder also does objects and everything else.

This all depends on what sort of system you have set up, and who you're working with.

If you're working with someone you trust and know to be working, it's not so bad. If you're working with someone you don't know, and who isn't really paying attention to how much time they're taking it can be awful.

However, if you have a system set up where people can "check out" the project and do some small modifications and check it back in when they're not busy, it can be really useful to have a team.

The tutorial itself is ok, I think it could use a lot of editing and revising though. Some of it is very unclear, and good be explained better:

still not much familiar with it

^ Above does not make sense.

widow -> window

Another fact, it will make my map size bigger, of course it will, let say .01 kilobyte per custom object, come on, it is not very harmful to your file size.

^ Above does not make sense.

If you have a quite slow computer, browsing the items in the Unit Pallet takes so much time to load --> If you have a slower computer, browsing the Unit Pallet can take a long time to load.

Now you ask why? Simple, the standard objects are the base objects for you modifying them would make some complications just let them stay what they are. --> Why? Simple. The standard objects are the base objects for you to use. Modifying them could make it complicated, so it's better to just leave them be.

Now for the variables. I don't really know any short way of importing the variables, though copy pasting would take a lot of time if there are a lot of variables. I would recommend that you just list down the variables and the type of variable it is, don't forget to put array if there is any. For the default value, I don't think this is usually altered, though double check if there are any altered default values.

You can always go to File -> Preferences -> "Automatically create unknown variables while pasting trigger data". Doing this will create all the variables that are needed for all copied triggers.

Those are a few of the errors and mistakes I found, but there are many more.
 

Romek

Super Moderator
Reaction score
963
You've still got those horrific colours.
Get rid of them.
 

WolfieeifloW

WEHZ Helper
Reaction score
372
I don't like the colors at all.
It's not formatting, it's just misuse of it.
There's bold, underline, and italics for a reason :rolleyes: .
 

FhelZone

Have a drink of a nice cold mellowberry juice!
Reaction score
103
Hehe, sorry for the terrible colors everyone, I was out for quite some time just playing around. So, I've changed the colors, highlighted words are green and numbers and titles are Royal Blue. Hope it looks better this time.
 

Volkof

Well-Known Member
Reaction score
31
Hi, can teach me more on how to use the Data in tooltip?

10. Tooltip making takes so long, even coloring the text or the letter. To ease your tooltip making just do the following. For the data that you want to display, for example the damage that the ability does, the easy way is to type in the data e.g. <A007: DataD1> this will display the specific vaue. How to display a value? Easy just press CTRL+D and you will see the data the first one "A007" is the object that has the data e.g. Storm Bolt. And the "DataD1" is the damage that stormbolt does, take note that it could be different sometimes depending on the value you want to get. To learn this just take a look at the standard tooltips.

Now you ask, typing in the real value would just have been easier, wrong and wrong. When you change the values of the data for example for balancing purposes, the data code would adjust to it automatically, while typing the real value needs to be edited again. Now you ask it takes to much reviewing if I encoded the right data, simple, just fill up the first tooltip, then rightclick on it and choose "Autofill Levels" and just press enter to make the data synced properly for every other tooltips below.


I have a spell called Stim Pack based on Unholy Frenzy. the raw code shows:
Code:
A0Cl:Auhf (Stim Pack)


So should the tooltip be:

Code:
<A0Cl: DataA1>%

Or am I missing something?
 

Darthfett

Aerospace/Cybersecurity Software Engineer
Reaction score
615
@Volkof

It should look like this:

Code:
<A0Cl,DataA1>%

Arguments are separated by commas, and the colon is only there to separate the base ability ID from the custom ability's ID.

Also, if your Stim Packs' value for DataA1 treats 1.00 as 100%, and 0.50 as 50%, try using this:

Code:
<A0Cl,DataA1,%>%
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top