Modding suggestions

Exciting!

One thing I would looove to see is when I am moving a hero somewhere, if there are dimension doors and subterranean gates, the game calculates those into finding the shortest path. I believe the later heroes games do this, but they suck.

I guess subterranean gates can be done without bigger problems. Maybe even embarking and disembarking. It’s possible that I’ll look into this, as better pathfinder may be also beneficial for AI development. (no promises on any features though)

As for Dimension Door spell, I’m not convinced. I think path returned by pathfinder should not assume any other resources than movement points. Casting spells is out of it’s scope. Also, why DD but not Fly, Town Portal or Water Walk?

Monoliths also bring difficulties. They’re not deterministic. There can be multiple out monoliths and pathfinder can’t assume, which will be used as destination one. Some may be not discovered or blocked by enemy heroes.

for DD, fly and water walking, i suggest autospell button for on/off toggling, when on it will use any neccessary spells for getting ultimate low movement point cost

I decided to give it a few moments. It’s better to make pathfinder use subterranean gates and boats than trying to teach AI how to handle them.
Results look strange at the first glance and still some edge cases needs to be sorted out… but it may be a pretty convenient improvement over original game when done.


Awesome! :smiley:

Hello !

I hope i post at the right place…

VCMI project looks very good, and i have some suggestions for it, i’m sorry if any of the suggestions was already suggested.

  • Playing without any WOG feature
    It could be cool to play Heroes III without any change to it’s game play, just with changed graphic (since VCMI is suposed to support 32bits textures, if someone make them one day, it could be cool)

  • a VCMI installer
    Actually VCMI require Heroes III, but also WOG, WOG is annoying to install, you have to change system language to english and all of sort of things, VCMI would need an easy installer, that ask where’s Heroes III folder, and install what it needs there.

  • An easy but powerful map editor
    Look at Warcraft III map’s editor, you can do a lot of things without knowing the vJass code it use, the map editor could have an UI to create new town, and the map maker would just place with the mouse where the buildings are suposed to appear, what building will do what !

Adding spells easily based from already existing spells, the map maker could choose the graphic file, the number of targets …]

  • Everythinng needed on the map file
    The map file should have everything it need, if a map maker want to use a custom def, we need a way to import it to the map file to share the map easily !

  • Map protection
    We need a map protection to prevent people from stealing map (changin author name)
    Making map readable ( to learn from) but not editable without a password chosen by the map maker !

  • Support of large variety of files type
    VCMI needs to support large amount of files types, for textures and things like that, making modders job easier

  • Old files support
    VCMI should use it own format for maps, but a good things is still being able to player older map, VCMI would read .h3m files and .VCMImap (or any ext’ you want it to have)

I also have a question, i think i seen the VCMI team want to make maps scriptable with python ? Why python ? How will it run inside the game ? Why not lua for exemple ?

Hope i’m posting in the right place…

Best regards, Magissia

Thank you for your contribution, Magissia.
However, most of these features were already mentioned.

The very new is passord protection for maps - do you really know a situation when this was necessary? Some maps are also being reorked and fixed, some tricks or scripts are copied. I don’t think password protection is the goal of open-source project.

Many concepts are planned for some distant future, like mod support or map editor which handles the former. I don’t believe that we could ever get anyting near “town editor”, which is very complex feature on its own.

Spells are very complex and diverse, so don’t expect them before support for new towns and all prerequsites.

I opt for Python over Lua as it’s more powerful and has better support, also it’s constantly developed. Lua is another option, but its use is limited. Python allows a great variety of modding concepts to be implemented via script.

All old files but savegames and a bunch of new types are of course supported.

Well, password protection for maps seems to be impossible when open-source decoder and encoder is available. The best thing that could be done is some kind of “Map market” as a source of maps where we could reject maps that are too similar to already uploaded maps (but again: it wouldn’t prevent from distributing such renamed map through other websites, not integrated with VCMI). I doubt it’s worth the effort. Security is very hard when application is open-source.

Lua is quite powerful too but somehow I don’t like its Pascal-like syntax. It’s also more rarely used. On the other side I’ve tried to do something in Python several times and always ended using bash or C++. I’m still looking for my favorite scripting language.

how about stacking same artifacts ? like creatures.

Well password protection is definately out of the way, but signing the map via some asymetrical crypting is a way to go. I mean it won’t solve the issue of copiers, but we can have a database for storing signers and a signed map would contain GMT date and time of first and last save of the map, and perhaps could have some versioning capability ie. first version maker would sign it all and modifiers would sign only their modifications - there could be checkout who has done what on cooperate created map. well but map which were worked out more than 9 real months would then be huge (the changes would contain a few times more place or even more than the base)

First of all props to VCMI team.

 I have had a little hobby since h4 came out. Been writing down ideas about new creature abilities like dragon's fire breath, vampire's life drain etc. Since I've been doing this for years I have ideas and LOTS of them, 390 creature abilities atm to be more precise.

If any h3 moders need some inspiration on how to make their creatures more original here is a link from where you can Dl my text file [mediafire.com/?b7x8s2v4bicn665](http://www.mediafire.com/?b7x8s2v4bicn665)
It is a .rtf file containing a list of skills, the bigger half original but also has the majority of h3, h4, h5 and h6 skills as well all in one place.

Something like this:

1 Cheap shot if enemy creature cannot retaliate your creature strikes twice

2 Execute deals double damage to creature but only if the attack would kill the creature

3 Rampage after killing a stack creature gets another turn

4 Mana pocket when you have these creatures in your army first spell in battle costs no mana

5 Phase shift if attacked this creature disappears from battle until it takes its next turn

I have ideas about spells game mechanics and a lot of other stuff so if someone finds this usefull pm me I'll upload it all. Cheers

Hey i have an idea!
-Consumable object - a class of objects which aren’t artifacts but they are carried in bacpack (eventually some may be “big objects” which need special treatment like war machines don’t fit in backpack)
-mod options to turn particular types of adventure map pickable objects to consumable objects

this way if eg. Pandora box is turned to pickable one hero may pickup it but not open and after a few hero exchange screens it moves to another hero’s backpack and the hero consume it (which in this example means opening the box)
it can be applied also to treasure chests, commander crystals and perhaps even to scholars (the guy that teach hero and dissappears)
this also can enrich quest guards/gates and hermits (the guy which has a quest and a prize for completing it) because there are new type of object which can be checked for being brought to quest giver
of course there may be various new mod objects which will be consumable objects including but not limited to potions.
Regarding potions some may be a result of visiting some fountain (but the rest don’t have to have corresponding fountain).
There have to be some limits WHEN item can be consumed - some only in hero window from adventure map, some only in combat, some only when visiting a town, some only during a siege, some only in another particular way, some at more than one way.

Another idea - cursed artifacts - they will be able to equip like normal artifacts, but will be threated internally as big object (can’t be put into backpack like war machines)
they typically will have at least one negative bonus (but don’t have to since they block artifact slot)
some may be interchanged between heroes, some not. Some may have both positive and negative effects (eg. Similair to spirit of opression)
It’s discussable what should happen when there’s no more place for artifact to fit.
It can vanish, or be dropped to backpack, or replace worn artifact (which will be moved to backpack), or have a secondary place where it fits.
Typically most of cursed artifact should have a bonus “hero can’t be dissmised” to have meaning when they are passed to another hero (if applicable).
And there can be “set of cursed man” - which will be a funny artifact combined from parts being cursed artifacts. It have to have strong positive bonus to countereffect the all negative bonuses or disable some of negative bonuses from the set. It may even make immune to same negative bonuses from another source, or probably channel the negative bonuses to opponent in battle.

Hi, guys!
It’s great that such great game as Heroes is getting rennovated.

Of course, the case is not only about gameplay mechanics - HeroesV are modern enough and have very comparable gameplay to HeroesIII. It’s also about nostalgy - that’s why guys still playing old games, making patches and even remakes. The same I’m looking forward to see VCMI rise and shining.
And not only waste possibilities of gameplay bring a lot of game popularity, not only some special spirit and design, but also large modding possibilities, allowing to enchance original game this or that way: sometimes it’s adding new objects, sometimes it’s changing game rules directly.

I’ve tried to read all the threads here at forum: to get the new ideas and to get reasonable arguments if there are any against them. So, here I’ll try to get all my thoughts together and write down thing that good to be implemented in VCMI and why.

Warning: I’m not a big programmer, so everything read further is a product of my imagination, some modding experience of Homeworld2 and some other stuff and theoretical discussion of spherical horse in vacuum. You’re the guys who made to 0.9, so you decide.


= OF MODDING =
There’s filisophical question where is mod ending and new game beginning; probably this line lies somewhere around need of switching from built-in scripts to source code. Sometimes, it’s very close to original, like Homeworld1, where a lot of stuff was hardcoded so only assembler could help to make something bigger then just replacing model of one ship to other with almost the same functions of a unit; sometimes it’s very wideranged like quakeC language, allowing to build other genre games. IMHO, the end line of scripting should be somewhere on turning original game to completely other genre. So, IMHO, VCMI should allow modding to turn itself with built-in instruments/functions into all Heroes alike games: starting with all Heroes game mechanics recreation (like H5 - choosable unit upgrades; H4 - heroes=commanders; H2 - 6 types of units only; WoG - destructable towns; and something from H6), continuing with King’s Bounty: Legend (mb, with no global realtime - anyway, it’s singleplayer, who cares) and finally, Disciples & Etherlords.

Anyway what I want to say that VCMI in strategical perspective should go in the direction of being base for all Heroic style games, as it would increase user & coder base. Of course, AI will be different for each game, even for each mod, so it must be scriptable at some point.
The structure of each game is of course different, so every game recreators should make their own converter to adopt it to VCMI folder structure. The same is about WoG: WoG should be implemented but in the meaning of enlarging original game options, not in the meaning of being default. Default should be original HoMM3 system with possibility of enabling WoG features as mod or some other way. Final destination goal of all global mods should be compatibility to VCMI structure not otherwise - VCMI structure compatibility to deprecated system.
For modding I’d request idSoftwaffen system, when system reads modified files of mod instead of originals; you can even combine mods, if mods don’t touch the same files; also this is very KISS and usable for maps, if these have special objects and scripts.

If there will be used non-standard extensions, it would be very cool if there is some SDK, modification tool to create new unit, new hero, new town etc from scratch - of course, I’m not talking of giving new GIMP to users, but like “browse for pictures, set up stats” - and here you go, the new object is here!

So, let’s take a look at games mentioned (I don’t remember all the differences, I will match only I remember) and analyse the difference.

  1. Heroes 1-2:
    1.1. Less squads
    ----> We need to make hero squad number changable, not hardcoded;
    1.2. Smaller hexagonal battlefields;
    ----> Battlefield size should variable, not hardcoded;
    Haven’t played H1-H2 much, so details from fans required.

  2. Heroes4:
    2.1. Simultaneous hits (hit and response) on battlefield
    ----> This possibility must be added to options;
    2.2. Heroes and commanders the same
    ----> Must be way to switch off commander and hero bonuses: commander bonuses in general, hero bonuses cut when commander is dead;
    2.3. Different squarish battlefield
    ----> New global feature;
    2.4. Two-way building in towns
    ----> Must be hardcoded option of reading town building config files with OR/AND options and removing building never able to build from buildlist;
    2.5. Several hero combination in one army
    ----> Must be mechanism of that - somelike create new temporal hero instead of two, combine bonuses of logistic skills (use highest one), draw heroes commanders as units taking squad slot, use custom build window for representation of two- or more heroes army pack (depends on squad number); count hero effect on creatures;
    2.6. Hero class depending on skills
    ----> Make hero class as variable, and recreate logic of changing this variable;
    2.7. Dying and ressurecting heroes-commanders with hitpoints;
    ----> Hitpoints of squad upper unit must be saved as variable: this can be modified with logic for restoring after battle, or restored on other day (this can be made as option for WoG), or otherwise;
    2.8. Creatures moving without hero
    ----> Controllable caravan without hero;
    2.9. Heroes/Commanders using artifacts for battle
    ----> Bottles (throwable items) can be made as spells that has limited count and don’t need mana. Artifacts (weapon, armor) have different blessing bonuses with commander as target;
    2.10. Subskills of classes
    ----> Possibility of adding subskills and window for this;
    2.11. Different magic schools
    ----> Possibility of setting magic schools with configuration files (making groups of spells);
    2.12. Necromancy makes not only skeletons
    ----> Redefine Necromancy skill, instead of adding only skeletons, add also other types of Necropolis units, based on type of creatures died in battle. Probably, new function needed to get type and quantity of died creatures. Or there was such feature implemented with SoD?
    2.13. Fog of War
    ----> Make new type of fog of war when you can see already recoinassanced regions. Even more there might be an option of starting game with opened map, but covered with mist of war.
    2.14. Moving neutral squads with mixed forces
    ----> See 6.5. Probably, it would be interesting if these squads are compiled based on their faction and it’s allies.
    2.15. Units are given per day
    ----> Probably we need an option to set how often player want to receive additional forces;
    2.16. Enemy heroes that lost battle cannot be bought in tavern
    ----> New feature, must be done as option
    And so on.

  3. Heroes5:
    3.1. Basic skill for faction
    ----> Set default skill for certain group of heroes (like necromancy);
    3.2. Different square battlefield
    ----> See 2.3;
    3.3. Unit magic book
    ----> New small feature alternative to permanent spell casting ability, also see 2.5.;
    3.4. Different logic of turns in battlefields
    ----> New feature?
    3.5. Rune magic
    ----> One-time magic spell that requiers resources, used only once for each squad, probably, requiers new hardcode;
    3.6. Creatures hold off battlefield
    ----> New feature, but unclear what if all active units are dead then does it mean loss or reserves will be input to combat?;
    3.7. Double strike from partners
    ----> New feature that would check if allies of victim is having this ability;
    3.8. Basic Tactics for every hero
    ----> Reset Tactics skill configuration and add Tactic function to all heroes abilities (w/o adding skill itself to skilllist);
    3.9. Subskills of classes
    ----> See 2.10;
    3.10. Skills crossing
    ----> Skill tree must be set in one configuration file to have possibility of setting them with OR, AND, NOT etc conditions;
    3.11. Different magic schools
    ----> See 2.11;
    3.12. Necromancy makes not only skeletons
    ----> Add new global stat for player, which number will be dependent on necrotowers and necroheroes and renewed every week; also see 2.12.;
    3.13. Two-way upgrade of unit
    ----> Add possibility of making condition of OR for setting unit upgrade and renew upgrade window (with possibility to select default upgrade for “hire_all” button);
    3.14. Hero strike
    ----> This can be set up as spell that is dependent of hero parameters;
    And so on.

  4. Heroes6:
    4.1. Different square battlefield
    ----> See 2.3.;
    4.2. Skill tree
    ----> We need new window - custom, with preprogrammed tree (to look beautiful), or generated, with diagram drawn of given skill dependencies, also see 2.10 and 5.9.;
    4.3. Really Big creatures
    ----> New feature;
    4.4. All army buing at garnison (w/o upgrades)
    ----> This can be made as instant caravan from city;
    4.5. Two-way building in towns
    ----> See 2.4.;
    4.6. Less resources
    ----> Whether make resources configurable, whether just reset game mechanics (I mean, prices) to use only needed ones;
    4.7. Territory control
    ----> Make condition of which mines and other building automatically go under control of nearby town whoever owns them;
    And so on (actually, haven’t played this game much).

  5. King’s Bounty: The Legend:
    5.1. Less squads
    ----> See 1.1.;
    5.2. Squad reserve;
    ----> Solution similar to 3.6, with squad number under one hero control set to 5 (max 7) and only 5 squads at the battlefield at one time; another question, that these two squads in reserve must no be dependent of hero’s leadership (in terms of KB); there may be forced placement of 6-7th squads to reserve and no use on battlefield, or even use of slot originally made for war machines; anyway, looks like some heavy script magic;
    5.3. Smaller hexagonal battlefields
    ----> See 1.2.;
    5.4. Leadership;
    ----> New variable for hero and conditions of use (if <= then ok; if > then SetSquad.Bless(“rage”)), and new parameter for units;
    5.5. Box creatures/dragon;
    ----> Probably, this must be implemented similar to 2.5. and 3.3. - several hero combination with all invisible except for the main; or setting abstract units similar to 5.14;
    5.6. Really big creatures;
    ----> See 4.3.;
    5.7. Spell learning from scrolls and magic crystals;
    ----> New custom menu of scrolls, and giveSpell(“spellname”) function with removeResources(); if all resources remain the same, there’s need to add a new one custom resource (magic crystals);
    5.8. Magic book scroll quantity size
    ----> New variable for each hero, general about all unlearned spell scrolls; scrolls can be made in way of magic stick, but only with possibility of removing spells of scroll pack by themselves;
    5.9. Runes for skills
    ----> Whether to use existing resources, or to add new ones; reconfigure skills to be chosen if resources are enough, then call removeResources(); or make skill tree alike buying skill from “knowledge tree”;
    5.10. Skill tree
    ----> See 4.2.;
    5.11. Unit movement
    ----> Unlike usual unit turn, when you can only make one of these acts: hit, if victim is in range, move, wait or defend; in KB:L your unit movement to certain hex is not ending it’s turn: attack, wait, defend and spending all you movement points end’s turn for him (so you can move your archers for several hexes from their offender and attack them, hurting much); this requiers new hardcoded logic (alternative);
    5.12. Rage;
    ----> New hero variable, that would follow hit point loss at battlefield, fill up, and used as mana for different magic spell group; probably, can be defined as resource;
    5.13. Less resources;
    ----> See 4.6.;
    5.14. Gismo
    ----> Unattackable unit with movement range and close attack, doesn’t occupy hex; probably, needs to be hardcoded;
    5.15. Crystal ball;
    ----> Hardcode new movement style - straight line;
    5.16. Interactive objects at battlefield
    ----> New unit-like objects at battlefield, neutral, unattackable or breakable, attacking or not attacking, with bonuses of blessing, cursing etc (spells casting);
    5.17. Time revert
    ----> Remember unit’s previous turn parameters: number, spells and start coordinates; then delete actual and summon new squad with previous parameters; save it as actual squad information;
    5.18. Enemies chasing the hero
    ----> See 6.5.;
    And more.

  6. Disciples:
    6.1. Less squads
    ----> See 1.1., need for 4 to 6 units in army;
    6.2. Single unit squads
    ----> Use units as commanders with showing as squad in army window and give possibility of exchange;
    6.3. Different smaller battlefield
    ----> See 2.3, but this one is more about special battle logic then battlefield itself;
    6.4. Dying and ressurecting leaders and units with hitpoints
    ----> See 2.7.;
    6.5. Units attacking on global map
    ----> Set them as neutral heroes with no bonuses, or when incoming replace them with “empty” agressive neutral hero with no abilities;
    6.6. Terrain change
    ----> New feature; must be thought of object equivalents for different types of environment;
    6.7. Unit upgrade tree
    ----> New variable and new constanta for units; general experience will be divided to each unit alive; if (var >= const && player(self).town(all).isBuilt(building)){ replaceUnit(“unitUpgrade”); var = 0;};
    6.8. Global magic
    ----> Weeks event can be considered as special events: this must be enlarged to area and group influence; also blessing (+/-) and damage (+/-) done to hero;
    6.9. Different type of heroes
    ----> Different commanders, and custom possibilities based on hero class (killing, poisoning, recoinassance, creating new terrain changing object on map etc);
    6.10. Summoned creatures
    ----> Spawn new empty hero with one unit, see 6.5.; remove it on next turn;
    6.11. Dual layer of unit squads
    ----> New feature; as alternative you can set your unit order at battlefield H5 style;
    6.12. Custom squads for neutral enemies
    ----> See 6.5.;
    6.13. Terrain change rod
    ----> Passable building (something like garnison) that can be removed;
    6.14. Global “lord” type
    ----> Make some options available to heroes and spells;
    6.15. Retreat one-by-one
    ----> New feature;
    6.16. Stop unit experience gather reaching some limit
    ----> D1 feature; stop experience count for certain units (globally) or upgrade from commander type unit to usual single (though it would be hard to ressurect him then);
    6.17. Each spell can be cast once or twice a day
    ----> New feature, there must be limit of how times per day can be spell used;
    And more.

  7. Disciples III
    7.1. Special places on battlefield:
    ----> See 5.16., just make them passable (like traps);
    7.2. Unit inventory
    ----> Commander feature, something similar to 3.3.;
    7.3. Rod monster
    ----> Make rod habited - some unmovable commander;
    7.4. Spell use limitation
    ----> Similar to 6.17., but there must be possible of how much times any spell can be cast;
    And more (haven’t played this game much).

  8. Disciples 2++ :
    8.1. Home terrain gives bonuses:
    ----> Give bonus to only certain player/faction;
    8.2. Rod and garnison monster
    ----> See 7.3.;
    8.3. Fog of War:
    ----> See 2.13;
    8.4. Make a new leaders from units:
    ----> Additional menu entry and removeUnit + addHero(params), but there must be done heroes for each of type of a unit to make this, to make this individual, or something alike new hero generator;
    8.5. Blocking
    ----> See 9.2.;
    8.6. Fog of War
    ----> See 2.13.;
    This is not real game, just a few thoughts of where Disciples could have been developed if not DIII fail.

  9. Etherlords
    9.1. Different battlefield
    ----> See 2.3., but this one is about different logic of battle; probably, there can be used bottleneck-styled map, and every unit having harpies abilities…
    9.2. Blocking
    ----> New feature, somehow must be done transmission of damage done to one unit to other one;
    9.3. Upkeep
    ----> New variable per hero, with massive of resources to be removed each time interval;
    9.4. Cards
    ----> Cards can be represented as scrolls that cannot be learned; remove magic book from UI, show row of 5 random spells;
    And more.

  10. Wesnoth
    10.1. No global map
    ----> Load only very large battlefield; make resources available from global map at battlefield (also see 3.5.) to fill gold resource with villages (see 5.16.);
    10.2. Recruitment at special places
    ----> Summoning would not do, as units are upgraded; so new function needs to be like “spawnCreature({params})”; also this spawn function can be used to upgrade unit - replace it with next level, but there must more options of it, like giving the array of data about new unit parameters;
    10.3. Single units
    ----> See 6.2.;
    10.4. Large battlefield
    ----> See 1.2.;
    10.5. Upkeep
    ----> See 9.3.;
    And other features. This one is for testing purposes.

  11. Chess
    11.1. King’s death means losing
    ----> Set new victory condition (commander’s death), or make other creatures summoned;
    11.2. Units are dead on first strike
    ----> Set health to 1;
    11.3. Attacker is put on the place of the hit figure
    ----> If attacked unit is dead then place attacker at its place; Would be interesting ability to avoid surrounding;
    11.4. Units are moving and attacking each their own way
    ----> Problem is similar to 5.15;
    11.5. Different battlefield
    ----> See 2.3.; or - there are also hexagonal chess;
    Just as experiment: if you choose hexagonal type of field, then it becomes a little bit easier.

  12. Heroes III:
    These are ideas that just enlarge original HoMMIII and are based on existing elements.
    12.1 Unlimited new towns;
    12.2 Rule of limitation for towns (number on map/per player and some particular factions);
    12.3 Unlimited new heroes;
    12.4 Rule of limitation for heroes (number on map/per player and some particular heroes);
    12.5 Unlimited new creatures;
    12.6 Rule of limitation for creatures (number in army and some particular units);
    12.7 Unlimited new skills;
    12.8 Rule of limitation for skills (number per hero and some particular skills);
    12.9 Own hero creation (modification of existing - name, picture & bio);
    12.10 Duel only mode;
    12.11 Best UI practicies (H4-6 or other Heroes-alike-TBS);
    12.12 More war machines (three places?);
    12.13 First simultaneous turns;
    12.14 Each squad of fleeing army may be chanced to join the winner;
    12.15 Race relations affects morale, diplomatic force join etc;
    12.16 High diplomacy can make enemy troops of the same type join your army;
    12.17 Option for automatic resource gathering from windmills and others;
    12.18 Option for automatic unit gathering from hiring buildings;
    12.19 Several level maps (not only 2) - will work like 3D dimensional chess of Star Trek (with Cross-Dimensional spell);


= SUMMARY =
So, let’s summarize unique features of abovementioned to be potentially implemented:

== 1. BATTLEFIELD ==
—> There must be way for setting custom battlefield size. Smaller battlefield than actual can be set with limiting obstacles, but bigger one you won’t do this way. There must be battlefield editor, where mapmaker can spread his fantasy (creating, for example, special battlefields where you need to use logic to find out tactically correct moves to win) and make even scripted bf-maps (for example, mine conquer can turn into wandering through the labyrinth on several screens);
—> There must be possibility of adding of kinda modular battlefields, not only hexagonal. Probably, this would be to hard to do in scripting way, but hardcoding must be done in way of easy addition of new battlefield logic: squarish (H5, D1-2,), size dependent (H4) and abstract (Etherlords);
—> There must be possibility of setting different logic for unit movement (option or smth like that);
—> There must be possibility to play only duel with various settings based on army cost and same level heroes. Also town defence mode should be included;
—> There must be possibility of leaving not needed units outside the battlefield;
—> There must be possibility of setting maximum squad number on the battlefield: both globally and per hero;
—> There must be possibility to place interactive objects on the battlefield: blessing/cursing/attacking/trapping and so on;
—> There must be game option which would define what logic to use counting counter-strike damage: using left alive or initial unit count (for H4 style battles);
—> There must be option to make units retreat one by-one (not the whole army at once);
—> Low moral troops receiving a lot of damage can retreat or go out of control;
—> There must be ability for units to defend (take hits supposed for) other units if they can reach attacker: this must must be whether unit ability, or global feature; automatic (percentage of outcome or simply unit in await/defend state) or manual (you set who to defend);
—> There must be option of automatic loss if some particular squad (commander, for example) is dead;

== 2. UNITS ==
—> There are several unit types in the game: commanders, usual units and war machines. There must possibility to make combination with scripts. Must be defined uniqueness (how much this type of units can take hero with him - like only one commander; boolean), maximal size of squad (probably, boolean type - whethere one, whether can be collected many - single for commander and war machine), can it be revived after death, can it be removed from hero, is it shown as unit (in army window), can it gather experience and so on;
—> There must be possibility to set custom groups of units which would have their own common bonuses and defects. This way can be defined races, factions, undeads, war machines and so on. These group configuration lists won’t contain unit names, because it’s better to be defined in unit configuration file:
—> There must be possibility to make inventory with some spendable at battlefield item for units, at least, for singles;
—> There must be possibility to give spells to units in several ways: spell book, with mana spent (or not if set to 0) or nature ability of casting spell (few times or always), including random spell of given list of spells or magic schools;
—> There must be possibility of option to have war machines not in a single number;
—> Squads of fleeing enemy can join hero if he is diplomatic enough;
—> Each squad of fleeing enemy is counted separatedly for fleeing/joining hero;
—> There must be ability of “collegial” strike, when ally having this ability can hit the enemy, attacked by other unit, just being nearby;
—> There must be possibility to set up alternative upgrades per unit;
—> There must be possibility to have whether optional upgrade or strict (thus making upgrade tree);
—> There must be custom size unit (several hex);
—> There must be possibility of creating unit in a fly mode (using hex to move, but doesn’t occupy them);
—> There must be possibility of creating unit in underground mode (moving under, attacking on surface, damaged by earthquake and heavy units on its stop positions);
—> There must be possibility of setting movement style for units (usual and custom);
—> There must be possibility to habit buildings with some unit from the very beginning (commander alike, for example);
—> There must be ability of occupying place of defeated enemy;
—> There should be option of Tent ressurecting units (for example, with Expert level);

== 3. TOWNS ==
—> For modding there must be no limitation for choosable town (faction) number (or at least this number must be big);
—> There must be possibility to set up alternative buildings in town;
—> There must be possibility to destroy already built building and set “destroy cost” in building configuration file: it can be both reward or price, depends on “minus” sign;
—> There must be option of buying units daily or weekly;
—> There must be building on the global map which would allow to instantly buy unupgraded units from towns (H6 style);
—> There must be possibility of to set town control area in terms of starting hero movement length, let’s say, for distance of his 3 turns (half of the week) thus switching off territory which is not accessible;

== 4. HEROES ==
—> For modding there must be no limitation for choosable heroes number, globally and per faction (or at least this number must be big);
—> There must be possibility of adding more then 8+8 heroes per town;
—> There must be neutral heroes, available for all factions (mercenaries);
—> There must be possibility to combine heroes in one temporal hero;
—> There must be possibility of every unit representation as hero: both for neutral unit movement and attack and player’s unit going to join with main army;
—> There must be possibility to set up bonuses for hero classes and change them depending on custom conditions;
—> There must be option of keeping defeated heroes of being hired again until some condition;
—> There must be option of setting hero as governator for towns thus raising funds or else;
—> There must be possibility of creating your own first hero - at least modifying existing one by changing biography and image - and saving it;
—> Heroes, which are native to squad faction, gives +1 morale;
—> There must be option for enabling hero strike like in H5/H6;
—> Heroes must have possibility of not only straight attacking, but also perform some tricky action with enemy heroes, like stealing, poisoning etc;

== 5. COMMANDERS ==
—> There must be option of disabling hero bonuses for army in case of commander death;
—> There must be option of automatic army fleeing in case of commander death;
—> There must be possibility to include commander into squad, rising stack’s parameters and reappearing when squad is dead;
—> Possibility of changing commander to another one in special “taverns”;

== 6. SKILLS ==
—> There must be possiblity of making “tree” of skills, available for player: one skill appearance would lead to another skill, both upgrade (basic->advanced) and completely other (logistics -> pathfinding). Type of the skill (upgrade, replaces current skill; subskill, showing as custom menu; skill, just the new one; bonus-ability, etc), should be defined in the skill configuration;
—> Faction, skill pack and class should rise percentage of certain skill appearance (or lower down to zero);
—> There must be possibility of adding skill to hero (globally/locally) without showing it in the parameters window (like basic tactics in H5 simulation);
—> There must be possibility of new skill selection without random, in a skill tree. This must be optional or, at least, moddable;
—> Necromancy should convert not only into skeletons and should be available not only for Necropolice;
—> Diplomacy should have ability of joining part of enemy troops if same type of units are present in hero’s army;
—> Faction, most present in heroes army, should affect hero and his new skills (for example, undead soldiers at haven hero);
—> Possibility to create skill tree diagrams windows;

== 7. INVENTORY ==
—> Artifacts should have not only global configuration, but also local one, for commander parameter increase;
—> There must be possibility of setting maximum number of items (per each type also) in inventory;

== 8. MAGIC ==
—> It must be possible to define which groups contain the spell: for example, lightning spell can be set to both air and “destructive” magic type;
—> Spell can requier not only mana, but also other resources;
—> Spells can be activated custom times per spell, per hero, per unit, per battle or per day;
—> Spell can has single cell, circle, perimeter of circle(), all battlefield large effect (must also think of random figures, like wall or else);
—> Spell can affect player himself, enemy, team;
—> Spell can be global (week effect, land effect) or battlefield only;
—> Hero must have possibility of using several types of magic at the same turn: for example, usual, rune and rage ones (or other grouping);
—> There must be possibility of having time revert spell;
—> There must be option of how of often spell book is used: will it be once per player turn (while all units has not acted); or will it be once per unit - commander, commander squad or some abstract (indestructable, unmovable, not existing on the field) unit representing hero;

== 9. GLOBAL MAP ==
—> There must be option of opaque Fog of War;
—> There must be possibility of modding vision radius for buildings and units and how much time territory will stay unfogged;
—> There must be option of having map recoinassansed from the very beginning (will you see enemy hero or not, will depend on fog of war option);
—> There must be option of automatic capture of building surrounding each town (control zone);
—> There must be option of automatic resource gathering from windmills and other per-week giving resources building;
—> There must be possibility of automatic creature gathering to hire queue in towm from dwelling buildings of its control area;
—> There must be possibility of changing map terrain in real-time;
—> There must be possibility of setting blesses and curses to all types of terrain;
—> There must be possibility to create (“build”) objects on the global map;
—> There must be possibility to set special abilities to whole player;
—> There must be easy way of setting upkeep per objects; for units, can be used H5 peasant ability of “tax payer”, only with minus sigh - and named “mercenarie”, for example;
—> There must be possibility to make several layers maps;

== 10. RULESETS ==
Rulesets - files with names of what shouldn’t be in game (saving place and usually people deselect smth from default, not select);
—> There must be possibility to have faction blacklist;
—> There must be possibility to have hero blacklist;
—> There must be possibility to have spell blacklist;
—> There must be possibility to have skill blacklist;
—> There must be possibility to have creature spawn blacklist;
—> There must be possibility to set maximum number of different factions appearing at map;
—> There must be possibility to set maximum number of heroes available per player;
—> There must be possibility to set maximum level of heroes;

== 11. UI & SIMILAR ==
—> There must be simultaneous first turns for multiplayer and even for single player game;
—> There must be option to enable “real-time” simulation for maps with no enemies or enemies defeated (computer will count down turns, but it ain’t be visible for player - only days turning);
—> There must be option of switching weekly first turn player;
—> There must be option to have selection of attack or retreat window before battle takes place (in case if you accidentally have messed up with the wrong guys); also this window must show possible outcome of the battle;
—> Map different options - show heroes, show mines, show towns, show underground/foreground;
—> A lot more hotkey - keyboard wide using and resetting keys;
—> Show how much exp left to the next lvl when picking treasure chest;
—> There must be possibility of creating macro for next turn while waiting players/AI’s;
—> There must be possibility of selecting your own in-game color and logo;
—> Map zoom-in and zoom-out: too see more or less;
—> Various resolutions, from 4:3 to 16:10; from 1024x600 to 1920x1080 (actually, it would be cool if player could set -any- resolution he wants - and only things that changes is main game screen size);
—> Possibility to turn on and off visibility of GUI elements;
—> Possibility of moving around GUI elements to create personal space;
—> Possibility of maximizing speed of the game - no pauses between Adventure & Battle map; instant hit w/o animation; most used spell list w/o opening Spell Book;
—> UI should be united in design and also there must be thoughts of “how convenient it would be played at tablet?”;

== 12. MODDING & DISTRIBUTION ==
—> Amount of resources used by game must be configurable;
—> There must be possibility to spawn custom parameter hero permanently or for some turns;
—> Consider making separate pack with free stuff; something like having 3 install packs: heroesclassicedition, wogedition (fulledition), freestuffedition;
—> Like new Town going into uptodate release, some popular mods/ruleset should be included also - for example, Heroes3Pro;
—> Posibility of changing the look (the skin) of the UI with no much shitting;
—> Flexible window system: easy to create new skins, change placement of interface elements, add new custom windows and elements;

All this would make very interesting combination of game features which could be tested in mods and then, if not changing drastically gameplay, implement as part of WoG project. For example, there can be mod that would mark every battlefield place with bones and morale fall; or even whole season change with moral lowering for long lurking in snows and swamps. Or other mod, that would use leadership parameter: when morale fall dawn, if unit squad size is more then hero can control, it goes on strike; or, in case of necromancer, he can’t revive more unit after battle then his leadership allows. Or else.


= OF GAME RESOURCES =

Here will be some ideas of modding functions and game file structure.

IMHO, there must be something like UNIX way for function quantity: they should be small but enough to build whole game of them. System must be selfdescribing, to have low WTF per minute rate, and to achieve that it must be heavily commented (in english, of course) and be understandable even for non-programmers, that’s why, for example, there must be no numeric ids for game objects, which will be pain in the ass to find through the resources, but understandable strings. Also, VCMI must not follow original game’s restrictions and go it’s own way of improvement, changing game file formats to better ones if needed.

The structure of the game resources should divided by game logical units not by file type as modder would look into the data first of all as a gamer. And each object should contain all resources (except for the most common ones) that belong to him: like database table it should contain only the things it needs to have. And then there will be possibility to build game out of these blocks.

== Folder structure ==
Here is described my vision of folder structure for the game. It may be incomplete but it gives the overall view of my idea about how things should be placed. Of course, it’s discussable.

  • Engine
  • Rulesets
    __|=>ruleset01.cfg
    __|=>heroes3pro.cfg
  • Mods
    __|=>mod01.zip
    _____|=>%Rulesets_maybe%
    _____|=>%Music_maybe%
    _____|=>%Data_folder_modified%
    __|=>mod02
    _____|=>mod03.zip
    _____|=>mod01.zip
  • Data
    __|=>menu
    _____|=>menu.cfg
    _____|=>global.zip
    _____|=>menu_red.zip
    _____|=>menu_blue.zip
    _____|=>menu_green.zip
    __|=>maps
    _____|=>multiplayer
    ________|=>nightofknight_8P.zip
    ___________|=>custom_resources
    ___________|=>nightofknight_8P.cfg
    ___________|=>nightofknight_8P.map
    __|=>game_resources
    _____|=>objects
    ________|=>bf_objects
    ___________|=>blessing_statue_of_dwarf.zip
    ______________|=>blessing_statue_of_dwarf.cfg
    ______________|=>blessing_statue_of_dwarf.res
    ___________|=>bf_objects.cfg
    ________|=>map_objects
    ___________|=>haven_citadel.zip
    ______________|=>haven_citadel.cfg
    ______________|=>haven_citadel.res
    ___________|=>neutral_windmill.zip
    ___________|=>%townname_creaturebuilding%.zip
    ___________|=>map_objects.cfg
    _____|=>skills
    ________|=>scout.zip
    ________|=>wisdom.zip
    ___________|=>wisdom.cfg
    ___________|=>wisdom.res
    ________|=>skills.cfg
    ________|=>sec_skills.cfg
    ________|=>com_skills.cfg
    _____|=>spells
    ________|=>air_lightning.zip
    ___________|=>air_lightning.cfg
    ___________|=>air_lightning.res
    ________|=>neutral_magicbolt.zip
    ________|=>%magicschool_spellname%.zip
    ________|=>spells.cfg
    _____|=>towns
    ________|=>kremlin
    ___________|=>kremlin.res
    ___________|=>kremlin.cfg
    ________|=>forge
    ________|=>towns.cfg
    _____|=>units
    ________|=>haven_griffon.zip
    ________|=>kremlin_syrin.zip
    ___________|=>kremlin_syrin.cfg
    ___________|=>kremlin_syrin.res
    ________|=>units.cfg
    _____|=>heroes
    ________|=>rampart_kyrra.zip
    ________|=>kremlin_karachun.zip
    ___________|=>kremlin_karachun.cfg
    ___________|=>kremlin_karachun.res
    ________|=>heroes.cfg
    _____|=>artifacts
    ________|=>ogre_club.zip
    ___________|=>ogre_club.cfg
    ___________|=>ogre_club.res
    _____|=>sounds
    ________|=>sfx
    ________|=>speech
    ________|=>music
    ___________|=>kremlin_maintheme.ogg
    ___________|=>townname_songname.ogg
    _____|=>groups
    ________|=>warmachines.cfg
    ________|=>undead.cfg
    _____|=>resources
    ________|=>gold.zip
    ___________|=>gold.cfg
    ___________|=>gold.res
    ________|=>copper.zip
    ________|=>resources.cfg

== Legend: ==
File extensions does not represent exact ones:

  • *.cfg - configuration file;
  • *.zip - non-compressed archive, like .pk0;
  • *.res - compressed file with resourses: icons, animation sprites and everything that object needs;

== Rulesets ==

  • this folder will contain configuration files with names of objects that should be disallowed: usually people disable some features then enable them; like no spells, no several objects and dependent ones (for example, commanders and their artifacts);
  • Map rules override other rules; player rules override mod rules; or similar.

== Mods ==

  • this folder contains files with the same structure of main data folder: engine would check if there are differencies, and use new files from selected mod. Also there must be possibility of combining mods like in Q3/D3.

== Data ==

  • this folder contains game resources and their configurations. Overall structure looks like:
    _____%logical_devision_of_resource%
    _______|==> %name_of_specified_resource.zip%
    _______|==> %logical_devision_of_resource%.cfg
  • and specified object contains resources, whatever they may be, and it’s own configuration files.
    Configuration files is not only configuration, but also about functions defined to the object, and which can be added/redefined by user/modder. Structure is kinda recursive to have possibility of configuring both single object and whole one-type object bunch.

Lists would look smth like this:
_____startSpellConfig =
_____{
__________{
_______________Name = “Magic Bolt”,
_______________Effect = { DoDamage(EnemyUnits, SingleHex, 15};
_______________MagicSchool = { School_Death, School_Air, School_Earth, School_Water, School_Fire, Magic_Chaos, }
_______________LocalisedName = “$9102”,
__________},
_____}

Talking of the naming conventions, we must follow some wules in naming final files. I suggest naming them using prefixes and suffixes: main part is the object name, prefix marks the global group to which object should originally belong and suffix marks differencies between similar creatures. This is just only for convinience so that user could find needed objects in folder purely visual. There must be one-logic naming system, so that there were no “undead_skeleton” and “necropolis_zombie”, but “rampart_dwarf” or “logistics_pathfinding_expert”, organised by most search criteria word depending of the object type.

Data folder is divided to the basic logical units met in the game:

  • menu
  • This folder contains files for drawing game menu, skins and all the other stuff;
  • maps
  • This folder contains all game maps: campaign, scenario, multiplayer etc;
  • objects
  • both for global map and battlefield, with possibility of giving to both types some interesting abilities (like in King’s Bounty/Disciples3);
  • skills
  • all the skills: primary, secondary and commander’s ones; skills may have upgrade information in their own configfiles (like Wisdom.zip contains info about ladder of BasicWisdom goes to ExpertWisdom), or may be defined in common list with parameter “requiredSkill” or smth. Skills are put together, as commander could use some “heroic” stuff - and it depends only on settings;
  • Secondary skills will contain info of number of secondary parameters and it’s names;
  • Commander skills file will contain info about commander supposed skills;
  • spells
  • This folder contains all skills and their division to groups: magic type (light, dark, chaos…), magic element (air, earth…), school (death, order, nature…) etc
  • towns
  • This folder contains town configurations: inner building and their configs, assignment of creatures, heroes etc;
  • units
  • This folder contains units and their resources;
  • heroes
  • This folder is dedicated to heroes: biography, stats, pictures, hero class definitions etc;
  • artifacts
  • Artifacts: hero and commander ones, definitions and configurations;
  • sounds
  • Sounds that are not dependent of some object: some special effect sounds, speech for campaigns/scripts and music;
  • groups
  • Here will be group configurations: each object can be assigned to some group (in it’s configuration file) and, according to the rules described in the %group_name%.cfg, game logic would apply to objects penalties, bonuses, blesses etc.
  • resources
  • Here will be described resources used in game, so they could be easily added or removed according to modder needs. Actually, a lot of global variables can be set as “resource”, for example, necromancy points (in terms of Heroes5).

EPILOGUE
Of course, I can’t hope for all my ideas being implemented as there is already almost done engine and I’m not inside the programmers stream to see realisation underwater cliffs.
But I hope you’ve found some interesting ideas here same I found them playing TBS games and reading through VCMI forum )
Thank you that you have read till the end of that ))
Heroes_stuff.txt (40.9 KB)

1 Like

Hello, I heard from one of the developers that this is a good place to tell if you have any ideas for modding or some changes for VCMI. I also want to say that I won’t post some ideas that are much farther from H3, but I just selected a few that I think that they can be realised completely, implemented and played! Some of the ideas might be incomplete and I will explain them later if anyone wants to know about them.

Duel (battle-only) mode - the name should explain a lot. It’s basically a mode in which you don’t have any adventure map, but just fight. Very useful for all kinds of testing: bugs, army balance, probability of winning…you name it!
There are many probabilities of making this mode better, but it’s basic characteristics are choosing a certain army, hero, skills and artifacts, and fighting with that with another army.

Better high score system - it demands a lot of discussion, high scores aren’t too fair and also they could include more things. Maybe save heroes’ and kingdom’s stats so it can be seen? This will also add up to my next idea:

Those saved heroes’ and kingdoms stats I mentioned before can be used to import in a certain hard campaign or a skirmish map.

Many changes can be made to the editor, but I guess that is not a priority right now.

I have more ideas than these, but since I don’t play H3 that much lately, I don’t remember any other good proposition.

Thank you for reading this! I hope you will implement some of the ideas!

Just some Small suggestions, i did not see them specificly mentioned in the Wall of text 2 replys up so here goes

Heroes in battle : Maybe i am the only one who doesn’t like the whole COMMANDER idea, i did like the fact that heroes 4 had the Hero in battle but i think it should be a optional thing. Every Battle you should be able to Choose to take the hero into the battle with his troops at any point throughout the battle and it should have different effects on his skills from doing so ( maybe a warrior class can give better tactical advise and improve siege weapons accuracy from outside of battle, but when stepping in you loose those bonuses and become a good fighter instead). You should also be able to step back out of battle ( at a cost of your hero’s turn , if you want to return to the side line.

DUEL mode, it should be a option save you troops and fight hero against hero, of course the AI wont always want to do this but it could lead to some more Hero’s skills later on

Defend-ably objects : like in H4 , i should be able to station troops on wood mines , gold mines etc if i wish…

I have not tred VCMI in over 12 months so if any of these are already suggest i apolgised , tonight i work on re-installing it

Suggestion about DAEMON_SUMMONING feature.
I looked into sources, and there is RISE_DEMONS check for ourArmy stack before casting.
It will be good to make second type of DAEMON_SUMMONING (like DEAD_RISING or something sounded like that) to rise creatures from enemy stacks corpses.
Spell for this will be good too.
It will also change tactics, cause Sacrifice and Resurrection now can be sabotaged by rising low-level sceletons from enemy dead stacks.

Commanders are already are option in config.

Defending objects are just a waste of time and creatures. It’s fit only to leave “inappropriate” stacks rather of dsmiss them. But this option can be in config too.

Ability to add new buildings to existing towns?

You can take all graphics from LODs and create new town from standard town (using info from /config/factions/.json), and then add as many buildings, as VCMI can afford :smiley:

It’s not about modding, but I found no other more fitting theme.

It’s cool that in town view we can click monster icon instead of going to dwelling/castle and we will get dialog of monster bying.
I sugest also to make icons with hall and castle in this panel also clickable -
clicking on hall small icon will take to city hall, clicking on fort icon will go to castle.

I think it’s good idea