Jump to content

The Dreaded IWD Fixpack


Recommended Posts

We have our reasons, indeed. I really don't know exactly what to write. I'll try to be as comprehensive as possible, but then some advanced knowledge in certain fields of software technology might be required to understand certain parts. Of course, I'll bring up concrete examples and points that can be understood easily, but the most important point (interfaces) requires some additional knowledge.


I've just finished it, and it took a few hours. (I guess certain parts even could be used as a theoretical guide for IE modders.) It's very long, but if you read it, you will understand a few things (unless you've already known them, of course). It's no more than reading the daily newspaper (unless you only check the sports page or read online news :) ). I welcome any questions, I've spent much time with this so I'll answer if something is not clear.


There are four main problems with G3 Fixpack:

Its major developers seem to have very strange notions. It results in some sort of urge, which forces them to search for more and more (minor) things to be fixed. This wouldn't be bad, but last time I read about it, it seemed to be at such a level which isn't purely beneficial any more. I will detail the reasons later.

While they promote it as a community project, actually they are just expecting ideas for things that can be "fixed" in some way. Again, this wouldn't be bad either, but unfortunately they don't really accept criticism/suggestions if it's contradictory to their standards and notions about fixes. I'll also detail this point later.

As a direct consequence of the first problem (above), changes are often implemented quickly and sometimes with inadequate care, unthoughtfully. Most of us here at BWL core team are in favour of "proactive" development, and not "reactive". The latter one is also unavoidable and required, of course. (Bug reports, fixing, testing etc.) But its significance and realization greatly matters. G3 Fixpack developers often argue with things such "every mod has some bugs" when G3 Fixpack is criticized to be buggy in its every release. It is true, but it could have less or less severe bugs, if certain guidelines were followed. Further explanation can be found in a later part of my post.

All those above would be more or less okay, but they call it "IWD Fixpack", and consider it and spread it as the (new) standard fixpack for IWD. While most players won't notice the problems introduced by the G3 fixpack, it means severe risk to many types of present and future mods. I'll clarify this too.

All in all, the apparent desire to make the mod bigger with new "fixes" has unpleasant consequences: severe bugs in each release (perhaps only revealed after much time), unnecessary changes on the original game content (that may break certain parts of other mods or force them to "fix" a fixpack!), and mandatory changes not agreed by every player (I'll show an example). Problems for modders and players. More detailed explanations can be read below.






There are more problems. The questionable "fixes" is only a part of it, but an important part. I suggested an optional component for questionable, subjective fixes -- which they refused. It's OK that they reject bigger suggestions that are contradictory to their guidelines, but then they shouldn't defend themselves all the time with this "community project" disguise -- implying that the community participates on such a level that would seriously influence their major changes and decisions. In a certain respect, every mod is a community project which has a forum for feedback. On the other hand, none of the mods even with a public forum are clearly "community projects", because they are not like wikipedia with free access and certain rules. This applies to G3 Fixpack as well. Anyone is free to contribute? Anyone is free to tell his or her opinion? Yeah, but they even won't consider it if it's against their notions. Still, suggestions of many community members are being implemented? Those suggestions which the main developers agree with. Those players and modders who don't agree their basic guidelines even don't visit the forum to suggest anything. This is similar to the debate of two politicians in the TV, where the viewers can vote for one of them by phone (SMS) during the talk. None of the experts consider it representative statistics (i.e. reflecting what people think about the politicians), because the voters are from a certain group -- those who are interested in that particular program on TV channel -- which isn't independent of their political view. (E.g., fellow-travellers of the right wing aren't interested in that topic, so they don't watch the program, and thus do not vote at all.) Similarly, those who agree with the methodology and principles of G3 FP developers often visit their forum and offer their suggestions. I can't say "please implement this particular change" or "please remove this", or I would be forced to list all e.g. all Alignment "Corrections" to be moved to their "optional but cool" counterpart. (And the answer would be: "please give concrete examples to each one you want to be moved; why shouldn't they be in the core component?". Why are they in the mandatory, core component at all -- in the same component which includes the very crucial game fixes?) When I tried to start the introduction of my point about theory and problems of general nature, none of them was interested. As you will see below, questionable fixes and optional components are not the main problem.






This is how the G3 Fixpack is being promoted:



All the fixes of Baldurdash, plus a few hundred more. Now available, with more fixes being added in every release.

Of course, it would be the smallest problem (in fact, not a problem at all) how someone promotes a mod. Unfortunately, G3 Fixpack exactly seems to reflect what they write. (While it's not my main point, I decided to write down some criticism in the next lines.) First of all, a "few hundred" fixes more? 90% or more of the important, common bugs have already been fixed by Baldurdash. So I wouldn't emphasize "hundreds of fixes" unless I wanted to convince players to use the mod in any way. "With more fixes being added in every release". Are we so sure that there will be more fixes? "More changes being added in every release", "more refinements being added in every release", ... -- this would be different, and acceptable. I remember one of the G3 Fixpack developers saying (not sure whether on IRC or forums) something similar to the following: "IWD contains many bugs, and we decided to find all and correct every -- even the smallest -- bug.". This is a very nice approach and goal, but as I've said, the urge it seems to cause hasn't become beneficial, eventually. (The quotation might be slightly inaccurate, the wording might have been different. Nonetheless, even if no one had said this, it wouldn't change anything on my point.)


Sometimes I get comments such as BWL (more accurately, 3-4 people from here) is the only one who has objections with G3 FP all the time. It is not true. A good example is Blucher, one of the authors of BG1NPC project, who also had a similar opinion about the effects of what I've called "urge" above:



I think if you guys are really wanting this to be the new standard in unofficial patches, then it should place an emphasis on significant bugs and errors. The main question should be "what can the Fix Pack leave out?" rather than "what can it include?"

Note: You can find the source here. I do NOT state that Blucher shares the same or even similar objections as we, except for that one particular point that he has told in the aforementioned post. I do not know anything about what he thinks about other matters raised by me.


Every mod contains errors. "Deprecated fixes" at the beginning of this page shows such an issue. It was deprecated after a discussion that followed my post, and was ended here. I'm not sure if the "urge" was responsible for making this mistake, but I believe it had some partial role. (The sentence "IWD is buggy, I must identify the bugs" might have been dominating the thoughts of the person who found the problem.) This is the smallest problem, though. Everyone makes mistakes, it's totally OK. You will understand my real doubts later in this post.


G3 Fixpack developers always say something like "please offer concrete examples" (occassionally: "more concrete examples, please") after criticism. Examples are obviously required, but they have never understood that my problem is of general nature -- which obviously affects the future of G3 Fixpack as well. I offered concrete examples as well, but that is not the main point. It's important to note, although this post is mostly general, specific examples will be provided as well.


So let's examine what is "fixed", how and why. First of all, it contains tweaks as well, many of them in different components prefixed with "Optional But Cool". It also includes other components, including one (if I remember correctly) for modders as well. These are OK. So let's restrict our view to those components which are supposed to deal with fixes.


The definition of "fix". In a discussion with one of their major developers, I offered a definition to them. After repeatedly asking why I got no reaction, I received the answer "it's not practical enough". Many of us at BWL believe that a fix should be interpreted strictly. That is, correcting a broken item is a pure fix, but implementing changes on a creature's alignment because "we think it's somewhat more logical" is not. Implementing significant changes "because we believe the developers' intention was this", also not a fix. (Though, no one has said Baldurdash, Baldurdash-WeiDU or any other works would be perfect & seamless in this respect. But this doesn't justify the many questioned changes of G3 Fixpack and the approach of its developers; on a side note, there is many more of such changes in G3FP than in BD.)


On the other hand, no one has said that that it's incorrect to implement cool things that can be (more or less) called "fixes"! Such quasi-fixes, tweaks and modifications are good -- if they are put to the correct component, with proper descriptions. No need to put them to a component called "Quasi-fixes" or "Tweaks" (or possibly "Optional But Cool"), it's enough if a "Subjective Fixes" component is made, with the note that its content reflects the opinion of developers and contributors AND that it may possible cause incompatibilities with other mods. It can be said that almost everything can be questioned, but can you question a sword which proficiency is set to Morning Star? It is really something to be fixed. To sum up, those fixes that are seriously subjective (and possibly questioned by more players) could be put to a "Subjective Fixes" component. So changing the price of a good item with an incorrect price of 1gp to a reasonable, logical value could be considered as a (strict) fix (provided we only have two, and not three components to collect fixes) -- if players have no objections. (For example, I wouldn't have any objection. And the proper price could be discussed publicly.) On the other hand, e.g. changing alignments of creatures is a more sensitive question. All such changes are strongly recommended not to be strict fixes. Is it a game bug that a member of smugglers is neutral and not evil because he attacks you after his business has just been revealed by a bunch of armed people (you)? Is this a BUG that requires a FIX (to be in the mandatory, core mod component)? Should such "fixes" be accepted to increase the total count so the mod adds "few hundred more fixes than Baldurdash"? Perhaps the guy started smuggling because he couldn't feed his 10 kids... probably better counter-arguments could also be told, but this doesn't change on the fact that such things are judged differently by every player, and should not be considered as pure bugs. Meanwhile this one might have been moved to an Optional But Cool component (estabilished after I and others told their doubts on a forum), but it doesn't change on anything. There are surely many other "fix" collections such as alignment changes; and even in case of Alignment Corrections, most of them (hundreds of aligment changes) remained in the Core component! Just look at the section "Creature Alignment Corrections" on this page page.


I can recommend reading the topic that also includes Blucher's aforementioned post. Doors not consuming keys. Maybe annoying to players, but did any of us have horrible dreams because we had to carry 4 keys sometimes when not having a Bag of Holding, or had to store some items in a chest of an Athkatla inn? On the other hand, how can modders design their work if they have to read every bit of G3 Fixpack's documentation searching for such dangerous changes? How can a modder involve an existing game item that he tested if it's possibly removed by the core component of a standard Fixpack? Install Fixpack and accept its changes without condition?! (On a side note, this also leads to a more theoretical field which I'll detail later.) One of the "consumed keys" used to break one of Improved Anvil's upgrades.


Quoting Blucher again:



Keeping the "odd" keys would be a good idea imo, for two reasons. (1) Some mods use these items, and (2) from a roleplaying perspective, it's nice to keep those items as little mementos of your previous adventures. In these games I always keep the notes, bounty notices, and other little odds and ends you can collect throughout the course of the game. Granted I usually only do this the first few times I play game when it's all still new and wonderful, but still...

And another player, Anomaly:



I really hate to have some keys consumed and not others, this is clearly a glitch in the original game. I hate to have a door opened because I have a key in my inventory without knowing it (e.g. without the famous SFX "key used" jcompton was talking about). I hate to have a set of keys without any means to know if one key have been used and can be discarded or not.

Two different viewpoints. So what to do? Different component! Fix too small/short? Then to the "Subjective fixes" (or whatever we call it). Anomaly can still install it, while people like me don't have to when choosing Core Fixes. What about "re-patching" it again by those mods which require a particular key? (Note: something very similar was mentioned in the topic I've quoted from.) Not too elegant. In fact, horrible. Making a mod (which is -- on top of it all -- supposed to be a fixpack) to fix the game, then in another mod fixing the changes made by the first mod (the fixpack)! Wouldn't it be better to put all problematic or questioned changes to that "subjective" component or to an "optional but cool" component in advance? Justification from the modder's view: let's avoid unnecessary changes that can affect other mods. Justification from player's view: as the opinion of Blucher and Anomaly reflects, every player is different; every player prefers other things. Justification from implementation view: optional component, or part of an optional component; harmless.


Later, they removed that particular key (the one which broke the Improved Anvil upgrade) as well as another key from their fixes after Rabain brought up some good arguments. However, all other consumed keys remained in the core component. (Please don't forget that when I refer to something in FP, it applies to the latest released version, unless I specify otherwise.) If this is how they imagine it (i.e. adding fixes and then removing/altering them if there is a demand), it's not good. It's reactive, and may cause much risk or worse: it won't be revealed until it breaks something in a mod (like it did with IA). It's not good to build on principles such as "we will add it to core fixes, and later we can change on it if it causes problems or some acceptable counter-arguments are received". Those who need a specific change (I don't call it fix) can install an optional component, and those who don't need it (or it would break another non-fixpack mod) would not be forced to install it as a part of the core component (which also includes the important fixes, which are otherwise highly recommended, required). If they handled it in this way, it's possible that Improved Anvil could list the "Subjective fixes" (or even only particular components) of G3 FP in the list of mods that are strongly not recommended; instead of doing the same with the whole G3 FP itself. So what I've always tried to explain to G3 FP developers is that their general approach requires a change. Concrete examples? There are 6 concrete examples today, there will be 15 tomorrow. No one knows. The problem is the root of the tree, not the leaves, unfortunately. For example, while the key consuming problem was sorted out, it seems that the aforementioned Creature Alignment "Corrections" may break clerics' scripts in Improved Anvil. They are in core component, remember. Improved Anvil is sometimes criticized by modders that it forces players to install everything in one component, and that it "restricts players" by using anti-cheat techniques. No one is forced to play IA. On the other hand, people who are misled by the statement about Fixpack introducing hundreds of fixes more than BD (which implies that there are hundreds of bugs in the game exclusively fixed by G3 Fixpack), those who believe this is the standard -- do they have a choice not to install mod-breaking "fixes" together with the other major and important fixes of the Core component? If they want the fundemantal fixes, they have no choice (or Baldurdash or BD-WeiDU, but "those are deprecated, you're advised to use IWD Fixpack instead").


Arguments of G3 Fixpack developers are usually the following: (1) They find the changes logical, they can be considered a fix. As I've said, this is completely OK, but subjective or dangerous fixes should be in an optional component with all necessary warnings OR in a different mod. (2) Trying to follow assumed developer intent (i.e. what the original developers of IWD tried to do, or would do), especially when a reasonable, logical solution can't be found or would be totally arbitrary. The problem with this is the same: how can you guess what the developers meant? Subjective, again. Additionally, there is an apparent self-contradiction (making mods to improve the game by changing what the developers did vs. guessing and realizing what they wanted). It's subjective, and uncertain. You can't be too sure your guess will be correct. Blucher's comments about the alignment "corrections" and guessed developer intent:



Also a wholesale change to NPC alignments to conform to some standard is another one of these changes that detracts from the game. Having, for instance, a Lawful Evil Majordomo (and others with surprising alignments) adds texture to the game world. We don't know what lies in the heart and soul of the Majordomo; he appears decent enough but that doesn't mean he is necessarily good. Seeing such a character show up as evil with a casting of Detect Evil makes one take notice and perhaps spurs the imagination. Regardless of these roleplaying considerations, can anyone really discern the designer's intent in these cases? It's possible that the character was based on a lawful evil Majordomo from one of their P&P campaigns. Who can really say that this character (and others) weren't meant to have alignments they have in the standard game?

On a side note, while I understand that implementing resistance to "devour brain" may be much work, would it be much more work than checking hundreds of creatures to examine if their alignment can be changed? (It's another matter that I might also not agree with the justification "it doesn't follow PnP in IWD anyway", but I am aware of the fact that BG/IWD can't precisely follow PnP in every detail.)


There is a BETA component of G3 Fixpack, but it's rather for untested changes, so mainly for technical purposes. The "Subjective fixes" (or any equivalent component with a different name, but same principle) has never been added.






Unfortunately, even putting the subjective parts to a different component is only a partial solution. Most players install such components as well; i.e. install optional but cool components -- it's Cool after all! The phenomenon (consequence of the approach of main developers) what I call "urge" is responsible for it, most likely. G3 Fixpack includes one or more serious errors (e.g. the one which may cause IA's cleric scripts to malfunction), and previous releases also included serious errors. A part of these errors are of technical nature (such as crash), which occur in every mod. However, if the "urge" was smaller, such errors might be made less often. Hopefully, the BETA fixes component improves this. On the other hand, the rest of the errors are due to unnecessarily modified content. Modified content which even isn't in an optional component (though, as I've said, this wouldn't help because most players install "optional but cool" components), but in the core component instead, together with the crucial fixes. A good example was the particular key that broke IA's upgrade, but there are still many removed keys in the core component! What if another mod would like to use one of them?


Now a more abstract view. Generally, a mod that affects the game in any way uses some method to connect to the game. To apply its change. This is called interface, entry point. Old TBG/IAP archives affected the game on file level (interface: the file itself, read by the running game), TP2 scripts modify it on data (content) level. (Of course, much more detailed classification could be made; no need for it here.) If you add a script block to a script file via WeiDU (e.g. EXTEND_TOP), your interface is the area script file. Your mod might add many quests, perhaps some of them can be started by talking to the NPC added by this script. The related quests are new content -- and if you use completely new areas, creatures and other objects, it's possible that the only connection point (interface) of these quests will be the modified area script! Other content is brand-new.


Why are interfaces interesting? Well, more mods may use the same interface. The effect can either be destructive, or non-destructive. Think of IAP files. What entities are affected? Entire files! If an IAP mod overwrites the file of Arbane's Sword, it "monopolized" the interface, because the whole ITM file is taken! A next IAP mod just overwrites Arbane's Sword, breaking the previous mod's changes. Now the ITM file is the "possession" of this mod! What's the fundamental difference between TP2 and IAP in terms of applying the changes? As we know, WeiDU allows the changes to be made inside the file. The philosophy (and method) often referred to as "patching" is simply minimizing the subject (data) of the change to the least possible size, when "occupying" the interface. Obviously, since "patching" can affect the smallest possible data unit required for the interface, it doesn't offer solution to problems such as two mods changing the same attribute of an object. Just imagine that they both change the price of Arbane's Sword. They need the same interface of the game. Such things are also often referred to as "conceptual incompatibilities", because there is a conceptual contradiction: "I also want to change the price in my mod, as well as you." That is, in this case the effect is always destructive. (What happens if one of the modders wants to change the price, while the other would like to decrease the enchantment? Is it destructive with IAP? What about TP2? Assume that the modder decreases the enchantment and some other features because he wants to make the sword less powerful; the other modder increases the price and other features -- not affected by the other mod -- to make it stronger. It is non-destructive, isn't it? However, one of them makes the sword stronger, while the other wants to make it weaker. Conceptual incompatibility? Depends who interprets it and how!)


The first example, the extended script is a perfect example of a non-destructive effect. An item can't have two prices (it will always have one interface), but a script can have multiple blocks, right? Adding another block won't be destructive in data level. (Note: interaction and thus incompatibility is still possible, but on a higher level, and not on data level.) Again, the interface was the script (or -- depending on the interpretation -- the script block), and the change was non-destructive.


Now a few words about dependencies. Notice that the interfaces used by a mod are dependencies. The mod depends on them. If Arbane's Sword is removed for some reason (Total Conversion?), the mod that changes it can't be installed -- or it can be installed (if the ITM is allowed as a missing file), but this feature obviously won't work. This may not be so horrible if the mod adds 40 other improvements that can be installed seamlessly, but imagine what happens if the script file is removed which adds the starting creature (with the starting dialogue) of your mod. Your mod won't work, because the interface was removed. Now you could ask: nice, but how can a script be removed (or why would a mod remove it) if it isn't a Total Conversion? It's possible, very possible! It's enough if all references to it are removed from the game! Arbane's Sword. If it can be found nowhere in the game (no creature inventory, no container, no script CreateItem etc.), the sword will end up as a miserable freebie in the BIFF or Override! You will see an example below.


Unfinished Business v15, which is the latest version at the moment. (I haven't played it as a mod in my game, so I have no opinion. In no way I would like to introduce it in negative light as a mod; it's just an example of how interfaces are removed.)



COPY_EXISTING ~ar0021.are~ ~override/ar0021.are~ /* Associates correct area script */

WRITE_ASCII ~0x94~ ~AR0021~ /* Corrected Crooked Crane, Level One */


The code above can be found on its TP2. It belongs to the "Restored Crooked Crane Inn" component. The original game had a different script name assigned to it (so not ar0021). It's a nice cosmetic change, but very dangerous. Dangerous because UB even isn't a fixpack, and breaks all mods that use this area script as an interface. (Of course even a fixpack also shouldn't do such a thing without serious justification.) (UB broke Tower of Deception v1 with this, and would still break v2 if Valiant didn't implement a change. Again, new fix to fix the other mod's fix?) Authors who create mods that use this interface might not have UB installed. In fact, many mod authors use an un-modded game (perhaps only with a fixpack), a fresh installation, so they will definitely use the original Crooked Crane script if they want to add something. The script reference which will be missing from all games that have UB installed.


Sometimes we (who have problems with the G3 Fixpack) get accusations such as "you simply do not like the fixpack, so you call your mods incompatible with it". As you can see, this is not true, and there are severe arguments. Including the interface problem. Unthoughtful "fixing" can be risky, because you may remove original game interfaces. I know that fixes are often required, and I know it well that complete, perfect solution is very hard or does not exist sometimes, but if we follow certain guidelines, the probability of problems can be decreased a lot. Again, one of those guidelines is not making unnecessary, cosmetic changes ("fixes") that may affect original game interfaces. In other words, changed alignments make Detect Evil spells work correctly (provided the alignment change is reasonable, logical), but may break mods that depend on their original game versions. Yes, even an alignment (or any attribute, even an area flag i.e. one bit!) can be used by a mod, i.e. a mod may depend on it! So changing anything in the original game must be considered very carefully. Making that key (Symbol of Amaunator) to be "consumed" was a very spectacular and typical example of a destructive change. Improved Anvil used it (and still uses it) for an upgrade, but since the interface was removed by the G3 Fixpack (in the game), that release of the fixpack broke IA's upgrade. The issue was addressed, but this is the case when we say: reactive solutions are inadequate. This is when I can't offer concrete examples to G3 FP developers; this is what I referred to as "theory" during a discussion with them. Because it's theory, it's an approach. You overwrite an interface, and if any other (possibly future) mod uses it, you remove the "fix" or ask that mod to fix your "fix"? You change something, and based on the feedback, you revert it in the next release of the G3 Fixpack? Because you got reports of concrete problems. Isn't it easier to follow certain guidelines (i.e. not manipulating original game interfaces unless really crucial), i.e. theoretical (= general) considerations?


Even if we follow certain guidelines, sometimes incompatibility is unavoidable. Conceptual or technical, sometimes it's unavoidable. (It also depends on how we interpret these words. When the same interface is used -- e.g. price of an item -- to apply changes, it is often considered as a conceptual incompatibility. Indeed, an item can't have two prices. On the other hand, it's also technical because the same interface is used twice. In this case, the technical problem follows from the concept itself, though. In case of mods that want to change the script name of an area to different references, it is a technical incompatibility -- at least, I wouldn't call it conceptual. On a side note, the statement "technical incompatibilities can always be solved" is very problematic. Maybe they can always be solved, but at what price? How far does the modder have to go? If the inventory of a creature gets full due to a mod or two, is it possible to add items by another mod? Not really. And it's not really a question of concept. Yes, it's given that a creature can carry no more than a certain number of items, but this is a relatively high number, so it's not surprising that a modder might want to add another item. Of course, you can probably solve such problems via script or something like that, but then you have to prepare your mod for it. So it's a serious matter of technical compatibility. (Fortunately, mods usually don't add lots of items to the inventories of existing creatures.) It's also important to note that solving technical incompatibilities is a reactive process, and requires time as well as information. If your mod is not prepared for it, you will be afraid forever that future mods will affect it, and you need to find a solution together for each mod.)


Compatibility is not easy. As you can see, it is more than just COPY, EXTEND_TOP and WRITE_BYTE. Do you understand why authors of big mods say that their mod should be installed alone, or with one or two specified mods? It's a lot of time, and guarantees absolutely nothing if you implement changes to make it compatible with 37 other mods. Big mods that add much content and have many dependencies on the original game (they use many interfaces) are sensitive even to the least change. If any of the 37 mods (which were made compatible in the installer of the big mod) adds a new change in its next release, it's possible that the compatibility will disappear. G3 Fixpack is recommended by its developers as the standard fixpack, a part of every IWD install. If it overwrites interfaces, it's a potential risk to many mods. (And as we've seen, it does overwrite/remove game interfaces.) This is why it's crucial to follow certain guidelines when developing it. You might say that all this is nice, but you haven't encountered anything horrible in your game yet, even when using many mods. This leads to the question of how "compatibility" is interpreted.






It's very important that players and modders have a different approach about compatibility. Even modders have different interpretations (as we know). Let's try to approach it and "define" it from the viewpoint of IE modding, but using a different version for different groups (players, modders, other modders etc.).


Most players want to play as many mods as possible during the same IWD game. Free time is limited. Many of them doesn't mind if not all mods' features are available exactly in their original form. As long as the game is enjoyable, it's not a problem if there are insignificant collisions among certain mods' features -- the large amount of total content compensates them for these minor problems. So usually, it's true that players consider two mods compatible as long as they can be played "at the same time", during the same IWD game, without fatal, spectacular or irritating problems (such as game crashes or broken quests). Often, even they tolerate more severe bugs as well (such as a broken subquest or a corrupt item) if the game can be continued normally and other parts of the mod work fine.


The above interpretation (written in bold) seems to be preferred by very many people (including modders), because it's practical and more or less describes the reality. On the other hand, in certain cases, it might be very misleading as well. Those who're familiar a little bit with computer science know it very well that even one bit of difference in a software can be "fatal" sometimes. This is true to Infinity Engine game mods as well. Just because it doesn't cause a spectacular error, it's still present as a latent bug or influences the game in a hardly noticeable way. For example, a modified game script or a corrupted undroppable item (by ModA) can greatly change on the battles of ModB -- without the player noticing anything except that the battle is ridiculously easy or that the enemies behaviour is strange, predictible etc. Which he will believe to be the normal functionality of ModB, considering he knows that the encounter belongs to that mod -- and will judge ModB according to this. If the developer(s) of ModB didn't test it with ModA or didn't examine ModA, no one will learn that the problem exists. (Now do you understand why Sikret refuses comments from players with unsupported mod installations? He does not want to spend 5 hours or more just to find out that the particular battle is seamless, and an unsupported mod caused the problem.)


It's justified to believe that some authors might not be happy with the aforementioned approach of compatibility (especially creators of big and/or complex mods). They want to make sure that the player will experience what they actually created. As I've explained earlier, it isn't just about "damage changed to 1d6 from my 1d8!" sort of incompatibilities (overwritten interfaces): broken quests and dialogues, unreachable areas etc. are also possible. Basically, "anything" is possible.


While a small mod can easily be understood and "patched" to be made compatible with other mods, it's not true to big and/or complex mods. It takes a lot of time, and as I've said, it guarantees nothing.


Can we expect a modder to use the "definition" of compatibility preferred by players? "They should work, I tested it". "Except for minor flaws, they worked without problems." These are perfect for players (and we don't want to take it from them!), but what about a modder who spends 2 hours (design, impl., tests etc.) on a single item upgrade? Can he take the responsibility for his or her mod when giving it to players if he/she can't guarantee that some upgrades will work with certain other mods? This shouldn't be interpreted as something extreme. Of course, certain incompatibilities can always arise, and several incompatibilities can still be fixed in a reactive way. Everything depends on the severity and complexity of the issue, and on the size and complexity of the mod. In no way I want to question the skills of the G3 FixPack modders, but sometimes it is disappointing to see that someone (mostly people with no or little modding skills, so not the FP modders themselves) questions the benevolence of authors such as Vlad or Sikret -- relying on what they heard from "TP2 ninjas" and other good, skilled modders. I can advise to these people (i.e. those who unconditionally accept the word of skilled modders) to reconsider their viewpoint. No modder is unfallible, we're humans and any of us can be wrong occassionally. Before making a (possibly not too polite) judgement on modders who seem to be different from you or your favoured ones, please think a bit. "Am I surely right?" Freedom of speech is nice, but should be practised along with tact and respect. (If anyone is interested in the "good wishes" we received, the second half of this post includes a collection.)


So while a modder who has experience with small and medium-sized mods probably has an compatibility approach similar to players, another one with different type of mods might prefer a stricter interpretation. The latter group will use "partial compatibility" ("partial incompatibility") less often than the first group of modders. As you can see, it's not for annoying players and deliberately breaking others' mods.


"They were tested together in practice, so they are compatible with each other." This is often stated after someone installs two mods, plays them and doesn't experience/encounter crash, invalid/corrupted item, spell, BAM or other object, broken quest or dialogue, or any other spectacular problem. Usually, the installed mods of the player who tested it are also listed. This is very important. Tests can be misleading. Others might have other, additional mods installed, and the two mods won't work for him/her. When an author (such as Sikret) says he knows better his own mod than anyone else, it should be taken seriously. Usual tests aren't 100% reliable enough, while theoretical (and thus precise and general) knowledge about a mod helps to avoid bugs before they would be encountered. (But this doesn't mean tests are not needed. Typical, well-defined tests are required.)



Again, compatibility is not as easy as certain people think. Since IE modding has no real standards (of course, de facto standards -- it would make no sense to speak about de jure ones), and WeiDU doesn't offer high-level functions (i.e. functions with high abstraction), it takes a lot of time to ensure compatibility between mods. (On a side note, for those who're interested about interfaces, dependencies etc.: software interfaces are very similar to hardware ones. There is probably a perfect analogy -- it would be strange it there wasn't. Just imagine if every mouse manufacturer used an own "interface", so they would use no such thing as "USB". Chaos! But it's needless to speak about the importance of standards, most readers know it very well anyway. Who hasn't heard the name ISO or ANSI yet?)






G3 Fixpack developers and contributors has invested a lot of time and energy to find and fix bugs. I'm sure the community appreciates their efforts. (Including myself. I've never said they should stop doing what they do. I just say: lead developers/coordinators, please do it in a different way.) I also don't doubt that they've found bugs which correction is really beneficial to increase the gaming experience. I just don't agree with certain parts of the methodology, and I don't think that the "urge" I mentioned is always beneficial. Modding is one of the hobbies, so it can't be done with complete perfection and professionalism. (I wish I had professional skills so my Grey Clan and Herbs mods contained less problems!) I'm sure they do their best. If they don't listen to us at all, it's because they are very confident and/or they believe we're just there to annoy them or to get advantage to our mods by discouraging the use of their works. Confidence is a nice thing, but limitless confidence isn't beneficial. Everyone can be wrong. Additionally, sometimes not everything is unambigious or obvious:



If you're talking about the Improved Anvil mod, then yes, you'll find a lot of undocumented (and IMO very unwelcome) changes such as SoA creatures with HLAs and other silliness to make the game harder.


Why is only the "very unwelcome" prefixed with "IMO"? Its lack (and the overall style of the statement) reflects much confidence, as if it was obvious that HLAs exclusively belong to Throne of Bhaal. Is it silliness? OK, it is an opinion. But it isn't a general truth. How can it be stated so confidently, so certainly? However, I don't want to tell others how to speak. This example just illustrates that certain modders (including some of the key developers of G3 FP) are very confident, perhaps too confident. They expect very very precise arguments, and it seems they can defend their viewpoint for a very long time. It wouldn't be a problem, but the type of arguments they seem to acknowledge and accept is restricted. For example, if my arguments haven't been "concrete examples", they were ignored. (Now I spent much time to write this post, and its key thought is still theoretical. Sorry.) Why were these suggestions ignored? Because these remarks didn't meet their standards, the standards that they defend to the end. They accept arguments, but they are so confident in their viewpoint that the question of "Can I be wrong?" never appears for them. They expect others to convince them, and never try to find the problem in their own considerations (because they're totally sure their basic considerations are correct).


To sum up the problems:

Unless the "urge" decreases and the approach changes (Blucher: "what can it leave out", rather than "what can it include?"), it has a very high risk that every release affects some original interfaces in a negative way. It endangers current and future mods, and forces mod authors to read the complete documentation of G3 fixpack, and check the changes when a new G3FP version is released. If new changes are implemented crazily, and more and more elements are tried to be identified as "bugs" to be "fixed", it has a big chance that even more interfaces will be overwritten. I can't support G3 FP as long as this isn't admitted and addressed by their key developers/contributors.

"Subjective fixes". Alignment fixes (and all changes that affect original interfaces) should be in a different component (one different component or more OBC components, it's just a detail) OR to a different mod, and a warning must be included. (Remember, even alignment changes may break content in other mods'.) The alignment changes directly affect original game interfaces, which are otherwise not buggy. (Of course, basically every change on the game made by mods affects potential interfaces of other mods -- this is why only the really crucial changes should be implemented by fixpacks, especially on popular interfaces such as area script references.) Things which are undoubtedly buggy in the original game (many of them are interfaces) can be fixed -- other mods can't use things that are broken... (The area script reference "fixed" by UB is not a such a bug. It may be a bug, but it's harmless because AR0021.BCS doesn't exist in the original game, and the original script name must be considered a popular interface.)

Due to the promotion it got, most players install the IWD Fixpack, they are happy because they have the "latest standard fixpack", and they are happy because they believe their game now runs more seamlessly, with "hundreds of bugs fixed" which Baldurdash and other fixpacks don't include. As you can see, G3 Fixpack requires serious changes. First of all, "plus a few hundred more" is misleading, it should be changed to something more accurate (even if it makes the slogan longer). Then, G3 Fixpack -- all new "fixes" -- should be re-examined (it requires 7-10 hours, so can be done in a week -- many people spend much more than 2 hours on forums per day!), and moved to different components with warnings, or -- which is easier -- to a different mod. (So "IWD Fixpack" would only contain FIXES. Sounds good.)

Communication. I ask G3 FP key developers not to ignore even criticism of such nature that is apparently contradictory to their very well-estabilished, basic guidelines. Guys, keep your confidence, but sometimes really examine your own methodology and principles as well! You are one the best modders, be even better!

As you can see, I requested all novelties of the G3 Fixpack to be re-examined, and marked with a warning if needed (usually, if it affects interfaces) or to be added to a different file (different mod). If "IWD Fixpack" contained just the more important, crucial fixes, there wouldn't be such problem. Especially because the fundemantel fixes correct actual, obvious bugs, and those don't really endanger potentional mod interfaces (a mod rarely uses or refers to incorrect elements of the original game). So G3 FP's "hundreds of" new changes has a price, if its developers want it to be good and safe. Finally, again, smaller speed (urge) please. No need to examine the poor beggar of Athkatla twice to find a bug in his colour, one examination is enough.


For me, perfection would be a core component in a mod (Baldurdash plus other new G3 FP fixes), and all other risky stuff (i.e. parts which may affect dependencies/interfaces) collected in a different mod, including the "modder pack" (super-happy-fun-lucky pack, IIRC). I haven't examined the game text update, it is probably okay to be in the core mod (and has no fundemental, conceptual problems, so if it has any flaws, those will simply be fixed!).


So, Arkain, G3 Fixpack isn't badly coded, in fact it's a very good code. Its coders are experienced in the TP2 scripting language, and know IWD pretty well. (On a side note, all the compatibility and interface problems I was talking about could be handled very well with an improved distribution system, possibly an improved WeiDU. TP2 script commands offer a very good low-level interface to the game -- you can manipulate bits & bytes, insert bytes etc. -- but it lacks abstraction. ADD_CRE_ITEM and similar commands are good examples of higher-level functions. They are more abstract, because they disguise the implementation from the user, who doesn't need to know so much and also has no chance to make mistakes. Additionally, even a very high percent of compatibility issues could be detected during the installation of a mod, because WeiDU would know what interfaces were changed by other mods. It would require many parts of WeiDU to be improved, but much source code is freely available already, and it would allow less experienced modders as well to make bug-free TP2 and mods!)


Any questions are welcome.

Link to comment

Okay, I have three theories:


1) CamDawg now has a secret admirer, too(see the_question threads at PPG);

2) Mentioning IWD instead of BG2 while speaking of BG2 fixpack all along was done to lure me to this thread;

3) It is serious, in which case my position is "As long as BG2 fixpack doesn't break MY mods, which is pretty hard to do, I don't care. If they do break my mods, well... they'd better not break my mods, okay?"


And, yes, making Ellesime Lawful Good was extremely silly, but the mod - BG2 Fixpack, that is - is quite useful in other aspects. As for IWD Fixpack, included into Dale Tweaks, it seems to be pretty harmless. So far. See 3).

Link to comment


This topic is now archived and is closed to further replies.

  • Create New...