• 🏆 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!
  • ✅ Time to vote for the top 3 models! The POLL for Hive's 6th HD Modeling Contest: Mechanical is now open! 📅 Poll close on July 16, 2024! 🔗 Cast your vote now!

Choosing a scripting language, is Wurst worth it ?

Status
Not open for further replies.
Level 1
Joined
Jul 9, 2021
Messages
3
Hello,

I've used to create some map in World Editor since years but I've always used GUI scripting.

I'm now decided to try scripting because i'm facing some limit of the GUI mode. But I saw that several language are available: Wurst, Lua, JASS...

Some post already discuss about the difference but I'm concerned about W3 reforged version, and I'm wondering if those comparison are accurate for my context.
I've already programmed in several language (but very little in LUA and nothing with vJASS / Wurst).
I don't plan to make complex graphic / UI scripts, mostly game logic (and I hope having less code redundancy and more control on variables and unit custom attributes).

I saw that wurst was considered as the most complete, and it has a vscode extension. Anyway it seems to have a complex build system and is only supported by community. For what I understand, I cannot easily mix GUI and Wurst scripts and I currently have some difficulty to understand how I can reference specific object on the map (it seems that I cannot simply click on the unit to reference it because i'm outside of the editor, I guess it use a name or id system).

On the other side, I saw many other post suggesting that LUA is the way to go. And vJASS / LUA are incompatible.

So, should I go with Wurst or is it not worth it for my usage ? Otherwise, should I prefer vJASS or LUA ?

Thank you very much for your advice.
 

Uncle

Warcraft Moderator
Level 66
Joined
Aug 10, 2018
Messages
6,855
You probably want to use Lua as it opens up many doors. For instance, I write my maps in C# which compiles to Lua -> Orden4/WCSharp. Others do the same but with TypeScript. So just having your map in Lua mode will enable you to use these other languages.

vJass is old and maybe outdated but it still works and has A LOT of support since it was used for so long over the years. I suppose Wurst is in the same boat.

So I guess if you want access to the majority of community made stuff and you aren't interested in the new toys then stick with the old stuff. Otherwise, I'd recommend WCSharp since it uses an easy to understand language and the provided libraries contain most of the essential systems for a custom map. My only gripe is that there's no Damage Engine but you can always make your own or try to convert Bribe's Damage Engine to C#.

TypeScript appears to be a great option as well but I haven't really looked into it.
 
Last edited:
Level 11
Joined
May 29, 2008
Messages
134
I'm pro TypeScript. The quality of life is pretty good. It's a flexible language.

You don't really need a damage engine in code anymore, due to the EVENT_PLAYER_UNIT_DAMAGING and EVENT_PLAYER_UNIT_DAMAGED events (which aren't exposed through GUI AFAIK).
 
Level 1
Joined
Jul 9, 2021
Messages
3
Hi guys !

Thank you for your advice and sorry for the late answer ^^.

I've some experience with C# with Unity, it could be a good option. But for what I can see (Qbz23/War3CSharpTutorial) it require a more complex build system than scripting inside the game editor, isn't it ?
On the other side, I've some experience with JS so I guess that TS should not be very different. But it is worth to use instead of LUA ?

Thanks :)
 

Uncle

Warcraft Moderator
Level 66
Joined
Aug 10, 2018
Messages
6,855
Hi guys !

Thank you for your advice and sorry for the late answer ^^.

I've some experience with C# with Unity, it could be a good option. But for what I can see (Qbz23/War3CSharpTutorial) it require a more complex build system than scripting inside the game editor, isn't it ?
On the other side, I've some experience with JS so I guess that TS should not be very different. But it is worth to use instead of LUA ?

Thanks :)
You wouldn't want to script inside the editor anyway, using an IDE like Visual Studio with intellisense is much better.

I'm on the C# bandwagon because it's pretty great being able to code and launch your map from Visual Studio without even having the editor open. That and the libraries Orden provided are awesome (automatically generating ids for your Object Editor data is amazing).

I was using pure Lua originally and it wasn't a very pleasant experience due to the lack of debugging and organization. I imagine TypeScript solves that issue and still offers very similar results.
 
Last edited:
Level 1
Joined
Jul 9, 2021
Messages
3
You wouldn't want to script inside the editor anyway, using an IDE like Visual Studio with intellisense is much better.

I'm on the C# bandwagon because it's pretty great being able to code and launch your map from Visual Studio without even having the editor open. That and the libraries Orden provided are awesome (automatically generating ids for your Object Editor data is amazing).

I was using pure Lua originally and it wasn't a very pleasant experience due to the lack of debugging and organization. I imagine TypeScript solves that issue and still offers very similar results.

Actually I don't really need to code inside the editor, but I usually alternate between map design and scripting during development. Because making terrain help me to find idea for events, mobs, quest, items etc.
You thinks it's not a good idea ?

Thanks :)
 

Uncle

Warcraft Moderator
Level 66
Joined
Aug 10, 2018
Messages
6,855
What's not a good idea? These tools offer a lot more freedom than we had before, so do whatever you'd like.

I'm just saying how useful it is that you can code your map without ever having to open the trigger editor. That and you can even test the map without having it open which is a massive perk especially since larger maps can take forever to load and a bloated trigger editor becomes frustrating to work with.

I have both my map open in the world editor as well as Visual Studio open for coding, so it's not like you can't do both at the same time.
 
Last edited:
Status
Not open for further replies.
Top