Where does the WeiDU language come from?
Alonso
Member Posts: 806
I'm learning the basics of IE modding, including some basics of the WeiDU language, and I'm quite curious about the origins of this language. Did Weimer create it from scratch or did he use another language as a starting point? I've heard that it's based on C, but it doesn't really look much like C. So where does it come from?
0
Comments
And, by the way, is this our messiah?
Anyway, how did things change with WeiDU? How did modders do their modding before the WeiDU language was available?
Well, two different answers, depending on whether you're talking about making the mods or distributing them.
BG2 did ship with a script compiler but it was pretty crude (and aimed at player AI scripting), and pretty much everything else was hex editing. Given these limitations, the two main early groups were the old Yahoo! scripting group--which including Gaider, @Cuv, and some other old timers and eventually led to Ascension--and TeamBG which was dedicated to deciphering the file formats (eventually becoming the IESDP) and writing tools based on their research, most of which were pretty specialized and limited. It wasn't really until you hit DLTCEP and Near Infinity that you started having tools that could handle everything.
Distribution at first was pretty much zip files, often times with an included tlk file, to be dumped in the game folder. Eventually TeamBG came up with IAP and TBG files for distribution, which weren't much better. Meanwhile Wes was busy working on the Weimer Dialogue Utility so that he could sort out dialogue for his Solaufein mod. WeiDU, once released, was pretty much a superior tool from the get-go for distribution. There's was a ton of drama and bad blood from the ascension of WeiDU as the primary distribution tool which were ultimately pointless (though it did lead me to start G3 as a refuge from the silliness), but really the nastiness is better left forgotten.
Fortunately these times are over and all the historical modders still on the scene are the ones who made things happen (and, even if he retired, I include wes who provided us with WeiDU as an awesome legacy).
I think the simple answer is just that it solved a pretty thorny problem out of the box. The problem with the stuff that came before was that it was very difficult to get mods to work together, and the primary culprit was conflicts with the tlk file itself. While TBG/IAP formats did allow you to assign new strings without having to overwrite the tlk file outright, WeiDU did this in a substantially easier way.
This opened up possibilities that really weren't available before--since players generally would (from a practical standpoint) install one mod, mods tended to be huge (Darkest Day, Dark Side of the Sword Coast). Now suddenly you had the possibility of, say, just adding an NPC, or changing some rules you don't like, or adding some kits--and they could all work together.
It helped that it had some talented folks pushing Wes early (Jason Compton and Ghreyfain) as well as a lot of evangelizing about the benefits of WeiDU, though the latter was also the source of a lot of the awful infighting that went on. @Gwendolyne 's characterization is fair, as we had fights between forums, admins fighting admins at their own sites, forums splitting off into other sites. (The worst of it was generally on IRC, so a lot of folks didn't even see the half of it.) I think the thread @jastey is talking about might be this one (the good stuff kicks off here). While some really good mods got produced during all this silliness, it's kinda sad to think what more we could have if so much time hadn't been wasted on drama.
Eventually, it was just critical mass and inertia. Players wanted mods that played well together; 'WeiDU' and 'compatibility' became synonyms, so they pushed modders to use WeiDU. WeiDU kept adding new functionality, which opened new horizons for mods; in turn the modders ambitions grew and they pushed Wes to add even more capability to the tool.
The poor man! And his poor liver. But yes, I understand and agree to the sentiment.
I imagine that they are you plus two other people.
"We are the Gibberlings Three. As merry a band as you ever did see."
Everywhere else at the time had grand, impressive names--Chosen of Mystra, Forgotten Wars, Ironworks, TeamBG, etc. I just wanted something silly and fun.
G3 started as the Delainy forums since Bri and I wanted somewhere to brainstorm outside of the current infighting. Pretty quickly we attracted a lot of other folks who wanted the same, and we got a rep for being a drama-free place to make mods and have fun doing it. I still think we're the only group that could pull off something like G3A.
My intuition, though, is that all the modding would be much easier if the source code of the game was available to modders. Is that correct? If so, what would be the forces acting for and against it?
Good luck with trying to get access to the source code..
@jastey I wish IWD2's source code was kept like this.
Pretty much. The IESDP is mainly the result of a lot of tedious experimentation via hex editing.
At this point, honestly, I'm not sure source access would make much of an impact. Yes, there are certainly some changes we want that we can only get via source access--or via @Bubb 's amazing LUA work--but the thing is, we've had a project that allowed us to do this for years.
GemRB is an open source port of the IE engine which allows mods to go well beyond the originals and EE--for example, you can play with 10 party members via the 10pp mod--and had iOS and Android capabilities long before the EEs, and it supports both 2e and 3e rules. However, adoption of GemRB is low. For the players, it could be that they don't know about it or find it too hard to use; I don't really know. For modders it's probably more nuanced, but I would guess it's more about potential players. There's a lot of cool stuff I could do with, say, Divine Remix on GemRB that I can't do on EE or the originals, but the tradeoff is that some or all of the mod's features become GemRB-exclusive. Instead if I continue to make mods that work on the originals, I know they'll also work on EEs and GemRB, maximizing the potential audience.
As for whether the source would ever be released--frankly, I can't see any way the source gets released until it stops being a revenue stream, which seems to still be many, many years in the future. (Speaking for myself, here, not as a Beamdog person. I have no idea if it's ever been considered, and any such discussions would occur many levels above me regardless.)
Mostly it's to prevent other parties from using your sweat, blood and tears drenched work in their own projects with as little effort as lifting a finger. If they wanna benefit from your code, they either have to license it or figure how to do it on their own.
Obviously, I can't imagine anyone wanting to use IE for a commercial project nowadays when there are Unity and UE4 lying just around the corner, but honestly I don't think you really need the source anyway to mod pretty much anything feasible.
From my rather limited experience from two years back it was still a bit rough to get GemRB to work as a normal player. Also, I does not officially support the EEs (yet) ?
I stopped using DLTCEP because of an issue with Windows Vista or Windows 7 and its inability to let DLTCEP modify anything unless I disabled a process that might well break my computer beyond repair, and because Near Infinity at the time had at least one important function (I forget which) that DLTCEP did not. Near Infinity loads up a little slower, but its search functionality is far superior, so even with Windows 10, I see no reason to switch back to DLTCEP.
Plus, Near Infinity had a better name.
But NI's resources goes above and beyond. It is way easier to navigate from a .spl to a .itm to a .pro to a .cre etc...
And NI is way more stable. DLTCEP crashes 3 in 10 times I use it.
My main issue with NI is that it doesn't display the name of things, just the code. So if I want to mod Belhifet I can't look for Belhifet's name, I have to previously know the name of its .cre file... and to find it look into DLTCEP what makes me end up editing things in there.
The same thing happens with items and spells. I just get back to NI when I'm using some specific opcodes that aren't properly covered by DLTCEP yet.
(Probably there's some config in NI to make the names appear but I wasn't able to find it so far).
The good news is, this can indeed be done in NearInfinity. Click "Search" at the top, and then click "CRE/ITM/SPL/STO" in the list. It gets you to a screen where you can search for creatures, items and spells by name.
I've always viewed NI and DLTCEP as the Infinity Engine version of vi vs. Emacs. They're both capable of doing everything you want and you'll probably settle on whichever data visualization feels more comfortable. (And before you ask NI, with a few changes to the default settings, has always been way more comfortable to me.)
DLTCEP was originally built for a DragonLance Total Conversion which, like all TCs, was eventually abandoned. It was built by @Avenger_teambg and relied heavily on getting the latest data from the IESDP (the IESDP home page still maintains links to dat files for it). I'm not sure what prompted Near Infinity, but I don't remember it ever being affiliated with any of the modding sites and AFAIK the author, Jon Olav Hauglid, never made any mods. The original NI site is still up.
It's a little unfair to compare the two right now. @argent77 is still actively working on NI (how he finds time to also work on all of his excellent mods, I have no idea) whereas @Avenger_teambg is enjoying some well-earned rest. For a while the opposite was true after Hauglid retired.