Jump to content

Bartimeus

Members
  • Posts

    68
  • Joined

  • Last visited

Reputation Activity

  1. Thanks
    Bartimeus reacted to Butschi in Creating Maps with CMAutoEditor   
    A little teaser:

    The new CMFI profile for CMAutoEditor is almost done.
  2. Like
  3. Thanks
    Bartimeus reacted to Butschi in Creating Maps with CMAutoEditor   
    Wow, that's great! I thought without tutorial nobody would dare to try. 🙂
    I hope I'll find time this weekend to make part 3 of the tutorial and go into all the details. But just to give you the big picture: You can configure most of what is currently possible with the default_osm_config.json file. For instance, take a look at the entry "mixed_forest":
        "mixed_forest": {
            "tags": [
                ["landuse", "forest"],
                ["natural", "wood"]
            ],
            "exclude_tags": [
                ["leaf_type", "broadleaved"],
                ["leaf_type", "needleleaved"]
            ],
            "cm_types": [
                {"menu": "Foliage", "cat1": "Tree A", "cat2": "density 1", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree A", "cat2": "density 2", "weight": 2},
                {"menu": "Foliage", "cat1": "Tree A", "cat2": "density 3", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree B", "cat2": "density 1", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree B", "cat2": "density 2", "weight": 2},
                {"menu": "Foliage", "cat1": "Tree B", "cat2": "density 3", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree C", "cat2": "density 1", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree C", "cat2": "density 2", "weight": 2},
                {"menu": "Foliage", "cat1": "Tree C", "cat2": "density 3", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree D", "cat2": "density 1", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree D", "cat2": "density 2", "weight": 2},
                {"menu": "Foliage", "cat1": "Tree D", "cat2": "density 3", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree E", "cat2": "density 1", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree E", "cat2": "density 2", "weight": 2},
                {"menu": "Foliage", "cat1": "Tree E", "cat2": "density 3", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree F", "cat2": "density 1", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree F", "cat2": "density 2", "weight": 2},
                {"menu": "Foliage", "cat1": "Tree F", "cat2": "density 3", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree G", "cat2": "density 1", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree G", "cat2": "density 2", "weight": 2},
                {"menu": "Foliage", "cat1": "Tree G", "cat2": "density 3", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree H", "cat2": "density 1", "weight": 1},
                {"menu": "Foliage", "cat1": "Tree H", "cat2": "density 2", "weight": 2},
                {"menu": "Foliage", "cat1": "Tree H", "cat2": "density 3", "weight": 1},
                {"dummy": true, "weight": 1.6}            
            ],
            "process": [
                "type_random_individual"
            ],
            "priority": -1,
            "active": true
        }
    "mixed_forest" is just a name for the entry. Under "tags" you find by which key-value pairs this entry is triggered. So, if in the geojson file there is something with landuse: forest in it, it will trigger this part if it doesn't have leaf_type: broadleaved or needleleaved in it. Maybe the closest thing to what you call a pattern would be the entry under "process". "type_random_individual" tells the program what to do with such an entry in the geojson file. "type_random_individual" says: Find every CM square that is covered to at least 50% by this forest polygon. For each square throw a dice and choose one of the "cm_types" (take the weight into account for throwing the dice, so something with weight 2 will be chosen twice as likely as something with weight 1. The "dummy" just means that with a certain weight no tree is planted in a square at all.
    So right now you can only have random mixtures. Either random for each individual square or random for the entire area. If by "pattern" you mean something like, say a chess board, than that is something for which you'd have to dig into the code. My "vision" for forests is to have random clusters of trees, which would be most realistic, think. Actually, if you want to have something non-random it would probably be easiest to just do that with JOSM, I think and make entries in the default_osm_config.json (or make your own and call it differently. 😉) I mean, in JOSM you can paint an area an way you like, give it an arbitrary tag (key-value pair) and make an entry in default_osm_config.json which does the mapping of OSM to CM objects.
    As for your about color ordering: That is done via the "priority" entry. If your field has priority 2 and your forest priority 1, the forest will be chosen if both a present in one place. Priorities 0 and -1 are a bit special. Hope I get it right off the top of my had... (no guarantees!) 0 means it doesn't "interact" with others at all. Meaning it will by painted in a square but won't prevent others from getting painted, too. Good thing for, say, grass as a base and then putting a road on top. -1 is similar. It won't prevent others from being painted but will not be painted itself if there is anything with priority > 0 present. Forest is one example. You can have forest ground in addition with priority 0 and you can have a road with priority, say, 1. The road will prevent the forest from getting painted at but there will still be forest ground.
    Hope that helps a bit.
  4. Like
    Bartimeus reacted to Butschi in Creating Maps with CMAutoEditor   
    I wouldn't hold it against you if you waited for part 3 of the tutorial. 😉
  5. Thanks
    Bartimeus reacted to Butschi in Creating Maps with CMAutoEditor   
    I don't have Windows 11, so no way to test it. Sounds like a case of an overzealous virus scanner to me. I mean that's what defender does. Could also be a UAC problem: Windows doesn't like you to install it run uncertified apps from certain folder. So I guess you need to allow windows to execute the exe in some way. Anyway, nothing I could fix, I'm afraid.
    Btw. I'm happy to help with data, it's just that if everyone wants me to find data for his favorite project, I'm busy doing nothing else. I'd really like this to be a community effort. 🙂 German administrative stuff is a royal PITA, I know, but Google translate actually does a decent job.
     
  6. Upvote
    Bartimeus reacted to Butschi in Creating Maps with CMAutoEditor   
    I decided to create a new topic for this because "tool to set elevation in the editor" is no longer really a good description. Finally (from my perspective 😉) I managed to release version 2.0.0 of CMAutoEditor.

    https://github.com/DerButschi/CMAutoEditor
    Woah, Butschi, wait a minute CMAutoWhat? What the hell are you talking about? CMAutoEditor is a tool that takes "external" data, like elevation, and automates clicking in the CM scenario editor. This way it kind of works around "missing features" in the editor. Wouldn't it be nice to import something like a heat map instead of clicking elevations in the editor? Of course I can't change the editor but by letting CMAutoEditor do the clicking it does something similar.

     
    Version 2 is really a major update as it now includes importing data from OpenStreetMap. This way you can basically use CMAutoEditor to create a whole map for you.
    Still, feature creep and being overly ambitious is certain to kill such a small project so I had to triage what makes it into this release and what (maybe, provided there is enough interest on your side and enough time on my side) gets postponed to a later update.

    The cut affecting most of you is that for this release only CMCW is really supported. The reason is that there are differences in what is in the scenario editor for each CM title. That means not only are there buttons at different positions but there are also different buildings, roads, flavour objects etc. which need to be programmed as a "profile". I intend to modify CMAutoEditor in a way that the community can help with that but I am not yet sure how best to do it. So, for now CMCW only. CMBS should work for everything but flavour objects.

    Another thing I had to cut is support for Windows version older than Windows 10. I know, there are quite a few of you around who still field Windows 7. However, python is only supported up to version 3.7 on Windows 7 and a few of the libraries CMAutoEditor depends on require python 3.10. In addition, I don't have a farm of PCs idling at home where I can test different Windows version so I can really only develop for Windows 10. Sorry for that but maybe this doubles as a friendly reminder that nowadays Windows 7 is a security liability and you should upgrade to Windows 10 or 11. 😉
    There is of course a long list of things I'd like to improve eventually and given that this is a rather complex piece of code the chances that it is free of bugs is close to zero. So, feel free to contact me here or on github if you find something!

    Now, with all the caveats out of the way let's move on to the more pleasant stuff. 🙂 What's new in version 2? Well, of course OpenStreetMap data. You can import forests, rivers, roads, streams, railways, farmland, grassland, bushes, buildings and even bus stops, wayside crosses and much more. I improved the tools to import DGM data so that now arbitrary rectangles can be extracted. The information from this can be loaded into the OSM data converter so that you don't have to manually enter bounding boxes. (The geotiff tool is unfortunately among the things that didn't make it for this release so you are left with the previous capabilites). CMAutoEditor itself is now also much faster. Please note, that it may be too fast for what your PC can handle. If you experience "holes", e.g. when setting the elevation, that means the CM Editor is not responsive enough. I will make the parameters that determines the rate of clicking selectable from the GUI in a later update. Last but certainly not least there is a GUI for all the tools, so no more going to that evil shell, typing commands - kudos to @Dawntaker for supporting me with GUI making!

    One more thing. I won't repeat the mistake and not have a manual or tutorial video ready at release: Since my previous tutorial video is now totally deprecated I am doing a new one. This time, instead of just telling you what the different features do, I'll do a step-by-step tutorial in four parts where I will create an actual map. This way I will certainly miss a few features but you should get a better feeling of how to actually use the tools in reality. Part 1 is finished already and it covers "installing" (i.e. downloading the .exe files) CMAutoEditor, installing other necessary tools, selecting a location for the map in map.army, finding and downloading elevation data, downloading OpenStreetMap data and getting historical aerial imagery and working with it. So, basically the boring stuff, some of you might say, but possibly the most important part. 😉
    In the future I'd like to adapt CMAutoEditor to one of the WW2 titles, I think CMFB or CMRT would be best. Obviously present-day OpenStreetMap won't do for that. So, instead I'd like to make another tutorial showing how to use and old map or aerial image to make "OpenStreetMap data" from scratch and feed it into the CM scenario editor. Drawing polygons and tagging them is still - in my view - much more comfortable than clicking in the editor with some semi transparent overlay. So, if you have good material, go ahead and make a suggestion here. 😉
    I hope you enjoy this new version of CMAutoEditor and the tutorial video(s)!
  7. Like
    Bartimeus got a reaction from Lethaface in CMFS2 solo campaign(work in progress) : Oil Thirst - RED(player) vs BLUE   
    Will see. First I will put then all out
  8. Thanks
    Bartimeus reacted to Erwin in CMFS2 solo campaign(work in progress) : Oil Thirst - RED(player) vs BLUE   
    Thank you for all your work.  Hope that you eventually put em all together in a campaign.
  9. Like
    Bartimeus reacted to Butschi in Looking for information/plausibility check for Agger Valley Campaign   
    I've had this idea since CMCW came out. A campaign that takes place in the Agger Valley, i.e. North Rhine-Westphalia, east of Cologne instead of the Fulda Gap. The main roads and railway go through the valley, the hills around it are a mixture of woods and farmland with only smaller roads and settlements. This is the area I grew up in and CMCW reminded me of the young boy I was back in the 80s with his regiment's worth of plastic soldiers and tanks, imagining things while looking out of the window. Recent events in Ukraine made me reconsider whether it is really that much of a good idea to see your home town being devastated by war. Then again, part of why I play wargames nowadays is to get at least an idea of how people must have felt or must feel in a war. So how better to explore this than having a battlefield where I actually recognize the features from my childhood?

    I'm not much into Cold War force compositions and I'm no expert on how such a campaign would have been organized in reality (i.e. what forces would have been employed where and how and such). So this is where I would like to ask for your input. What forces would have realistically taken part in such a campaign, how they would have been equiped, their structure, OOB, you name it.
    The Backstory
    It is september 1980. Similar to what almost happened with Able Archer a few years later, the KGB had identified Reforger 80 - Certain Rampart as a disguise to actually start a war. According to Soviet strategic planning this had to be prempted with an attack of their own. Soviet tanks had suddenly crossed the border just a week before Certain Rampart was to start. The first few days had gone badly for NATO forces that had been busy preparing for the exercise. But now, about a week into the war, much of the frontline has become static as both sides are nearing exhaustion.
    North Rhine-Westphalia had seen the fiercest fighting in and around the Ruhrgebiet, the industrial heart of West Germany and also the largest urbanized area. The southern part had been relatively quiet as the region east of it, Sauerland/Siegerland/Rothaargebirge was difficult terrain with little infrastructure. It was here where the Soviets had gambled: They had thrown in their last fresh reserves, Category C formations, beefed up with some remnants of some Category A and B formations that had been pulled from the frontline for reconstruction. Still they must have had help from either local supporters, sleeper agents from the GDR or SOF that enabled such a quick advance after the break through. Every German Autobahn had been prepared for demolition and in case of a Soviet advance, bridges should have been blown, roads made impassable, etc. They weren't and in a mad dash Soviet forces had rushed down Autobahn 4 up to Engelskirchen where they were finally forced to go by normal roads. The western part of the Agger valley lay ahead. It was narrow and there was not much infrastructure outside of it. But a successful advance down the valley would bring the Red Army to the river Rhine, just oposite of the West German capital, Bonn and close to Cologne/Bonn Airport.
    NATO was hard pressed at this point as most of the reserves had been commited already. It was decided to take parts of US 5th Infantry Division to plug the gap. The Reforger reinforcements had been delayed and parts of the equipment had fallen prey to Soviet missile strikes and interdiction. Somewhat understrength and under equipped a battalion TF was sent ahead to setup in the town of Overath.
    The Current Situation
    While the battalion is still setting up in Overath, the scout platoon and 2 platoons of B Company are racing towards Loope to delay the Soviet advance and give the rest of the battalion time to setup.
    Several things I'd like to explore here.
    Terrain that is different from Fulda Gap, dominated by hills around a long valley. Not AAA elite tank formations duking it out but understrength, second rate forces. Autumn weather, rain, mud and all that. So, what do you think, is the back story plausible? I hope that noone feels offended by me calling any US troops second rate, but in the sense I described above, what would a second rate force look like (also in CM terms). I don't know much about National Guard formations, I was thinking about 256th Infantry Brigade, for instance. Is it realistic to view them as possibly worse equipped than formations permanently in Europe and less trained/fit? I'd love to have West German reserve units (Heimatschutz or something) for this but I have to take what I can get. What should Soviet forces look like?
    Locations
    I'm not very skilled at map making or am too impatient (or both), so that so far kept me from actually starting with this. This is part of why I've been busy developing CMAutoEditor (well work is still in progress). Which automates much of the map making for me (but also puts some constraints on the map making, like only maps with axes parallel to the coordinate axes).
    Sorry for advertising my own tool here, it's just to give you the context for how maps are done. I use laser scans for elevation data and OpenStreetMap as starting point form map making (meaning I delete buildings that weren't there 1980 and stuff like that).
    My Loope map so far looks like this:

    I have some of the eastern part of Overath. Do you have ideas for other locations or missions that would make sense?
     
     
  10. Upvote
    Bartimeus reacted to Butschi in Script to automatically set the elevation in the editor   
    As an update, my latest map build:


    I (once more) reworked the buildings algorithm and roads/railways/streams. Mostly playing along nicely, although one has to take care not to have a too dense network, because then the algorithm won't be able to find a valid solution.

    Now also with fence-like objects...

    ... and flavour objects.

    So basically by now all the necessary functionality is there and working. Some things can be improved but that is more tweaking of cost functions, etc.
    I am going to be working on maps for my first Agger Valley campaign, probably consisting of three missions. But afterwards I will go about making the tool available for everyone, I think. 🙂 (Which will involve tyding up, making a tutorial, etc.)
  11. Like
  12. Like
    Bartimeus reacted to Phantom Captain in CMCW Unofficial Screenshot And Video Thread   
    Some Cold War love of recent PBEMs of @Bartimeus scenarios..









  13. Thanks
    Bartimeus reacted to Blazing 88's in CMFS2 solo campaign(work in progress) : Oil Thirst - RED(player) vs BLUE   
    Good stuff. Thx.
     
  14. Thanks
    Bartimeus got a reaction from Justas in CMFS2 solo campaign(work in progress) : Oil Thirst - RED(player) vs BLUE   
    Hello, 
    Since last time I realease two news missions of the serie(it will not be realease as a campaign) :
    https://www.thefewgoodmen.com/tsd3/cm-shock-force-2-2/cm-shock-force-2-scenarios/cmsf2-oil-thirst-05-saving-letha-iavsred/
    And 
    https://www.thefewgoodmen.com/tsd3/cm-shock-force-2-2/cmsf2-oil-thirst-06-desert-ambush/
    And is a save and run mission and the second an ambush mission enjoy! 
  15. Like
    Bartimeus got a reaction from MeatEtr in CMFS2 solo campaign(work in progress) : Oil Thirst - RED(player) vs BLUE   
    Hello ! 
    The fourth scenario of the Oil Thirst project is out : https://www.thefewgoodmen.com/tsd3/cm-shock-force-2/cm-shock-force/cmsf2-oil-thirst-04-swamp-and-sweep/
    In this one you command a syrian SF group in a night raid. Enjoy ! 
  16. Like
    Bartimeus got a reaction from MeatEtr in CMFS2 solo campaign(work in progress) : Oil Thirst - RED(player) vs BLUE   
    Hello, 
    Since last time I realease two news missions of the serie(it will not be realease as a campaign) :
    https://www.thefewgoodmen.com/tsd3/cm-shock-force-2-2/cm-shock-force-2-scenarios/cmsf2-oil-thirst-05-saving-letha-iavsred/
    And 
    https://www.thefewgoodmen.com/tsd3/cm-shock-force-2-2/cmsf2-oil-thirst-06-desert-ambush/
    And is a save and run mission and the second an ambush mission enjoy! 
  17. Like
    Bartimeus reacted to Butschi in Script to automatically set the elevation in the editor   
    Technically it processes geojson files that contain OpenStreetMap tags. The idea being that directly importing OpenStreetMap (directly downloading from the internet) is really only good for present day titles. CMBS and maybe CMSF2. Instead you use e.g. JOSM to download the data and modify it to your needs. For example, I use aerial imagery from ca 1980 as overlay in JOSM and just remove elements that weren't there 1980 or add those that were. Its easy to do, you draw a polygon and give it the "landuse: forest" tag. That way you can even create your own map from scratch and export it as OSM data.
    But currently it is very rough around the edges and seeing how people struggle with just the elevations version, this really has to mature a little more.
  18. Upvote
    Bartimeus got a reaction from JM Stuff in Script to automatically set the elevation in the editor   
    So actually the version is with the import of data from Openstreet map? Hope battlefront hire you to implent a full system into the editor
  19. Like
    Bartimeus reacted to Butschi in Script to automatically set the elevation in the editor   
    So, just to give you a quick update, everything below refers to importing stuff from OpenStreetMap
    Wot Is Done Already:
    Forests, randomized tree types and densities, tree types configurable, weights for types and densities configurable Bushes as above Grass as above Farmland as above water etc. (basically everything that is just a polygon in OSM can be done in this way) Wot I'm Working On:
    roads, Roads, ROADS!!! I became a little obsessed with them. By now I'd like a word with the sadist at Battlefront who decided that doing the road tiles the way they are was a good idea. Most designers don't bother, because it is a royal PITA that you can't just combine most of the tiles, because the widths don't fit (so, you can't go from W<->E to NW<->SE directly, there has to be a tile in between. Not even the official Line Drawing Tool in the editor does it right. Oh well. After rather excessive use of graphs and shortest path finding in there and so on, I found a solution that works. I am just fixing edge cases. And then I will have to destroy it because while correct most people will not like the sometimes resulting wiggly roads instead of just diagonal ones. I guess I'm going insane! 🤪 Once that's done though, railways and streams will be easy to implement and fences and walls should also be relatively straightforward. Wot May Come:
    Areas (like forests, grass, etc, see above) with configurable cores/borders, such that you can have forests that are more dense on the inside or have different ground, fields with crops but just plowed ground on the edges (randomly) walled or fenced areas - good for having fences around fields, hedges around residential areas, ... Houses, but only types, I can't do 3D-view Flavour Objects (which you will have to fine tune yourself, no automatic stuff in 3D-view): Bus stops where there are bus stops on the map, power poles, etc.) Well, that escalated quickly from nice little project for a weekend or two...
  20. Thanks
    Bartimeus got a reaction from kohlenklau in Christmas 2022 Scenario Challenge   
    Hello, 
     
    Let's say this scenario will be my participation : https://www.thefewgoodmen.com/tsd3/cm-cold-war/cmcw-fox-break/ 
     
    Hope you enjoy it
  21. Upvote
    Bartimeus got a reaction from IICptMillerII in Operation DUR (scenarii pack)   
    Lead a battlegroup from the nation of your choice(British, Canadian, German or Duch) in order to break through Syrian defense. 
    It's a large battle against well prepared and train Syrian, you will have 4 files and you can chose with which army you want to tacle this : 
    https://www.thefewgoodmen.com/tsd3/cm-shock-force-2-2/cmsf2-operation-dur-hvsia/
     
    enjoy ! 
  22. Like
    Bartimeus got a reaction from Vergeltungswaffe in Operation DUR (scenarii pack)   
    Lead a battlegroup from the nation of your choice(British, Canadian, German or Duch) in order to break through Syrian defense. 
    It's a large battle against well prepared and train Syrian, you will have 4 files and you can chose with which army you want to tacle this : 
    https://www.thefewgoodmen.com/tsd3/cm-shock-force-2-2/cmsf2-operation-dur-hvsia/
     
    enjoy ! 
  23. Thanks
    Bartimeus reacted to MOS:96B2P in Operation DUR (scenarii pack)   
    +1.  The choice of battlegroup is an interesting idea.  I did something similar with CMRT Alarmeinheiten but used a "choice" scenario within a mini-campaign.  Since Combat Mission campaigns are binary there were only two choices of TOE.  You have found a simplified way to get four choices.  Good idea.    
  24. Upvote
    Bartimeus got a reaction from MOS:96B2P in Operation DUR (scenarii pack)   
    Lead a battlegroup from the nation of your choice(British, Canadian, German or Duch) in order to break through Syrian defense. 
    It's a large battle against well prepared and train Syrian, you will have 4 files and you can chose with which army you want to tacle this : 
    https://www.thefewgoodmen.com/tsd3/cm-shock-force-2-2/cmsf2-operation-dur-hvsia/
     
    enjoy ! 
  25. Like
    Bartimeus got a reaction from 37mm in Operation DUR (scenarii pack)   
    Lead a battlegroup from the nation of your choice(British, Canadian, German or Duch) in order to break through Syrian defense. 
    It's a large battle against well prepared and train Syrian, you will have 4 files and you can chose with which army you want to tacle this : 
    https://www.thefewgoodmen.com/tsd3/cm-shock-force-2-2/cmsf2-operation-dur-hvsia/
     
    enjoy ! 
×
×
  • Create New...