What is JASS?
JASS is the scripting language used by wc3 maps and AI scripts. When you use the editor to place units, 'regions', destructables, items, weather effects, sounds and that stuff, The editor converts the information into JASS scripts, you can also JASS directly in the trigger editor if you use 'Convert to Custom Text' on a trigger or if you use the custom script section (the top of the list of the triggers has the map's name, if you click there you can see/edit the custom script section)
Links about JASS
Wc3campaigns' JASS tutorials
The JASS manual - List of functions, variable types and more information.
The JASS Vault - Library of functions and JASS focused forums.
Common Myths about JASS: (All of these statements are false)
- GUI is better because it is easier
- JASS is better because it is more difficult
- GUI is easier than JASS: Probably if you want to make small stuff, but if you want to make big things (for example the main feature of your map) JASS is much easier cause it simplifies your code
- You can do everything in GUI: This might be true, but because you can make your own functions in JASS, it is generally much EASIER to make complex things in JASS than in GUI.
- You need to know GUI before learning JASS: It is actually easier to learn JASS without knowing GUI, generally to learn JASS you have to unlearn plenty of things you learned in GUI cause they pollute your mind. That's the reason people that got a lot of experience in GUI might find JASS to not be usable enough.
- You need to know programming to learn JASS: GUI is also a programming language. You can actually learn JASS at the same time you learn programming, and you can learn JASS alone, programming language will appear magically while you learn JASS.
- You need to know XXXX programming language to learn JASS: This is not true at all.
- A map is good because it wasn't made in JASS
- A map is good because it was made in JASS
- A map is good because it wasn't made in GUI
- A map is good because it was made in GUI
JASS Advantages
If you use JASS directly instead of GUI you win:
- Functions: you can make your own functions and that will save you time
- Efficiency: Typing is faster than clicking with the mouse
- Ability to write more optimized code: GUI's automatization is not flexible enough to make well optimized code and it most of the times will generate really slow code.
- Local variables and multi instancibility : GUI is simply not good to make things multi player proof.
- Access to 'hidden' native functions : For some reasons GUI does not allow you to use a lot of functions like those related to memory leaks (you won't be able to fix a big quantity of memory leaks in GUI)
Fixing the Crashes / syntax checker problems
World Editor's JASS syntax checker is slow and tends to crash/ give wrong error descriptions. Because of this YOU MUST use an extension like
WEHelper before trying to learn JASS/implement a JASS system, or better yet the
NewGen pack which also enables you to use vJass.
Is programming knowledge required?
Having experience with other programming languages would help you learning JASS but it might also be a hazard cause you would find JASS to be really limited, luckily we managed to invent a dummy Object Oriented programming for JASS, and gamecache allows you to invent a lot of things like pointers and that stuff. Without GameCache JASS would be really limited (Anyways GUI has always much more limitations than JASS for obvious reasons)