they should allow grfs to be added after starting the game
Moderator: OpenTTD Developers
-
- Traffic Manager
- Posts: 159
- Joined: 26 May 2020 18:33
they should allow grfs to be added after starting the game
here is my suggestion: enable players to add grfs for vehicles during the game, which is then added to the server and all players have to download it. other grfs could be possible as long as they are compatible with what is already active.
Re: they should allow grfs to be added after starting the game
Hello
[edit]*btw*: Who the f*** is "they"?[/edit]
Tschö, Auge
It is possible to add or remove NewGRFs during game play. It is a wilful hidden feature because of altering NewGRFs in a running game is possibly breaking it.andreasaspenberg wrote: ↑20 Apr 2021 19:35 here is my suggestion: enable players to add grfs for vehicles during the game
[edit]*btw*: Who the f*** is "they"?[/edit]
Tschö, Auge
Last edited by Auge on 21 Apr 2021 07:04, edited 1 time in total.
Re: they should allow grfs to be added after starting the game
The part about "as long as they are compatible with what is already active" is impossible to determine.
It would require completely rewriting the game, it would be 15 years of work to get that done. The way NewGRF integrates with the game is very tightly coupled, and it's literally impossible (look up The halting problem for the computer science) to determine if a NewGRF would interfere with an ongoing game in a harmful way. There do exist NewGRFs where it's possible to determine whether it's safe or not to add it, but there are also NewGRF's where it's not possible to determine if they are safe or not, and it's not possible to determine if any given NewGRF belongs to the first or second class. Or well, that's my gut feeling about the problems involved, based on my knowledge about how the languages and machines involved work.
It would require completely rewriting the game, it would be 15 years of work to get that done. The way NewGRF integrates with the game is very tightly coupled, and it's literally impossible (look up The halting problem for the computer science) to determine if a NewGRF would interfere with an ongoing game in a harmful way. There do exist NewGRFs where it's possible to determine whether it's safe or not to add it, but there are also NewGRF's where it's not possible to determine if they are safe or not, and it's not possible to determine if any given NewGRF belongs to the first or second class. Or well, that's my gut feeling about the problems involved, based on my knowledge about how the languages and machines involved work.
- planetmaker
- OpenTTD Developer
- Posts: 9432
- Joined: 07 Nov 2007 22:44
- Location: Sol d
Re: they should allow grfs to be added after starting the game
It might be possible to achieve that, *iff* *all* NewGRFs in question in the game are limited to a subset of the existing variables (thus make them completely deaf wrt all global variables which can be changed by any other NewGRF, and make them completely deaf to all other NewGRFs presence or not-presence and when they conform to a recent enough NewGRF version. To ensure that, it would require to introduce a new NewGRF version which makes sure that all these paths for interaction are barred and OpenTTD need not rely on the NewGRF not doing what it promises to not do (history shows, that does not work - the topic is so complex even the best authors with all the best intentions do sometimes things with unexpected consequences when placed in the context with other NewGRFs).
Maybe the provision of "*all*" can be dropped, if OpenTTD can make sure that such deaf and silenced NewGRFs are not communicated to the outside, thus other NewGRFs either.
Things which need be dropped for these kind of NewGRFs include the possibility to extend an existing NewGRF, to check for other NewGRFs to offer better seamless integration with some other, possibly even to check for the presence or absence of specific cargoes, railtypes, etc as they could also be used as proxy to make decisions which influence the game state (oh, we have fruit? Let's change its weight --> boom! oh, we have electric trams? Change its costs and introduction date --> boom!)
So in essence... independent NewGRFs most likely only work for the most basic, but not as soon as you get to the sophisticated NewGRFs which really need to take into consideration things possibly defined or altered by other NewGRFs (like cargoes, track and road and tram types). So the 'no other effect' is very hard to ensure - unless you maybe also introduce additional restrictions like only one type of feature writable (only add vehicles, no disabling etc, no freight definitions, no tracks, no roads, no global or other costs).
In essence: it's a pandora's box
Maybe the provision of "*all*" can be dropped, if OpenTTD can make sure that such deaf and silenced NewGRFs are not communicated to the outside, thus other NewGRFs either.
Things which need be dropped for these kind of NewGRFs include the possibility to extend an existing NewGRF, to check for other NewGRFs to offer better seamless integration with some other, possibly even to check for the presence or absence of specific cargoes, railtypes, etc as they could also be used as proxy to make decisions which influence the game state (oh, we have fruit? Let's change its weight --> boom! oh, we have electric trams? Change its costs and introduction date --> boom!)
So in essence... independent NewGRFs most likely only work for the most basic, but not as soon as you get to the sophisticated NewGRFs which really need to take into consideration things possibly defined or altered by other NewGRFs (like cargoes, track and road and tram types). So the 'no other effect' is very hard to ensure - unless you maybe also introduce additional restrictions like only one type of feature writable (only add vehicles, no disabling etc, no freight definitions, no tracks, no roads, no global or other costs).
In essence: it's a pandora's box
OpenTTD: manual | online content | translations | Wanted contributions and patches
#openttdcoop: blog | wiki | public server | DevZone | NewGRF web translator
DevZone - home of the free NewGRFs: OpenSFX | OpenMSX | OpenGFX | Swedish Rails | OpenGFX+ Trains|RV|Industries|Airports|Landscape | NML
-
- Traffic Manager
- Posts: 159
- Joined: 26 May 2020 18:33
Re: they should allow grfs to be added after starting the game
the vehicle based grfs would mostly be safe either way. they usually work with the ones that mods the base game. vehicle based grfs usually do not disable any vehicles. it could be possible to lock out functions that dusables stuff. others is worth investigating but, i primarily suggested vehicled based ones.
Last edited by andreasaspenberg on 21 Apr 2021 12:35, edited 1 time in total.
Re: they should allow grfs to be added after starting the game
I mean, there's a far easier solution: changing absolutely nothing, and have changing NewGRFs at the player's own risk
Re: they should allow grfs to be added after starting the game
Hello
That was the reason why it got hidden at all. IMHO this is not a case of "the good ol' times".
Tschö, Auge
Since ages there is a warning in a bright red box about changing a NewGRF ingame could possibly break your game. Before the feature to change a NewGRF ingame was hidden, the normal flow was to ignore the warning and to write here venomous postings about the s*** game (or at least a bug report) afterwards. Poking in the savegame brought to light that one ore more NewGRFs changed during game play and that caused the game to break.
That was the reason why it got hidden at all. IMHO this is not a case of "the good ol' times".
Tschö, Auge
Re: they should allow grfs to be added after starting the game
whatever you smoked, i want none of that.
changing vehicle grfs can change the length of vehicles mid-game, which leads to disconnected vehicles and all sorts of other things that might crash the game.
Re: they should allow grfs to be added after starting the game
I think something got massively lost in translation here. Like it's not even funny how much got lost there. I just mean basically keep it as it currently is. (That's what changing nothing means after all) Where you have to manually edit the config file to allow it at all. It's a little obnoxious, and that's kind of the point. It at least reduces the problems related to people who don't have a clue of what they're doing significantly, by limiting it to somewhat more experienced players, and allows us to give a more direct disclaimer, which tends to work better than having to accept the terms of service. Of course it's still not perfect, but it's the closest you're going to get to something that is good enough for most people.
To eradicate the problem entirely you'd need to disable changing NewGRFs altogether which I can only describe as toxic game design. So I think it may be for the better to just ignore any suggestions for changing the way it currently is.
- 2TallTyler
- Route Supervisor
- Posts: 507
- Joined: 11 Aug 2019 18:15
- Contact:
Re: they should allow grfs to be added after starting the game
Not true. Most comprehensive replacement sets (Iron Horse, eGRVTS, OpenGFX+ Trains, Danish Trains, etc) disable the default vehicles of that type.
-
- Traffic Manager
- Posts: 159
- Joined: 26 May 2020 18:33
Re: they should allow grfs to be added after starting the game
it is not true for all of them. the developers could just add a safeguard to make grfs unable to tamper with existing material when loaded after game start. i suggest just throwing the option in so that it can be tested, rather than guess what will happen.
- andythenorth
- Tycoon
- Posts: 5658
- Joined: 31 Mar 2007 14:23
- Location: Lost in Music
Re: they should allow grfs to be added after starting the game
This is literally what grfs do. This is the design.andreasaspenberg wrote: ↑21 Apr 2021 21:10 make grfs unable to tamper with existing material when loaded after game start
I know it seems simple to fix, but it really isn't.
And it's open-source, not '1 important player haz demanded, so devs must' My point being, there is literally no person walking on earth who will be interested in trying to patch this.
Or prove me wrong! (with a patch)
FIRS Industry Replacement Set (released) | HEQS Heavy Equipment Set (trucks, industrial trams and more) (finished)
Unsinkable Sam (ships) (preview released) | CHIPS Has Improved Players' Stations (finished)
Iron Horse ((trains) (released) | Termite (tracks for Iron Horse) (released) | Busy Bee (game script) (released)
Road Hog (road vehicles and trams) (released)
Unsinkable Sam (ships) (preview released) | CHIPS Has Improved Players' Stations (finished)
Iron Horse ((trains) (released) | Termite (tracks for Iron Horse) (released) | Busy Bee (game script) (released)
Road Hog (road vehicles and trams) (released)
-
- Traffic Manager
- Posts: 159
- Joined: 26 May 2020 18:33
Re: they should allow grfs to be added after starting the game
i am not a programmer. i am just a transport tycoon veteran. i have played transport tycoon since the first dos version.
Re: they should allow grfs to be added after starting the game
I just wanted to make a note that there are currently five game devs and four experienced NewGRF creators who are commenting on how not-easy this is.
Do you like drones, quadcopters & flying toys? Check out Drone Strike Force!
Base Music Sets: OpenMSX | Scott Joplin Anthology | Traditional Winter Holiday Music | Modern Motion Music
Other Projects: 2CC Trams | Modern Waypoints | Sprite Sandbox & NewGRF Releases | Ideabox | Town Names | Isle of Sodor Scenario | Random Sprite Repository
Misc Topics: My Screenshots | Forgotten NewGRFs | Unfinished Graphics Sets | Stats Shack | GarryG's Auz Sets
Base Music Sets: OpenMSX | Scott Joplin Anthology | Traditional Winter Holiday Music | Modern Motion Music
Other Projects: 2CC Trams | Modern Waypoints | Sprite Sandbox & NewGRF Releases | Ideabox | Town Names | Isle of Sodor Scenario | Random Sprite Repository
Misc Topics: My Screenshots | Forgotten NewGRFs | Unfinished Graphics Sets | Stats Shack | GarryG's Auz Sets
Who is online
Users browsing this forum: No registered users and 20 guests