Ah, an expert! That's very good! You should know that Simutrans is open source, so feel free to implement it yourself! If it's good enough, the developers will undoubtedly incorporate your patch!
I would love to. The problem is that I'm currently overloaded with work at university due to my mastersthesis. (The beauty of playing simutrans is that you can have the game window minimized while you're doing your work and the game will keep running without much need of your atention ).
That's why I'm posting my ideas in case someone with time wants to work on them.
Maybe after my graduation I'll have some time to spend on this great game.
Hajo, I understand the memory issue you're presenting. I don't know what efforts have been done to increase game performance. Although I currently have simutrans on my laptop which is quite old by today's standarts. Single Core 1.83GHz, only 1G of memory and Intel graphic card with 128Mb of integrated memory and no dedicated memory. And, inspite of this old hardware configuration, I don't detect any lagging or other performance issues when playing, loading or saving games in simutrans either in pak64 and pak128. So I supose something was done about performance in the past years.
Dwachs, yes I'm only suggesting working with probability here and not complete city growth control.
To the moderators: I accidentaly created a new topic instead of a reply to the topic refered in this topic's Subject. Please merge this post with that topic to put this in the right place.
Hajo, I don't think that's what is being requested. I think (and generally support) the idea is to build/upgrade buildings in areas covered by the stations in preference to those outside of station area. So it is more about making the citybuilder more sophisticated rather than making the p****enger generator more sophisticated.
I see. That should be fairly easy then, although again time consuming (At least the old code had no flag for a tile "is covered by station" but the program had to actually look through the station list if there is a station nearby. Maybe this was changed in the past years?)
I guess it makes sense, though.
Simutrans is done in C++ right? if that's the case, the Cl**** that represents each Tile (I suppose you have a cl**** for that, although I'm try to guess here ) could have boolean atribute(s) to indicate p****enger/mail/goods station coverage.
If this is already implemented then I'm not feeling the effects of it in the game. In game the cities don't seem to take this factor into consideration when choosing the location of a new building.
I've been looking into the cityrules.tab file (of pak64) and haven't found anything related to this.
The only thing I've found is a symbol in the rules to create a rule which includes a stop on a neighbouring tile.
# Symbols in rules: # S = must not be road # s = must be road # n = must be bare land # H = must not be house # h = must be house # T = not a stop // added in 88.03.3
# t = is a stop // added in 88.03. # U = allowed slope for roads
# u = forbidden slope for roads
What I'm suggesting is more like an affinity like the ones that specify how residential/comercial/industrial buildings influence each other:
# # relative affinities for certain building types which can lead to clustering of certain building types #
# avoid building next to industry res_start_score = 0 res_near_ind = -8 res_near_com = 0 res_near_res = 8 res_near_p****enger = 3 res_near_mail = 1
# everywhere is good, next to com best com_start_score = -10 com_near_ind = 1 com_near_com = 8 com_near_res = 1 com_near_p****enger = 1 com_near_mail = 2
# next to res means expensive filters and no truck after 10 pm => avoid this ... ind_start_score = 0 ind_near_ind = 8 ind_near_com = 0 ind_near_res = -8 ind_near_p****enger = 2 ind_near_mail = 1
Note: the affinities in bold are my suggestion and the values are just examples I made up without any testing and shouldn't be considered for balancing purposes.
Perhaps this topic would be better placed under the pak64 section instead of the general extension request section. If that's the case I ask the moderators to move this topic accordingly.
When a city wants to build a new building, one of the factor that the cityrules should take into consideration is empty tiles that are covered by a p****enger/mail station's coverage area.
These areas should have a higher probability of getting new buildings than non-covered areas.
My request is based only on a desire for more realism since it wouldn't had any gameplay features to the ship depot. I guess the trick proposed by VS works well.
However I'm curios about one thing. When you build a dock with a crane, just an example, you choose a coastal tile and then you see four construction take place in four tiles in line (the coastal tile and three water tiles). Is it a 1x4 single building or 4 1x1 separate buildings?
Would it be possible to make a dock where the last water tile is the ship depot? That would respect the constraint right?
Is it possible to create a shipyard that sits along the shore like the current ship docks with cranes and stuff. Currently the shipyard is build in the middle of the water. That seems a bit unrealistic to me. Normally a shipyard is coastal infrastructure that could blend (graphically speaking) with the rest of the seaport buildings.
Since I don't have object modelling skills I'm posting this request for the comunity to evaluate and decide if it's worth it or not.
I've been playing simutrans for years now and there's something that I would like to suggest.
Currently the consumtpion rate of any industry is based on two factors:
- A value calculated when the factory is created; - that value is doubled when electricity is given to the factory.
Throughout the different industry chains of the game, this basic heuristic works well for raw material producers and intermidiate manufacturing entities. However, at the end of a chain, the final consumer ends up beeing "overcrowded" with finished goods waiting to be consumed. Even if that overcrowding effect doesn't happen at the beggining of the game it will happen with time, caused by the creation of more and more industries.
From what I've seen in map creation and creation of new industries, each end consumer seems to be "linked" to a city. What I suggest is an addition to the end consumer consumption rate heuristic like this:
- A value calculated when the factory is created; (currently implemented) - Value is doubled with electricity; (currently implemented) - A multiplier parameter based on city population.
This parameter should be small enough to keep the chain balanced, which means some time would have to be spent testing this. From my experience playing simutrans I can see that as time p****es cities can grow to have several thousands of inhabitants so this parameter could be placed, for example, at 0.020 which would increase the consumptiom rate by 20 for each 1000 population:
Finally, consumption rate would be truncated/rounded to be converted from decimal to integer value.
For raw materials and intermidiate factories the "old" fórmula could be used, or this fórmula could be used with multiplier = 0.00
If possible, different end consumers would have different multiplier values. This multiplier would be higher for the food chain while it could be lower for the materials shop or car shop for example. Although I guess this would mean implementing this multiplier directly on the paks instead of only on the game engine.
I've been a simutrans player for a long time now. One thing that I always thought a bit unrealistic was the way the game deals with mail.
Simutrans deals with mail the same way it deals with p****engers. Mail is produced a little bit throughout every building in a city. That means that you have to build stations with a radius that covers several buildings in order to have a good amount of mail produced. That also means that you have to build several stations with post offices in order to cover an entire city.
What I suggest is a new way to see mail in simutrans based on a central point of mail "production". Real cities usually have a single post office that collects all mail from the city and sends it to its destinations.
Following this concept, cities in Simutrans should start with a post office building close to the city hall. This post office should have certain specifications:
1 - the building would have a 2x2 base; 2 - the "production" rate would be calculated based on the buildings that belong to the city; 3 - that means that, has the city grows bigger, the production rate of the post office would increase; 4 - when the production rate reaches certain amounts the building could evolve, always remaining a 2x2 building in order to stay in the same place.
This way the player would have to deal only with the transportation of mail between cities. Now the difficult thing is the part of destinations. The post office would "produce" mail based on the buildings of the city. That means that it would have to "produce" different quantities of mail to different destinations. In order to do this the post office should have an algoritm capable of calculating this. Here's my suggestion:
1 - each post office would have an internal database or table where they would record different destinations and the respective production rates; 2 - each time a building is built or updated in the city that table would also be updated; 3 - the total production rate of the building would be the sum of all those "mini" production rates; 4 - just like it happens with p****engers, the stations would only receive mail to the destinations it is connected.