The Great Patriotic War: WWII on the Eastern Front (Development Diary)

The Great Patriotic War: WWII on the Eastern Front

Having worked on this mod for over 5 months, I thought it would be a good idea to finally provide some details on its development. This mod has been a passion of mine for a long time and previous incarnations of it in Civ III and IV failed to see the light due to various obstacles and limitations.

With Civ V, I feel that the game engine and mod tools are finally capable of enabling a mod of such complexity. Of course only time will tell if the objectives of this mod can be handled by the game without impacting performance!

As time progresses, I will continue to update this thread with the latest updates on my efforts to finish this mod.

Scope
  • Human Players - USSR (this decision is based on game complexity and to focus in more detail on key events and objectives that the AI may not understand)
  • AI Players - Germany, Finland, Romania, Hungary, Italy, Slovakia, Sweden (Allies are also being considered for inclusion)
  • Date - 22nd June 1941 through to 3rd June 1945 (207 turns)

    [*]Map
    - Eastern Europe stretching west-east from Dortmund Germany to the Ural mountains in the USSR, and north-south from Murmansk USSR to Bucharest Romania.

UPDATED AS AT: 27th April 2013
Planned Features
  • Custom Calendar (1 week per turn) - Completed
  • Seasonal change impacts game-play - Completed
  • Enhanced building production system - Completed
  • New artwork for icons, flags and leader screens - Implemented - WIP
  • Enhanced supply system (fuel and equipment) - Completed
  • Unit morale system - Implemented - WIP
  • Seasonal weather system - Implemented - WIP
  • Detailed scenario map - Implemented - WIP
  • Units structured around historic personnel numbers and equipment - Implemented - WIP
  • Custom events (i.e. city captures, partisans) - Ongoing WIP
  • Lend Lease system - Planned

There are other planned concepts and features that I hope to include that will enhance the historic feel of the scenario.

More info to come as things develop....

Special Thanks (So far...)
I want to thank the following people for helping me out with their guidance and tips as well as allowing me to use their code up to this point

Gedemon
danrell
whoward69
snafusmith
Spatzimaus
Pazyryk
rhettrongun

This sound excellent cant wait until it is ready... :)
 
I am also waiting to see what the seasoned DLL modders find in the new patch and extra files included.

ww2commander, do I have to conclude (obviously yes:(), this mod will use a customized DLL? That would be extremly saddening, because I wouldn't be able to play it then on a Mac. (Though as a table-top Panzerblitz veteran I consider myself right in the target group of this mod. *sigh*) If there was a way to go around a modified DLL, that would be fantastic:)!
 
ww2commander, do I have to conclude (obviously yes:(), this mod will use a customized DLL? That would be extremly saddening, because I wouldn't be able to play it then on a Mac. (Though as a table-top Panzerblitz veteran I consider myself right in the target group of this mod. *sigh*) If there was a way to go around a modified DLL, that would be fantastic:)!

This is the decision I am working through at this very moment!

I might as well put into words everything that has been going through my mind the last few weeks.

whoward has spent a lot of his limited modding time assisting me on a DLL for testing purposes. This has enabled me to temporarily get around certain problems as the mod approaches beta stage.

However I am of the view that the playable version of the mod should not have a DLL dependency due to the problems a DLL can unleash. Some that come to mind include dealing with outdated versions, future game patched breaking DLLs and worst of all, losing the DLL creator from the forum scene. Also, I don't want to make the false assumption that whoward will be around for many years supporting my modding DLL concerns (I am pretty sure he would agree with this stance :lol:).

Why do I need a DLL anyway? The primary reason is the absense of specific game events that trigger on certain game actions. Examples include unit promotions and upgrades.

The easy way to get around these types of limitations is with whoward's DLL. The harder way involves writing (and testing) a lot of code to do the same thing. In most cases this also requires modifying game UI files which presents risks when future game patches and expansions choose to changes these same UI files.

So, no you do not need to worry about DLL dependencies, but this will also mean I need to spend more of my limited modding time creating ways to get past certain problems.

As of yesterday, I successfully modified the way units perform upgrading in game. The vanilla version checks if the required tech and gold is available. My version checks if the necessary project, gold, rail points, supply line status & length, personnel and equipment is available. It also needs to auto-manage upgrades for the AI to ensure it remains competitive (and historical). The down side to all this is that I had to disable all the standard upgrade code in the UnitPanel.lua file and rewrite a lot of code.

Hope this clears things up a bit. Thanks for continuing to support and show an interest in my project :)

Also, apology for the lack of updates as I spend a lot of time in code land these days.
 
That promotion system looks very neat and comprehensive. Maybe you could add a German promotion called "Summer offensive" which give the Germans some bonuses during the summers of 1941-42-43, to simulate their offensive summer campaigns.

Also for the victory condition of capturing Berlin you should maybe add the cities of Vienna and Belgrade so you can't just "beeline" for Berlin once the tide has turned.

P.S. It's great(edit) to see that your still working hard on this mod :goodjob:
 
That promotion system looks very neat and comprehensive. Maybe you could add a German promotion called "Summer offensive" which give the Germans some bonuses during the summers of 1941-42-43, to simulate their offensive summer campaigns.

The German units are slightly more powerful overall so they don't need any additional boosts. It typically takes around 3-4 Soviet rifle divisions to eliminate 1 German infantry division in 1941. This advantages does diminish over time.

However, the German and Soviet units do receive several special promotions in the first few turns to assist/hinder them with the invasion before winter sets in. The Soviets have a 'surprised' promotion for the first turn and initial units (with exception of some) do suffer poor leadership and untrained promotions at the start of the scenario.

The German units receive two unique Barbarossa promotions in the first few turns which provide added attack modifiers, negate river attack penalties and healing when killing enemy units. These promotions are supposed to represent the initial attack advantage and German units behind enemy lines capturing bridges.

Also for the victory condition of capturing Berlin you should maybe add the cities of Vienna and Belgrade so you can't just "beeline" for Berlin once the tide has turned.

I have not given much thought to the specifics of VC yet, but I am thinking of using a points system to determine VC. Each city on the map is given points and the player must capture certain key cities to ensure a major victory. Maybe capturing Berlin alone might be a minor victory.
 
Yesterday I tried rhettrongun's European theatre scenario with his WII Full Earth Campaign Mod. Since he abandoned his project ("So, I will just have to say the scenario is pretty much in graveyard status now".), I wonder which of the good features of his could live on in current and alive projects. If I had to name one thing, that impressed me: the sheer number and detailedness of the available units. It seems like every damn WW II era unit ever created for Civ V, is there. This would arguably be more than neccessary for a mod, but in a WW II scenario something to be wished for, as far as I'm concerned. How do you think about that?

However, I liked the stripped-down-ness and reduction to the essential in Gedemons mod, while Rhettrogun didn't disable or reduce many Civ V features, that aren't really needed on the WW II scenario level. So, my point here is: minimalism in mod features and shameless maximalism in unit detail and skin variety combined:yup:!

…while my curiosity for the Great Patriotic War is constantly rising;). Any news for an upcoming Beta, ww2commander?
 
Short answer, my mod is a heavy mod-mod of Gedemon's RED WWII. I say heavy as a lot of game mechanics have changed.

Regarding units, I have hit a maximum limit of sorts as I noticed the game did not like me going over 156 units! I didn't bother looking into it as I have all the units I need anyway.

Any news for an upcoming Beta, ww2commander?
Things are coming along really well but I have decided to take a few weeks break from all the coding. I have this system now where I mod for a few months and then take a few weeks off to play the actual game ;). Don't get to do that very often!

I like to think of it as a 'holiday mod break'.
 
Keep it up, can't wait!
 
Time for another brief update.

Things have been moving along rapidly in the past few weeks with the mod nearing beta stage. Most of the major components are now done and its a matter of integrated and testing things as a 'complete system'.

A key component that is making my modding life easier and getting things moving along faster is the new modular event system I have up and running now. The system grew from various tests at trying to implement events and unit spawning situations. At first I started coding complete events as self-contained functions but this soon caused issues when trigger parameters needed to be changed or aligned to other events.

I soon scrapped this approach and started fresh by analyzing the common parameters and methods event functions shared. This enabled me to produce a list of common trigger values that work in a plug & play manner.



First I determined 3 types of game events will trigger a 'mod event':
1. ActivePlayerTurnStart - An event needs to trigger specifically on the human turn. Typically this means the human gets the advantage/disadvantage of the event before the AI.
2. PlayerDoTurn - The event must trigger on a specific player turn. Enables the AI to utilize the event advantage/disadvantage immediately before the human player new turn.
3. SerialEventCityCaptured - A city capture triggers the event.



In conjunction with the above trigger game events, each 'mod event' can be setup via cut/paste in a global table quickly.

Here is what a typical entry looks like:
Code:
["EVENT_SPAWN_SOVIET_PARTISANS"] = {
	EventFunction = SpawnPartisans,
	TriggerForCivID = nil, 
	TriggerExceptCivID = nil,	
	TriggerForOldCivID = USSR, 
	TriggerExceptOldCivID = nil,
	TriggerOnce = false,
	TriggerPlot = nil, 
	TriggerPlotOwnerCivID = nil, 
	TriggerPlotExceptCivID = nil,
	TriggerRandom = false,
	TriggerTurnEquals= -1, 
	TriggerTurnLessThan = 23, 
	TriggerTurnGreaterThan = -1,
	LandThresholdPerc = nil,
	HasPopup = false, 
	HasImage = false, 
	HasNotification = false,
	NotificationType = nil, 
	Heading = "", 
	Text = "", 
	Image = "",	
	},


The event name is in square brackets. This value must be unique as it is used to determine if an event has been triggered before via Modding.OpenSaveData and SetValue.

Here is an explanation of what each parameter does:
  • EventFunction - a specific function that is executed when this event triggers. Only playerID is passed as a parameter to any function.
  • TriggerForCivID - The event will only trigger for the specified civID
  • TriggerExceptCivID - The event will trigger for all civIDs excluding the one specified.
  • TriggerForOldCivID - If a city is captured, the event will trigger if the old city owner is the civID specified. (Only applicable to SerialEventCityCaptured triggers)
  • TriggerExceptOldCivID- If a city is captured, the event will trigger if the old city owner is not the civID specified. (Only applicable to SerialEventCityCaptured triggers)
  • TriggerOnce - Indicates if the event triggers only once or continuously
  • TriggerPlot - Indicates a specific plot is linked to this event.
  • TriggerPlotOwnerCivID - Triggers if the owner of TriggerPlot is the specified civID
  • TriggerPlotExceptCivID - Triggers if the owner of TriggerPlot is anyone ecept the specified civID
  • TriggerRandom - Randomly chooses if the event can run even if trigger conditions are satisfied.
  • TriggerTurnEquals - Event triggers only on this turn
  • TriggerTurnLessThan - Event triggers if turn is less than specified integer
  • TriggerTurnGreaterThan - Event triggers if turn is greater than specified integer
  • LandThresholdPerc - Event triggers (for specified civs) if the percentage of land they own is less than or equal to this value when compared to the start of the scenario.
  • HasPopup - Event triggers a UI popup message
  • HasImage - Event popup has an image (this determines if the standard or a custom version of the UI popup is used)
  • HasNotification - Event triggers a right-side screen notification
  • NotificationType - The type of notification used (default used if non specified)
  • Heading - The TXT_KEY entry used for the heading of the popup and notification
  • Text - The TXT_KEY entry used for the message of the popup and notification
  • Image - The dds image file used for the UI popup

It should be noted that parameters have precedence based on their order above. Thus a civID specified in TriggerExceptCivID will be ignored if a value is also present in TriggerForCivID and so on.

Sorry for getting all technical in this update and hope to provide more info soon :)
 
Very short update to confirm this is still live :)

Been doing a lot of 'presentation' work the past few weeks. A lot of tooltip, UI and gameplay tweaking. The tooltip and UI stuff is the most time consuming as hours are wasted going in and out of the game to view changes :mad:.

I have been running some short test-games (around 10 turns) to get a feel of the mechanics and if they are working properly. I will admit that variables and modifiers need adjusting in order to get the right balance between difficulty and importance from the enhanced supply system.

For those eager to play, please be patient with me as I 'get it right'.
 
In addition to the above update, here are 4 screenshots of the new tooltips which have been consuming a lot of my time (aluminium and power tooltips are not shown).

Spoiler :

Food Stockpile Tooltip


Rail Points Tooltip


FuelStockpile Tooltip


SteelStockpile Tooltip




I am trying to make the tooltips provide as much info as possible on the enhanced supply system in order to reduce the player's learning curve.

The images also show how complex the enhanced supply system is and why it has taken so long. Each component shown in the screenshots is live and working.

Apologies in advance for any bad typos as I am typing these up really quickly. I plan to spell check down the track (feel free to point out any if you want as it speeds things up!)

Happy to answer any questions.
 
It only took one and a half years, but I have finally got the mod to a stage where my to-do list is 'manageable'.

So what is outstanding:
  • Promotion and project icons
  • In-game art and images. I have decided to use only public domain or attributed free-use images where possible. This unfortunately means more intense searches and a smaller pool of specific images for things like events.
  • Some new UI screens are required to display all the new game features and information. One of the major ones is a complete redesign of the unit overview screen which I am still mapping out on paper.
  • Ingame texts....my pet-hate. I have written so many descriptors, yet it feels like I have a few hundred more to go....and this does not include pedia entries! I have also gone to great efforts to link to TXT_KEY entries as much as possible incase someone wants to convert things into another language.
  • Bug fixes - many being ironed out on a weekly basis.
  • Events - there are quite a few already, but many more are planned. The modular event system I use makes this easy, but coming up with workable events is difficult. Events completed so far include:

    • Winter changes
    • Leningrad Battleships being used in land support role
    • Lend Lease
    • Partisan Resistance
    • Eastern Reserves
    • Operation Typhoon
    • Italian CSIR and ARMIR Deployment
    • Crimean Offensive + Siege railguns
    • Finland Armistice
    • Italian Armistice
    • Romanian Royal Coup
    • Combines Bomber Offensive
    • Yugoslav Revolt
    • Yugoslav Resistance
    • Gothic Line Offensive + Operation Husky (invasion of Sicily)
    • Major city captures and resistance spawning
  • and finally, lots of play-testing.
 
Nice. I really like the scope of this scenario.

I'm spending my new years eve in Berlin, we're about to eat dinner, and there is already lots of fireworks going off through out the city. It kinda reminisce like the battle of Berlin with all the bangs.

Anyway, happy new year and good luck with the work on this mod! :goodjob:
 
Time for a quick update.....

....but first, let me reflect for a moment (this is my thread so I can do that!)

It has been a very long time since my last update on this project, and for a while it seemed like I was ready to scrap it. Real life has taken up much of my modding time and I spent many nights contemplating what to do with so much code I have written.

The biggest issue to date with this mod has been the steep learning curve I have had to tackle across every aspect of the game. Those who share similar knowledge know how hard it is to find answers amongst a forum flooded with a lot of unanswered questions most of the time. Luckily, my most important support point has been whoward and I thank him greatly for putting up with my s**t most of the time. His advice and guidance has enable me numerous times to solve an issue when I was ready to throw in the towel on this mod.


Well, enough on my 'feelings'....where the hell is this mod up to?

The mod is still alive and progressing towards completion (beta) stage.

I still have to complete text/pedia entries (I consider this boring as hell), balancing units/buildings and completing new UI screens.

However, the mod is yet to be tested from start to end in a complete manner so the AI and game flow will need to be adjusted accordingly. I plan to tackle this via beta testing with the assistance of any volunteers.

Now back to coding.
 
Hej WW2 commander,

your list of achievements so far allready is simply impressive !!!!
I really do hope you manage to continue the struggle of this massive project....


anyway, like others I cannot do much more than follow the developments
( due to my lack of programming skills )

keep going ! this project is beyond all expectations,

and only the season/ weather system on its own is AMAZING,
so essential thing ( missing ) in the current red ww2 mod..

so, keep the Faith !

all my respect !
 
Update: 13 November 2015

Greetings loyal followers and random lurkers!

It has been a long time since my last update and I apologize. Unfortunately real life has taken quite a bit of precedence over my modding time and remains that way presently.

What little time I manage to find, I focus on getting this mod to beta stage. My main approach at this point is to eliminate 'feature creep' that has burdened the project. Yes that's right, like every modder, once I overcome a coding obstacle I think I can do better things and feature creep takes over! :mischief:

So here is what I am working on right now:
  • Finishing off a few remaining icons (mostly projects)
  • Pedia entries (outstanding for units and game concepts)
  • UI screens (new unit overview screen, lend lease info, combat info [whoward's DLL])
  • Lend lease code (its done, but I don't trust it!)
  • Events (most are done, but some of the more complex ones like Operation Citadel and Stalingrad will require functions that can read the map situation and determine how to respond (i.e can Citadel be launched, and if so, where exactly if Kursk is one large kill-zone the player has prepared to trap the AI)

Putting aside all the above, the mod is technically functional. What this means is that it can be played but not for winning or fun. It needs a LOT of balancing and polishing before I can even consider a beta release.

Thus I am considering (NOT requesting names!) using a few 'alpha' testers who might be able to assist in bug shooting, balancing game-play and testing events are triggering correctly. My preference would be to use players who are familiar with firetuner. Once I am comfortable with things on my end, I will put a call out for names and provide further details.

Once again, thank you for your endless patience and for the kind remarks posted above.
 
Top Bottom