• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

JASS or GUI?

JASS or GUI - what do you use?

  • Mostly GUI, sometimes JASS

    Votes: 0 0.0%
  • Mostly JASS, sometimes GUI

    Votes: 0 0.0%
  • Only JASS

    Votes: 0 0.0%
  • What the heck are you talking about?/I'm not using the trigger editor at all

    Votes: 0 0.0%

  • Total voters
    84
Status
Not open for further replies.
Level 7
Joined
May 6, 2005
Messages
390
Ok, I know more people are starting to use JASS (yay!), but I thought it could be funny to see how many of wc3sear.ch's members are using JASS and how many are using GUI.

I'm always using JASS, I learned JASS in the end of march this year, and after that I joined wc3sear.ch and submitted my very first JASS spells. I've improved much since then, thanks to a lot of people, especially Vexorian and KaTTaNa who've helped me a lot. Today I don't even touch the GUI.

NOTES: JASS is called "custom text" in the WE. It's real name is JASS2, but noone uses that 2.

GUI is what some people wrongly call "triggers", the normal triggers in the trigger editor, GUI stands for graphical user interface.
 

U.V

U.V

Level 7
Joined
Dec 10, 2003
Messages
323
99.99% GUI (otherwise known as triggers), and custom script action for removing points and groups - thats it!

'why' you ask?

its easy, both to understand when you're new, and to actually execute (i still cant imagine writing the whole spell in JASS code!(and debuging it!!))

am i missing something...? oh yeah!
it can still win you 4 Director's Choice Awards, 3 of which are in a row :twisted:

hopefully, my new spell will earn me the 5th one :roll:
 
Level 7
Joined
May 6, 2005
Messages
390
My dc percentage is higher than yours (haha!) with 60%. I'm just too lazy to release more spells.

But, uhm, your new spell deserves a dc. It rules.
 

U.V

U.V

Level 7
Joined
Dec 10, 2003
Messages
323
funny i dont see any spell by you :?

anyway:
1. the first spell i uploaded was my first ever. i started from scratch and it took me a while to get better.

2. maybe half of my spells were uploaded before there was such thing as DC, and so only the ones that came afterwards got the DC.

3. dont be cocky!!
 
Level 7
Joined
May 6, 2005
Messages
390
U.V said:
funny i dont see any spell by you :?

anyway:
1. the first spell i uploaded was my first ever. i started from scratch and it took me a while to get better.

2. maybe half of my spells were uploaded before there was such thing as DC, and so only the ones that came afterwards got the DC.

3. dont be cocky!!

You started it yourself :p.

Anyway, it's bugged because my author name on spells maps is Blade.dk, while it's Blade.dk2 on the forums because of a site bug. Anyway, my spells are here: http://www.wc3sear.ch/index.php?p=Spells&Authors=Blade.dk
 
Level 22
Joined
Jan 10, 2005
Messages
3,426
I dont use JASS at all and I dont wanna learn it. You can make very cool spells with GUI (look at Drain Pipe's spells and I thought RedScores also uses GUI and look at my uber spell made with GUI 8) )
U only need JASS for spells so I wont learn a whole new computer language just for some spells that u can make with GUI to (with some leaks)
 
Level 12
Joined
Apr 29, 2005
Messages
999
After Daelin's JASS tutorial I never touch GUI again in spell making. I never download any GUI spells any more which means that there are few spells to download. JASS is much better. You have more control and the spell works faster since you don't use all those BJ-functions. And debuging isn't easier with GUI. I would say the opposite. And you can't use local triggers or timer that executes functions in GUI without having to create a global trigger just for that. And you can't make templates in GUI. From now I can't even look into a GUI spell "code".
 
Level 7
Joined
May 6, 2005
Messages
390
Ramza said:
I dont use JASS at all and I dont wanna learn it. You can make very cool spells with GUI (look at Drain Pipe's spells and I thought RedScores also uses GUI and look at my uber spell made with GUI 8) )
U only need JASS for spells so I wont learn a whole new computer language just for some spells that u can make with GUI to (with some leaks)

Yeah sure, cool spells that aren't multiinstanceable, leak and are very inefficient coded.

@DarkShadow: for efficiency. And because jass allows things gui doesn't allow as you probably know. And because many gui functions have locals not set to null leaks.

Anyway, anybody who want to learn JASS, Vexorian's tutorial is a great start: http://www.wc3jass.com/viewtopic.php?t=2039
 
Level 6
Joined
Aug 12, 2005
Messages
205
I use only GUI!
I can do everything I want by using only GUI, GUI is easily to learn and very useful!
I don't know use JASS, but, I think that I'll try to learn any day because everyone is using JASS today. :shock:
 
Level 13
Joined
May 5, 2004
Messages
1,330
@Blade
Sure. As I said, I use JASS for everything that requires JASS. But because I don't know JASS THAT well, I don't know why I should use JASS in simple triggers like:

Event
Any
Condition
Any
Actions
Set Gold of Player1 to [value]

It's just faster for me setting up such a function using the GUI.
 
Level 12
Joined
Apr 29, 2005
Messages
999
DarkShadow said:
@Blade
Sure. As I said, I use JASS for everything that requires JASS. But because I don't know JASS THAT well, I don't know why I should use JASS in simple triggers like:

Event
Any
Condition
Any
Actions
Set Gold of Player1 to [value]

It's just faster for me setting up such a function using the GUI.

I'm quite sure the topic was pointed to spell making.
 
Level 11
Joined
Jul 20, 2004
Messages
2,760
You can easier look over bugs in GUI, because obviously that was its meaning. For cinematics and map triggers I use GUI. For spellmaking, I use JASS. Spellmaking consumes a lot of memory in GUI, and is the most complex area in the means of triggering.

Oh, and I checked Darky's RotD and he does the same. It's the best way to combine them. Trust me, if you want to change something in a cinematic or find something you don't like, GUI is much better. For spellmaking, you can get confused even in GUI since the code is extremely big for big spells. ;)

Oh, and yes, JASS can sometimes be much faster, until I have to debug the code. When I start doing that, I wonder why I didn't use GUI from the beginning. I also want to mention that lately, thanks to Vicky2004 and Nantuko Husk I can now detect BJ functions much easier (that JASS tool is awsome) and no more locations for me. :p It's indeed annoying that JASS is a programming language FULL OF BUGS!!! It has a lot of problems, such as the stupid nullifications, the many leaks, and its limits.

Oh, and afterall, GUI is also JASS in its core, just that it looks... hmm, easier for the user (cause somebody using GUI is not really a programmer).

Oh, and ragingspeedhorn, what was with that senseless comment?

~Daelin
 
Level 7
Joined
May 6, 2005
Messages
390
Daelin said:
You can easier look over bugs in GUI, because obviously that was its meaning. For cinematics and map triggers I use GUI. For spellmaking, I use JASS. Spellmaking consumes a lot of memory in GUI, and is the most complex area in the means of triggering.

Oh, and I checked Darky's RotD and he does the same. It's the best way to combine them. Trust me, if you want to change something in a cinematic or find something you don't like, GUI is much better. For spellmaking, you can get confused even in GUI since the code is extremely big for big spells. ;)

Oh, and yes, JASS can sometimes be much faster, until I have to debug the code. When I start doing that, I wonder why I didn't use GUI from the beginning. I also want to mention that lately, thanks to Vicky2004 and Nantuko Husk I can now detect BJ functions much easier (that JASS tool is awsome) and no more locations for me. :p It's indeed annoying that JASS is a programming language FULL OF BUGS!!! It has a lot of problems, such as the stupid nullifications, the many leaks, and its limits.

Oh, and afterall, GUI is also JASS in its core, just that it looks... hmm, easier for the user (cause somebody using GUI is not really a programmer).

Oh, and ragingspeedhorn, what was with that senseless comment?

~Daelin

Don't generalize, please, I hate it so much. It depends on practice. I am making everything faster in JASS today, simple triggers aswell and cinematic stuff, only JASS. And it is obviously best to do because it's directly, but I agree GUI can be easier to use.

What awesome JASS tool are you talking about, by the way?

Those things are not bugs in JASS, leaks are just the mappers fault, variable nullification might be a bug, as Blizzard doesn't use it themself and because it in very rare situation can lead to bugs.
 
Level 11
Joined
Jul 20, 2004
Messages
2,760
Blade.dk2 said:
What awesome JASS tool are you talking about, by the way?

http://www.wc3sear.ch/?p=Tools&ID=76

Blade.dk2 said:
Those things are not bugs in JASS, leaks are just the mappers fault, variable nullification might be a bug, as Blizzard doesn't use it themself and because it in very rare situation can lead to bugs.

Actually, they are not. A good programming language should automatically nullify variables once they are no longer used, and, excuse me, but why should locations leak and cause problems? If they were created, why don't we use them? Because they are slow? WHY are they slow? They should just store an X and Y value. Reals don't leak, but locations do, and this is pretty stupid. Locations store nothing else but two reals, or atleast, that's what they should.

~Daelin
 
Level 12
Joined
Apr 29, 2005
Messages
999
ragingspeedhorn said:
KAPOW and Daminions smartass comment was instantly shot down by blade, 10 points! xD
I connect JASS to spell making. Then I saw DarkShadow's example which wasn't a spell so I thought that this was not a valid example to compare GUI to JASS since it was just a map trigger.

And it seems to be really hard to spell my name. People seem to imagine that there is an extra "i".
 
Level 7
Joined
May 6, 2005
Messages
390
Using locations IS faster than using reals, if you doesn't take the painful cleanup's duration in consideration.

I already said in my previous post that I agreed that the nullifying thing is a bug.

The reason locations leaks while reals don't, is that a real always exists and is the same thing, while locations are created and when you create something you have to remove it again, like in rl.

Anyway, I've been doing fine till now with WE, sometimes Notepad (for huge searches that WE is not capable of, it can not search all the text, and for replacing everything in JESP spells), and PitzerMike's JASSParse when something is seriously wrong, but I guess I'll check that tool.
 
Level 7
Joined
May 6, 2005
Messages
390
All our other posts already said this.

Converting it does nothing, you have to change it aswell, and in fact GUI --> JASS spell conversions sucks.
 
Level 7
Joined
May 1, 2005
Messages
291
Ramza said:
Thanatos, before u convert it. Rememer that u cant convert it to GUI

RRRRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOONG!!!!!!!!!!
You can convert JASS to GUI if it can be done in GUI.
But this cannot be done in the editor! Simply download Deprotect at This website and deprotect a map (if it is protected deprotect it twice!) and the JASS will turn into GUI unless it can only be done in JASS.
 
Level 8
Joined
Nov 27, 2004
Messages
251
Blade.dk2 said:
Using locations IS faster than using reals, if you doesn't take the painful cleanup's duration in consideration.

Excuse me , but who did lie that to you?
Who said locations are faster.
Who said that SetUnitPosition ( unit , location ) is faster than ( SetUnitPosition ( unit ,real x , real y ) ???
Reals > Locations !!! proof ?

you have many functions that take locations to call their real exuivalents,by using GetLocationX/Y

aslo the -->native<-- GroupEnumUnitsInRangeLoc calls GroupEnumUnitsInRange() using GetLocationX/Y
tested by me. GroupEnumUnitsInRange() is faster than its location equivalent.
locations behave slower since you have to create them. you give 2 reals to a native named Location () and it returns
you one location. so where is the faster here ?
 
Level 7
Joined
May 6, 2005
Messages
390
Nantuko_Husk said:
Blade.dk2 said:
Using locations IS faster than using reals, if you doesn't take the painful cleanup's duration in consideration.

Excuse me , but who did lie that to you?
Who said locations are faster.
Who said that SetUnitPosition ( unit , location ) is faster than ( SetUnitPosition ( unit ,real x , real y ) ???
Reals > Locations !!! proof ?

you have many functions that take locations to call their real exuivalents,by using GetLocationX/Y

aslo the -->native<-- GroupEnumUnitsInRangeLoc calls GroupEnumUnitsInRange() using GetLocationX/Y
tested by me. GroupEnumUnitsInRange() is faster than its location equivalent.
locations behave slower since you have to create them. you give 2 reals to a native named Location () and it returns
you one location. so where is the faster here ?

Vexorian AND PitzerMike "lied" to me. And as I said, locations are faster if you DON'T take cleanup in consideration.

Why? Because you only have to pass one single pointer to the function instead of two reals.

And that location-taking functions call other function with the real value of the locations, doesn't make locations slower, only affects the funciton.

Here is your proof and tell me who lied to you?.

And stop that offensive attitude, thank you.
 
Level 8
Joined
Nov 27, 2004
Messages
251
Blade.dk2 said:
Vexorian AND PitzerMike "lied" to me. And as I said, locations are faster if you DON'T take cleanup in consideration.
I never spoke about cleanup. I spoke about location creation.
but since you want me to talk about it too , so be it.
so in a general matter we use 0.04 timers , right ? so we got 25 calls per second.
So,with locations you do : Create them , use them and remove them,omgwtf!
and why shouldn't we take the cleanup into consideration? why? does the game ignore it for you blade ? it is something that makes locs<reals

Blade.dk2 said:
Why? Because you only have to pass one single pointer to the function instead of two reals.
and who said parameters make the function slow ?
??? who ???
you give the function a pointer which contains 2 reals,where you could have given the reals directly. this is to me like a bj func.

Blade.dk2 said:
And that location-taking functions call other function with the real value of the locations, doesn't make locations slower, only affects the funciton.
so ? if you use locations you will use functions that take locations and therefore make your locations behave slower. internally they might be not.but in fact they do are
since when you use a function that takes location , the function you called calls the original function which takes the reals,so we got 1 extra worthless call to the original function. + 2 extremely worthless calls for using GetLocationX/Y
means 3 calls. and you still call locations faster.

Blade.dk2 said:
Here is your proof and tell me who lied to you?.
no one lied me. i work for more than a year with pc programming and i have enough knowledge to know a few things by myself. and not trying to copy what the others say.

Blade.dk2 said:
And stop that offensive attitude, thank you.
Ok,thank you too,but your attidute is way more offensive than mine.


....

oh and btw you use reals by yourself instead of locations,doesn't that mean anything ?
 
Level 7
Joined
May 6, 2005
Messages
390
Nantuko_Husk said:
Blade.dk2 said:
Vexorian AND PitzerMike "lied" to me. And as I said, locations are faster if you DON'T take cleanup in consideration.
I never spoke about cleanup. I spoke about location creation.
but since you want me to talk about it too , so be it.
so in a general matter we use 0.04 timers , right ? so we got 25 calls per second.
So,with locations you do : Create them , use them and remove them,omgwtf!
and why shouldn't we take the cleanup into consideration? why? does the game ignore it for you blade ? it is something that makes locs<reals

Blade.dk2 said:
Why? Because you only have to pass one single pointer to the function instead of two reals.
and who said parameters make the function slow ?
??? who ???
you give the function a pointer which contains 2 reals,where you could have given the reals directly. this is to me like a bj func.

Blade.dk2 said:
And that location-taking functions call other function with the real value of the locations, doesn't make locations slower, only affects the funciton.
so ? if you use locations you will use functions that take locations and therefore make your locations behave slower. internally they might be not.but in fact they do are
since when you use a function that takes location , the function you called calls the original function which takes the reals,so we got 1 extra worthless call to the original function. + 2 extremely worthless calls for using GetLocationX/Y
means 3 calls. and you still call locations faster.

Blade.dk2 said:
Here is your proof and tell me who lied to you?.
no one lied me. i work for more than a year with pc programming and i have enough knowledge to know a few things by myself. and not trying to copy what the others say.

Blade.dk2 said:
And stop that offensive attitude, thank you.
Ok,thank you too,but your attidute is way more offensive than mine.


....

oh and btw you use reals by yourself instead of locations,doesn't that mean anything ?

Good morning Nantuko,

You appereantly did NOT read what I said in my first, what was it, three posts, or in case you read it, you just did not understand it - the same about the topic PitzerMike and Vexorian posted in.

Well, I'll waste my time and explain it yet another time.

From the beginning, as stated in my posts, locations are faster in case you don't take clean up and creation in consideration. Why shouldn't you take that in consideration? Basically because clean up is not needed for all scripts.

There are places in map scripts where you want to use the same point during the whole map.

I have programming knowledge as well, I thought you knew that already, but it doesn't really matter.

Everybody knows that both Vexorian and PitzerMike are way better and more experienced programmers than you and me together, so it isn't really about "copying what other people says".

This is the most idiotic thing I've ever heard.

You can compare it to if I said "humans needs water to survive". Well, that's the truth.

But you must have serious psychical problems, if you can't share other people's opinion, even though it's right? No, you want to have your own. And while you're speaking of my lack of originality, you have a spellbreaker in your avatar? Wauw, that's original.

Childish.

And again, not all location taking functions are calling real functions, some functions do, but I don't use these functions so it does not really matter, and if I did, it would not matter either cause, again, it's the function's fault, not the location's.

And yes, I use reals myself to spare the cleanup time. But that still does not change the fact that locations are faster when you don't take cleanup in consideration.

And again, act in a civilized manner, people loses respect for you when you can't post without putting an "omgwtf!" or "???who???" in your posts. You won't come long in life with that.

Best regards,

Blade
 
Level 8
Joined
Nov 27, 2004
Messages
251
well you are the one who doesnt want to understand. you are the one who has psychical problems!
I told something and you directly attacked me.This is how you do respect other people's opinion.

That ??? who ??? was pointed to you blade,to tell me a name on who told you that passing 1 memory pointer is better than passing 2 reals ?
---

stop acting like that , and tell me right here , right now what is FASTER
-------------------------------------
local location l = Location(0,0)

call SetUnitPositionLoc ( u , l )

call RemoveLocation ( l )
set l = null
------------------------------------

or


----------------------------------------
local real x = 0
local real y = 0

call SetUnitPosition ( u , x , y )

----------------------------

awaiting for you...


edit:btw if you use locations you will be forced to use functions that take locations,unless you want to use the ones that take reals and use GetLocationX/Y which will mke it even more dumb for you.why? useless calls.


so... still waiting your answer on which variation is faster.
 
Level 7
Joined
May 6, 2005
Messages
390
Nantuko_Husk said:
well you are the one who doesnt want to understand. you are the one who has psychical problems!
I told something and you directly attacked me.This is how you do respect other people's opinion.8

I defended myself against your not-so-kind post. Read what you type before clicking that little submit button.

That ??? who ??? was pointed to you blade,to tell me a name on who told you that passing 1 memory pointer is better than passing 2 reals ?

Do I have to say it a third time? PitzerMike did it in
this post, Vexorian did it in this post. Learn to read, I've posted this and the link several times before now.

---

stop acting like that , and tell me right here , right now what is FASTER
-------------------------------------
local location l = Location(0,0)

call SetUnitPositionLoc ( u , l )

call RemoveLocation ( l )
set l = null
------------------------------------

or


----------------------------------------
local real x = 0
local real y = 0

call SetUnitPosition ( u , x , y )

----------------------------

awaiting for you...

I answered this already, check my above post and stop being a troll.

BUt, well, I'll say it a third time again, when used in this case it is faster to use reals but that's only because you have clean up and creation. In some functions you don't need that, which means that it will be slower. So it depends on the function.

edit:btw if you use locations you will be forced to use functions that take locations,unless you want to use the ones that take reals and use GetLocationX/Y which will mke it even more dumb for you.why? useless calls.


so... still waiting your answer on which variation is faster.

Some natives forces you to use locations, ever heard of GetSpellTargetLoc and GetLocationZ? No real equivilants exists for those.
 
Status
Not open for further replies.
Top