Page 1 of 1

Viability of some game play changes to make it less sandboxy

Posted: 20 May 2023 10:33
by Fauleresel
Hello,

I would like to make a mod which makes the game less sandboxy and more like a game like ANNO or other building games. Since I do not know much about the Ottd Engine or the APIs, I would first like to know if my suggested changes hit some somesort of engine limitation or other programming problems.

Please tell me on the following items if there is a problem with implementing them, if there are already mods which accomplish some of these and maybe if you have already an idea how you would go about it.


1)
Placing houses on your own, which cost some sort of building material

2)
No instant building: You have a blue print phase to model the construction site and then you have to supply the site with building materials
and workers

3)
No magic depot : Depots should have the at least the same size like the vehicles they are servicing.
Vehicle should be serviced in a station like building and need some cargo like "spare parts" to function properly.

4)
Steam engines should need water and coal.
Diesel ones need diesel.
Electric railway needs to be connected to a power station which is supplied with fuel

5)
Towns need to be supplied with food, water and clothing sold by a store and they need jobs and passenger and mail service to the Main Building/Port
to attract workers which are necessary for the industries in the town to work at all.


That are the most important ones for now.

Bye

Re: Viability of some game play changes to make it less sandboxy

Posted: 20 May 2023 21:04
by Eddi
1) i think this is only availlable in the scenario editor, would need some small code changes to enable in the game. it's very unlikely to convince anyone to include this in the vanilla game though.

2) NewGRFs can probably do that with animation frames. there may be slight problems because stations have no way to distribute delivered cargo to different nearby entities, so delivering large trains of building materials may be inefficient and wasteful. not sure about that.

3+4) no that's not possible

5) you can look at some GameScripts

Re: Viability of some game play changes to make it less sandboxy

Posted: 22 May 2023 08:37
by jfs
Most or all of your requests are not possible with the modding APIs for the game, that is NewGRF and Game Scripts. Some of them are feasible to implement as patches for the game engine.

1) There is a patch for the game that allows manually placing town houses in the scenario editor. It could probably be extended to allow building during gameplay too, for a cost.

2) Maybe possible as a patch. If you can find or create space in the landscape data you could add construction progress data, or perhaps invent some extra data structure that only exists for under-construction tiles.
This would be a very extensive patch to develop.

3) There is an existing patch for "long depots", that can require depots to fit the length of trains.
Requiring some cargo to exist in a storage would be a new addition, and possibly require making some kind of "depot-attached station" where vehicles can drop off cargo. Consider if you'd need to work out something about ownership of cargo, e.g. whether the player is buying/selling things.

4) These would also be new, extensive patches. Again possibly changing something about the cargo ownership model.

5) Some of this can be implemented via Game Script today, several different City Builder scripts already provide some gameplay in this style.


It would probably be possible to transport OpenTTD to a game in the style you're imagining, but it would need rather extensive modifications to the game engine itself. I don't think patches to support this style of gameplay would be accepted into the main branch for the game, but it's definitely possible to develop as a fork of the game.

Re: Viability of some game play changes to make it less sandboxy

Posted: 22 May 2023 16:26
by Eddi
just a reminder that we have a long standing policy of "this is not SimCity", so features like manually guiding the expansion of towns is somewhat out of focus.

Re: Viability of some game play changes to make it less sandboxy

Posted: 22 May 2023 17:51
by Argus
That's good, we don't want to imitate Simcity. It's a trucking company management game, not a mayorship and city management game. :)

Re: Viability of some game play changes to make it less sandboxy

Posted: 23 May 2023 10:26
by jfs
Eddi wrote: 22 May 2023 16:26 just a reminder that we have a long standing policy of "this is not SimCity", so features like manually guiding the expansion of towns is somewhat out of focus.
But that only matters for changes suggested for being included in the main branch.
The license gives anyone the freedom to fork OpenTTD and use it as a basis for making a completely different game just as well.

Re: Viability of some game play changes to make it less sandboxy

Posted: 24 May 2023 14:32
by Fauleresel
Ok, I have hoped, I could get away with some things before I have to make a fork of the engine, because my last project in C++ was my epic TicTacToe remake ten years ago. :lol:

I'll try to make the depot thing and go on from there.

Can you lower the catchment area of the stations with the API? (JGRs patchpack can only increase it)

Does anybody have an idea how to make the rail types more distinct without a big rewrite of the engine?

Re: Viability of some game play changes to make it less sandboxy

Posted: 25 May 2023 09:12
by Eddi
the concept of a "game engine" didn't exist when this game was created, so everything is tightly integrated and customized for the gameplay. this allows for better optimisation, but is less flexible.

Re: Viability of some game play changes to make it less sandboxy

Posted: 27 May 2023 16:16
by ahyangyi
Fauleresel wrote: 24 May 2023 14:32 Does anybody have an idea how to make the rail types more distinct without a big rewrite of the engine?
Depends on your definition of "distinct" though. Have you tried the many many existing NewGRFs that add or modify railway types?

Re: Viability of some game play changes to make it less sandboxy

Posted: 29 May 2023 12:38
by 2TallTyler
Your depot idea is already in progress: https://github.com/OpenTTD/OpenTTD/pull/8480

I think house placement would be a good place to start, specifically by allowing NewGRF objects to receive and generate cargo. Players already construct elaborate fake towns with objects, so I see no reason why we can't support this with NewGRF specs that allow existing objects to use existing features, in a way that was not possible in TTD.

Objects already have code to handle production and acceptance for company HQs, but that would need to read an expanded NewGRF spec instead of being hardcoded. I would make them mirror houses closely, with population and mail properties as well as a production callback for other cargos.

I've been considering doing this myself, but have other projects that take priority right now. If you're able to do this and open a Pull Request, I'd be happy to work with you in the code review process.

You might pop over to the OpenTTD Discord (https://discord.gg/openttd) for help with this. It's where most of the developers hang out and we can try to help you there.