Skip to content

Instantly share code, notes, and snippets.

@andythenorth
Created December 23, 2020 09:16
Show Gist options
  • Save andythenorth/930e321dfec44029b59383eda85b08b1 to your computer and use it in GitHub Desktop.
Save andythenorth/930e321dfec44029b59383eda85b08b1 to your computer and use it in GitHub Desktop.
Extending NewGRF APIs - impedance mismatch
Term borrowed from https://en.wikipedia.org/wiki/Object%E2%80%93relational_impedance_mismatch
In no particular order
* not many OpenTTD devs familiar with grf spec
* so designing and reviewing can be hard
* some of the requests from grf authors are misguided
* interacting with newgrf authors can involve blah blah politics
* but sometimes multiple misguided requests point the way to one solid spec extension
* nobody writes nfo any more, so very few grf authors actually understand the action0/1/2/3 spec, even less 6/7/9/D
* getting test grfs is a PITA (see 'nobody writes nfo any more')
* nmlc is easy to patch, but the inertia of testing is high
* requires patched openttd
* requires patched nmlc
* requires test newgrf (see also 'docs')
* testing some grf features requires savegames
* savegames are prone to breaking when testing both OpenTTD patches and grf changes
* docs
* we rely on maintaining grf spec and docs in a wiki
* we haven't found a convention to include docs with OpenTTD or nml PRs
* this means we often ship without docs done (maybe fine?)
* this means that it is hard for newgrf authors to write test grfs as there limited or no docs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment