Developer Diary #4 - Creating a new Dynamic Campaign Game

John Tiller's Campaign Series exemplifies tactical war-gaming at its finest by bringing you the entire collection of TalonSoft's award-winning campaign series. Containing TalonSoft's West Front, East Front, and Rising Sun platoon-level combat series, as well as all of the official add-ons and expansion packs, the Matrix Edition allows players to dictate the events of World War II from the tumultuous beginning to its climatic conclusion. We are working together with original programmer John Tiller to bring you this updated edition.

Moderators: Jason Petho, Peter Fisla, asiaticus, dogovich

User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

Having discussed

- Randomly Generated Battles in my Diary #2, ,
- Addition of new units in Diary #3,

... I will next discuss creating a new Dynamic Campaign, covering the Lapland War of Sept 1944 - April 1945.


Let's Do: A New Dynamic Campaign Game!

First, we will reuse the required Campaign##.oob files, one for Allied Finland (39), one for Axis Germany (01).
Remember: as of 2.01, the game engine will not be as lenient towards the data files as previously: if you for an example select to play a Brigade level game, the game engine now expects to find Bde organizations from these OOB files.

Here's the starting point, the Lapland Random Battle Pack I've put together earlier. I mean, if I can do Random Battle organizations, I can do DCGs as well right [8D]
Random battle generator and Dynamic Campaign Games both use the nation specific Campaign OOB file. As with the Battle Packs, I will deploy this DCG as a user mod as well. That way, I can keep the OOB data simple to the task - nothing else included but the absolute units I want to see involved.

First, the Germans

Update: Note that I put in two entries, as I intend to have this as part of the stock Campaign01.oob for MCS2.10 UPDATE. Then, to have these units available both for Infantry DCGs and Armored DCGs I needed to duplicate them as both unit types (see the emphasis):
Campaign01.oob:

[-------------- Lapland War 1944-45 Dynamic Campaign Game ------------------]
[--------------------------- MCS 2.10 ---------------------------------------]
[------------------------ Armored Corps --------------------------------------]
44 09 45 05 K0150209 6 20th Mountain Army
44 09 45 05 P01306 20th Mountain Army Corps HQ
44 09 45 05 D0142021 6th SS Mountain Division 'Nord'
44 09 45 05 D0142004 2nd Gebirgs-Infanterie Division
44 09 45 05 D0142004 5th Gebirgs-Infanterie Division
44 09 45 05 D0142222 163. Infanterie Division
44 09 45 05 D0142222 169. Infanterie Division
44 09 44 12 G0132701 Kampfgruppe Kräutler ('Division Kräutler')
44 09 44 12 B0110600 211th Panzer Abteilung

[-------------- Lapland War 1944-45 Dynamic Campaign Game ------------------]
[--------------------------- MCS 2.10 ---------------------------------------]
[------------------------ Infantry Corps ---------------------------------------]
44 09 45 05 K0152209 6 20th Mountain Army
44 09 45 05 P01306 20th Mountain Army Corps HQ
44 09 45 05 D0142021 6th SS Mountain Division 'Nord'
44 09 45 05 D0142004 2nd Gebirgs-Infanterie Division
44 09 45 05 D0142004 5th Gebirgs-Infanterie Division
44 09 45 05 D0142222 163. Infanterie Division
44 09 45 05 D0142222 169. Infanterie Division
44 09 44 12 G0132701 Kampfgruppe Kräutler ('Division Kräutler')
44 09 44 12 B0110600 211th Panzer Abteilung

Please note the Germans lack a generic Bde formation. I will add this as I go along in a form of a Battle Group that I will make Bde sized. EDIT: Done! Division Kräutler, a "reinforced regiment" sized battle group fit the bill perfectly [:)]

Then, Finns:

As this is the one and only Finnish Campaign organization, it can be picked for both Infantry and Armored types of DCGs automatically by the game engine:
Campaign39.oob:

[-------------- Lapland War 1944-45 Dynamic Campaign Game ------------------]
[--------------------------- MCS 2.10 ---------------------------------------]
44 06 53 12 K3952905 7 III Army Corps - Lapland War
44 06 53 12 P39306 III Army Corps HQ
44 06 53 12 P39410 Lt Gen Hjalmar Siilasvuo
44 06 53 12 D3940901 Armored Division
44 06 53 12 D3942905 3. Infantry Division
44 06 53 12 B3912622 5. Independent Battalion
44 06 53 12 G3932909 Border Guard Brigade

For Finns, all organization levels up to Corps are available. I will however limit the DCG to Armored Division and one Infantry formation, probably an element of the 3.D as Border Guard Bde saw little action in the war.

OK, that was easy! Easy, as being already quite familiar with CS OoB files and how they are used [:)]

But what next [&:]

I have no idea how a DCG is put together! Time to revert to last chance saloon: read the effin' manual [:D]
Attachments
Kolmen_val..7.4.1945.jpg
Kolmen_val..7.4.1945.jpg (51.05 KiB) Viewed 642 times
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#1 - Learning the basics: C:\Matrix Games\John Tiller's Campaign Series\Manuals\Creating and Modifying a DCG.pdf

While I've never attempted to create a DCG, there's a thorough document called Creating and Modifying a DCG.PDF in the Manuals folder explaining how to create one.

Thank you Richard for putting it together, easy read while very comprehensive! [&o]

Having read the document over a couple of times, I am confident I am able to put something together.

That will have to wait though, until I return from my trip. Until next week it is! [:)]


#2 Preparing the data files

As suggested in Richard's guideline, I chose to copy an existing DCG to serve as a basis for my DCG. As the Lapland War DCG will take place over winter, I chose Operation Uranus fileset as a starting point.
I will not repeat the details of the guideline here, please keep the Creating and Modifying a DCG document open when reading this. It is found in the Manuals folder under your install.

As always, I will implement this as a User Mod, and have created a following directory for the DCG. Then, I will rename the files to be used by my Lapland War DCG:

Image
Attachments
files.jpg
files.jpg (126.77 KiB) Viewed 640 times
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#3 Weather, Visibility and Ground conditions: *-Weather.dat

As described in pages 3 to 4 in the guideline, the first step is to set the weather and ground conditions right for the Lapland DCG.
Creating and Modifying a DCG.pdf:

My campaign-Weather.dat contains the weather patterns for every month of the year. The top group determines the visibility and the bottom group determines the ground conditions including snow, ice, etc. Let’s take a closer look at the top group. There are 13 3-digit numeric columns followed by the description of the visibility. Each of the first 12 columns is a particular month, and the 13 th column is the visibility in hexes.

For the first 12 columns, each of the 3 digit number can be looked at as the % probability of that condition occurring for the current DCG Mission. For example, from the chart below in January there is a 35% chance of Hazy conditions. 000 means a check for that condition will be skipped. 101 means that if all conditions fail the probability check, that condition will be selected.

Having opted to use the Operation Uranus data sets as a basis, I do not need to alter them a lot.

For Weather, the first table, I simply reduce the probability for good visibility, as I prefer my scenarios to have no longer visibility than 10. Not to display the weather as such, but to keep the LOS shorter and to disallow any long range direct fire duels that I don't particularly want to see in my scenarios. So what I did was to reduce the probabilities of the first four rows of weather type percentages in all monthly data sets.
Lapland War-Weather.DAT:

JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC VIS Lapland War
028 033 036 036 042 041 049 047 015 015 015 035 020 Clear
048 051 050 048 049 056 055 054 020 020 020 045 018 Overcast
049 053 053 051 059 068 068 068 025 025 025 048 015 Hazy
063 066 065 062 066 072 072 071 055 055 055 052 010 Light Rain or Snow
076 079 076 075 083 087 088 086 083 077 080 077 008 Squalls
090 092 085 087 091 094 095 093 090 087 090 089 006 Heavy Rain or Snow
092 094 090 091 093 095 096 094 092 090 092 091 006 Light Fog
093 095 093 094 095 096 097 095 094 093 093 092 004 Fog
094 096 095 096 096 097 000 096 095 095 094 093 003 Thick Fog
000 000 096 097 097 000 000 000 096 096 096 095 002 Very Thick Fog
101 101 101 101 101 101 101 101 101 101 101 101 001 Night

JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC GND TRE FLD WTR Lapland War
000 000 000 015 000 000 000 000 000 010 040 040 S S N N
000 000 000 015 000 000 000 000 000 030 050 060 S B N N
080 085 085 085 000 000 000 000 000 020 060 080 S S N F
101 101 101 101 000 000 000 000 000 030 080 101 S B N F
000 000 000 000 000 000 000 000 020 060 101 000 S F N N
000 000 085 000 000 000 000 000 000 000 000 000 M B N N
000 000 000 000 000 000 000 000 040 050 000 000 M F N N
000 000 000 026 006 000 000 000 000 000 000 000 M L N N
000 000 000 000 000 000 000 000 040 020 000 000 M F T N
000 000 000 000 000 000 000 000 020 000 000 000 M L T N
000 000 000 080 000 000 000 000 040 040 000 000 M B P N
000 000 101 000 000 000 000 000 020 020 000 000 L B N N
000 000 000 051 015 003 000 000 020 020 000 000 M L P N
000 000 000 000 000 031 025 015 033 010 000 000 L L T N
000 000 000 191 060 041 000 000 020 000 000 000 L L P N
000 000 000 000 000 000 000 000 020 000 000 000 L L N N
000 000 000 000 000 000 000 000 040 020 000 000 D F T N
000 000 000 000 000 000 000 000 040 050 000 000 D F N N
000 000 000 000 000 000 000 000 050 060 000 000 D B N N
000 000 000 000 000 000 000 000 030 101 000 000 D S N N
000 000 000 000 000 000 000 000 000 000 000 000 D S T N
000 000 000 101 101 101 101 101 101 000 000 000 D L T N

Similarly, for weather, you'd put the probabilities in for a correct ground conditions, observing the last four letters as follows:
Creating and Modifying a DCG.pdf:

Ground: S=snow, M=mud, L=damp or light mud, D=Dry
Trees: S=Snow, B=Barren, F= Brown, L=Green
Fields: N=none, P=plowed, T=in season
Water: N=normal, F=frozen

For ground conditions, I tweaked the parameters to allow for muddy September, with first snow likely appearing in October, and from November it being a true winter with lakes and rivers frozen.

#4 Replacements: *-Replacements[0,1].dat

The next two data files to edit are the ones dealing with replacements, Replacements0.dat for the allies (Finns), and Replacements1.dat for the axis (Germans).

The first column represents the dates, the second armored core replacements (if you chose an armored force to play), the third column infantry core replacements (if you chose an infantry force for the DCG).

My intention is, for Germans, a neat replacement rate for infantry core. Armored core will not be available, as they did not have any significant armored formations in Lapland. I have not much tested this yet so this is subject to change.
Lapland War-Replacements1.dat:

LAPLAND WAR-REPLACEMENT1 (AXIS)
440928 3 5
441007 3 5
441014 3 5
441021 3 5
441028 2 5
441107 2 4
441114 2 4
441121 2 4
441128 2 4
441207 2 3
441214 2 3
441221 2 3
441228 2 3
450107 2 3
-1

For Finns, an armored core will be available, as well as an infantry one. To model the need to haul the tanks to Lapland, from Southern Karelia where they fought Soviets just a few weeks earlier, the replacement rate is slow at first. Towards the end of war, the replacement rate again goes down, as the Ceasefire terms as defined by the Allied Control Forces (mostly dictated by Soviets) meant that Finland was forced to move to peacetime formations although still at war. Again, I have not much tested this yet so this is subject to change.
Lapland War-Replacements0.dat:

LAPLAND WAR-REPLACEMENT1 (ALLIED)
440928 2 5
441007 3 5
441014 4 5
441028 5 5
441107 4 4
441114 4 4
441121 3 4
441128 3 3
441207 2 3
441214 2 3
441221 2 2
441228 2 2
450107 2 2
-1
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#5 Campaign Storyboard

To have a fun campaign, there should be an underlying story that the campaign follows. According to Wiki article linked in the opening post, I will have my DCG run in five chapters:

The Autumn Maneuvers: Oulu, Pudasjärvi and Pudasjärvi Airport, Ranua
Initial Clashes - Tornio Landing Operation: Royttä (the outer harbor of city of Tornio where the landing took place), Tornio, Kemi
Pursuit Towards Rovaniemi: towards Ylimaa and Rovaniemi
Further Action in Lapland: Pello, Kolari, Muonio towards the Sturmbock-Stellung near the Ounastunturi Fjell
German Retreat to Norway: Through the Sturmbock-Stellung to Kaaresuvanto and Kilpisjärvi where the borders of Finland, Sweden and Norway meet.

I also need to plot the routes the DCG will proceed. Lots of research material and maps available. How about this one:

Image

To keep things simple(r), I will initially have only one route that the campaign proceeds through the map. For future, I will consider adding other historical routes as shown in the map above.

These routes are implemented in the *-Locations.dat file as follows:
Creating and Modifying a DCG.pdf:

3 = this is sort of a route number. You can have several routes (I’ve seen numbers 0-4 used, but never more than 3 routes per DCG.) Once a route is randomly picked, the computer will usually stick to only those locations with the same route number. This way you can branch out geographically in different locations during the campaign. If the route doesn’t exist in the following week, it seems to just randomly pick any available new route.

I will do this in my post #6, below.
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

Return from Hiatus
'
Update 9/27/14: Thanks to 'tidavis' we're right back on! The real life got involved, I just quite did not have the time to spend on getting this DGC up to speed from scratch. Especially as I've not worked on one before. [:(] 'Tidavis' then offered his helping hand, and we go again! [:)]

First thing that was looked at was the OOB files I'd created in the beginning. Some errors there, for an example the Finnish Assault Gun Battalion was not an armored core formation per their setting. Now they are:
[font="Courier New"][-44 06 53 12 B3914601 7 1. Sturmgeschutz Battalion (Tk Div)-]
[-44 06 53 12 P39305 1. Sturmgeschutz Battalion HQ-]
[-44 06 53 12 P39411 Major Akerman-]
[-44 06 53 12 C3904602 1. Company-]
[-44 06 53 12 C3904602 2. Company-]
[-44 06 53 12 C3904602 3. Company-]

[------------------------Lapland War DCG----------------------------------------]
[--------------------------By T. Davis------------------------------------------]
[-----------------------------MCS2.10-------------------------------------------]
[-----------------Assault Gun Battalion Changed to Armor------------------------]

44 06 53 12 B3910900 7 1. Sturmgeschutz Battalion (Tk Div)
44 06 53 12 P39305 1. Sturmgeschutz Battalion HQ
44 06 53 12 P39411 Major Akerman
44 06 53 12 C3904602 1. Company
44 06 53 12 C3904602 2. Company
44 06 53 12 C3904602 3. Company[/font]

More importantly, we were missing a key armored formation as a whole - the only armored formation Germany had in Lapland: Panzerabteilung 211. Here she is, in all her glory:
Battalion01.oob
[font="Courier New"][-------------- Lapland War 1944-45 Dynamic Campaign Game ------------------]
[--------------------------- MCS 2.10 ---------------------------------------]
[------------------------ By T. Davis --------------------------------------]

44 09 44 12 B0110600 7 211th Panzer Abteilung
44 09 44 12 P01407 Major
44 09 44 12 P01305 Panzer Battalion HQ
44 09 44 12 C0100550 1/211
44 09 44 12 C0100551 2/211
44 09 44 12 C0100552 3/211[/font]

Company01.oob
[font="Courier New"][-------------- Lapland War 1944-45 Dynamic Campaign Game ------------------]
[------------------------------ MCS 2.10 ---------------------------------------]
[-------------------------- By T. Davis ------------------------------------]
[------------------------German Panzer Abteilung 211----------------------------]

44 09 44 12 C0100550 7 Panzer Kompanie (6 PzIIIN 5 Pz 39H)
44 09 44 12 P01406 Hauptman
44 09 44 12 P01660 I. Abschnitt
44 09 44 12 P01660 II. Abschnitt
44 09 44 12 P01660 III. Abschnitt
44 09 44 12 P01652 Liechte Zug

44 09 44 12 C0100551 7 Panzer Kompanie (15 Pz 35-S 5 5 Pz 39H)
44 09 44 12 P01406 Hauptman
44 09 44 12 P01691 HQ Zug
44 09 44 12 P01691 I. Zug
44 09 44 12 P01691 II. Zug
44 09 44 12 P01691 III. Zug
44 09 44 12 P01652 Liechte Zug

44 09 44 12 C0100552 7 Panzer Kompanie (22 Pz 39H)
44 09 44 12 P01406 Hauptman
44 09 44 12 P01176 HQ Zug
44 09 44 12 P01652 I. Zug
44 09 44 12 P01652 II. Zug
44 09 44 12 P01652 III. Zug
44 09 44 12 P01652 IV. Zug[/font]

"What's that!", I hear you say. "There's no Pz 35-S in German OOB!". Well there is now, with a correct unit picture as well:
Image

One of the nice things about Lapland War DCG will be the ability to play a late war scenario with early war armour against infantry armed to their teeth with panzerfaust and panzerschreck!
Attachments
lapland_3.jpg
lapland_3.jpg (210.25 KiB) Viewed 637 times
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

ORIGINAL: Crossroads

One of the nice things about Lapland War DCG will be the ability to play a late war scenario with early war armour against infantry armed to their teeth with panzerfaust and panzerschreck!

You have been warned! [:D]

Image
Source: www.sa-kuva.fi. Used with permission (source mentioned).
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#6 Battle Timeline and Locations: *-Locations.dat

Right. To model the locations into map, a *-Location.dat needs to available. And here it is. Just to try out something new, I added a description for each date for 'the five chapters' of my Lapland Campaign. And it seems it did not break anything:
Lapland War-Location.dat:

440928 30 5 0 0 0 0 0 AUTUMN MANEUVERS
Pudasjärvi 3 53 353 326 0 0 0
Pudasjärvi 3 54 353 326 0 0 0
Isosaari 3 53 340 320 0 0 0
Isosaari 3 54 340 320 0 0 0
Pudasjärvi_Airport 3 9 360 315 0 0 0
Pudasjärvi_Airport 3 12 360 315 0 0 0
Pudasjärvi_Airport 3 13 360 315 0 0 0
Ranua 3 52 333 270 0 0 0
Ranua 3 53 333 270 0 0 0
Ranua 3 54 333 270 0 0 0
441012 30 1 0 0 0 0 0 INITIAL CLASHES - TORNIO LANDING OPERATION
Röyttä 3 9 255 300 0 0 0
Röyttä 3 10 255 300 0 0 0
Röyttä 3 18 255 300 0 0 0
Tornio 3 18 253 285 0 0 0
Tornio 3 12 253 285 0 0 0
Tornio 3 10 253 285 0 0 0
Tornio 3 43 253 285 0 0 0
Keminmaa 3 45 266 293 0 0 0
Keminmaa 3 45 266 293 0 0 0
Kemi 3 51 273 302 0 0 0
441026 30 5 0 0 0 0 0 PURSUIT TOWARDS ROVANIEMI
Tervola 3 52 274 279 0 0 0
Tervola 3 53 274 279 0 0 0
Ylimaa 3 53 300 242 0 0 0
Ylimaa 3 54 300 242 0 0 0
Ylimaa 3 53 300 242 0 0 0
Ylimaa 3 54 300 242 0 0 0
Ylimaa 3 52 300 242 0 0 0
Rovaniemi 3 10 316 231 0 0 0
Rovaniemi 3 12 316 231 0 0 0
Rovaniemi 3 10 316 231 0 0 0
441109 30 5 0 0 0 0 0 FURTHER ACTION IN LAPLAND
Ylitornio 3 18 248 262 0 0 0
Ylitornio 3 12 248 262 0 0 0
Pello 3 45 242 238 0 0 0
Pello 3 51 248 238 0 0 0
Äkäslompolo 3 49 259 137 0 0 0
Äkäslompolo 3 50 259 137 0 0 0
Äkäslompolo 3 49 259 137 0 0 0
Muonio 3 17 248 111 0 0 0
Muonio 3 20 248 111 0 0 0
Muonio 3 18 248 111 0 0 0
441123 30 5 0 0 0 0 0 GERMAN RETREAT TO NORWAY
Enontekiö 3 32 250 82 0 0 0
Enontekiö 3 33 250 82 0 0 0
Enontekiö 3 34 250 82 0 0 0
Kaaressuvanto 3 32 227 78 0 0 0
Kaaressuvanto 3 33 227 78 0 0 0
Kaaressuvanto 3 34 227 78 0 0 0
Kilpisjärvi 3 30 154 11 0 0 0
Kilpisjärvi 3 30 154 11 0 0 0
Kilpisjärvi 3 30 154 11 0 0 0
Kilpisjärvi 3 30 154 11 0 0 0

Quite some gibberish, until you visit the excellent Creating and Modifying a DCG.pdf again. There, in from page 4 on, the syntax is explained in detail. Take this line, for an example:
440928 30 5 0 0 0 0 0 AUTUMN MANEUVERS

440928 Battles to take place in one of the following ten (must be ten!) locations, if date is on or before this date. The beginning of the whole DCG is set at chardesc1.txt. See my post HERE.
30 Chance, that the next battle takes place the very next day. So with 30% I am targeting some 4 to 5 battles per the five stages (30% chance of a 14 day period).
5 The country where the locations are. Seems not to do anything at the moment? That is what the DCG pdf said, that is my observation as well.
0 0 0 0 0 AUTUMN MANEUVERS Placeholders, and my comment line which seemed not to break anything.

And how about this:
[font="Courier New"]Kemi 3 51 273 302 0 0 0[/font]

Kemi = The name of the location where for the battle to take place, used in the mission assignment.
3 = route. I only have one route at this stage, so I will fight all these locations until I add another route as discussed before.
51 = Map type to generate. As explained in the document, this refers to line number of Map description.dat. 51 = Swampy Forest City Lake.
316 231 = Pixel co-ordinates of map picture (one layered bitmap). The map picture needs to of certain size.
0 0 0 = Not in use

Oh, and make sure to have either a hyphen or underscore in location names, otherwise the engine will not be able to interpret the row correctly!

Let us discuss the map type and map picture in more detail. First, map bitmap:
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#7 Adding a Map File: *-Map.bmp (624x362)

So, to have a map picture available, yet another file is needed: Lapland War-Map.bmp in my case. I surf the net to find a proper map of Pre-war Finland with her old borders, and select a picture. I crop a selection of Northern Finland into a picture sized 624*362 pixels, and save it as a one layered BMP file.

Easy step this one - gotta love them!

#8 Linking battle locations to Map.bmp: *-Location.dat file

Not quite there yet, though. With the correct sized bitmap available, I need to enter the pixel co-ordinates of each of my Battle location into the respective row. Let us look at the Kemi location row again:
[font="Courier New"]Kemi 3 51 273 302 0 0 0[/font]

What I did there I simply pointed the mouse to the location of this city in the Lapland War-Map.bmp, observed the co-ordinates there, and wrote them here.

As a result, we will have a neat and correct mission assignment in the DCG. Like this one:
Image

It all came together; Kemi as the battle location, the map of pre-war Lapland, and a red dot indicating city of Kemi! The red dot marking a spot at 273x 302y exactly! Woo-hoo!
Attachments
lapland_kemi.jpg
lapland_kemi.jpg (177.58 KiB) Viewed 641 times
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

One more loose end. The map type, what's that all about?

Remember:
ORIGINAL: Crossroads

[font="Courier New"]Kemi 3 51 273 302 0 0 0[/font]

Kemi = The name of the battle to take place, used in the mission assignment.
3 = route. I only have one route at this stage, so I will fight all these locations until I add another route as discussed before.
51 = Map type to generate. As explained in the document, this refers to line number of Map description.dat. 51 = Swampy Forest City Lake.
316 231 = Pixel co-ordinates of map picture (one layered bitmap). The map picture needs to of certain size.
0 0 0 = Not in use

Well, these map types are just templates for the game engine to use when creating a random map for the battle to take place. Swampy Forest City Lake looks something like this then, this time around:
Image

Too bad it's just snowed, so can't see any swamps nor lakes there [:(]

Wait a minute, snow and frozen lakes in September? Frozen lakes in December? Yes. Maybe even in November if it's particularly cold. But no way in September. Not even in Lapland. Need to visit the weather file again to not allow this to happen anymore!

Attachments
lapland_kemi_map.jpg
lapland_kemi_map.jpg (527.05 KiB) Viewed 637 times
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#9 Weather.dat, Revisited
ORIGINAL: Crossroads

Wait a minute, snow and frozen lakes in September? Frozen lakes in December? Yes. Maybe even in November if it's particularly cold. But no way in September. Not even in Lapland. Need to visit the weather file again to not allow this to happen anymore!

UPDATE: Done, no more full winters in September! See the updated weather.dat HERE.

To be continued
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

Other topics to cover (note to myself)

- chardesc.txt (missing from the required files, as the new DCG info needs to be added to an existing file, describing all DCGs and LCGs per game folder).
- forces.dat (composition of forces when attacking / on defence)
- encounters.dat (chances for each encounter type - meeting engagement, static line, pocket breakthrougy, ...)
- attacker.dat (chances for each side having the initiative ie. attacking)
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Tidavis
Posts: 197
Joined: Sat Jul 26, 2014 9:09 pm
Location: Peoria, Illinois

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Tidavis »

"You have been warned!"

My people can fix that. A couple of bolts, a couple of nuts, a little applique, and a quick blast with the blow torch. That S-35 will be up and running again.

K. Hartmann
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

ORIGINAL: Tidavis

"You have been warned!"

My people can fix that. A couple of bolts, a couple of nuts, a little applique, and a quick blast with the blow torch. That S-35 will be up and running again.

K. Hartmann

Yeah, it looks rather undamaged doesn't it? Lost a track, or both of them and that's it? Sheesh, the modern youth, can't even change a tire [:-] Could do with a paint job though!
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#10 Force Compositions: *-Forces[0,1].dat

Allright, let us cover force compositions next. The force mix has a set of parameter files dedicated for the purposes, named aptly - are you ready for this - *-Forces0.DAT for the Allied and *-Forces1.DAT for Axis.

Here they are:
Lapland War-Forces0.DAT (ALLIED FINLAND):

450428 A TANK ART INF A-T ASS-GUN ENGINEERS RECON INF SUPP A-A CAV FORTS
1 17 13 45 5 5 10 0 0 5 0 0
2 22 18 35 5 3 10 0 0 7 0 0
3 10 15 35 5 5 5 0 0 5 0 0
4 23 5 10 2 5 15 2 0 3 0 0
5 10 20 43 20 5 2 5 0 0 0 0
6 15 15 35 15 4 5 5 0 3 5 0
7 18 17 35 15 9 5 0 0 1 0 0
8 5 10 50 25 2 5 0 0 8 0 0
9 10 12 40 26 8 5 0 0 2 0 0
10 15 12 30 21 10 5 15 0 3 10 0
11 10 15 45 12 2 5 0 0 8 3 0
11 10 15 45 12 2 5 0 0 8 3 0
-1
450428 D TANK ART INF A-T ASS-GUN ENGINEERS RECON INF SUPP A-A CAV FORTS
1 15 5 40 10 5 0 0 0 5 10 0
2 15 5 45 10 3 0 0 0 7 5 5
3 10 10 35 20 5 5 0 0 5 0 10
4 10 10 35 20 5 5 2 0 3 0 5
5 10 20 43 20 5 2 5 0 0 0 0
6 15 15 35 15 4 5 5 0 3 5 0
7 18 17 35 15 9 5 0 0 1 0 5
8 5 10 50 25 2 5 0 0 8 0 5
9 10 12 40 26 8 5 0 0 2 0 7
10 15 12 30 21 10 5 15 0 3 10 0
11 10 15 45 12 2 5 0 0 8 3 5
-1
Lapland War-Forces1.DAT (AXIS GERMANY):

450428 A TANK ART INF A-T ASS-GUN ENGINEERS RECON INF SUPP A-A CAV FORTS
1 15 22 37 5 8 10 1 0 0 0 0
2 16 18 36 10 5 10 0 0 5 0 0
3 9 20 23 8 10 5 0 0 5 0 0
4 27 15 31 2 8 15 2 0 0 0 0
5 29 25 31 0 5 5 5 0 0 0 0
6 14 20 36 0 10 20 0 0 0 0 0
7 19 22 36 3 5 10 5 0 0 0 0
8 19 20 56 0 0 5 0 0 0 0 0
9 29 15 36 0 5 10 5 0 0 0 0
10 24 10 46 0 5 0 15 0 0 0 0
11 9 20 48 0 5 10 0 0 8 0 0
-1
450428 D TANK ART INF A-T ASS-GUN ENGINEERS RECON INF SUPP A-A CAV FORTS
1 16 18 33 10 5 5 0 0 13 0 0
2 11 17 38 12 3 3 0 0 15 0 10
3 9 20 23 5 5 5 0 0 13 0 20
4 27 20 28 10 5 2 2 0 11 0 3
5 14 25 34 15 5 2 5 0 0 0 7
6 9 20 39 10 4 5 5 0 8 0 3
7 19 22 36 3 9 5 0 0 6 0 5
8 0 14 51 20 2 5 0 0 13 0 10
9 9 17 38 13 8 5 0 0 13 0 7
10 6 17 25 16 10 0 15 0 11 0 3
11 4 20 43 10 2 10 0 0 16 0 10
-1

So what gives? From the Creating and Modifying a DCG.pdf:
Creating and Modifying a DCG.pdf:

The Forces1.dat and Forces0.dat files provide the force distribution parameters for each type of Mission in a DCG. Forces0 is for Allies and Forces1 for Axis. The parameters can change each week or month or day at the designer’s preference.

There are 11 types of Missions in a DCG:
1 = Meeting Engagement
2 = Delaying Action
3 = Static Line
4 = Pocket Breakout
5 = Armored Breakthrough
6 = River Crossing
7 = Bridgehead
8 = Mopping Up
9 = Highway Clearing
10 = Recon
11 = Mountain Pass

Additionally, 'A' stands for force composition when attacking, 'D' when defending. I have not much touched these at all, so will return to them if and when needed as my testing continues! Especially, as
Creating and Modifying a DCG.pdf:

Usually these numbers should add up to 100 across the board for a balanced campaign against the AI. If one side was weak in the beginning but grew stronger as the campaign wore on, feel free to increase or decrease the values to total up to whatever you want over the months and weeks of your campaign.

So what about the unit types? How does the game engine tell a tank unit from a assault gun unit, or say from a recon unit? Answer: These unit types are coded into Organization IDs, the fourth digit being the key:
TABLE E - Force Type ID #
0 Armor
1 Artillery
2 Infantry
3 Anti Tank
4 Assault Gun
5 Engineer
6 Recon
7 Infantry Support
8 Anti-Air
9 Cavalry

Therefore, Division Kräutler is an Infantry organization:

[font="Courier New"]44 09 44 12 G0132701 6 Kampfgruppe Kräutler ('Division Kräutler')[/font]

Again: G0132701

G = Brigade
01 = German Nation ID
3 = Brigade sized (in areas, these Organization IDs are stored without leading letters, as pure numerals, therefore the information is coded into a number as well to letter)
2 = Table E above
701 = this particular German Brigades individual ID.


Definitely something I want to tweak to have the unique aspects of War in Lapland included in the DCG. What I have done at the moment for these URANUS DCG based parameters is to have removed most of the prepared positions (forts) from Finland side, and only allowed them to exist for Germans in their Static Line, Delaying Action and Mopping Up defensive actions.
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#11 Encounters of the Third Kind: *-Encounters.dat

Right, on we go! Consider this:
ORIGINAL: Crossroads
There are 11 types of Missions in a DCG:
1 = Meeting Engagement
2 = Delaying Action
3 = Static Line
4 = Pocket Breakout
5 = Armored Breakthrough
6 = River Crossing
7 = Bridgehead
8 = Mopping Up
9 = Highway Clearing
10 = Recon
11 = Mountain Pass

Additionally, A stands for force composition when attacking, D when defending. I have not much touched these at all, so will return to them if and when needed as my testing continues! Especially, as

So do we get a chance to tweak the likelyhood of each encounter type occuring? Betcha! There's a file called *-Encounters.DAT to do just that. So what goes in there?
Creating and Modifying a DCG.pdf:

Mission Selection – Encounters: This file allows you to develop some character to your campaign. Was it an armored breakthrough followed by a constant series of meeting engagements? Or hammering against a well organized defensive line? Or a series of delaying actions? The Encounters.dat file establishes the probability of each type of mission occurring during a particular time period. Let’s take a look at the file. Keep in mind the mission type
numbering defined above:

THE ROAD TO GERMANY
440614 45 10 5 5 10 5 5 5 5 5 0
440621 45 10 5 5 10 5 5 5 5 5 0
440628 5 5 35 5 15 15 5 5 5 0
440707 5 5 35 5 15 15 5 5 5 0
440714 45 10 5 5 10 5 5 5 5 5 0
440721 5 5 35 5 15 15 5 5 5 0
440728 5 15 5 5 35 5 5 5 5 5
440807 5 15 5 5 35 5 5 5 5 5
440814 45 10 5 5 10 5 5 5 5 5 0
440821 45 10 5 5 10 5 5 5 5 5 0
440828 5 5 35 5 15 15 5 5 5 0
440907 45 10 5 5 10 5 5 5 5 5 0

This is fairly simple. The date is just like locations. Missions occurring on or before this YYMMDD date will use the corresponding list, so make sure the last line is for a date that occurs after the DCG ends. The numbers that follow the date are the % probability of each type of mission occurring. The 11 columns correspond to the 11 mission type numbers, and these all should add up to 100% across the column.

So looking at my first version, I have tried to make each phase of the Lapland War stand out as different to each other:
Lapland War-Encounters.DAT:

DATEBFR ME DA SL PB AB RC BH MU HW RE MP
441011 25 10 0 10 10 15 0 0 10 20 0
441025 0 0 10 10 10 20 30 0 0 20 0
441108 10 30 10 10 10 0 0 10 10 10 0
441122 10 40 30 0 0 0 0 0 0 20 0
450115 10 10 10 10 0 5 0 5 10 10 30
-1


Does that make sense for Lapland War? Don't know, testing will tell!
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#12 To Attack, or Not, That is The Question! *-Attacker.dat

We're making progress here! Now that we understand how to set up which type of encounters we want to recreate, we just need to define who attacks who defends say on a Delaying Action, right! And worry not, there is a file available for this as well, named as *-Attacker.DAT.

Here's mine:
Lapland War-Attacker.DAT:

LAPLAND WAR DCG
440928 50 50
441007 60 40
441014 70 30
441021 50 50
441028 70 30
441107 60 40
441114 70 30
441121 60 40
441128 70 30
441207 60 40
441214 70 30
441221 70 30
441228 70 30
450107 70 30
-1

And what goes here? Again, the DCG How-to explains it in detail:
Creating and Modifying a DCG.pdf:

Again, this is fairly simple. The date is just like before. Missions occurring on or before this YYMMDD date will use the corresponding list until the date is passed, so make sure the last line is for a date that occurs on or after the DCG ends. The first number that follows the date is the % probability that the Allies will be attacker, the second is for the Axis.

What I have done there is to have put the onus of the attacking position on Finns, per each of the five stages I've created for the Lapland War DCG, according to my plan HERE.
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

#13 DCG selection parameters in game menu: chardesc1.txt

So finally, we need to make the DCG available to Main Menu. It is again explained in a perfect manner in the DCG PDF:
Creating and Modifying a DCG.pdf:

The Final Step – getting your DCG into the User Interface: In order to play your new DCG you have to get it so that it appears in the Campaigns Menu of the user interface. This is simple to do. Open the file called chardesc1.txt using Notepad. You will see data for all the DCG’s available to the CS player. Here’s a sample of the data needed for a DCG:

The Big Red One
10
1
421208 450508
2 430528
1 440528
0 450528
999
Dynamic Campaign Game - From the beginning of November 1942, …
-1

The Big Red One = the Name of the DCG
10 = The Allied Player’s Nationality. 10 = United States
1 = The Axis Player’s Nationality. 1 = German
421208 450508 = The Start and End Date of the Campaign.
2 430528 = The Region where the Campaign takes place followed by the date when the
region will change to the next in the list. The Big Red One Campaign begins in Tunisia
(Desert =2) and continues to Italy after May 28, 1943 (Med=1) and concludes in France
and Germany after May 28, 1944 (NE Europe=0). If your Campaign is only within one
Region, this line will only need the Region Number, no date is needed if the region
doesn’t change.
999 = Tag used before the Text Description line begins.
-1 = End of file Tag.

Here's mine as it stands at the moment, now updated to have the correct start date of September 15, 1944:
Lapland War
1
39
440915 441207
4
Dynamic Campaign Game - The Lapland War was fought between Finland and Germany from September 1944 to April 1945 in Finland's northernmost Lapland Province. Germany and Finland had been at war with the Soviet Union since June 1941, but in September 1944 Finland and the Soviet Union signed an armicstice that took Finland out of the war. As part of that agreement all German troops were to be driven out from Finland by the end of September or be turned over to the Soviets. As the Finns wanted to avoid devastation to their country, and the Germans wished to avoid hostilities, both sides first wanted the evacuation to be performed as smoothly as possible. Fighting soon intensified and on 1 October 1944, Finns launched a risky seaborne invasion near Tornio, on the border with Sweden, and began pursuing the Germans, who were fighting a determined rearguard battle to allow time for the evacuation of the vital war material of the 20th Mountain Army to Norway. A peculiarity of the war was that the Finnish army was forced to demobilise their forces while at the same time fighting to force the German army to leave Finland.
-1
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

So quite many steps to get this far, but so far so good. We've set an awful lot of parameters in place to make Lapland War a new, unique DCG experience! Is it there yet? Probably not, tons of testing required! But while this all seems a bit complex the good thing is that so many aspects of the dynamic game can be tweaked, so if I see something I don't like there's a good chance I can tweak something further.

Into testing next! To be continued

[:)]
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

ORIGINAL: Crossroads
Into testing next! To be continued

And here we go! Elements of my 53. Mountain Infantry Regiment got their first assignment.

I am playing Battalion sized here, and seems my landsers bumped into 2nd Tank battalion of Finnish Armored Brigade. Facing Pz IVJs is not quite the intimidating task as we just managed to get into urban environment, and our panzerfausts will cause havoc among the enemy armor! Scandinavian Terrain mod in place for the following picture:

Image
Attachments
lapland_tornio_hwclr.jpg
lapland_tornio_hwclr.jpg (489.01 KiB) Viewed 641 times
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
User avatar
Crossroads
Posts: 17498
Joined: Sun Jul 05, 2009 8:57 am

RE: Developer Diary #4 - Creating a new Dynamic Campaign Game

Post by Crossroads »

ORIGINAL: Crossroads

Here's mine as it stands at the moment:
Lapland War
1
39
440928 441207
4
Dynamic Campaign Game - The Lapland War was fought between Finland and Germany from September 1944 to April 1945 in Finland's northernmost Lapland Province. Germany and Finland had been at war with the Soviet Union since June 1941, but in September 1944 Finland and the Soviet Union signed an armicstice that took Finland out of the war. As part of that agreement all German troops were to be driven out from Finland by the end of September or be turned over to the Soviets. As the Finns wanted to avoid devastation to their country, and the Germans wished to avoid hostilities, both sides first wanted the evacuation to be performed as smoothly as possible. Fighting soon intensified and on 1 October 1944, Finns launched a risky seaborne invasion near Tornio, on the border with Sweden, and began pursuing the Germans, who were fighting a determined rearguard battle to allow time for the evacuation of the vital war material of the 20th Mountain Army to Norway. A peculiarity of the war was that the Finnish army was forced to demobilise their forces while at the same time fighting to force the German army to leave Finland.
-1

Ha, so easy to make little mistakes! The starting date for the Campaign needs to be 440915 of course, not 440928 as the Location.dat lists for the Autumn Maneuvers stage of my campaign. Dates listed on *-Locations.DAT are for battles taking place on or before the listed date! So I would have missed the first chapther of my DCG all together without having caught this little typo.

Having put in a proper date to chardesc1.txt, here we go again. And how nice, a Meeting Engagement at Isosaari! I've tweaked the Lapland War-Map.bmp a bit too:


Image
Attachments
lapland_map_isosaari.jpg
lapland_map_isosaari.jpg (186.23 KiB) Viewed 641 times
Visit us at: Campaign Series Legion
---
CS: Vietnam 1948-1967 < Available now
CS: Middle East 1948-1985 2.0 < 3.0 In the works
Post Reply

Return to “John Tiller's Campaign Series”