October 15th, 2020, 18:22
Posts: 634
Threads: 13
Joined: Nov 2010
I am playing a game for 2 months now. About 400 hours in. Main problem with COM is the extensive time I need for optimal game play due to 1) setup each city each turn how many workers to use due to rounding effects being wild and not reasonably predictable, 2) moving hundreds of units on the map from mid to late game each turn to create optimal position and composition for them all. For COM2 I propose solution as follows: For 1) make rounding uniform, intuitive and predictable each turn so there will be far lass micromanagement. For 2) fortification of units so if they don't move they receive defense bonus and apply zone of control similar to Civilization so the borders become far easier to defend. Also a cost of movement penalty in gold so there will be fewer moves each turn.
October 15th, 2020, 18:52
Posts: 55
Threads: 0
Joined: Mar 2012
FWIW, with excess food being transformed into gold, optimal farmer allocation is much less important than it used to be.
October 16th, 2020, 06:36
Posts: 222
Threads: 2
Joined: Dec 2016
(October 15th, 2020, 18:52)myk002 Wrote: FWIW, with excess food being transformed into gold, optimal farmer allocation is much less important than it used to be.
well, each gold is worth 1/2 production, so you can still squeeze some juice out of that habit.
October 16th, 2020, 13:29
Posts: 10,492
Threads: 395
Joined: Aug 2015
There is no easy miracle solution to this. Production percentage can be any number, it doesn't matter what the rounding rule is, the city with 138% production will always have a chance to give you 1 more production than the city with only 137% because it's a greater number being rounded. Even if I were to allow the player to use the AI's farmer selection function, that might optimize production to some extent but won't know your preferences. More often than not you'll want the max workers in the cities that build important stuff, not where it gives you the most hammers but the city produces nothing useful...and what is or isn't important is up to the player to decide.
October 16th, 2020, 22:59
(This post was last modified: October 16th, 2020, 23:01 by WhiteMage.)
Posts: 634
Threads: 13
Joined: Nov 2010
I think there is an easy miracle solution for this. Assuming that you insist to store integer productions every turn in cities then always probabilistically round up or down proportionally to what is closer. For example city has 33% bonus. Applying 33% bonus to 1 hammer (1.33) is rounded down to 1 with P=2/3 and rounded up to 2 with P=1/3. Every turn, every city. This is only applied to the very last hammer. All the other hammers aggregate (added up first and then the bonus is applied to their sum). So tiny but predictable rounding may happen only on the very last hammer. All the others are fully predictable.
An even better solution would be to store fractions every turn if it does not take too much time. So no rounding.
Additional changes can be applied to secondary problems such as completion and every turn micromanagement. I have many ideas.
I also disagree about focusing on the cities that build important stuff more often than not. I focus on squeezing out hammers from most cities as default. But there are various exceptions.
October 17th, 2020, 00:18
Posts: 10,492
Threads: 395
Joined: Aug 2015
The game recalculates production for every city several times each turn, as necessary. If there is a random element in the calculation, your total production and thus displayed numbers will randomly fluctuate. Even worse, you won't be able to know if something completes this turn or the turn after. This inconsistency carries over into your gold income through trade goods, so you can potentially lose units to unpaid gold maintenance as well.
I don't insist on using integers, it's what is available in 8086 assembler. Also it is what the game can display for the user, considering it uses icons, not printed numbers.
October 17th, 2020, 05:48
Posts: 634
Threads: 13
Joined: Nov 2010
I propose applying the randomness to the last hammer in each city only at the end of the turn. Not during the turn. During turn you display the deterministic projection for the randomness that is going to happen at the end of the turn. No change in icon display is necessary. Simply assume that the very last displayed hammer is always a probability on the (0,1] interval.
Finishing production in turn or not is a separate problem. For that I propose another rule: any partial last hammer counts as finishing production. So you get deterministic projection for completion, but only 1 turn ahead. If the randomness rolled to be rounded down then there is a -1 hammer left in next turn towards the next production project. Hence no inconsistency.
About probabilistic gold income from trade goods potentially causing unit to be disbanded, all Trade goods from all cities should be pooled into a single production. Apply rounding to the very last one. So it can only be 0 or 1. Game UI can be added that displays the lower of these 2 values. If the player is lucky to round it up, then he earns +1 extra gold in that turn.
Do you have to use 8086 assembler for COM2? Why?
Displaying fractions can be added for user convenience as a simple hover over the city hammer production. That fraction can be displayed decimal number accurate to any number of digits that reasonably fits. I would say 2 digit accuracy, such as 0.33 is enough, but actual computation can be more accurate than that.
October 17th, 2020, 11:39
Posts: 10,492
Threads: 395
Joined: Aug 2015
No, I assumed we are talking about CoM I.
Float numbers are possible in CoM II.
October 17th, 2020, 11:55
Posts: 634
Threads: 13
Joined: Nov 2010
I was talking about COM2, but of course if you can do this in COM that would be much appreciated. It would cut my game length by about 75%.
October 18th, 2020, 18:00
Posts: 46
Threads: 3
Joined: Jul 2011
I'm having Merlin's turn hard hang after caster Change Terrain. I can send saved game file if someone can tell me where to find those in the Slitherine version of CoM 6.05. Disappointing because treasure hunting was going well.
|