Programmatic Map Creation

Ladies and Gentlemen....I've been a owner of previous CC products and am considering the new version 3+. I have a particular interest in creating maps for WWII tactical games---these have hexagons, are scaled at 200m/hex. The desire is to be able to give some general input about an area (something that is like 30x30 hexagons...or more) and have a "system" or process generate a map. The background is to support campaign games over the various theaters in WWII where players run larger units (Divisions) and when they engage in
a tactical resolution a map can be created....we then resolve on the map.

There are games which support units and interactions at the right scale---the issue is their maps are fixed, only go together certain ways, and result in very redundant battlefields---and often are unable to reflect more "true to life" situations.

So my ask is -- Can these tools (CC3+, fractal Terrain) with some supporting external programming perhaps be programmed to develop maps like what we are looking for?
Any steps in the right direction would help---doesn't need to be fully automatic, but even some modicum of help would be of value .... There may well be tools in the software suite which can take a rudimentary
map created by an external program--and by applying brushes/fills already in the tools---bring them to appropriate level of quality----but I am not sure.

Very interested in any ideas---it opens up lots of options to string together campaigns of any period, really.
thanks!
If this should be posted in another thread, please let me know....

Comments

  • MonsenMonsen Administrator 🖼️ 81 images Cartographer
    Well, that depends on how much external programming you want to do. CC3+ doesn't have any automatic map generation (not for overland maps anyway, there are certain tools for dungeons and cities). But CC3+ allows you to interact with it programmatically in many ways:
    - Macros/Script files: These contain regular CC3+ drawing commands, and can be generated by an external program, and can easily create a whole map. Whatever generates these need to put in all the commands obviously.
    - Intercom: This is a way for other programs to send commands to CC3+. The commands are the same as you would put in a script file, so what the external program would need to do would be the same
    - CC3+ addons: You can write your own CC3+ addons to do whatever you like really. As with the above solutions, you would need to write the code to generate the random terrain yourself, but you basically work within CC3+ instead of generating a list of commands and send to it.

    Of course, since FT3 can generate random worlds, you could also generate a random world in FT3, then export a section you like from it to a CC3+ file and slap on a hex grid. Basic FT3 export is rather plain though, so you would probably want to spend some time changing the map style and prettying it up a bit.
  • Monsen---thanks!

    Some of those approaches sound viable......

    Are there scriptable commands--which I can give a path which would create fractal coastlines, hill contours, forest boundaries?...could such be constructed from
    available commands?

    Developing some code which writes out a long script file to generate the map is entirely possible for me....
    I'm just about ready to pull the trigger---this would be of great utility to the wargame hobby space......
  • MonsenMonsen Administrator 🖼️ 81 images Cartographer
    edited September 2019
    Now, there is certainly a steep learning curve to be able to do that, but almost everything in CC3+ can be done via commands (which can be entered on the program command line, or supplied as a script).

    Here is a map I made where the coastline is generated using a script (Never mind the ancient style of the map, it is a story behind that, but you'll be just as able to generate the modern pretty CC3+ maps this way, and much more detailed coastlines too).


    I do recommend getting a bit familiar with the program before diving into writing programs to generate command scripts.
  • Appreciate your insights Monsen.....I had CC2 and was great fun, but life was too busy to spend the time I would have enjoyed...
    So...it's another time in life---where I have more time....so, this should be pretty useful.

    One more concept--- incremental improvement....can layers be build and then laid onto a final product?....so I might build 2 or 3 basic layers
    then, using those create additional layers which either replace or add to (above or below) other layers.....

    My idea is that some basic terrain and layout is defined by a higher level map (like your world map in the above example---but more like a few 100 miles of western russia) where
    Hill system Rivers Roads major towns are defined.....This defines the BASE of a tactical map---a section of this is pulled out and it generates some of the basic terrain and features.

    This could then be presented in CC3+ editor---and with some hand placed features used to indicate a function or creation of a type is to happen here--
    Additional layers created, registered to what exists--or replacing it, with a secondary program which
    feeds macro/scripts into CC3+--with the intermediate map.....

    Output is then provided with Hex grid---we're off.....
  • MonsenMonsen Administrator 🖼️ 81 images Cartographer
    Should be quite possible. I guess it depends on where these layers of yours will be coming from. But for CC3+, a command can be entered at any time, so if you plan on generate everything externally and provide thing in batches, that is certainly possible.
    Extracting part of an existing map in CC3+ and create a new one from that will be a bit difficult relying only on the command line, but there should be several ways to semi-automate it, for example by extracting the coastline data from the map, feed it into your program that will generate the rest of the details, and then have it output the creation of the required parts.
    Also note that CC3+ is not particularly good at search/replace, you generally need to tell it to "delete this thing" or "add this thing", it can't handle "if this is found, then replace with".
  • edited September 2019
    Encouraging....
    My idea had been that I would create a CC3+ map at a high level---which is backed up by a data structure which captures the larger features....
    so I won't have to really capture from another map---just identify the area of interest--pull out the relative location of those major features.....

    that would then be feed into the 1st level map generation which would lay those items out--provide a certain variation/generation for those features....
    That map would then provide a basis on which I could identify locations to provide more detail (via some external processing for things around that location---enhance village, River/lake features+marsh....)
    then that "annotated layer" which is registered to the initial base map gets expanded in a 2nd pass and laid on top/combined with the 1st level map

    The insertion of a human to make some decisions, refine some features between the two passes allows lots of things to NOT have to be automated....

    The results of map 2nd pass are then handled through CC3+ for final presentation and creation of file to use to either print out board, or pass to VASSAL in form
    we can use there.....

    One other question...CAn "objects" be named or known by a name? can I create a Village (for example) and have all the elements created that are that "village" be addressable as an object
    which I can move/delete/change attributes?---that would be way cool....

    OK---I'm in....
    cj;)
  • MonsenMonsen Administrator 🖼️ 81 images Cartographer
    Not directly.

    But you do have layers in CC3+. You can put all related entities on the same layer, and then you can do entity manipulation by layer. They layers can be named whatever you want, so they are kind of a named group (Note that layers in CC3+ terminology refers to a logical grouping of entities, and NOT entity ordering like in many other programs, what is frequently called layers in other software is called sheets in CC3+).
    Entities can also be grouped, but groups are less useful when you want to do programmatic access.
  • Ok, trigger pulled on CC3+ and Fractal.....now the fun begins.....

    thanks Monsen....I
  • LoopysueLoopysue ProFantasy 🖼️ 40 images Cartographer
    This is an interesting approach. Most of us users just open a template and start drawing. I would love to hear the story of how it goes if you are willing to share it in the end :)
  • I'll do better then that....I'll keep you posted here as I too need encouragement, ideas, suggestions, cautions.

    My motivation should not be so different from most of the users of the tool---to create maps.... Mine happen to be focused on being used with an existing tactical WWII game---but could be used
    for many different such games....that game is the tactical resolution portion of what is a larger campaign game played out by distributed players, across the net, over time....Multiple individual
    generals, each planing out their approach with the known constraints and challenges----and resolving encounters on maps created->which are then fed into the VASSAL game where the encounters
    are resolved...results folded back into the higher level game...and on and on...

    Really would apply to any period---challenge always is how to create the maps such that they reflect the higher level planning maps---but don't look like the 8 boards available all the time(provided in game)
    which restrict your tactical encounters....
    Now to learn CC3+....et Al.
  • LoopysueLoopysue ProFantasy 🖼️ 40 images Cartographer
    Thank you!

    Looking forward to it :)
  • edited September 2019
    Good luck with this! It sounds like a large project, but worthwhile.

    Waaay back, before Cosmographer existed, I wrote a little DOS program that took Traveller sector data from Galactic (which was the standard map source at the time - there was no TravellerMap). It generated a script to run in CC, which in turn produced a publication-quality sector map with various features on different layers so you could hide them if you wanted. Doing that taught me how flexible scripting could be.

    I've noodled around with add-ons - I have an idea for generating and linking HârnManor data to City Designer maps - but it keeps getting bumped down the priority list. There are things you can do with add-ons that you can't with scripts (perhaps most importantly because you can interact with the user more flexibly), but it is definitely more fiddly. So when you've played around with CC3+ for a while think hard about what you want to do - it may be that scripting/Intercom will be the easier route.
  • Thanks....good points.....
    The level of complexity to automate everything to make a completely presentable map is probably unassailable....this is why some human interaction to deal with in a middle pass seems to make sense
    to me....your idea on add-ons may play into that---it may be that a specific type of add-on, to handle placing queue/anchors whereon activities to refine/expand the existing map should take place through some
    scripts aligns with that.

    Your DOS/Scripting experience is very close to where I see this going and extending.....that would generate my pass1 map which then is dealt with in CC3+ to bring up the next pass.

    Been diving into manuals---the entity basis is perfect (I think) for what I'm hoping to do....

    elvwood---if you'd be willing to share your early scipts I'm sure they would be educational....
    thanks!
  • Sure - you can get it from here. The C source is included in the download if that's of any use, but you're probably more interested in the actual scripts - if you have trouble generating them let me know and I'll stick some up somewhere.
  • Thank you elv---looks quite interesting....I shall dive in....now back to the siding on the house...sigh...
Sign In or Register to comment.