MaFi-Games / Captain-of-Industry-issues

Public issue tracker for Captain of Industry video game
21 stars 4 forks source link

Better Contract Balancing #717

Open zuff-coi opened 1 year ago

zuff-coi commented 1 year ago

The issue Some contracts are not worth the trouble and could use some work. This issue will be used the gather somewhat poorly balanced contracts and possible solutions.

Additional context

Yandersen commented 1 year ago

The general issue is the low throughput of the dock. The main culprit is travel time - 4 month currently. While the unloading takes 3 month with T1 modules and 1.5 month with top T3 modules. The result is that overall round trip period is 6-7 month. First, it makes the effect of module upgrades senseless (twice energy, pops and maintenance consumption difference between T1 and top T3, while the throughput gain is just around 15%). Second, the top throughput of a largest size 8 dock set on loose material is 180 8/6=240 units/month (with T3 modules, and 1808/7=206 with T1), which is somewhat OK for importing stuff from world mines with all modules serving the purpose of import. But when it comes to contracts, it is way lower, since now only part of the modules work for import, as the other serve the purpose of export. For example, 1080 coal to 360 quartz contract. The rate of import in that case is just 60 quartz per month top. And by the time the need comes to get quartz by import, the consumption is already way over hundred(s), meaning at least 2 docks must be dedicated to such contract. Same issue with most of the contracts - u simply forced to spam duplicated docks for most of the contracts u use lategame. Now to the solutions. 1) The first that comes to mind is buffing the ship capacity. At least double that, I suggest. That alone will help with crippled throughput, but still the problem remains with module upgrades giving ridiculously insignificant gains. 2) Lower the ship travel time. The longer it takes the less effective module upgrades are, since the time ship unloads is just a fraction of time it travels. I'd say, make it 1-2 month. 3) Increase unloading speed of the modules, making the difference much higher. I suggest a match to the speed of transports - 60/200/450. Seriously, it is not even realistic to unload the ship for 3 month, c'mon. Or travel to the neighboring island for 4 month. As for contracts, not mention the throughput issue of imbalanced docks causing unnecessary duplications, some contracts seem way too expensive. For example diesel to quartz or solars to quartz. Lategame with 4K pops I need 144 quartz per month. If I go diesel, it will mean like 300 extra diesel requirement, which is in best case over 4 extra lanes of oil refinery, 300 extra pops, plus diesel for more ships - maybe even 6 lanes of oil (and if it is imported too - oh boy!). That's just heavy, especially considering the best oil import contracts give only 220 crude per dock, so double docks for quartz, double/triple docks for oil - it goes to oblivion. And another option is solars to quartz. That is just insanely expensive with half the quartz have to go back in form of trade product it just basically means doubling the quartz processing factory. Which, lategame, means doubling coal import as well. Again, double docks for quartz import anyway, plus huge load on electricity, more oil for ships, more oil for hydrogen and also extra line of glass. Just way to expensive. The solutions for balance here is to add more top-tier trade options for raw materials, like lab equipment IV, construction parts IV, Electronics III, Consumer electronics, and so on, so most contracts can go with 1 export module and 7 import modules. Ofc, there also should be options of exchanging raw-to-raw materials, but closer to some meaningful fair ratios. That should aim the difference of deposits constitution that varies from island to island. While the top-to-raw options should be greatly beneficial, since lategame is supposed to be doable on contracts solely with all deposits and world mines depleted, therefore those contracts must end up with a net gain of resources when run.

Frankdcoockle1 commented 1 year ago

Yandersen gave a pretty thorough explanation so no need to go over that again. From my perspective I would like to see 3 things involving contracts:

  1. I would like to be able to choose what I want to trade and for what. The ratios could be pre-determined based on module quantities. For example I might want to trade solar panels for gold ore or gold bars but there is no option currently in the contracts for this trade. This might make having several offshore settlements redundant as 1 would be enough.
  2. The docks do not allow you to do contract and also regular pick ups from the same dock. I did not know that and I had to tear stuff down and rebuild. Why can't I have 4 modules for trading contract and the other 4 just picking up something else, like coal for example.
  3. The trade needs to make sense. There are some trades that involve very cheap material traded in for very expensive items. For example glass for coal. Why would i give away glass which takes much more effort to make for coal which is a primary resource? I would understand the coal for limestone for example as they are both prime for prime but the quantities are not 1 for 1. The amounts need to make sense. If we stick to the glass for coal example then I would want to see something like 100 glass for 2000 coal or a big amount that would make it worthwhile to produce extra glass to get another resource that is not hard or easier (cheaper)to make.
Yandersen commented 1 year ago

Hm, dynamic contracts creation? Awesome idea, but hard to implement - that will require some system for estimation of the values of the materials. So u select an item for left side, right side, hit "find a dealer" and get new contract created, with ratio automatically calculated by value estimation system. The new contract then added to the list of avail contracts to choose from.

Frankdcoockle1 commented 1 year ago

Yes something like that, although i don't see why that would be hard. The values can be pre-determined. The calculation only needs to be done once and then recorded in the code. If you choose the item on the right and the item on the left and the number of modules the values would be pre-determined what each one should be

HardCoreGaming commented 1 year ago

I agree with Yandersen's suggestions. I will add that it would be possible to make the size of the cargo compartments of the ship dependent on the receiving modules and make it equal to them, i.e. buffer modules have a size of 180/360/720, it is possible to make the cargo compartments the same, since these are buffer tanks and are intended for unloading the ship. I calculated that my settlement needs about 1200 quartz per cycle, I'm afraid to imagine how many ships it takes, given that quartz is under contract :)

Yandersen commented 1 year ago

There is an awesome piece just came up to the dock throughput issue solution - ability to assign additional ships to the dock. Basically, this suggestion goes instead of the shortening the travel time - while one ship is in travel, the other one can dock and unload. With a limit of 3-4 ships per dock the haulers can drop by continuosly, thus not only solving the throughput issue alone, but also making the unloading speed of the modules really matter. Must add that some buff to the speed of modules still required so that top tier ones be able to unload the ship in less then a month term, otherwise they may be a bottleneck of the unloading pipeline (consider unavoidable docking animation time, when one ship departs while the next one approaches).

mcreationshh commented 1 year ago

If I were the devs, I would rather make 'infinite island gameplay' more attractive first and more intuitive to setup than before investing time in rebalancing the contracts. According to my calculations, it's possible to run your island on one dock per input resource needed (crude oil here is the toughest one to keep it to just one). Tho I am invested in this game way above average, I try to judge this from an 'average' player's perspective: Like in many other games, beating the last bit out of a game only attracts like 5-10% of the players' base. This applies to running your islands purely on world map sources and conctracts atm. I've seen no content creator even try it and there only few people on social media channels posting about it. Reasons: A) you have plenty resources at least left at the world map, B) most players stop playing when having launched the rocket, C) 'infinite gameplay' is not rewarding, it's just building production lines you need for the rocket launch milestone, just more of those, D) it requires plenty of landfill/ terraforming to get space for approx. 10 docks and the needed infrastructure. Which to a player's judgement might not be possible on every map and/or too much effort to invest without any major change in gameplay. What could be done to make 'infinite gameplay' more attractive? Punishing players, i.e. leaving them with total less resources to make them switch to contracts seems not a good option. Could be a possibility for Admiral difficulty. Option 1): when players switched to resource imports only, they could be granted a one-time award. Like a statue or something. Option 2:) Fullfilling this grants you access to additional/ new gameplay/content (maybe in conjunction with the planned space station tech tree content). TLDR: the effort to switch to infinite mode should be more rewarding and more attractive for a larger share of players' base. When that is fulfilled, a larger variety of contracts and/or changes to ship/ dock throughput seem reasonable.

SillySMS commented 1 year ago

One note is that a production planner such as Factorio Lab might be useful to the devs for balancing contracts. It might be hard to guess how valuable a certain item type really is when the production chains are so complex: in addition to the raw inputs, it should also consider worker count, maintenance costs, power, space required, etc. For example, while trading out diesel doesn't necessarily require that much crude oil, processing crude oil without having one product clog up the chain is a massive manpower, energy and maintenance sink.

Frankdcoockle1 commented 1 year ago

I like the idea of having more gameplay past launching a rocket but a statue for switching to contracts? And what if you switch to contracts as soon as possible rather than when you use up all your resources on the island? I think that a better reward might be a new technology or a new building that is only unlocked after you launch so many rockets. something more tangible to look forward to.

mcreationshh commented 1 year ago

I like the idea of having more gameplay past launching a rocket but a statue for switching to contracts? And what if you switch to contracts as soon as possible rather than when you use up all your resources on the island? I think that a better reward might be a new technology or a new building that is only unlocked after you launch so many rockets. something more tangible to look forward to.

I am not that crazy myself about playing a game just to unlock a statue as a reward. But it's a common reward, many players trying to achieve, also as a one-time 'evidence' of an achievement. However, it does not really matter if one switches to contracts before resources ran out on your island. In fact, depending on which map you're playing on, the resources can last thousands of ingame years. In the current state of the game you need at least 7-8 docks running contracts to have your islands depending solely on traded resources. That's more challenging than just keep on digging sand, iron and copper.

FioraAeterna commented 1 year ago

One of the big issues with contract balancing as mentioned previously is that you have to pay so much diesel simply to power the ship that it dramatically decreases the worthwhileness of many of the contracts. While ships could simply be made cheaper to fuel, another thought I had is that -- much like real life -- ships could be run off alternate fuel sources, like low-quality bunker fuel (fuel oil) residues from refining. It would naturally require additions to the tech tree / production system, but it might be an interesting approach.

Alternately, perhaps in the late-game we could make nuclear ships (I wish)...

JamieRCHI commented 4 months ago

Is someone still looking at this? I think having a text file with all the options for the game would be very good for this. Let us change the options and report back. At least until final release. This would make it much easier to figure out the proper balance for the game. We can help test this game if you provide something like this.