Rise of U.S.S.R sub mod development thread

Fullerene

Warlord
Joined
Aug 26, 2009
Messages
228
(I'm sorry if this isn't right place to post this, but it's based on M:C)

Since The World History mod is progressing so slowly, I started new side project. Some of work done for this project can probably be reused in WHM later.
I will use M:C 2.0i as base mod, since I don't really need new concepts of git version(Civic screen, plot groups etc.)

The Idea:
Player takes control of Soviet Union from it's birth to WW2 era. Ultimate goal is to succesfully fight back German invasion. The challenge is to build up new nation from dust of civil war:found heavy industries and grow loyal communists, so that the victory is possible.

I chose this scenario because I want to create industrial age mod and I think this set up fits perfectly to Colonization game mechanics.

Mod will have one scenario map with preset cities that spans from Poland to Urals and from Arctic Sea to Caucasus. There will be no support to random maps.

Changed game concepts:
  • REF -> Fascist Invasion Force
  • Natives -> Minor Nations
  • Serfs,Peasants,Nobles -> Gulags (enemies of the state),Communists, Members of The Party
  • Fealty/Rebel Sentiment -> Communist Internationalism (Comintern)
  • Crosses -> Communist Propaganda
  • Farms -> Kolkhozes
  • New tech tree, FFs, Yields... etc. (of course)

Since this will be strictly single player mod (only playable nation is USSR) I will take advantage of the lack of need to write AI code:
New game concepts:
  • Airplanes (Ok, these requires AI code actually, cause I want the Germans to have luftwaffe)
  • Trains and railroads
  • Tanks need gas to operate (Logistics will play important role in the mod)
  • Units will have morale that can be boosted by propaganda and various goods (vodka, meat, cigarettes,luxury food etc) I'm also planning that most Yields have meaning other than just being trade goods. Morale will affect the unit's combat power and work rate.
  • Seasons: there will be harsh Winter. Calendar will be monthly based (probably).
  • Interaction with the "king/pope" (Fascist Leader in this mod) will be slightly different: You don't pay taxes to him, but angering him may make the invasion to happen earlier. Also you can make different deals with the Germans that may be advantageous to you, but also may boost fascist armies. This will simulate the secret cooperation that Soviet Union and Germany did before World War II.
  • (Semi)Historical Events: for example: Stalin's purges,Molotov-Ribbentrop pact, German advances to western Europe,Lend Lease, D-Day attack... and smaller events. Events may happen or not happen depending on player choices and actions in the game.

Most of the work to be done is just converting graphics from civ4 (I have already started that) and working with XML stuff. It's heavy work but not too difficult. Some ideas requires DLL changes but I think I can get them through.My main priority is to help with WH mod, so this may progress slow... But I think this will be finished someday:)


I could write more but I think you got the idea. Although I prefer keeping this quite simple, I'm open to hear possible ideas and comments.
 

Attachments

  • tank.png
    tank.png
    356.4 KB · Views: 173
This sounds awesome! I have yet to drive a Tank in Colonization and I have really been itching to do so.:goodjob: I would however suggest perhaps making a new branch on git for this mod and also using the version from the current master. The new functions for the Trade Screens is far more dynamic and moddable. And the new economic features of Cities and Units having demands could add new options for you as well. Also, if you have a branch us other modders can help you with code, testing, and better feedback.

Edit, also the new Civics Screen stuff is on a branch of its own so the master does not have this.
 
Yesterday I started wondering about the ship crew in DoaNE and if it would be beneficial to have that ability in M:C. I didn't figure out how to do it or if it should be done, but I did come to the conclusion that it should work for all mechanical units, not just ships because as I thought yesterday "maybe somebody wants to add a crew to a tank eventually".

I agree that this should be developed in git and not outside it. We should make a branch for XML changes and possibly a branch for new DLL features. The latter should then be written with the intent to merge it back into master (hence the reason for two branches). This will allow other mods to benefit from your additions if it makes sense and this mod could benefit from additions in other mods as well as bugfixes. Just tell me what the branches should be named and I will make them. You also need to make a yield header/cpp file in the source for this mod as we need one for each set of yields.

Also this subforum is likely the right place as the forum is as much about the DLL as it is about the mod gameplay itself.
 
I agree that this should be developed in git and not outside it. We should make a branch for XML changes and possibly a branch for new DLL features. The latter should then be written with the intent to merge it back into master (hence the reason for two branches). This will allow other mods to benefit from your additions if it makes sense and this mod could benefit from additions in other mods as well as bugfixes. Just tell me what the branches should be named and I will make them. You also need to make a yield header/cpp file in the source for this mod as we need one for each set of yields.

All right then. You can create "Rise Of USSR XML"(or just USSR) and "Rise of USSR DLL" branches. But there's no hurry,it will take some time before I'm ready to push first commit.

What you mean by creating yield header/cpp file?
 
  • Trains and railroads
I thought about railroads and I have come up with a proposal for a generic implementation.

UnitInfo will have a list of required route types. If the list is empty, then the unit will behave like it does right now. However if there is something in the list, then the unit can only move into plots if one of the enabled routes is present.

The XML reader will then use a bitfield to store this data in an int. This will give a hardcoded limit for routes, but we will likely survive with "only" 32 different ones.

DLL implementation will then be in CvUnit::canMoveIntoPlot() (or whatever it's called. Something like that)
Code:
if (UnitAllowedRoutes != 0 && (PlotRouteType == NO_ROUTE || !HasBit(UnitAllowedRoutes, PlotRouteType))
{
    return false;
}
That should make railroads possible using XML only.
 
All right then. You can create "Rise Of USSR XML"(or just USSR) and "Rise of USSR DLL" branches. But there's no hurry,it will take some time before I'm ready to push first commit.
Then I might write the route required code first.

What you mean by creating yield header/cpp file?
https://github.com/Nightinggale/Medieval_Tech/blob/master/DLL_Sources/Yields_Colonization_2071.h
https://github.com/Nightinggale/Medieval_Tech/blob/master/DLL_Sources/Yields_Colonization_2071.cpp

We need a set of these files for each set of yields (presumably for each mod). Around half of the code is autogenerated, which mean it isn't that tricky to set up.
 
You could also have a very extended Mod, in that bring in the more medieval Viking Rus Civs, and have a double "Revolution" against the Mongols as well. I read a little history on them...

The Rus were ruled by Princes, with an advisory body, the Duma, made up of nobles called boyars, who were sometimes more powerful than the Tsar himself. Below these was an assembly of free men, known as the Veche, who could be summoned by any citizen ringing the Veche bell. In Novgorod there was a freely elected burgomaster, known as the posadnik, who ruled with the consent of the Veche and defended the interests of the town against the Prince of Kiev. Novgorod was independent of Kiev, and its relative democracy may be because of its connections with Scandinavia and the merchant towns of Western Europe

This gives me the idea of a "Free man" unit for certain Civics, instead of the Feudal "Peasant".

Edit: and perhaps a "Citizen"
 
Some of work done for this project can probably be reused in WHM later.

Nice idea for a mod and also as possible material for the WHM. Excellent.

Yesterday I started wondering about the ship crew in DoaNE and if it would be beneficial to have that ability in M:C. I didn't figure out how to do it or if it should be done, but I did come to the conclusion that it should work for all mechanical units, not just ships because as I thought yesterday "maybe somebody wants to add a crew to a tank eventually".

I do want it. Imagine our experienced Artillery Gunners being given brand new Russian T-26 tanks.:eek:

You know I am a code ignorant, but could it be that the way to implement the feature of crew on ships is "ships are treated as buildings"?
Or as you know cargo yields are considered as units in XML, so in the same way as treasure wagons can only be loaded on Galeons, couln't be a cargo unit called "sailor" who only fit into slot '0' on every ship?
 
You know I am a code ignorant, but could it be that the way to implement the feature of crew on ships is "ships are treated as buildings"?
Makes no sense from a coding point of view. You might as well have said you just bought a fusion powered car :p

Or as you know cargo yields are considered as units in XML, so in the same way as treasure wagons can only be loaded on Galeons, couln't be a cargo unit called "sailor" who only fit into slot '0' on every ship?
I was thinking something like that, though there isn't any detailed plan. In fact I haven't even studied the current code.
 
You could also have a very extended Mod, in that bring in the more medieval Viking Rus Civs, and have a double "Revolution" against the Mongols as well.

I thought about that actually. There would be multiple invasions: Mongols,Napoleon and world wars.

But it would be like creating half of the World History Mod. I think it's more interesting to create more detailed WW2 era mod instead.
 
I thought about that actually. There would be multiple invasions: Mongols,Napoleon and world wars.

But it would be like creating half of the World History Mod. I think it's more interesting to create more detailed WW2 era mod instead.

Details are good, plus I bet it is going to be a pain dealing with the progression of Weapons Technology through the ages. I mean, chain mail is cool and all, but I think I'd rather dig a whole and hide before standing on the battle field all in mail vs a Tank. We need to work out a good system to eliminate the Yields that are no longer valid at different times in history.
 
We need to work out a good system to eliminate the Yields that are no longer valid at different times in history.
Technically speaking we can disable yields just like we disable units and professions by setting the allowed to -1 in civics. They will then be treated like they have yet be invented.
If we finally do manage to hide uninvented yields from the game (mainly city screen!), then we could easily have 200 yield types, but only max 50 present at any one time.

The real question is what should happen when a yield is no longer allowed? Currently the cities sets their storage to 0 if I recall correctly.
 
Some more info:

Time line of the scenario will be approx. from 1918/19 to the end of WWII. At the beginning of the game you will have to destroy the White Movement.There is also some minor nations you have to deal with before the final invasion.

List of Nations:
  • Soviet Russia (USSR) - only human playable nation
  • White Movement - is AI controlled 'colonial' faction. It will never have invasion but it gets aid from foreign nations.Represents anti-bolshevism forces during Russian civil war.
  • White Movement Supporters - the king player for White Movement. Represents foreign nations that support the White Movement. They are in just for technical reason. You won't recognize that they are there.
  • Nazi Germany - the 'king' player of the USSR. The ultimate goal of the scenario is to build up strong enough army and economy to stop the German invasion.
  • Minor Nations (Natives):
    • Poland
    • Baltic Nations (Estonia,Latvia,Lithuania)
    • Finland
    • Romania
    • Possibly Hungary, Czechoslovakia,Bulgaria and maybe even Japan too, depending about the map I'll use.
    When German Invasion starts, minor nations may join the war against Soviet Union. Unless you have managed to conquer them already.

Trade Screens:
  • You can trade with Germany. They will pay good price for raw materials. However, the more you supply them resources the more powerful they become.
  • Foreign nations (Mainly USA,UK, France...) is trade screen available on Arctic Sea. Trading there is limited since capitalist nations don't want to trade with communists. Depending your actions in game trade may become more open or you might get totally banned from this screen. For example destroying the minor nations will be bad for relations with foreign nations. During the German invasion you may get Lend Lease from USA.

I will use static leader heads and real photos to give some darker and more realistic feel to the mod. There will also be pics of posters from the era.

---
I think I might actually have some use for the new Civic screen if I manage to come up with enough ideas for civics. Some possibilities:
 
Some small progress:



There will still be more cities, especially for the russians and some city placements has to be re-checked. Building new cities will be disabled in the mod.

Map size is quite big, but the aim of this mod is smart use of logistics(trains!:scan:)

---

One dll change I want to create is starvation of the units. Every human unit will require food to stay alive. I still don't know how to exactly carry out this, but I have few ideas:
1.Units carry food like they carry weapons and you have to re-supply them with food sometimes.
2. Units don't carry food but they still consume it. Every unit has homecity where the food is automatically "teleported" for the unit.
3. Units don't have homecities but the food required for them is taken from every city evenly. For example you have 20 soldiers that require 2 food each per turn and 10 cities. Now every city consumes 2 extra food in addition what the local population consumes.

Option 1. is most micromanagement heavy, but also most realistic.
Option 2. creates also somemicromanagement but different style.
Option 3. sounds bit boring, but could be most fun to play actually.
 

Attachments

  • leaderheads.jpg
    leaderheads.jpg
    78.4 KB · Views: 109
  • map.jpg
    map.jpg
    43.3 KB · Views: 336
Map size is quite big, but the aim of this mod is smart use of logistics(trains!:scan:)
I added railroads to the issue tracker to avoid forgetting about it.

One dll change I want to create is starvation of the units. Every human unit will require food to stay alive. I still don't know how to exactly carry out this, but I have few ideas:
Option 4: units will take food from the nearest city.
Option 5: units will take food from "wagon train" like units you can move together with your troops.

I'm not sure what would be best, but we certainly should avoid killing the game with micromanagement. I think option 4 would work well with feeder service.

Also maybe units should demand rations rather than food. This will prevent growth of a civilian unit when you stockpile army food. I know you can turn growth off, but then it does other not so nice stuff if you have more than 200 food stored.
 
Also maybe units should demand rations rather than food. This will prevent growth of a civilian unit when you stockpile army food. I know you can turn growth off, but then it does other not so nice stuff if you have more than 200 food stored.

Military rations could be the new Luxury Food.

Option 6: Similar to option 5. You build Supply Units, that are used to supply your units when they are running low on fuel or ammo. Units take damage each turn when they are out of fuel. Supply Units resupply in your cities. Units can't attack without Ammo. You can also build Supply Depot improvements where your units and Supply Trucks can resupply.

Remember there was a Charlemagne scenario in Civ4 Beyond the Sword that had a supply unit, not sure exactly how they worked though, but you may can check that out.

I also remember when I was young I played a game on the NES called Desert Commander, it had a resupply unit and that's what gave me the idea of Option 6. There is a short strategy guide for it here that may give you some inspiration on combat. There are tons of more advanced game but those simple original NES games are what spark my love for strategy titles.
 
Option 4: units will take food from the nearest city.

This sounds like best solution so far. You don't have to micromanage every unit individually, but you still have to stockpile food nearby where you mass your infantry.

Same rules should be applied to fuel too. It can create interesting situations where you have to quickly try to move your food and fuel stockpiles to safety, if you lost important battle.

It might be easy enough to apply these rules for AI too... or maybe it isn't...

Also maybe units should demand rations rather than food. This will prevent growth of a civilian unit when you stockpile army food. I know you can turn growth off, but then it does other not so nice stuff if you have more than 200 food stored.
Military rations could be the new Luxury Food.

Maybe the military food could be 'canned food' or something. Might be good idea to separate military food from civilian food, I agree. But I like the idea that military units consume some type of food anyway.

I want to have the possibility of starvation for some realism and historical accuracy too. Early in the scenario the Russian agriculture is ruined, and difficult decisions have to be made where to use the food.

But I also like to have new Party Members created with some yield(s), like nobles are in M:C with luxury food. Or maybe the normal units are upgraded to Party Membership somehow.

Option 6: Similar to option 5. You build Supply Units, that are used to supply your units when they are running low on fuel or ammo. Units take damage each turn when they are out of fuel. Supply Units resupply in your cities. Units can't attack without Ammo. You can also build Supply Depot improvements where your units and Supply Trucks can resupply.
Supply units sounds like lot of micromanagement. I prefer the nearest city solution.

Yes, I totally want to have the ammo too. I was thinking that out of fuel tanks can't move, and their defence is weaker. Without fuel the planes can't operate at all. And without ammo the units can't attack, and maybe their defence power is weaker too.

I don't know if it's overkill to have different types of ammo: artillery shells, rifle ammo and air bombs. Artillery requires shells, infantry ammo, tanks both shells and ammo (without artillery shells tanks can't fight other tanks), fighters ammo and bombers bombs. You really need to plan ahead your production and supply lines.
 
First list of tradable yields, nothing is yet locked. I'm open for ideas.

  • Food
  • Cattle
  • Ore
  • Lumber
  • Coal
  • Oil
  • Barley
  • Makhorka
  • Cotton
  • Fur
  • "Chemicals"
  • Rubber

  • Military Food / Food Ratios / Canned Food (Food + Meat? or ?)
  • Meat (Cattle)
  • Tools (Ore)
  • Steel (Ore, Coal)
  • Petroleum (Oil)
  • Vodka (Barley)
  • Cigarettes (Makhorka)
  • Clothes (Cotton)
  • Coats (Fur)
  • Explosives (Chemicals)
  • Ammo (Ore,Explosives)
  • Artillery shells (Explosives , Ore)
  • Bombs (Explosives , Ore)
  • Weapons/Rifles (Tools)
  • Medicine (Chemicals)
  • Aluminium (Ore)
 
That's a good list. I wonder if we could simply make fuel and ammo a profession. In order to leave a city you must change profession to Fueled and Loaded, which equips the Unit and changes attack power and movement (for fuel units) then there are three state Professions; Out of Fuel, Out of Ammo, or Out of Fuel and Ammo. Sounds like it could be a simple solution to just drop movement to 0 or attack to 0 just from a profession change.

Anyway, about resupply, I'd like to try out some of the different options mentioned. If you are going for Realism, then there needs to be some management of Logistics, which adds to the stretegic depth. If it is automated to much then there is no strategy. Like the Trade Points system, there isn't really much strategy other than get as much points as possible and choose a perk from time to time, but that's what I intended.
 
Top Bottom