[Scenario] Earth - 1936

Joined
Sep 28, 2008
Messages
402
Location
United States
State : Work in Progress

Map Size : Giant (4GB Ram / quadcore CPU recommended)

Description :

Experiance a giant Earth map set in 1936, build up your economy, production and army while events unfold into the deadliest war in human history.

More Information to Come (Look at the following posts for now)...






 
So Here are my initial tests,

I'm first testing the Second Sino-Japanese War, I havn't added troop movements which will hopefully get Japan from sitting like they did in this first test. Here are some screenshots of that test:







I want to know your guys thoughts, any other suggestions or concerns are great too ;)

I was planning on September 2 1940, to give the British about 15%~ of Americas destroyers and America would get the city of Plymouth (Pop. 2) (so they can store their air force there and bomb Germany). I know this isn't completely realistic but I know it was a problem on the 1942 and 1936 maps. I may need some help coding the transfer of destroyers Gedemon, I may just be able to use your code which you used for transfering France to Vichy's navy. :)

Also I dunno why the Japanese and Chinese icons are messing up.
 
Great !

I can help of course for the units switching side event.

I want to test an airfield unit in the near futur, and correctly implement aircraft carrier. (I don't remember how close we are to the limit, but I suppose we can use 6-8 slot for US/Japan/UK carrier-based fighter/bomber)

If the airfield unit works as intended, problem solved for Air Forces in foreign country.

Another think I want to add (not so short-term) is the ability to put aircraft in convoy for trans-oceanic transport.

About the map, do you want me to try to add one or two more tiles to West Europe (Spain, UK, France, Belgium, Netherlands) to give a bit more depth to the front there ?

For the icon problem, I've seen it too, I don't know what's the cause. Maybe because there are a few duplicate icons files in the R.E.D. WWII Data Files and R.E.D. WWII Edition mod parts, but then I don't understand why it affects only those nations.

If you want to test it, there is a development version of R.E.D. WWII Data Files (v.4) and R.E.D. WWII Edition (v.31) in the first post of the development thread, without the duplicates icons files...
 
Looks promising !


"About the map, do you want me to try to add one or two more tiles to West Europe (Spain, UK, France, Belgium, Netherlands) to give a bit more depth to the front there ?"

Would be better, imo.
 
This looks neat, but i honestly wish the 1942 could be fixed to the point where all major nations have a complete building and unit list.

Also, i have a predilection to scenario's that "start in the thick of it" in terms of playability, mostly because with human players playing in a game, war machine optomization makes it a lot easier to totally crush the AI if given 10 or 20 or (1936, 36turns a year x 3 years? 100 turns?) whatever to build up a huge army before fighting.

It'd also make it a lot easier to balance an overall scenario because the axis obviously starts with a lot more momentum but slightly less overall manufacturing and manpower, etc, and this is easier to articulate through a scenario when on turn 1 they have a bigger military. Playing as an ally, it forces you to do more with less and just try to survive until everything gets off the ground.
 
This looks neat, but i honestly wish the 1942 could be fixed to the point where all major nations have a complete building and unit list.

Also, i have a predilection to scenario's that "start in the thick of it" in terms of playability, mostly because with human players playing in a game, war machine optomization makes it a lot easier to totally crush the AI if given 10 or 20 or (1936, 36turns a year x 3 years? 100 turns?) whatever to build up a huge army before fighting.

It'd also make it a lot easier to balance an overall scenario because the axis obviously starts with a lot more momentum but slightly less overall manufacturing and manpower, etc, and this is easier to articulate through a scenario when on turn 1 they have a bigger military. Playing as an ally, it forces you to do more with less and just try to survive until everything gets off the ground.

Well my plan is too remake the 1942 scenario once this is finished, I agree it is much easier balance wise too make a scenario which starts in the think of action.

I don't know about your experiance but the AI typically has me outnumbered mainly because I run into a negative income and have to stop producing troops while they do not have to worry about a negative income. The problem in my experiance is that the AI only sends maybe about one fifth of the troops to the front while it rests the rest of them somewhere not even near the front. Because in the test I did above (for instance) the Japanese troops outnumbered mine probably about 1 to 4 according to the demographics. However I only fight a fifth of their troops for reasons I don't know. I have thought that it would be a good idea to limit western ally production when they are not at war, may have to do that for the US especially.

Whats nice about the script that Gedemon has set up is that with troop movements and projects I can get the AI (hopefully) too commit offensives better. So with each offensive the AI will send it's full might against historical areas and with projects more units will spawn in selected areas with an objective in mind.

@Gedemon

I extended it :) , the question I have is that there is room for another French city and I'm not sure if it would be a good idea of adding it since there would be less room to move around in.
 
Well, i have a tremendous amount of experience gaming in general and some moderate modding for m2tw and e:tw but the modding for civ seems to be different, and im a few years removed from my last foray into it.

But this engine makes me want ot get back into it. I think its quite elegent how the two are powered, and with the use of inherent unit 'traits', ie the classification of infantry, armor, 3 classes of airpower, and the navy, i believe it'd be relatively easy to make a really balanced scenario that would be both fun as single player and a decent multiplayer experience (even if it was dragged out over the course of weeks because of turn-move delay).


With a 1936 scenario though, i would be very careful to isolate scripted events and 'artificial diplomacy' to its own thing so that people could, say, play as the USA and declare war on the entire world, or something. That'd be what it'd want to do.


The diplomacy settings, at least i believe, are rather deep in their customizability, and a few things could occur:

Historical enemies - neutral powers would not look upon you as 'warmongering' for continuousl warring against these, i.e. the major western european powers, but also china vs japan, and some of the south american nations.

Warmonger - declaring war should be bad, but taking an actual city should be grounds for 'the rest of the world ganging up on you' if you, for example, deviate from the historical enemies territory.

I haven't gotten gods and kings yet, but from what I've read, the diplomacy engine is increased in its, for lack of a better word, depth, in that you are rewarded for 'being a good ally' to city states and other civs. This is where the fun would be in single player.


In terms of playability for multiplayer, it'd be cool to have customized units based on special promotions, and to make it a little more linear in scope than the current scheme of having dozens of different units for each civ, and to just have special buildings "read: schools" for, say, marine units, "infantry produced in this city comes with amphibious 2 promotion" and to tinker with the promotion tables in general to add more depth that way.

I know i cant be the only one that gets attached to a highly experienced unit that has maxed out promotions and then to have it get stranded and die :(
 
@Gedemon

I extended it :)

Ho, I get it, you've started from the (very) old GEM, current one would have saved you some time, this area being already the same size as your now. I was planning to enlarge it even more, but with the work you've already put in... Well, no urgency, that will be for the next version of an earth map :D
 
I knew I forgot to answer something...

The problem in my experiance is that the AI only sends maybe about one fifth of the troops to the front while it rests the rest of them somewhere not even near the front.

there is a value named AI_STRATEGY_MILITARY_RESERVE_PERCENTAGE in the define.

I've modified it recently in the mod to 20 (default was 35), and playing on a full visible map to test, I had the feeling it helped to have more troops on the front.

Maybe you can try to lower it even more (it's in NewRules.sql) and test a game with map revealed (using the firetuner) to see if it's better.
 
Thats interesting^

Couple questions, I'm trying to get a military project to work (ill try to describe this as best I can). Basically it's not popping up, In the firetuner it says that it is initializing Military projects it seems to know it exists but it say sthat the PlayerID is nil, I have edited the Script, NewProjects and Project defines, is there anything else that is suppose to be edited? It's not telling me but if there is one small error (which I can't find) with the script will it render the project unworkable?

My other question is can projects be automatically built at the beginning of the game by putting it in the projects availability? So when the condition is right in this case Japan is at war with China, the troops will automatically spawn?
 
can you post the log of the turn it should fire ?

About the second question, I'll say yes on quick thought, but I need to re-read my code to be sure. And to remember why I've separated reinforcement unit spawning and military operation unit spawning :D
 
This was the revelant part:

Spoiler :
Code:
[6353.983] RedMain: -------------------------------------
[6353.983] RedMain: Check for Military Operations...
[6353.983] RedMain: - PlayerID was nil, assume LaunchMilitaryOperation was called by ActivePlayerStartTurn for active player...
[6353.983] RedMain: LoadData() used 0 sec for player0_turn2
[6353.983] RedMain: -------------------------------------
[6353.998] RedMain: -------------------------------------
[6353.998] RedMain: Initializing Military Operations for Hideki Tojo
[6353.998] RedMain:  - Testing condition for Operation ID = 96
[6353.998] RedMain: Military Operations initialized...
[6353.998] RedMain: -------------------------------------
[6353.998] RedMain: -------------------------------------
[6353.998] RedMain: Saving data table ...
[6354.076] RedMain:   - GLOBAL_TABLE :		0.064999999999998 s
 
Ok, don't mind the "PlayerID was nil" text, LaunchMilitaryOperation() function is called at two times: on GameEvents.PlayerDoTurn and on ActivePlayerTurnStart.

The first one (PlayerDoTurn ) is fine for the AI, but for the active (aka human) player, using it with this event was making it called befor the new turn was initialized, and I don't remember exactly why, but it was causing a problem (in unit movement initialization or something like that) so I had to add it later, and at this moment it's called with a nil argument instead of player id, that I'm tracking to get the human player id.

Bref, that's not a problem.

What's happening is that when testing the condition for the operation to be launched it found it false and does nothing.

what's your condition function ?
 
Here is my condition, after you requested the condition I found what I thought may of been the problem it was set to (CHINA, true) which was telling it that it was a minor nation I think, but it didn't solve the problem so here is my condition:


Spoiler :
Code:
function IsJapanAtWarWithChina()
	local bDebug = false
	if not AreAtWar( GetPlayerIDFromCivID(JAPAN, false), GetPlayerIDFromCivID(CHINA, false)) then
		Dprint("      - Japan is not at war with China...", bDebug)
		return false
	end
	return true
end

I did get a new lua message if it matters still:

Spoiler :
Code:
[23925.732] RedMain: -------------------------------------
[23925.732] RedMain: Check for Military Operations...
[23925.732] RedMain: LoadData() used 0 sec for player0_turn1
[23925.732] RedMain: -------------------------------------
[23925.732] RedMain: - Player is human, but function called before it's turn has been initialized, wait for ActivePlayerStartTurn...
[23926.138] RedMain: Initialize Active Player Turn = player0_turn1
[23926.185] RedMain: SaveData() used 0.049999999999955 sec for player0_turn1
[23926.185] RedMain: -------------------------------------

I really feel like its something right infront of me lol
 
The "new" message is the one given the first time the function is called for the human player, before it's turn has started. Search for the second message, the one which state that "player ID was nil", there it will test the condition.
 
The "new" message is the one given the first time the function is called for the human player, before it's turn has started. Search for the second message, the one which state that "player ID was nil", there it will test the condition.

Spoiler :
Code:
[41118.462] RedMain: Check for Military Operations...
[41118.462] RedMain: - PlayerID was nil, assume LaunchMilitaryOperation was called by ActivePlayerStartTurn for active player...
[41118.462] RedMain: LoadData() used 0 sec for player0_turn1
[41118.462] RedMain: -------------------------------------
[41118.462] RedMain: - But no military project defined for this nation...
[41118.462] RedMain: -------------------------------------
[41118.462] RedMain: Saving data table ...
[41118.540] RedMain:   - GLOBAL_TABLE :		0.064000000000306 s

Now its saying it isnt defined?
 
Well, let me see your g_Military_Project table :D
 
Spoiler :
Code:
g_Military_Project = {
	------------------------------------------------------------------------------------
	[JAPAN] = {
	------------------------------------------------------------------------------------
		[OPERATION_CHINA] =  { -- projectID as index !
			Name = "Invasion of China",
			OrderOfBattle = {
				{	Name = "Middle Chinese Invasion Force", X = 93, Y = 53, Domain = "Land", CivID = JAPAN,
					Group = {		JP_INFANTRY, JP_INFANTRY, JP_INFANTRY, JP_INFANTRY,	},
					UnitsXP = {		10,				15,			10,			10,	}, 
					InitialObjective = nil, 
					LaunchType = "Amphibious",
					RouteID = TROOPS_INVADE_CHINA_1, -- must define a troops route for amphibious operation in g_TroopsRoutes !
				},
				{	Name = "Southern Chinese Invasion Force", X = 86, Y = 43, Domain = "Land", CivID = JAPAN,
					Group = {		JP_INFANTRY, JP_INFANTRY, JP_INFANTRY,	},
					UnitsXP = {		10,				15,	}, 
					InitialObjective = nil, 
					LaunchType = "Amphibious",
					RouteID = TROOPS_INVADE_CHINA_2, -- must define a troops route for amphibious operation in g_TroopsRoutes !
				},
				{	Name = "Secondary Mid. Chinese Invasion Force", X = 87, Y = 49, Domain = "Land", CivID = JAPAN, AI = true,
					Group = {		JP_INFANTRY, JP_INFANTRY, JP_INFANTRY, JP_INFANTRY,	},
					UnitsXP = {		15,				15,			10,			10,				}, 
					InitialObjective = nil, 
					LaunchType = "Amphibious",
					RouteID = TROOPS_INVADE_CHINA_1, -- must define a troops route for amphibious operation in g_TroopsRoutes !
				},
				{	Name = "Northern Attack Force", X = 90, Y = 62, Domain = "Land", CivID = JAPAN, AI = true,
					Group = {		JP_INFANTRY,	JP_INFANTRY, JP_INFANTRY,	},
					UnitsXP = {		15,				10,				15,			}, 
					InitialObjective = "82,64", -- Peking
					LaunchType = "ParaDrop",
					LaunchX = 83, -- Destination plot
					LaunchY = 62,
					LaunchImprecision = 2, -- landing area
				},
				{	Name = "Secondary Southern Chinese Invasion Force", X = 85, Y = 45, Domain = "Land", CivID = JAPAN, AI = true,
					Group = {		JP_INFANTRY,	JP_INFANTRY, JP_INFANTRY,	},
					UnitsXP = {		15,				15,				15,		}, 
					InitialObjective = nil, 
					LaunchType = "Amphibious",
					RouteID = TROOPS_INVADE_CHINA_2, -- must define a troops route for amphibious operation in g_TroopsRoutes !
				},
			},			
			Condition = IsJapanAtWarWithChina,
		},
	},	
	------------------------------------------------------------------------------------
}

:crazyeye:
 
Top Bottom