EEex: What is it and why is it important?
Endarire
Member Posts: 1,519
Greetings, all!
My family and I have been eagerly anticipating IWD-in-EET but that requires "EEex." What is EEex, what's progress on it, and why is it vital to finishing IWD-in-EET?
Would EEex also allow Planescape: Torment in EET?
My family and I have been eagerly anticipating IWD-in-EET but that requires "EEex." What is EEex, what's progress on it, and why is it vital to finishing IWD-in-EET?
Would EEex also allow Planescape: Torment in EET?
2
Comments
@Cahir: It can be ported to Mac and Linux, it's just a significant amount of work. A loader must be created for each platform respectively, and since I don't work with these platforms + don't have enough experience in this area, I can't do it myself. @fearless is responsible for the Windows loader even existing, before that I was modifying the executable outright.
@CrevsDaak is working on a Mac loader, but admittedly my own shortage of time is preventing EEex from taking advantage of a possible loader for Mac / Linux. EEex currently modifies the game executable via pattern matching + writing x86 assembly. Mac and Linux versions of the Infinity Engine titles are 64bit, making the current EEex codebase incompatible.
The endgame is to abstract away all platform specific code from EEex. This requires the creation of a simple intermediary language that compiles down to either x86 or x64 assembly respectively. Alternatively I could maintain a version of EEex for each respective platform, but that would make maintenance extraordinarily difficult. In addition, all current pattern matching + executable patching has to be rewritten for Mac and Linux builds, because each OS-type executable has differing machine code output.
I fear the chance of iOS and Android compatibility is near to none. To the best of my knowledge EEex on iOS is completely impossible due to how locked down the OS is. It might be possible on Android, but Android compatibility it is the last ticket on my priority list, (and it might not even work out).
Correct, they are 32-bit.
He's known as @swit here, ain't he?
As mentioned by @ALIEN, the windows builds are currently 32bit, but I had raised the question of them moving to 64bit windows build (when/if patch 2.6 arrives) in the Ask Beamdog thread, but haven't seen a response yet.
If they do release a 64bit windows build, it would require a 64bit loader, with the 64bit EEex.dll, which I have provisionally created the loader part for (EEex.exe (x64)). The 64bit EEex.dll requires some work to port over if that situation ever arises - the basic skeleton of the EEex.dll x64 has been started, but no major porting of code has occurred - as awaiting additional information or patch release.
I have investigated the ability of porting PST into EET previously. My conclusion was that there were no super glaring issues porting PST into BG2EE engine, at least in terms of engine functionality. The biggest issue that I encountered is that the scale of maps in PST is 25% larger (e.g. characters and maps in PST are 25% bigger than they would be in BG2 by default), and rescaling cannot be entirely automated, which means someone would need to go through and handle the light/height/path maps for all the areas.
Once iwd in eet is released, modders can change anything they wish, and in time manual work arounds can be made for compatibility. Quote me on this 5 years after iwd in eet launches.
Likewise, to all modders out there, on behalf of my gaming family, I salute you! <salute>
correct. From technical point of view it's the other way around - IWD2 requires IWD:EE resources, which are not bundled with the mod. And since the IWD2 content in the future is also meant to be installable on top of IWD:EE, I prefer to keep it like this.
From BG story perspective IWD2 storyline is also used as a common framing for IWD2, HoW and TotLM content (optional quest with travelling to Ten Towns as a mercenary group to help deal with goblinoid problems).
IWD-in-EET has not been released for windows either and I don't think it's ready for open github access. Like in EET case it will be uploaded once the mod is ready for testing (hopefully in a state that makes the mod enjoable for players - so not now, when some things straight up don't work yet or have known issues).
Both EET and EET Tweaks are compatible with Windows, Linux, MasOS and I think I've implemented everything you requested regarding iOS support. Also according to EEex documentation there is a chance for EEex to support other non-mobile operating systems in future.
Once publicly available, I'm perfectly fine for you or anyone else to work on a stripped version of the mod that works without EEex. I'm not interested in maintaining more than 1 version of the mod myself though, sorry.
To be truth, choosing an IOS as a main OS is also a decision that was made. Each decision has consequence. It was clear from the beginning that modding on IOS would not be as easy as modding on Windows (or even Mac or Linux). But to be honest, I'm also not convinced about forcing players to use EEX to be able to play IWD1 part. But that's @swit decision, and we should respect it.
Saying that he did it because he doesn't like specific OS (or company that is behind it) or just doesn't want his mod to be played by non-Windows users is just silly.
I'm pretty sure you wrote some time ago that the only way for you to play IE games these days is to play on your IPad, so I assumed you use IOS. If I misremembered something and that's not the case, then I apologize. If you use Mac, as I understood from previous posts, it's not impossible that EEX will be compatible with Mac someday.
I stand by the rest of my post, though. Accusing @swit of ill intensions towards no-Windows users seems silly. I'm pretty sure that @swit will not block access to IWD-in-EET to non-Windows users after EEX gets Mac compatibility. Because only that would be ill-intended action.
Some tension arising from the changes in the project's direction is completely understandable.