• 🏆 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!

Should I use vJass, cJass, Zinc or Wurst?

Status
Not open for further replies.
Level 6
Joined
Jun 7, 2006
Messages
23
I have been using strictly GUI in map making and I've decided I want to try scripting but I'm not sure what I should use, vJass, cJass, Zinc or Wurst. I would also like to use scripting in Wc3 to help me learn the basics of coding. For this reason, I thought it might be good to use cJass since I could maybe learn C++ from online tutorials and videos and apply what I learned about C++ to cJass and map making, but in my research I found a lot of people don't like cJass so I'm not sure now. For someone that is completely new to scripting in Jass and programming (my only experience is one computer programming class in college) but has an interest in learning to code, what do you recommend I start with, vJass, cJass, Zinc or Wurst?

I've researched all four on hive and vJass is definitely the most popular but I'm still not sure if I should start with it because it sounds like most people think vJass is a bad scripting language and I'd like to use Wc3 scripting as an introduction to coding.

Someone also suggested to me that I simply use GUI primarily and Jass for cleaning leaks. What do you think of that idea (ignoring the fact that I'd like to learn to code and GUI won't really help with that)?

Any thoughts, suggestions and ideas from experienced minds are welcome and appreciated!
 
Level 29
Joined
Oct 24, 2012
Messages
6,543
I can't tell you what is best to learn but I can tell you what I have learned and how easy it was.

I learned jass then vJass. Took less than a day. Maybe 4 to 6 hours.

Then C++, That took about 4 hours as vJass was a very easy intermediate scripting to learning C++. Once you learned the difference between it was really simple. ( Don't know all of C++ and I am not very fluent in it. )

I then learned C# which is the one I like the most.

I use Visual Studio 2013 for C#. You can use it for C++. Also notepad++ is a great program. (Both free)

I would not recommend cJass / Zinc / Wurst ( they don't have many followers. But Wurst has great syntax and is gaining followers. Zinc also has good syntax but isn't followed as much. )
 
Level 15
Joined
Aug 7, 2013
Messages
1,337
Since this question has been asked so many damn times, here are a few threads I pulled up. The gist is you should learn vJASS/Wurst if you want to be a serious mapper, do GUI if it's just a one time thing. See these threads:

(1) http://www.hiveworkshop.com/forums/world-editor-help-zone-98/gui-jass-vjass-255291/

(2) http://www.hiveworkshop.com/forums/warcraft-discussion-99/gui-vs-jass-vjass-jass-better-148233/

(3) http://www.hiveworkshop.com/forums/lab-715/shouldnt-vjass-deprecated-favor-wurst-253631/

what do you recommend I start with, vJass, cJass, Zinc or Wurst?

Do vJASS. It perfectly mirrors JASS and extends it to introduce OOP principles. Wursters will say Wurst and it's probably is better, but vJASS currently has a much bigger community + set of resources.

I suggest doing these things to learn JASS / vJASS (note it's practically impossible not to understand JASS if you know vJASS).

(1) Read the JASS manual. Read it all. Every page. http://jass.sourceforge.net/doc/

(2) Open up a war3 map script.j and try to understand it. Try to find map secrets or even hidden cheats / admin codes.

(3) Read the vJASS manual. Not all of it, but at least stuff on libraries, structs, etc. http://www.wc3c.net/vexorian/jasshelpermanual.html

(4) Make a toy map, ask questions on the hive, etc. Use vJASS only.

(5) Re-read the JASS manual. Also explore blizzard.j and common.j.

(6) Keep learning and you'll eventually get it.
 
fist, make sure what you own freely and understanding jass

then i suggest vJass, because its adding more to standart

and after that, cJass, he is heavily reducing time of code writing and also expanding jass even more.

after reading manual, try to use what you read just by making its work in test map

using all of them making your life easier and also provides to you great tools for your code, systems, and spells
 

Deleted member 219079

D

Deleted member 219079

wurst needs a bit of brainwork to get started with, but if you know java, you should definitely use it

vjass is good to go with if you're familiar with jass

zinc and cjass if... you want to try something different i guess?
 
Level 14
Joined
Nov 18, 2007
Messages
816
Learn JASS. You need to be comfortable with the abstractions it offers. JASS gives you the bare minimum to work with. Branching (if-then-else), loops, variables and functions will be the building blocks for later learning, so please make sure you dont have to look up syntax for them at least.

I would then suggest learning vJass. It builds on your knowledge of JASS, so you can pick and choose which features of vJass you want to learn while still being able to write useful things.
Which reminds me, i suggest you start reading other people's source code. Pick something that you understand the intent of, but dont know the implementation details of. Keep poking at the code until youre sure you understand all the code does. I recommend starting with a simple library like TimerUtils.

However, reading alone is not enough, you need to actually write code applying the stuff youve learned as well. Theres nothing wrong with writing yet another implementation of TimerUtils, just please dont submit it (though i guess thats the easiest way to get feedback on it).

Sooner or later you will run into problems where code you wrote wont do what you want it to. This is completely normal. That said, the problem in almost all cases lies with you. You need a good way to approach these problems. WC3 is rather unhelpful in that it doesnt inform you of certain problems, so many times problems turn into sprinkling messages into your code and seeing where the problem occurs. However, before you start fixing anything, make sure you have a mental model of what you think the code does. Ignoring that model, think up hypotheses about why the code DOESN'T work, things you can objectively prove or disprove. Then, start making changes to your program that would fix the error you think is there. Sometimes you can find problems just by looking at your code again, those are the minority.
A commonly used technique for debugging is the so-called rubber duck. The idea is to put the intent of your code into words, while reading the code again.


Doing only one of these three things (reading, writing, proper debugging) is not going to be enough. You need to do all three, in no particular order, but preferably reading (not only of source code, but documentation as well) first. Yes, reading comes first. Always. Read the documentation of whatever youre trying to use. Read responses to similar questions those before have asked already. Read anything and everything that can possibly help your understanding of whatever you need to understand.

Anyway, others in this thread have already given good answers to your question, with links to documentation and/or tutorials. Pick any, chances are you will turn out okay. Follow wherever your passion leads you.
 
Status
Not open for further replies.
Top