• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Starting with JASS

Status
Not open for further replies.
Level 3
Joined
Jan 29, 2021
Messages
34
Hello guys. At the moment Im learning map_making/Jass coding in such way: I have a map, extracted the resources from it using MPQ and got the war3map.j that contains jass code for the map.

Please dont blame me for that, Im not asking here for deprotecting or any other stuff, I wont use it for any personal or comercial purposes.

So know, currently familiar with programming, Im interested in learning Jass to be able to make logic changes, fixing bugs, refactoring code etc.

As far as I see, Jass is pretty primitive language like C, I mean in compare with Java or any other high-level OOP language that Im familiar with.

At the moment I think I start with refactoring that jass file, its pretty big like ~15k lines of code

So, what Im asking here:
1) complete guide to Jass language
I want to understand what is this language is capable to do, like as I see there is no possibility of creating objects/custom user types throw Class definition and etc but there some new interesting things to me like you can pass function to another function etc
Im not asking for detailed explanation right here, maybe someone knows complete guide anywhere or so cause as I've found out there is no book to learn this language
2) VJass CJass
I've heard something about VJass and CJass but dont know what it exactly is and how it can help you throw the process of coding logic
3) IDE
For Java you have InteLJIDEA, for C# you have Visual Studio, for Jass you have ... ? NotePad is not a solution, excuse me, while working with huge amount of code
4) Splitting code into separate modules
The last thing for now which I actually wanted to start with - how can I divide big jass file into couple of smaller ones? Like in OOP language you make classes, then somewhere there is class with main function that uses objects/and their methods from other classes.
How are the things here in Jass?

Thanks for now
 

~El

Level 17
Joined
Jun 13, 2016
Messages
556
1) There's no official spec for it. Here's a pretty good doc for it: JASS Manual . There's also community tutorials, e.g: Beginning JASS Tutorial Series - You can find more stuff on that forum.

2) CJass is pretty much obsolete. Don't bother with it. VJass is a transpiler which translates a more "advanced" language into Jass. It has a bunch of features like classes, libraries and lots of other weird junk. Most people used to use VJass over plain Jass. Here's the manual: WC3 Modding Information Center - VJASS Documentation

3) There isn't one. Before Reforged ruined everything to fucking bits, there was a modded WorldEditor with a built-in JASS/vJASS editor with syntax highlighting. Doesn't really work anymore.

No idea what people use currently. There's a way to setup files outside of WE and to make them load into the map, so you can edit them using NotePad++ or Sublime Text or VSCode or whichever editor you prefer. It's a pain in the ass, though. You're also not going to find anything on the level of IntelliJ or Visual Studio, and you'll be mostly limited to simple syntax highlighting.

4) See vJASS.

EDIT: In case you're not on the latest version, you can use JNGP for extra stuff: Jass NewGen Pack [Official]
 
Last edited:
Status
Not open for further replies.
Top