Where are we at with specifications?

I had a series of weird experiences.
  • Anybody familiar might have seen last year on my YouTube channel, a commenter named gordo6908 asked me to load the entire map of Eastern Kingdoms from WoW onto my modded Warcraft 3 client. I decided to try to do it, maybe to make fun.
  • It worked fine. By Christmas there was this game on my computer that had WoW dark portal background screen but warcraft 3 menu buttons, wherein I could click on "Azeroth" or "Kalimdor" as the two possible maps in the "Single Player > Custom Game" section. And then I could log in an run around Barrens and Westfall and these sorts of places. I built some Night Elf buildings in the Barrens using night elf units that I preplaced north of Barrens in Ashenvale, so that it was like a little army coming down and colonizing part of the barrens for the alliance. And it had the Warcraft 3 units like Wisps building the buildings in the exact WoW Barrens map. Or similarly in Westfall, I had some peasants and made a guard tower in the central camp, and then got attacked by the Warcraft 3 bandit/assassin/brigand units that I spawned into the world and defended against them with the guard tower, then walked the hero character over to Deadminds and wandered through the cave under the world. And all the while I spawned a character into the world with the customizable hair and equipment skin, and gave the character a mount, and could mount up and run from Teldrassil to Feralas, or from Eastern Plaguelands to Stranglethorn.

Weird menu screen that chooses Azeroth/Kalimdor:

1767754737600.png


1767754663869.png



Standing in Ironforge gates (under the ground not above it!) while having Arthas in the distance (lol):

1767754566631.png


This WoW character standing in front of Warcraft 3 ancients, with a Reforged night elf runner in the screen as well to show off the hybrid engine hack.

1767755908551.png



I would have thought all of that would not happen. That all sounds like it should've been stupid and impossible to accomplish. If I read a story of someone doing it prior to me attempting it, perhaps I would have perceived it as a complete joke.

But the method to the madness, the real secret behind why I could do that, is that the documentation of loading WoW data was extremely straightforward and easy because it was so well documented -- by other people, not by me! At times I want to be excited about "my" work, but maybe it's actually just freeloading off of someone else's work. It is not real / normal for someone to sit down in a couple of weekends with a game engine like Warcraft 3 and load the World of Warcraft map into their own Warcraft 3 thing. I don't know how to do that. I just copied code from the wiki and from someone called barncastle on GitHub.

The method to my madness, at the end of the day, was mostly to read from https://wowdev.wiki/ which brings to mind a really interesting problem:

Where the heck is a corresponding website for Warcraft III?

Perhaps an attempt is being made by @eejin at the HiveWE page here (Home), but all I have to do is look at the MDX section to see that this quickly devolves into a section of mad rants with the title "Quoted from Retera on Discord:" which spends 6 paragraphs trying to portray the basic programming concept once explained by MindWorX / "William" on Discord in about 1 sentence by saying that the animation tag parser treats everything as a comment following any invalid text or characters, and - is considered invalid so Stand - 2 with the "comment" portion removed is literally just Stand.

Additionally, eejin's thing explicitly says it only supports the latest game version. Whereas that WoW Wiki page seems to document all the versions, in a fairly straightforward way with version numbers.

Is there a Warcraft 3 specifications wiki that is more full/complete that I'm not aware of? Even recently someone showed up in one of my Discord servers celebrating that they were able to render the Peon's portrait file in some other pipeline that looked like Blender or something. And surely they would eventually end up on the endless software development treadmill of reinventing or re "discovering" knowledge that people like Ghostwolf with the Hive's "View in 3D" button spent many, many years investigating. One need even look no further than recent model uploads to the Hive website such as this wherein the users find themselves arguing about KRAL tag support and what's Reforged and what's not, because of how badly we've handled knowledge transfer, software, and getting this kind of information out there. This despite the the aforementioned Wiki page I was talking about even documents KRAL itself, and clearly without listing a minimum version (ergo this is not a Reforged only tag)!

What gives? Why didn't we make the universal War3 knowledge wiki like this?
 
Last edited:
wowdev.wiki/MDX#SEQS

3x-webp.569028



You, Retera, are of course completely right. I do not currently persue as great endeavour as yours to create an independent, Warcraft 3 compatible modding engine. Instead, I have been tidying up my little corner.

When I became interested in a map, I wanted to know more about it. I was met with three obstacles:
1. How do I open a locked up map in any capacity?
2. I didn't know Jass. At all.
3. I didn't know GUI triggers or the scripting API that Jass uses (aka natives)

There began my own journey. Soon after I got the map author's permission to hack at the map. I now had access to the open, unlocked map. Yet the bar was raised higher: the map had a severe leak and... I didn't know anything about that subject either (#4)!

After unfruitful attempts to migrate the map to Lua and diagnose leaks and now desyncs (#5!) there, I gave up and took the side quest: let's document the rest of the API, so I can gain understanding and return later. This is the beginning of my contributions to jassdoc.

I have been properly documenting my findings along the way. Maybe not as proper as a wiki would allow for. For example, my first big post here on Hive analysed and benchmarked strings behavior in Jass and whether they noticably leak (technically they do, but it doesn't matter). It seems this has been a decade old unsettled debate / unproven fact. Then I finished documentation of the Preload API. Two decades after the game's release ... :')

I have tried to motivate more people to contribute to jassdoc. Few share this interest, but I'm thankful to occasional contributors and lep for reviewing and hosting the bot.

In the grand scheme of things, this helps map makers. Not just in terms of time. Proper tooling eventually allows for better maps. And for its time, World Editor was damn impressive tooling!

But we have made little progress since. World Editor extensions (JNGP) are abandoned and undocumented. JassHelper (as in Zinc/vJass) is undocumented and abandoned. Vex's Optimizer is broken but still being used by many. Alternative building systems (ceres) didn't gain traction.
There's some good developments too. @Antares works on a completely insane project of an in-game IDE. Then the Typescript community have their w3ts project, but it's their own little contained sandbox.


The wiki.​


We have had The Helper's wiki. Few articles have been written there, it's been offline for years at this point. Like I told you before, having millions of players (WoW) certainly helps with intrinsically motivated volunteers.

Today, The Helper's very old World Editor articles remain one of the best hands-on tutorials for it. I keep referring to object field explanations regularly. Though being a web 1.0 resource, it's not opening itself up to edits and updates. Not that it stops anyone from doing so, but so far nobody has made a newer update.

At the same time we have more than enough people working on maps, tooling, libraries. I want to end this post with one question:

Why don't you, hackers and tinkerers, write down your arduously gained knowledge along the way? People in the 90s and 2000s did.

We could've had stuff like Better Triggers many more years ago. Other tools would've been in better shape, including HiveWE and, well, Warsmash too. This list is not exhaustive. Documentation and tutorials would've allowed the other developers among us (sus!) to spend less time reverse engineering and understanding, and more time creating cool new stuff.

PS: By the way, Retera. All these meme novels you write could've been something else too. L-like expansions of jassdoc :3
 

Attachments

Last edited:
But we have made little progress since. World Editor extensions (JNGP) are abandoned and undocumented. JassHelper (as in Zinc/vJass) is undocumented and abandoned. Vex's Optimizer is broken but still being used by many. Alternative building systems (ceres) didn't gain traction.
YDWE and w3x2lni weren't abandoned, yes, the authors left, but they left open sources and even some documentation, but did anyone try to figure it out?
Most of my problems related to working on YDWE were related to lua, and given some facts, I can assume that you can understand it quite well, this means that there are people here with useful skills, but I don’t remember anyone offering me their help.
The reason for the low progress isn't that someone has abandoned their projects, but that everyone thinks they're the only ones right.
Also, they prefer to do interesting things like porting WoW to the wc3 map, instead of truly useful ones.
For some reason, people don't understand that wc3 exists for mapmakers and players, and not for conducting creative experiments here.
No convenient tools > no mapmakers > no maps > no players > end.
This is just some kind of farce.
 
@Retera You can add to the Hive wiki about file formats and even other pages like how I wrote down how some parts of MDX rendering works or MDX trivia where a bunch of these things are either compiled from tidbits found everywhere or new information never written down. The HiveWE wiki is open for edits so write write write!!!!

If you want to create a new page then shoot me a ping on Discord as that does require special priviliges.
 
Back
Top