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....
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
- 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.
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......
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.
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.....
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".
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;)
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.
thanks Monsen....I
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.
Looking forward to it
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.
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!