Arqade Asked on April 18, 2021
In the local authority window, I can "fund new buildings", which accelerates town growth. Suppose I have already funded new buildings:
Is there any benefit in funding new buildings again right now, even though the city is currently funded? In other words, if I "fund new buildings" many times in a row while the city is still funded, am I just wasting my money?
Yes, there is, with some caveats
The real mechanics are a bit complicated. Here's an in-depth resourcenote. You can also check out the code, specifically the file /src/town_cmd.cpp
.
From the contents of this file, you can learn the following happens when fund_new_buildings
is set:
That third point is what can cause repeated use of Fund New Buildings to grow a small town quickly, colloquially known as powerfunding. Here's the relevant line of code:
t->grow_counter = min(t->grow_counter, 2 * TOWN_GROWTH_TICKS -
(t->growth_rate - t->grow_counter) % TOWN_GROWTH_TICKS);
There are 74 ticks in a day. TOWN_GROWTH_TICKS = 70
. growth_rate
is simply the rate of growth in days per house, times 74. The grow_counter
is a simple tick counter, keeping track of how long until we next attempt to build a house. Let's assume building a new house always succeeds. (On failure, the counter is reset to TOWN_GROWTH_TICKS
).
You can actually make this happen: The town is for example hand-built using a spiral pattern, with no loops and no dead ends that do not feature plenty of empty space to build in.
Let's see what happens if a few values are plugged into this formula: At growth_rate > 140
, the formula will reduce any grow_counter
greater than 140 to 140. Below this number (faster growth) there is no effect. So if your town is big enough, you should only fund at the start of every 3-month period. (1st of January, 1st of April, 1st of July, 1st of October).
Thus, by pressing the fund new buildings button every 141 ticks, you can maximize this effect. This amounts to pressing it about every 2 days. Because humans are inaccurate, trying to exactly time your button press like mechanical clockwork to a precision of a single frame is unlikely to work for you. And pressing too early (even by one tick) does completely waste your money. So how can you do this perhaps a bit suboptimally, but at least reliably? There are two methods:
Note: This resource was assembled with user experience playing the game, not actually debugging the code, and isn't updated as often as the openTTD code is. It's wrong or not quite accurate on some points, though this particular article is still mostly relevant. For example, the bug where "Fund new bulidings" can actually increase the grow counter has been fixed, as you can see with the use of the min()
macro.
Correct answer by aphid on April 18, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP