When we should Implement the mod support?

It’s Important to think on which phase of dev elopment we should allow and at least partiallly support making mods.

My thoughts is in current development state is to prepare basic mod support As Soon As Possible
REASONS:

  • most of SoD mechanics is already implemented
  • some of WoG mechanics is Implemented
  • for some modders capabilities of current VCMI is more wanted, than both capabilities and limits of WoG or ERA
  • we don’t want desperate modders to create a fork of VCMI as it seem malicious both to trunk keepers and fork makers
  • Current code of VCMI requires at least a tiny fork if mod support weren’t in trunk, for reasonable modability
  • most of early mod support phases requires only tiny changes to trunk, while late phases of mod support can wait until required substantial changes would be done
  • actually having active modders on VCMI even if we claim it’s experimental, would substantially increase amount of testers of VCMI, even if only for each mod creator there would be only a few actually players per modder
    CONS:
  • we may think better is to wait for actual branch to be merged to trunk (so we also can make this ASAP but claiming that “possible” is after we merge)
  • players actually playing mods, may not fully understand that VCMI which is base for a mod is not fully complete, so some of them may be annoyed that some of WoG/SoD features are not yet implemented, and phrase the frustration on the forum
  • if we do such the way, we should keep in mind that some “reverse compability” between early mod support, and future mod support is desired, so wrong decision taken before we think enough HOW the mod support system should be implemented may result in blocking some of development

STILL knowing the CONS I think we should have early mod support ASAP, but some of DEVs seem to think, that we should have mod support when VCMI is most estabilished (so much time away).

SO I please confrontate the actually reasons for including mod support late, which are not just possible cons of my approach (I want constructive Discussion)

ALSO I know last decision is always on both TOWs, but I believe that constructive discussion with forumers taking both sides would convince the project leaders too take more proper decision (and there is much space between ASAP and “after all *** done”)

Mods require network compatibility in first place.

  1. Players with different mods installed will certainly try to play over internet and we must handle this situation somehow.
  2. Modding or scripting should not allow cheating. If someone modifies the game in any way, it should be known and allowed to all players or not allowed at all.
  3. Mods / scripts need to work over internet and it will be tricky to handle callbacks between different computers.

Overall, it’s not a PR or strategic decision, it’s the logical progression of software development.

Okay so mods works only on servers (it doesn’t check for clients), and clients have to have graphics/sounds. does it sound rational for early mod support? (there of course will be more features later). And for making sure client should get important config files via network connection. (all those which may alter mechanics). after this base we may check if client actually have required defs/sounds/PCXs. It should work for early mod support and you may Always claim it’s experimental. Since at this phase there’s no script support, you may claim that first version of mod support have no defined way of support for scripts and scripts would have to be considered as to include in later mod support.

Maybe it’s not the beautest way of solving it, but general Idea is to first make things configurable via JSON/TXT files (so almost no hardcoded constants) then do basic folder-file-overrride mechanism, and synchronisation of important data (so all data tables and not client-specific config). then some checks about having media files. It’s only first step - next elements could be built on top of this. We can even make more rough scenario for first part of mod support - it may claim that in this experimental state mods yet work only in single player and hotseat - synchronisation mechanisms may be deleged to phase 2.

THE MOST IMPORTANT IDEA - DO NOT MAKE “WHOLE” MOD SUPPORT - DO IT IN PHASES - FIRST INCLUDE THINGS YOU ARE SURE - THEN SLOWLY BUILT ON TOP OF THIS. mod support can have versions which are incremental - couldn’t it?