GUI/Jass/vJass

hdm

hdm

Level 9
Joined
Nov 19, 2011
Messages
384
What is exactly GUI/Jass/vJass ? What does it mean ? Which provides more efficience ? What type of things use these... systems ? GUI is present only in War3 WE ? Or anything else ?
 
Level 12
Joined
Feb 22, 2010
Messages
1,115
GUI is the thing when you use to code with trigger editor.

When you select a trigger at trigger editor, and choose edit > convert to custom text from top left button, you will see some codes instead of events/conditions/actions which you choose with mouse clicks.That code you see is jass language.The actual language which warcraft read.

VJass is just a simpler version of Jass and you need newgen editor to use it.

It doesn't matter much which one you use.GUI is easier to use at start and jass is easier to use when you learn.
 
  • Like
Reactions: hdm
Level 19
Joined
Sep 26, 2009
Messages
2,113
all map-related scripts in wc3 are written in jass (which I believe stands for "Just Another Simple Script").
GUI means "Graphical User Interface" - it is graphically represented jass. However not all functions are in GUI that jass has - an easy example is that in GUI you need to use custom scripts to remove leaks. Custom Script option is basically an option to write jass code in GUI.
GUI is less efficient than jass, due to many BJ functions which basically just call a native jass function (thus you do 2 function calls) while if you write jass script directly, you can call the native function immediately (thus only 1 function call). jass is imo a lot simpler too and more powerful (you have easy access to local variables, more control over loops, etc.)

vjass is an extension of jass. It introduces structs, globals and other helpful things.
I can't say how useful or useless is vjass compared to jass, what cons and pros it has, because I don't use vjass. The only thing I can come up with is that vjass needs different program than the standard World Editor, because it is not part of WCIII.
 

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,181
GUI - Graphical User Interface, GUI is basically something that covers wraps the actual code into a more readable state. (comparing with JASS without highlightning)

JASS - A programming language used in WC3 only.

VJASS - A modified version of JASS, basically adding a few new features and an highlighter is built into the custom editor needed. (JNGP)
 
Level 15
Joined
Aug 7, 2013
Messages
1,338
(which I believe stands for "Just Another Simple Script").

In a recent thread someone pointed out that JASS actually stands for Just Another Scripting Syntax.

GUI is basically something that covers wraps the actual code into a more readable state

I wouldn't say it's more 'readable', though I would agree it's easier to visualize, since GUI is very verbose and descriptive (in general), compared to some natives which aren't straightforward for novices, e.g. the native to set the tin of a unit is called

SetUnitVertexColor

without a background in art / modeling, I think this would not be clear at first. Also, the last parameter is called "alpha", which corresponds to GUI transparency percent. Again, this is Greek to someone who doesn't know anything about colors in computers, which is probably a majority of mappers.

On the other hand if we need a complex algorithm, I'd probably want to read it in JASS or vJASS rather than GUI.

its scripting language, not programming

I am guessing the distinction is the purpose of the language? Otherwise I believe JASS is Turing complete? Like LaTeX, which isn't a programming language but a typsetting one, which is also Turing complete if I recall correctly. Just me clarifying your meaning so I understand better, since I'm not a programmer.

Which provides more efficience ? What type of things use these... systems

Ultimately you will want to do your map script in JASS or vJASS or even Wurst if you want to

a) produce high quality, object oriented code, which is modular + easy to change

b) use version control (SVN, github, etc.), which will save you from making bad changes (you can rollback instantly). Also, if your project has more than one developer, it will be very easy to collaborate and work together on the code, AFAIK any serious code / script development is under version control.

c) Have full control over your map script--I believe there are some things which are difficult or impossible to do in GUI which can be done in JASS.

I would recommend doing GUI if you're just making something for the fun of it, which is why GUI was designed the way it is, but learn vJASS or Wurst if you want to be a serious mapper.

Resource-wise, there are many resources for both vJASS, JASS, and GUI, but you will find the most refined resources are made in vJASS. Wurst does not have as large of a community as vJASS (given its age), and so far less resources.
 

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,181
its scripting language, not programming, and highlighter has nothing to do with vJass, it is TESH who does the highlighting

Pointless difference. Programming language is more commonly known term. Scripting.. not as much. Makes more sense to use it for explaining.

I said that it was built in into the editor. I never said it was a part of the actual language. (even though they kinda belong together)
 
Last edited:
Level 14
Joined
Jun 27, 2008
Messages
1,325
its scripting language, not programming, and highlighter has nothing to do with vJass, it is TESH who does the highlighting

Why do you love to point that out so much, are there any important consequences? I dont think so, so it doesnt matter. Also scripting languages are a subset of programming languages, so Jass IS a programming language.

When talking about efficiency you should keep in mind that most maps/scripts with performance problems are just badly coded, its usually not because of the language which is used.
You can write high performance triggers in both GUI and Jass/vJass, and you can write shit triggers in all languages.

About Jass/vJass: you dont have to "decide" which language you want to learn. vJass is designed to be 100% compatible to jass, which means vJass is more like an "addon" to jass which provides some simplifications and higher level features. Just read any vJass tutorial and you will naturally learn the basics of jass first and later some of the vJass features. To be honest i think most people who think they write plain Jass using JNGP unknowingly use some of the vJass features.
 

Deleted member 219079

D

Deleted member 219079

JASS - script which is used in wc3 custom games

GUI - graphical interface on top of jass

vJASS - enhances jass

How the hell can jass be easier than GUI ?
It's not easier lol :p not in a million days
 

Bannar

Code Reviewer
Level 26
Joined
Mar 19, 2008
Messages
3,141
Everyone seems to repeat each other :<
I guess dude is not dumb and he probably already knows few words he could say in regard to either of options.

@jondrean I find GUI tremendously harder then any of available syntaxes. Mostly because you have to click.. YES CLICK EVERYWHERE.

I prefer to use my keyboard, instead.
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Everyone seems to repeat each other :<
Thats because apparently its cool to post without reading the fucking thread first.


The word "easier" is complicated here. Ultimately it comes down "usability" which can describe two things:
1. How convenient something is to use for an inexperienced user.
-> GUI wins here because you dont have to care about syntax

2. How convenient something is to use for an advanced user.
-> If you know the syntax and have some programming experience vJass and Wurst are much more comfortable to write than clicking GUI.

So really, "easier" is the wrong word and GUI/jass/vJass/Wurst simply aim for difference target audiences.
 
Last edited:

Deleted member 219079

D

Deleted member 219079

@jondrean I find GUI tremendously harder then any of available syntaxes. Mostly because you have to click.. YES CLICK EVERYWHERE.
Me too. Read what muzzel said at #17

@Ezekiel12 You explained it well ^^
 
Level 15
Joined
Aug 7, 2013
Messages
1,338
Thats because apparently its cool to post without reading the fucking thread first.


The word "easier" is complicated here...

This issue I already addressed in a previous post in the first page of this thread. It would seem not everyone has heeded Bannar's suggestion. If you did not find my answer satisfying, you should quote it, explain what's wrong or what you need to add in clarify the issue of readability / usability / ease of use. This also helps me, because I can learn, especially if I say something wrong.

Bannar said:
Everyone seems to repeat each other :<
 
Top