I'm outlining a series of NewGRFs and was hoping to get some opinions on how best to implement some challenges they would include. The "how" is not as important as the "why" right now as I'm just planning and can always adjust based on obstacles. The long term goal of the project probably won't happen without some patch work anyways.
In short, I want to classify ships as "Off Shore"(deep water), "Inland"(shallow water) and "Versatile"(deep and shallow water) based on their size and draft depth.
Two new disasters would be introduced;
"Lost at Sea", more likely for smaller ships on sea tiles,
"Run Aground", more likely for large ships on river and canal tiles.
They are mostly meant to affect "Versatile" classed ships as a risk to balance their not having to transfer cargo.
So my question is; Should players even be allowed to send an "Off Shore" super tanker up a river if it's pretty much guaranteed to run aground or an "Inland" barge tow out to sea if it's very likely just going to get lost at sea?
Maybe I could add an option to either allow un-restricted travel with disasters on, or restrict travel with disasters off? But, I can see cases where a port is just around the corner from a river mouth or a lake is only a few canal tiles away from another lake and a player is willing to take the risk.
A very expensive and high maintenance cost "Deep Channel" track type(or something of the sort) that would allow "Off Shore" vessels to safely travel inland waterways is also planned for a later stage of the project but is one of the things that will probably require a patch(currently beyond my skill, currently...)
(Edit: Buildable lighthouses to reduce chance of the "Lost at Sea" disaster within a set radius are also planned)
I'd love to hear people's opinions, advice and even well informed nay-saying is welcome. Again, I understand that some of what I want to do may not be possible currently or just may take some creative workarounds. Thanks for your time.
Player agency for NewGRF
Moderator: OpenTTD Developers
- 2TallTyler
- Director
- Posts: 573
- Joined: 11 Aug 2019 18:15
- Contact:
Re: Player agency for NewGRF
It is currently not possible to add disasters. However, you can change the speed of ships in several ways (I suggest familiarizing yourself with the NML specs to see what's possible) which could create some of the gameplay choices you desire.
The simplest solution would likely be the properties which let you set ocean and canal/river speeds separately. Make small ships slow on the ocean sea and large ships slow on canal/river, and players will be encouraged to use the proper ships for each application.
There is also a speed callback which might let you code some clever events, perhaps stopping a ship for a while if it runs aground. But I don't know exactly how this would work, nor how you would explain it to a player and avoid getting a lot of bug reports.
Probably incidental to your request at this point, but there is a work-in-progress patch which adds depth to ocean tiles. This may eventually add greater nuance to coastal versus deep-sea ships.
The simplest solution would likely be the properties which let you set ocean and canal/river speeds separately. Make small ships slow on the ocean sea and large ships slow on canal/river, and players will be encouraged to use the proper ships for each application.
There is also a speed callback which might let you code some clever events, perhaps stopping a ship for a while if it runs aground. But I don't know exactly how this would work, nor how you would explain it to a player and avoid getting a lot of bug reports.

Probably incidental to your request at this point, but there is a work-in-progress patch which adds depth to ocean tiles. This may eventually add greater nuance to coastal versus deep-sea ships.
-
- Engineer
- Posts: 1
- Joined: 27 Jan 2021 01:42
Re: Player agency for NewGRF
Thanks 2Tall,
Implementing actual disaster events would certainly be further down the line, right now I'm just thinking ahead so changes in releases are as smooth and intuitive as possible. I really like the idea of just stalling ships that run aground as a interim disaster, and honestly that may be the way to go for the disaster in the long run as most inland waterway ships that hit the bank get unstuck eventually.
I'm slowly getting more familiar with the NML specs, GSMarine class, Landscape internals and the games and related NewGRFs source code in general. I'm not a pro coder by any means but thankfully their is a wealth of OpennTTD specific tutorials online. Right now I'm more focused on what I want to do and what people would want to play. Then I can get severely disappointed by what I can do and either adapt or overcome much like your stalled vessel suggestion.
I've seen how ships in Andy,s SQUIDateFISH change speeds based on water class and, as you suggested, that's kind of what I was thinking of using to make the "restrictions" work. Truth be told, compatibility with FISH and SailingShips will be pretty important as they're two of my favorite NewGRFs and a pretty big inspiration for this project.(also I don't want to have to draw a ton of ships
) Right now the only size property for ships is cargo capacity so unfortunately I don't think it will be possible for my NewGRF to just automatically assign a "class" to a ship. If I manage to get this working decently I'm hoping Andy and Mouse would let me release a modified version of their work or add compatibility if I can make it easy enough.
Ocean depth sounds awesome, I'll definitely check that out!
(Edit: oops this is PonderWild, if you couldn't tell, forgot my password so made a new account but apparently my laptop was still logged in as the original. Sorry bout that.)
Implementing actual disaster events would certainly be further down the line, right now I'm just thinking ahead so changes in releases are as smooth and intuitive as possible. I really like the idea of just stalling ships that run aground as a interim disaster, and honestly that may be the way to go for the disaster in the long run as most inland waterway ships that hit the bank get unstuck eventually.
I'm slowly getting more familiar with the NML specs, GSMarine class, Landscape internals and the games and related NewGRFs source code in general. I'm not a pro coder by any means but thankfully their is a wealth of OpennTTD specific tutorials online. Right now I'm more focused on what I want to do and what people would want to play. Then I can get severely disappointed by what I can do and either adapt or overcome much like your stalled vessel suggestion.

I've seen how ships in Andy,s SQUIDateFISH change speeds based on water class and, as you suggested, that's kind of what I was thinking of using to make the "restrictions" work. Truth be told, compatibility with FISH and SailingShips will be pretty important as they're two of my favorite NewGRFs and a pretty big inspiration for this project.(also I don't want to have to draw a ton of ships

Ocean depth sounds awesome, I'll definitely check that out!
(Edit: oops this is PonderWild, if you couldn't tell, forgot my password so made a new account but apparently my laptop was still logged in as the original. Sorry bout that.)
Who is online
Users browsing this forum: Ahrefs [Bot] and 17 guests