JSON map format

Active development of format itself has been started, time do discuss details

I didn’t want to be the first to comment, but it seems others are not interested that much in it.

In my opinion having mod requirements in map format might be too much. While it gives power to map/mod makers it takes away freedom of mod choice from users, forcing them to use certain mod if they want to play downloaded map. Big mods that require that should have their own map format incompatible with other big mods and their map format.


What I would personally want for legends is just an ability to have other map format then h3m so that I could claim it to be legends map format and have a set of maps only for legends and that are made to be 100% compatibile with the gamerules, objects etc.
For example legends will not have Fly or DD and will not have map creature dwellings other then few neutral ones. It will also only have 5 … maybe 6 towns.

Also while using new map format for legends maps I would still like to have the ability to play h3m maps. Just with a note of warning for users that it is imported and may not work fully. Some h3m maps for example probably require DD and/or FLY that is not in legends, but i prefer those maps to be unplayable then introduce features that will be not part of legends gameplay.

If map uses creatures, castles and map objects from some mod, of cause it’s name MUST be in map.
Or there will be no availability of graphics files etc.
If you want map format to work with base HMM3, of cause no mods will be mentioned if you use only base set of objects.

As for DD & Fly it is not related to map format: it you disable this mechanics on engine level (f.e. via configuration) it will be disabled even if explicitly enabled in map.

Can’t help this if people want to make maps using mod objects. And they do, in fact it’s the main reason why new map editor is ever needed.

I only wonder why you decided to develop map editor in Pascal? :question:

I see but the problem is that from player perspective if one downloads Hota map he knows what to expect mostly, same for Sod or RoE maps.

If mapmaker has power to turn on mods sillently then it means vcmi maps will be unpredictable. Maybe player should be informed about it and going further maybe engine could determine whether a mod is really needed and give the player choice to play this map without it… or just disable it for him.

Yes I do think that some mapmakers will select all mods as required or always select their favorite mods even if there is no content on map that requires it.


BTW I posted this some years ago in the previous mapeditor topic:
mapeditor.org
This is an open source map editor that could be used as a base for vcmi editor. it is based on Qt library and C++ … It may save some work to just use and modify this code then write from scratch.

That’s cool :slight_smile: and just as it should be IMHO.

Then it’s the reponsibility of mapmaker, not player. We can demand more attention from mapmakers than casual gamers.

  1. very fast building - faster developing process
  2. RTTI makes json serialisarion being automatic
  3. I know lazarus much better than QT creator.

That could also work… if you help them a bit with a mapeditor that has good defaults :).

For example :
-Sections for engine map objects and objects from mods should be separate in the editor. Furthermore mod section objects could have a text warning that using those object will require players to have/download the mod.

-What mod is required for the map should be decided by mapeditor and not mapmaker. If the mapmaker used a building or creature/art from certain mod mapeditor would mark it as required.


The only problem is random map generation.

I can see two options :

  1. By default it should only use the stuff from base game, and have an checkbox to enable map objects from all the mods that player has enabled in vcmi launcher.

or
2) what appears or not on the map based only on the template itself.

So how do you plan to make it work with random maps ? Any other ideas ?

This is current planned behaviour.

val-gaav,
Good suggestions. Some things to note:

  1. While I completely agree that list of required mods must be auto-generated manual modification should be allowed as well. For example if a mod changes properties of an object to a point that completing a map is impossible without said mod (e.g. changing creatures available in town). IMO there should be a mod dependency dialog that will allow to:
  • see list of required mods and allow to mark extra mods as dependencies. However mods with used objects should be locked from removal
  • for locked mods - see why mod is marked as dependent. For example - show list of objects from this mod that are used on map as well as location of these usages.
  1. I don’t think that objects from mods should be kept separately. IMO objects should be filtered by name or by function (tags?) instead of mod-origin. However, there must be an indication that object comes from a mod and especially - if placing this object on map will add dependency. For indication we can use either color-coding of item background or some sort of icon.

OK will do this soon (but with brief lock explanation in first version) - its time to test modded objects more intensively.

Adding mod id as a tag for object is not a problem, but for now searching is not implemented at all. Any specific suggestions for colour coding?

Can you show screenshots of current editor interface (in part of selecting and placing objects)?

Currently it`s almost same as OH3 editor - drag&drop from palette.


Suggestion how to organize objects viewing in editor
(if there are thousands of objects, editor will be slowed down)


Well, then IMHO by default map editor should not show them, and there should be checkbox in option (or some other on/off switch) to enable them, because unexperienced mapmakers may end up using them without much thought about it.


About the enabling mods in maps… Having a map that requires a mod that changes castle armies to finish is a problem in itself, because player can always enable his own mod list that will brake such map balance . That is unless you will also give mapmaker a choice to disallow unwanted mods on his/her map… (which again strikes at players freedom)
Generally I also do not think that mapmaker should have the possibility to change such things. Town lineups should be changed in mods and not in maps. IMHO map is no place to decide such deep game changes.

If one really wants to do such special map he/she should write his own mod for it. By placing an object from this mod on map it will be required and auto enabled. Yes it is harder to do that way but IMHO not that hard, and hard enough that only people who know what they are doing will do it.


There is also another thing that could be interesting to have . H3 maps have special placeholder with random creatures, artifacts, dwellings etc. Those work well and if a player has some mod on like fe. an extra neutral creature there is a chance to get those on map. Such random placeholders could be developed further in vcmi adding random banks etc. This would prevent mod dependencies unless mapmaker really wants to do a very specific map, and furthermore it would add some fun to playing the same map again as one could get a very different set of on map buildings.

Object count is not a problem - just a bit slower loading, 1-frame icons does not use much video memory and all rendering is hardware accelerated.

Each dwelling/bank has templates. There is no guarantee, that you place random bank, and will be picked up bank only with fitting mask. Same goes for dwellings. Or you use several RANDOM BANK placeholders hoping there is a bank with fitting mask, or use standart, and get non-passable incorrectly placed objects.

Nothing specific. Some things that may work:
a) grey for unused mods (similar to how H3 disables SoD objects in RoE maps). Light-yellow (warning) or light red (error) may work as well. Light green for already used mods, white for H3 objects.
b) grey for unused + random color for mods ( to make nice random - HSV color space, fixed saturation & value, random hue ).
In any case these colors should be subtle since this is just background info.

Castle armies are just an example. There may be cases that are hard to trace (e.g. theoretical map script may reference object from mod) or just mod that significantly alters mechanics or mod that simply changes passability of an object. All of this can be done but all of these are hard to detect.

Player freedom is not at danger - this is mostly needed for players who just want to play game. Players who are capable of figuring out that this mod is not actually required for this map can just fire editor and remove that dependency.
As Warmonger said - map makers should have more responsibility that players - I’d rather have map with extra dependency than broken/unplayable map.

Oh - and placing object from that map to force dependency is an ugly hack. We can do better than that :slight_smile:

Nice idea. As Macron said - objects may have different passability so this may be a problem. However we already have such bahavior for dwellings. Passability masks for dwellings look like these:

random |   actual in-game dwellings
  bb        bb    bb    b
  vv        bv    vb    vb    bv  (and more)

v = visitable
b = blocked

So for banks we can create random object that during map loading will be replaced with any bank that fits into mask of random object.

Balance of such feature is another question - value of Naga Bank is nothing like value of Imp Cache so its availability & protection shouldn’t be the same. Perhaps random treasures (not just resource but artefact, chest or objects like scholar) may be more easy to fit & balance. Learning visitable objects (Marletto Tower, Stone of Enlightment, etc) can work as well.

@AVS
One thing regarding map objects from mods. Make sure that you can handle situation where two mods have objects with same name. This is legal situation - HotA and WoG have enchantress and they can work at the same time.

I don’t think this is sensible. Banks have not only various footrprints, but also various strength. No idea how mapmaker would balance the later one.

For now we have RMG to place random banks :wink: