SGOTM 17 - Plastic Ducks

I discovered this about a month ago while I was "updating" the test game to check for teleportation.

It's a minor bug coming from BUG/BUFFY that gives you some information you shouldn't have prior to discovering Calendar or building Stonehenge.

This example is taken from Plastic Ducks' SGOTM17 1960BC save.
Spoiler :


Basically, the moment you've settled your first city, you'll know the exact coordinates on the map.

It's not gamebreaking but I thought I'd share it for enthusiast test map makers :)
 
^^May not be game breaking but it's actually very useful information in terms of planning a map strategy :thumbsup:
 
The only one I can spilt the hair is: Ducks are repeating their strategy in SGOTM 15. A muture product is often with less defects.

More precisely, it's a strategy 1st used by OSS in SGOTM13 and both OSS and PD repeated it in SGOTM14, SGOTM15 was largely different.

The key is that both Astro and Engineering are on the same bulb route. The power of Engineering not only exists in trebs, but also on 50% increasing of road movement. The strength of the galleons is largely the same, it doubles the water path movement without detouring.

One thing impressed me in SGOTM13 was how galleons speed up war. PD launched the total war (with 3 movement galleys + catas) ~50 turns earlier than OSS (war with 5 movement galleons + trebs) and ended with merely 12 turns faster.
 
Regarding the Hades pair, I think our strategy worked because we chose to focus upon more pressing areas (exploration, teching, wars with accessible AI, further exploration) until it was absolutely necessary to take on the barbs. And it turned out that it was not necessary (page 74, as Duckweed acknowledges), although we had continued to plan for the possibility for some time (e.g. page 65, Kossin outlines a fort chain that would have allowed us to travel through the north).

The benefits of Galleons could have been very limited, since we initially judged that we were playing on a Lakes map and knew that the AI capitals were all inland. Still, it quickly became clear that naval units would play some sort of role, and we believed it would be too slow/costly to rely upon Galleys moving from Mansa's western coast (huge maintenance fees if we'd settled a city there early; long revolt times, if we'd captured a Malinese city; no pop to whip or Forests to chop, if we'd settled there late). Had that role been limited solely to traveling around the southern mountain mass (on our continent, with the artificial Ocean by the Silver) then that would have been fine too. Discovering those Ocean tiles was the tipping point for me.

Engineering was clearly the crucial tech, and Astronomy is bulbed on the way to Engineering. I am not sure how much quicker it can be to bulb Compass, Machinery, and then self-tech Engineering, but I don't think it would make more than a few turns of difference. If all of your :science: comes through Caste specialists, you will pop numerous Great People regardless, and Compass/Optics/Astronomy, even if they do prove useless in and of themselves, are invaluable trade chips.

This was my first SGOTM so I'm not trying to claim credit for any of the above. It just represents my own reasoning and understanding of things.

Our teching was, incidentally, far from flawless. :D In particular, we researched Drama before Currency (assuming the latter would become available through a trade). Guilds would have been a good post-Engineering pick, too. I think we underestimated our BPT rate, thanks to the numerous settled Great People strewn across the AI cities and remaining in Rep. Knights would have made the last few turns far less stressful.
 
Our teching was, incidentally, far from flawless. :D In particular, we researched Drama before Currency (assuming the latter would become available through a trade). Guilds would have been a good post-Engineering pick, too. I think we underestimated our BPT rate, thanks to the numerous settled Great People strewn across the AI cities and remaining in Rep. Knights would have made the last few turns far less stressful.
I remember logging in for the first time after having worked day in and day out for weeks. The first thing I did was skimming through the thread just to discover you bulbed Astro which seemed a fantastic idea. Then I downloaded the save and saw that we didn't yet have Currency and thought 'well, I'm sure you know what we're doing...'
As for the necessity of knights: I'd say the Churchill SoD could have been a tick larger and the Peter + Toku stacks could have been smaller, but it all worked out OK. Also, we were pretty far from knights tech-wise to actually make use of them. They would have been nice but that also stands for paratroopers :p
 
Doshin, actually I try to avoid knights as it's impossible to build chariots for city police and the cheapest units become longbows (unless having no iron access in some city to build archers/chariots but that's contrived). The horse archers clean up quite fine after the collateral and are cheap.

We didn't need drama either and actually earlier currency would not have made a difference. Possibly literature was a better pick as we had marble for Heroic Epic, it pays off after 4 trebuchets and the game lasted enough for. Not sure if getting Christianity (Doshin, bottled the trade :P) would have made any difference either. Not running religion was the right choice.

Getting more horses in England could have sped up the victory by a turn. Possibly we could have benefited from suicide catapults but that's hard to estimate.
(edit)Last note: leadership is not a good promo on offense, after collateral everything gets 1xp, and getting 2 instead is a waste of a promotion as there could be one attack at most per turn. (edit2) Leadership doesn't affect Greater General emergence, see below.

Imo, the funniest part was the teleported Chinese horse archer in England to kill our explorer.
 
(edit)Last note: leadership is not a good promo on offense, after collateral everything gets 1xp, and getting 2 instead is a waste of a promotion as there could be one attack at most per turn.

I think point is in leadership doubling experience points which then get doubled by IMP trait. That speeds the Generals up.
 
I think we could have defaulted into Guilds a few turns from the end (avoid finishing the tech until necessary), upgraded a few HArchers in 'Kago North' (or whatever it was called) and teleported them for the final time. Far from necessary, it just would have made things more comfortable. Let's not forget that we only managed a T164 win thanks to a last ditch Medic III/March/Morale unit flinging himself at the last defender.

Needing to self-tech Currency was unlucky, TBH. I don't think it slowed us down at all.

The less said about Theology the better. :mischief: :(

The Leadership promo is bad outside of AW, I agree, but (if I understand the Kaku thread correctly) Imperialistic civs receive a 100% boost to GG production, GG production is tied to XP, and Leadership doubles the XP won in any battle. So if a Super Medic mops up at 99.9% odds, this will usually generate 1GGP. But an Imperialistic Leadership SM will generate 4GGP.
 
Shaka (and Doshin), I am afraid the leadership promo doesn't affect the greater general emergence x.x (some comments of mine in the code)
Spoiler :
Code:
void CvUnit::changeExperience(int iChange, int iMax, bool bFromCombat, bool bInBorders, bool bUpdateGlobal)
{
	int iUnitExperience = iChange;

	if (bFromCombat)
	{
		CvPlayer& kPlayer = GET_PLAYER(getOwnerINLINE());

		int iCombatExperienceMod = 100 + kPlayer.getGreatGeneralRateModifier();

		if (bInBorders)
		{
			iCombatExperienceMod += kPlayer.getDomesticGreatGeneralRateModifier() + kPlayer.getExpInBorderModifier();
			iUnitExperience += (iChange * kPlayer.getExpInBorderModifier()) / 100;
		}
[B]//here the GG is updated....[/B]
		if (bUpdateGlobal)
		{
			kPlayer.changeCombatExperience((iChange * iCombatExperienceMod) / 100);
		}

[B]//and afterwards the leadership promotion is applied... (sorry)[/B]
		if (getExperiencePercent() != 0)
		{
			iUnitExperience *= std::max(0, 100 + getExperiencePercent());
			iUnitExperience /= 100;
		}
	}

	setExperience((getExperience() + iUnitExperience), iMax);
}
 
We didn't need drama either and actually earlier currency would not have made a difference. Possibly literature was a better pick as we had marble for Heroic Epic, it pays off after 4 trebuchets and the game lasted enough for.
Yep, Literature instead of Drama would have been better.
 
Shaka (and Doshin), I am afraid the leadership promo doesn't affect the greater general emergence x.x (some comments of mine in the code)
Spoiler :
Code:
void CvUnit::changeExperience(int iChange, int iMax, bool bFromCombat, bool bInBorders, bool bUpdateGlobal)
{
	int iUnitExperience = iChange;

	if (bFromCombat)
	{
		CvPlayer& kPlayer = GET_PLAYER(getOwnerINLINE());

		int iCombatExperienceMod = 100 + kPlayer.getGreatGeneralRateModifier();

		if (bInBorders)
		{
			iCombatExperienceMod += kPlayer.getDomesticGreatGeneralRateModifier() + kPlayer.getExpInBorderModifier();
			iUnitExperience += (iChange * kPlayer.getExpInBorderModifier()) / 100;
		}
[B]//here the GG is updated....[/B]
		if (bUpdateGlobal)
		{
			kPlayer.changeCombatExperience((iChange * iCombatExperienceMod) / 100);
		}

[B]//and afterwards the leadership promotion is applied... (sorry)[/B]
		if (getExperiencePercent() != 0)
		{
			iUnitExperience *= std::max(0, 100 + getExperiencePercent());
			iUnitExperience /= 100;
		}
	}

	setExperience((getExperience() + iUnitExperience), iMax);
}


Oh! Very nice. :goodjob:

Yes, just tested and a leadership units gets 2xp and gives 2GPP for an Imperialist civ.
 
Thanks, bestsss. I assume this is why I hadn't seen the promotion mentioned in this way in AW games (where you build TGW partly for the 100% domestic GG points boost, and promote to Leadership for the defender XP, but I've never heard someone argue that the latter helps the former).
 
Let's not forget that we only managed a T164 win thanks to a last ditch Medic III/March/Morale unit flinging himself at the last defender.
He only had to do it because our largely incompetent CR2 LK lost his battle at 97% odds :)
Seriously: bestsss is right. More HA would have sped up the Churchill front by 1 turn and as it turned out they weren't really needed in Russia. However, this was largely due to the success of our single spy on Rostov. It may have taken 16 HAs to knock out those LBs otherwise.
 
T164 win thanks to a last ditch Medic III/March/Morale unit flinging himself at the last defender.
Geronimo is his the man.
 
Let's not forget that we only managed a T164 win thanks to a last ditch Medic III/March/Morale unit flinging himself at the last defender.

I've managed to win T163 by directly moving the 5 trebs towards London (start of T160) to eliminate Churchill T162. It's a bit RNG-dependent but interesting to know it was still feasible with low odds.
 

Attachments

Thanks bestsss. I wish I could absorb your coding knowledge.
 
...and I wish I could find anything in this mess called civ 4 code... it's just about as well documented as the scripts I write for personal use...
 
...and I wish I could find anything in this mess called civ 4 code... it's just about as well documented as the scripts I write for personal use...

I never thought Civ4 code was hard to follow, personally I care of comments only if the case is truly non obvious. (Real Programmers don't comment their code. If it was hard to write, it should be hard to understand [1]) Civ4 is probably the most readable piece of (still) crap large code I've met.
It's pretty atrocious but it's extremely easily readable C code (very hard to call it C++ even). Some parts are admittedly terri-bad organized w/ my personal favorite: tech choice.
Overall, everything is inner loop into inner loop, no hashing (or trees, God forbid!) at any rate - close to no objects instead indexes into arrays (lacking type safety there) - similar to what I did when I was 8 or so, obviously data structures and algorithms are for com-sci drop outs :) The latter is a major part of the slow late game.

Yet, usually I can find the code in question in just 20-30sec.

Not to be totally negative it does make good use of asserts.

[1]: http://www.suslik.org/Humour/Computer/Langs/real_prog2.html
 
I enjoyed this game tremendously :) Fantastic team work and team spirit :goodjob:
I'm awfully sorry that I couldn't participate more in the first half of the game. Fortunately the staff shortage at work had been dealt with since, so I'm looking forward to a more relaxed SGOTM 18, provided you'll have me :)

Definitely, it's not even a question of invitation; you're now an official Plastic Ducks Team Member Platinum Certified™ and are most welcome to join up in the future SGOTMs :high5:

By the way, this is definitely valid for our other new members :D
 
Back
Top Bottom