IRC logs for #openttd on OFTC at 2024-04-27
            
00:03:46 *** tateisukannanirase has joined #openttd
00:03:46 <tateisukannanirase> __karma: , I have an idea - might have been discussed in the long history of this software - but to show additional stats and sorting options in the station list. For example, sort by most or least profitable stations or sort by the number of vehicles on the order list. The vehicle list has lots of sorting options but station list only has name/type/cargo options.
00:04:55 *** Tirili has joined #openttd
00:07:40 <DorpsGek> [OpenTTD/OpenTTD] zacc commented on discussion #12453: Debugging - How To https://github.com/OpenTTD/OpenTTD/discussions/12453
01:14:26 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
01:53:04 *** Wormnest has quit IRC (Quit: Leaving)
02:25:29 *** gnu_jj has joined #openttd
02:29:07 *** gnu_jj_ has quit IRC (Ping timeout: 480 seconds)
02:31:18 *** debdog has joined #openttd
02:34:59 *** D-HUND has quit IRC (Ping timeout: 480 seconds)
04:10:34 *** keikoz has joined #openttd
04:40:50 <DorpsGek> [OpenTTD/OpenTTD] eints-sync[bot] pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/8308998388415c65b8687b4627a4b22432045d39
04:40:51 <DorpsGek> - Update: Translations from eints (by translators)
04:42:46 *** Tirili has quit IRC (Remote host closed the connection)
04:56:24 *** keikoz has quit IRC ()
05:02:33 *** HerzogDeXtEr has joined #openttd
05:23:06 *** keikoz has joined #openttd
06:51:42 *** nielsm has joined #openttd
06:58:03 <peter1138> Hmm, so are station/roadstop/object favourites a a thing?
06:58:38 <peter1138> Hmm, sort of like hiding engines.
07:00:31 <andythenorth> maybe
07:16:59 <pickpacket> Are there any known exploits left in the game?
07:20:58 <peter1138> Maybe.
07:24:33 <DorpsGek> [OpenTTD/OpenTTD] PeterN opened pull request #12583: Codechange: Shrink GUIList vectors less often, reserve before use. https://github.com/OpenTTD/OpenTTD/pull/12583
07:25:19 <andythenorth> coffee?
07:25:58 <peter1138> Don't mind if I do, black, no milk, no sugar.
07:27:56 <pickpacket> peter1138: *known* exploits. Do you know of any? 😄
07:28:38 <pickpacket> Now that station walking and shares pumping are gone I don’t know of any
07:29:35 <andythenorth> hmm
07:29:43 <andythenorth> docking bouy tile things?
07:30:03 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233681553348104213/image.png?ex=662dfafb&is=662ca97b&hm=58eb2636b31fa1e1f42969890534886b2f0d45ef9ef75412103c7e540b994815&
07:30:03 <andythenorth> trying to make this visually smaller
07:30:09 <andythenorth> but have to leave room for current docks
07:30:19 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233681620691714119/image.png?ex=662dfb0b&is=662ca98b&hm=c390be6d0ef1b4e09b4595f8e88bd7b72b35e8b8faa43f8e023a60b9cc073475&
07:31:03 <LordAro> pickpacket: depends how you define exploit
07:31:06 <peter1138> I must admit I find the idea of a dock industry weird given docks are stations in the game.
07:31:19 <LordAro> airports at opposite ends of the map.could be considered an exploit
07:31:47 <peter1138> There's more to a dock than transport, of course, but.
07:31:56 <andythenorth> it's just an exploit
07:32:08 <andythenorth> to avoid having to provide all cargo from primaries
07:32:30 <peter1138> Being paid to take coal across the map instead of to the nearest power station could be considered an exploit.
07:33:14 <andythenorth> quite realisms though
07:34:15 *** johnfranklin has joined #openttd
07:34:15 <johnfranklin> peter1138: thickness? espresso, or americano?
07:35:16 <peter1138> "Americano" because otherwise I would have way too many espressos.
07:41:19 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233684390240845834/image.png?ex=662dfd9f&is=662cac1f&hm=dabeefe4be7466c78e2c52d9155b2e87401494690f358eda53516cc1bc329511&
07:41:19 <andythenorth> this is about right
07:41:21 <andythenorth> size wise
07:41:37 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233684463435644948/image.png?ex=662dfdb0&is=662cac30&hm=12246471f1bdb0953d82c304b8bd025252def757f9f764d581e3d051fb15e30e&
07:41:37 <andythenorth> this is about right
07:42:15 <andythenorth> [discord client had a weird]
07:42:36 <andythenorth> ^ can't fit enought rail stations in the but eh
07:43:55 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233685045043138570/image.png?ex=662dfe3b&is=662cacbb&hm=139380e5cfbdcab736a5bf0c790fa60d69c591ac8cafe5bdbf01a3852b54caf2&
07:43:55 <andythenorth> just needs to terraform more sea 😛
07:44:19 <andythenorth> but now my fake ships block my ship route
07:44:20 <andythenorth> oops 😛
07:50:55 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #12583: Codechange: Shrink GUIList vectors less often, reserve before use. https://github.com/OpenTTD/OpenTTD/pull/12583
07:52:17 <peter1138> Doom?
07:54:17 <peter1138> Hmm, I can't save favourites by name, because the class name is set by the last NewGRF that defines it (lols) and the type name often set to something meaningless and non-unique.
07:54:38 <andythenorth> peter1138: in grf?
07:54:43 <peter1138> Make classes be GRF-distinct?
07:55:30 <peter1138> (Except DFLT/WAYP ofc)
07:56:59 <andythenorth> probably
07:57:44 *** Wolf01 has joined #openttd
07:57:47 <peter1138> everything internally goes by class index (not the multichar label) and index within the class.
07:57:58 <peter1138> Or grfid + localid.
07:58:19 <andythenorth> hmm maybe I should learn to play OpenTTD properly
07:59:20 <andythenorth> probably there's a way to just use one pickup station for all cargos at an industry?
07:59:23 <andythenorth> without blocking?
07:59:47 <andythenorth> pro players use conditional orders or something?
08:01:05 <andythenorth> hmm
08:03:49 <peter1138> Why try to play like other people play?
08:04:11 <andythenorth> means I don't need these over-sized industries 😛
08:04:18 <andythenorth> if I can reduce the number of stations
08:04:26 <andythenorth> or I could reduce the number of cargos 😛
08:05:28 *** kamnet has joined #openttd
08:05:28 <kamnet> Just reduce the number of sprites. Everyone loves the floating question marks
08:08:52 *** mindlesstux has quit IRC (Quit: The Lounge - https://thelounge.chat)
08:09:55 *** mindlesstux has joined #openttd
08:19:03 <peter1138> Huh, making them per-GRF was easy.
08:19:24 <andythenorth> hurrah
08:20:08 <peter1138> But I guess the so called "addons" GRFs don't work correctly :S
08:20:59 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233694369937231953/image.png?ex=662e06ea&is=662cb56a&hm=4a485a48619e7c8a67a53316997c0ec02a167bafeb0a13f9929d8288be93293e&
08:21:09 <andythenorth> bleargh
08:21:27 <truebrain> what content do I have to remove from BaNaNaS?
08:21:28 <truebrain> 😄
08:21:44 <peter1138> rm -r .
08:23:46 <peter1138> They only fail to work because I am breaking the spec 🙂
08:26:27 <kamnet> truebrain: All the broken crap from Gadg8eers
08:26:44 <truebrain> not sure why you call out one specific person, but okay
08:27:25 <kamnet> You asked? 😄 😄 😄
08:31:25 <peter1138> Is that the "take other people's work and smash it all together" stuff?
08:32:31 <peter1138> Hmm, let's compare with 14.0
08:32:55 <peter1138> This list is ridiculous 😄
08:33:03 <peter1138> So much better in my branch which is not a PR yet.
08:34:40 <peter1138> Nah, making them unique per GRF serves no benefit.
08:35:11 <peter1138> The main thing that broke before was everything getting dumped into the first class, but that's resolved now.
08:40:14 <kamnet> peter1138: Yes. I mean on the surface not the worst idea, if it worked... its all just badly coded
08:41:17 <peter1138> We don't remove things for being badly coded 🙂
08:41:33 <peter1138> There would not be much left... 😉
08:45:02 <peter1138> Member variable naming, id vs index?
08:46:19 <johnfranklin> I think I have some early craps on bananas...
08:47:26 <johnfranklin> Mainly two: "SUV JF Fork" (not needed now) and "JP+ Engines Fix" (this is buggy)
08:47:30 <peter1138> Hmm, I think we have `idx` in places...
08:47:46 <peter1138> Which letters would you like to remove today?
08:49:46 <andythenorth> the letters FIRS
08:49:57 <peter1138> That's definitely an id, not an index.
08:50:38 <andythenorth> removing it would save a lot of trouble in the long run 😛
08:56:31 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233703314563006494/image.png?ex=662e0f3f&is=662cbdbf&hm=052805f4e79777636bc3123f18c684159946b0c6434619426194e8b280699c0e&
08:56:31 <peter1138> Okay so the class text is truncated but... not really solved that issue.
09:00:44 <peter1138> Hmm, probably the filter buttons should be in the type list area instead of the class list area.
09:02:11 <andythenorth> yes
09:02:32 <andythenorth> that window layout has always been a struggle
09:02:51 <andythenorth> I never thought of a better one
09:04:02 <peter1138> This is a revision of my earlier code that splits it into separate windows.
09:04:15 <andythenorth> usually in LTR countries, we pick have a hierarchy of class > items > item
09:04:30 <andythenorth> here we have class > item > items
09:04:34 <andythenorth> from left
09:04:39 <merni> peter1138: This alone would be a big improvement imo
09:04:41 <andythenorth> it's not wrong...just odd
09:04:42 <peter1138> But I'm focusing on making shared functionality work at the moment.
09:04:54 <merni> Even without the all/used/saved filter
09:05:06 <merni> Just allowing the text to be turncated
09:05:37 <peter1138> When it's in separate-window mode you can resize the class list to show it all.
09:06:00 <andythenorth> I'm not convinced 'coverage area highlight' isn't a setting
09:06:01 <peter1138> But frankly, if the name is very long, like they are, it's always going to need more room than available.
09:06:04 <andythenorth> or a transparency option
09:06:09 <merni> separate windows is blergh
09:06:22 <merni> andythenorth: Hmm true
09:06:29 <peter1138> On a 4K screen, it's honestly not 🙂
09:06:42 <merni> peter1138: Yes but not everyone has those :)
09:06:43 <andythenorth> I would campaign to remove the 'number of tracks' and 'platform length'
09:06:51 <andythenorth> but that's pure spacebar heating pitchfork territory
09:06:56 <peter1138> But that's why I've been revising this change.
09:07:02 <andythenorth> we should also add 'number of rail tiles to build'
09:07:03 <peter1138> So that the non-split version is still possible.
09:07:09 <andythenorth> and 'number of parallel rail tracks'
09:07:13 <andythenorth> to autorail
09:07:32 <merni> rails don't change how they look based on their length
09:07:34 <merni> stations do
09:07:44 <peter1138> I use the platforms and tracks buttons because I don't want to drag & drop station tiles every where.
09:07:51 <merni> peter1138: yeah
09:07:54 <peter1138> So no, they are not being removed.
09:07:59 <andythenorth> pitchforks at dawn
09:08:10 <andythenorth> or whenever dawn is for people who stay up until 2am 😛
09:08:12 <merni> it's 2.30 pm
09:08:20 <peter1138> Having make sure I drag the correct size every time would be a chore.
09:08:31 <andythenorth> what if you want an 8 tile station? 😛
09:08:36 <peter1138> I was still up at 2am, and up at 7am...
09:08:58 <andythenorth> I think I'm campaigning against having a row of toggle-buttons for an integer
09:09:02 <peter1138> The issue with this window really isn't all those options for building
09:09:13 <peter1138> It's the incredibly long class names.
09:09:45 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233706643557056542/image.png?ex=662e1258&is=662cc0d8&hm=96dd3dad3d848362df735e42c6d3a8220402d9013d74795b064d7ebff6494867&
09:09:45 <andythenorth> who would do those? 😛
09:09:46 <peter1138> Drag & drop mode is also a pain for those station types that require a specific size.
09:10:16 <johnfranklin> oops, 5 pm...
09:10:25 <peter1138> The problem with your "industry buildings" is you've done it as it station tiles are placed 1x1
09:10:36 <peter1138> And drag & drop is then multiple 1x1 tiles.
09:10:39 <andythenorth> is it scenario editor that has sizeable landscape painting tools?
09:10:47 <merni> the different 1920 x 10xx resolutions (thanks to taskbars/window titles etc) add up to a bit less than 40% https://survey.openttd.org/summaries/2024/wk16/14.0#game.settings.resolution
09:11:20 <merni> excluding (other)
09:11:32 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233707091739410452/image.png?ex=662e12c3&is=662cc143&hm=bdd5aea0d920bc088aaff10f8a6d12960d2fc79c32f3990a2775e899575a1dd2&
09:11:33 <johnfranklin> Is 16:9 still more popular than 16:10?
09:11:52 <merni> in particular, 1920 px width has more than 55% popularity
09:12:00 <peter1138> merni: if I had a 4k monitor, then at 2x interface scale it's basically the same as a 1080 monitor at 1x.
09:12:01 <andythenorth> peter1138: alternative ideas are possible...
09:12:11 <peter1138> So I'll say split windows is fine at 1080p too.
09:12:29 <merni> Do people play with a 1080 monitor at 1x though?
09:12:38 <merni> I guess it depends on physical size / dpi
09:12:39 <peter1138> I think so.
09:12:46 <merni> I have a 1080 and I play at 2x
09:13:01 <merni> because it's a laptop
09:13:14 <peter1138> Enough people complained that the title screen savegame was "unfair" because it used 2x interface scaling with 1080p and "nobody plays at such low resolution"...
09:13:24 <johnfranklin> There is a problem for WSL. I have a 2560x1600 monitor with windows scaling 200%. I install WSL. All of the GUI applications installed by WSL has 1280x800 blurry resolution.
09:13:37 <merni> peter1138: people will complain either way :)
09:14:54 <peter1138> Sure.
09:15:07 <peter1138> Anyway, resolution is of course nothing to do with split windows.
09:15:55 <johnfranklin> https://cdn.discordapp.com/attachments/1008473233844097104/1233708195919433728/image.png?ex=662e13cb&is=662cc24b&hm=335574d4ce508051070b300288436b6a63dec1ab8ef6cdfeb91dc8e8bb41062d&
09:15:55 <johnfranklin> ship avoiding collision behaves "weirdly", maybe this is unavoidable...
09:16:19 <merni> does anyone feel like pressing a button on 12209? 😛
09:16:20 <peter1138> Ships don't avoid collisions.
09:16:35 <peter1138> Is that NPF?
09:16:39 <johnfranklin> Oh, this is another jgrpp only feature...
09:16:51 <andythenorth> what's weird there?
09:16:51 <johnfranklin> I thought it being added in 14.0
09:16:55 <peter1138> We should do 14.1 before that.
09:16:56 <andythenorth> they're not colliding
09:17:09 <peter1138> I have a patch for left and right lanes.
09:17:22 <peter1138> Although it works on tile index not actually knowing what is left & right.
09:17:31 <merni> peter1138: doesn't 14.1 work on the release branch anyway?
09:17:40 <johnfranklin> I think, similarly, there should be "left and right lanes" for ships given the river/sea width >=2
09:17:46 <merni> removing npf shouldn't be backported
09:18:14 <merni> johnfranklin: seas don't really have lanes
09:18:25 <merni> that only makes sense on narrow channels / rivers
09:18:35 <merni> and would probably be a pain to code
09:18:44 <peter1138> Yes, but larger changes make backporting harder.
09:18:53 <peter1138> And besides, that desync bug has been known about for a while.
09:18:53 <merni> ah
09:19:19 <merni> well yeah I'm not saying 14.1 shouldn't be done
09:19:23 <merni> or anything about it
09:19:47 <peter1138> I'm gonna move those filter buttons, they need to exist for the waypoint picker too, which doesn't (yet) have a class list.
09:20:40 <peter1138> Hmm, should I make it fill the width of the type list, or have some blank space...
09:21:45 <merni> newgrf waypoints?
09:21:51 <merni> wait we have those
09:22:23 <merni> peter1138: what would the blank space be for?
09:23:21 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233710067732447332/image.png?ex=662e1589&is=662cc409&hm=b71f4c7797e3964d1f23f0aba70772be9cb352e14508ce1934b996eaefbdcdce&
09:23:21 <peter1138> Preventing very wide buttons.
09:23:41 <peter1138> I think it's fine though.
09:24:06 <peter1138> Scrolling the list when "All" is selected is amusing.
09:24:18 <peter1138> It's a bit laggy because there's so many different sprites that need to be loaded.
09:24:44 <peter1138> Almost like we need a system to defer sprite loading.
09:25:10 <peter1138> (Also it's a debug build, so will be slower)
09:25:19 <merni> peter1138: I think it looks better to have them stretch like that than have some arbitrary blank space
09:27:09 <peter1138> andythenorth: the other day you asked, what are station tile layouts
09:27:11 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233711031482712164/image.png?ex=662e166f&is=662cc4ef&hm=c4bcaabe390e93879d27b52ac82ef22795d140d664442b30cc235209c09536a4&
09:27:38 <peter1138> That's one station type, which at 2x5 has this arrangement.
09:28:45 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233711425663533147/image.png?ex=662e16cd&is=662cc54d&hm=2448c14df28413c252bec78cbec479f38c8506290fc3463be4ac14f64863fa82&
09:28:59 <peter1138> Differently layouts depending on the size at build time.
09:29:31 <andythenorth> ISR does it
09:29:46 <peter1138> Conversely, stations that require you to individual place different features are a pain in the bum.
09:30:00 <andythenorth> I have yet to be convinced 😛
09:30:06 <peter1138> Good for customisation, but hard to have something that looks nice with one click.
09:30:14 <andythenorth> I think original nfo CHIPS has some randomised thing
09:30:29 <andythenorth> it uses one tile, and places cargo, vehicles, buildings randomly
09:30:44 <andythenorth> but I don't think they're using sized layouts
09:31:24 <peter1138> They use a layout depending on the size, yes.
09:31:38 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233712150455914516/image.png?ex=662e1779&is=662cc5f9&hm=403477bd8a36645ba45f377166a482ee69b522b1844a8d6eab96a5983ea5c33b&
09:31:50 <peter1138> e.g. it's random, but the crane seems to always be in the middle.
09:31:52 <merni> peter1138: Both are good things to have though
09:32:21 <peter1138> Yes, but thousands of different station types, having to manually pick them, every time... it's a pain.
09:32:26 <andythenorth> I agree
09:32:35 <merni> I like that when making big stations :)
09:32:48 <andythenorth> original CHIPS has only a minimal set of tiles for this reasoon
09:32:50 <merni> For random wayside stations ISR or newstations works well
09:33:00 <andythenorth> I can never find the correct individual tile in ISR
09:33:01 <merni> for the big hubs I want them to look exactly right
09:33:13 <andythenorth> nobody ever can use another person's filing system
09:33:15 <andythenorth> so flat is better
09:33:18 <merni> andythenorth: ISR has automatic layouts though
09:33:23 <andythenorth> but the ISR pre-defined stations are never useful
09:33:29 <merni> why not?
09:33:38 <andythenorth> everything is in the wrong place
09:34:15 <merni> aka you don't like them
09:34:27 <merni> I think they mostly look fine
09:34:33 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233712885423800381/image.png?ex=662e1829&is=662cc6a9&hm=98716a46740b06eb40bb7486722d603dea00a1998c2ab34e32a1a6176e207362&
09:34:40 <peter1138> top left, good design. bottom right, meh.
09:34:41 *** michi_cc has joined #openttd
09:34:41 <michi_cc> peter1138: I never actually checked, but I'd wager newstations (and maybe ISR) might be the only sets to ever use all of the bells and whistles of the newstations spec.
09:34:53 <merni> That looks bugged
09:35:05 <merni> is there some sort of reflecting pool there
09:35:09 <peter1138> bottom right doesn't even use the foundation callbacks properly, and just always draws them.
09:35:23 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233713093700358215/image.png?ex=662e185a&is=662cc6da&hm=7d68aea34ab69f12c86edfe254e890bb195407cfbf04611a3e210512f6c650af&
09:35:23 <andythenorth> the silos don't line up with the industry
09:35:27 <merni> what set is bottom right from?
09:35:31 <andythenorth> and the ground is wrong
09:35:34 <peter1138> Dutch additions.
09:36:03 <merni> hm I play with dutch additions all the time, why haven't I noticed that tile
09:36:05 <peter1138> andythenorth: but it still looks good.
09:36:37 <peter1138> The problem with "place each individual piece exactly as you want it" approach is it's basically for people meticulously playing a model-railway game.
09:36:42 <andythenorth> I think we're going to find "but I don't understand" happens here somewhere
09:36:46 <merni> hm yes
09:36:51 <merni> peter1138: Yes
09:36:59 <merni> And that is also a valid play-style :)
09:37:02 <peter1138> it's not good for "i need a station here, make it look nice".
09:37:14 <andythenorth> it is, but I'd rather have one-click, get approximately what you wanted
09:37:31 <peter1138> ^^
09:37:40 <merni> well yes but that is a personal preference
09:37:42 <andythenorth> the problem with the magic layouts is they break if you place any other tiles
09:37:43 <andythenorth> ah
09:37:49 <peter1138> They don't.
09:37:52 <andythenorth> that's reminded me why I never use them
09:37:58 <peter1138> They tend to break if you remove bits of them.
09:38:19 <peter1138> But that's partly why I made the PR to be reviewed.
09:38:26 <peter1138> The one that allows more than 8 static tiles.
09:38:47 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233713950189948979/image.png?ex=662e1927&is=662cc7a7&hm=4d4be76e19df09cd9e072b40d81889ddb1d8c3c7200f411411cf56dcea84bdd5&
09:38:47 <andythenorth> they really don't like overbuilding
09:39:13 <peter1138> The stuff churned out for AuzStations is all coded as "one station type is one station tile"
09:39:28 <peter1138> So you have hundreds of parts that individually don't work properly.
09:39:29 <andythenorth> ISR isn't breaking when I overbuild
09:39:53 <andythenorth> hmm
09:40:00 <peter1138> You absolutely HAVE to build a station by combining the parts together, usually in an undocumented specific location.
09:40:18 <andythenorth> that's like the rules for those fancy train sets also
09:40:27 <merni> the numbers sometimes help
09:40:32 <peter1138> Well, at least the "island" types are 2x wide at least.
09:40:35 <andythenorth> "add this specific engine refitted to cabbages, then add a caboose in the 2nd to last place"
09:40:52 <andythenorth> I am quite open to a better way for CHIPS, but I don't understand the spec
09:41:07 <andythenorth> and I'm trying to match individually to a very large number of FIRS industries
09:41:11 <peter1138> MB's newstats are probably still the best stations for passenger services, because he implemented layouts. And this is from 2005, before we even supported any of it.
09:41:43 <andythenorth> hmm should I add a thing to Iron Horse, like "random" vehicles, but instead "best"?
09:41:49 <andythenorth> and it just builds the current meta
09:41:57 <andythenorth> labour saving
09:42:06 <peter1138> Chips platforms are actually fine.
09:42:15 <andythenorth> in CHIPS 1 and 2
09:42:17 <andythenorth> not in 3
09:42:44 <peter1138> Did you make it worse? 😄
09:42:44 <andythenorth> 3 is a redesign from scratch by me, not yexo
09:42:51 <andythenorth> currently it's worse
09:43:30 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233715139031601222/chips.grf?ex=662e1a42&is=662cc8c2&hm=a09a67d50f7be684f384c98efa9da358b75ede0ac7c3a35bedb7446fd7e021ef&
09:44:13 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233715316790530048/image.png?ex=662e1a6c&is=662cc8ec&hm=2b5fcee637b1b9ce130856272840f99c7da3c6ddb83bb74c13b4acd2cfe50b8e&
09:44:14 <peter1138> This is not ideal.
09:44:47 <peter1138> With station animation you can have a crane that moves back & forth along that track. A lot of work to do that, mind you.
09:45:21 <andythenorth> I think I did something with layouts or varact2 for cranes
09:45:29 <andythenorth> it only shows the crane every other tile
09:45:38 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233715676208959498/image.png?ex=662e1ac2&is=662cc942&hm=70b332e0813add23f5641fa0abf3dd0d9615d42636dfee19aa25c3ddb00502c4&
09:45:47 <andythenorth> or it's random, dunno
09:46:43 <andythenorth> why do we have non-track station tiles?
09:46:47 <andythenorth> I might remove them from CHIPS
09:46:54 <merni> because people want station buildings
09:46:57 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233716005751099442/image.png?ex=662e1b11&is=662cc991&hm=e005db3477a658818d9f3b03f97b85769bd2f6e3f81d22d54712f73779973a2c&
09:46:57 <andythenorth> they're duplicated as objects already, automatically
09:46:58 <peter1138> If you limited it to 1 track instead of "whatever" than it would be less problematic.
09:47:11 <peter1138> non-track station tiles can show cargo.
09:47:12 <andythenorth> oh, but I need station buildings for towns
09:47:13 <merni> I guess non-track stations predate objects
09:47:15 <peter1138> objects don't.
09:47:51 <peter1138> objects are basically purchased land with graphics variables.
09:48:06 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233716292884758599/image.png?ex=662e1b55&is=662cc9d5&hm=7dcd74db2a438629f9dfa7a6b8b936861283ee44cceeebb38d40169b8bd88b44&
09:48:06 <andythenorth> just not convinced this is the way forward for stations
09:48:23 <peter1138> The other original "object" types are designed to get in your way, and be an obstacle. They're not for manually placing random by players.
09:49:00 <peter1138> ISR does all that in a nice way. Steal ISR just change the sprites 😉
09:49:10 <andythenorth> I really hate ISR 🙂
09:49:23 <andythenorth> I find it totally baffling to use
09:49:30 <_jgr_> It's not mandatory to use it
09:49:53 <_jgr_> It seems to work fine here for what it's worth
09:49:53 <andythenorth> (I'm not randomly throwing out hate, I drew a chunk of ISR)
09:51:01 <andythenorth> CHIPS is flawed
09:51:09 <andythenorth> because it needs multiple ground types
09:51:16 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233717092293939261/image.png?ex=662e1c14&is=662cca94&hm=d03f44de3e1a9e36b311f3113942bbdc969553a18b45694d6bbbb6a6e2de5a8c&
09:51:22 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233717117241524234/image.png?ex=662e1c1a&is=662cca9a&hm=5781ae602ed0f97e31059b33979054ad8c188cd03bfe59680681e8aae789def4&
09:51:31 <peter1138> Why even do that?
09:51:40 <andythenorth> how else to match industries?
09:53:21 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233717615864844319/image.png?ex=662e1c90&is=662ccb10&hm=698c251e35481afb69af3cbd3c2d4e433045f1039bf8f7814725f8b80ab1413e&
09:53:21 <andythenorth> this isn't terrible, but I don't like it
09:53:46 <andythenorth> all the FIRS / CHIPS ground tiles are drawn so they can abut without looking stupid
09:53:53 <peter1138> Railway on mud tiles looks odd anyway.
09:53:58 <merni> ^
09:54:10 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233717821121368086/image.png?ex=662e1cc1&is=662ccb41&hm=af70d3bc37e8bf4392266e8d2fc30ef8be8a059d96c404575558ae64d1295a50&
09:54:12 <merni> it's not choo choo without ballast
09:54:26 <andythenorth> ballast comes from the railtype no?
09:54:31 <andythenorth> nothing to do with stations
09:54:39 <merni> I have no idea
09:55:02 <andythenorth> 🙂
09:55:30 <peter1138> Oh yeah the default ballast is dirty, hah.
09:55:32 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233718166270513152/image.png?ex=662e1d14&is=662ccb94&hm=01161af3b87525a82c40d2c464f65ca1a11af362cda4b606c827d2556f0f9d1a&
09:55:32 <andythenorth> default base set ballast is brown
09:55:39 <merni> yeah
09:55:45 <peter1138> But having a full dirt tile with track on it seems odd.
09:55:50 <peter1138> Maybe it's just dirty brown stones.
09:56:22 <peter1138> I would say that matching station ground type to industry ground type is model-railwaying, not game-playing.
09:56:34 <peter1138> Therefore, having different selections is totally fine.
09:57:12 <peter1138> However, I think it's better to set up the classes by what's on top, rather than what's on the ground.
09:57:37 <merni> I wish I had the space and money for physical model railwaying and didn't have to do it in a game not designed for that
09:58:34 <peter1138> ISR does the classes in the right order -- by what's on top.
09:58:43 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233718968636674048/DD063CCF-4F87-4D8C-9519-EF2B7B3B325D_1_105_c.jpeg?ex=662e1dd3&is=662ccc53&hm=d313ddbbf05d6fb48d79b891721544fc24f95403363d84fac2b8447a131f8624&
09:58:43 <andythenorth> peter1138: probably fine?
09:58:59 <andythenorth> peter1138: think that's just the librarian problem
09:59:01 <peter1138> I guess your ground types all match there.
09:59:16 <andythenorth> it's depth first vs breadth first, then it's people's search terms 😛
09:59:23 <andythenorth> oh was someone patching a search?
09:59:46 <andythenorth> TL:DR filing things into rigid categories rarely works
10:01:10 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233719582427185172/image.png?ex=662e1e65&is=662ccce5&hm=c0fb60ad02bffac2bfccb843ef2b597797bff8a1b7cecacb9efccc06922a79cb&
10:01:10 <peter1138> I dunno, this seems reasonable to me?
10:02:23 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233719889903091773/image.png?ex=662e1eaf&is=662ccd2f&hm=2df0081075f85edd7f29a162d118beaa116435728c4cd8e06de998d210da5e77&
10:02:23 <peter1138> Maybe fixing it?
10:03:13 <andythenorth> peter1138: what are Fixtures vs Facilities?
10:03:40 <peter1138> Facilities are buildings, sheds, warehouses, etc.
10:04:04 <peter1138> Fixtures are cranes and things.
10:04:19 <peter1138> Along with some miscellaneous non-track bits.
10:04:45 <andythenorth> my original conclusion for CHIPS was to sack off all the detail tiles
10:04:52 <andythenorth> and just have a few basic ones
10:04:58 <andythenorth> maybe that wasn't wrong
10:05:06 <peter1138> newgrf stations is basically for detail.
10:05:13 <peter1138> Otherwise you just place the default stations.
10:05:27 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233720661420281956/image.png?ex=662e1f67&is=662ccde7&hm=c1a3f6bbf89a31ab1e841df7d14c4aa35ce603b584c4fbbda24bea3ac9fd4b75&
10:05:27 <andythenorth> still not that many tiles in basic CHIPS
10:05:33 <andythenorth> they repeat 3 times for ground
10:05:44 <peter1138> I just prefer the detailing to be automatic because hand-building it every time not fun.
10:05:52 <andythenorth> 10 of those tiles above could be objects
10:05:59 <andythenorth> they don't show cargo, they're just decor
10:07:25 <andythenorth> if they're object-only, they can't be used for station walking
10:07:26 <andythenorth> hmm
10:12:44 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233722494767337543/image.png?ex=662e211c&is=662ccf9c&hm=1c2ab6cc7a668fa4cf970d2f5d98379638b515ca0d3bfa7f27e90814c6fb6e2f&
10:12:44 <andythenorth> better?
10:13:10 <andythenorth> controversial idea: don't show cargo on station tiles
10:13:17 <andythenorth> it's kind of pointless
10:14:42 <andythenorth> also don't need a specific crane rails tile
10:15:15 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233723128354439209/image.png?ex=662e21b3&is=662cd033&hm=a100fe0e49f28d02559eff9e4290ffab60c44f16063661af55ac978734968b71&
10:15:56 <pickpacket> LordAro: a way to cheese the system to make a lot more money than you reasonably should. Or maybe increase production more than it should, or pay less for something or… well, to get any advantage in a way that wasn’t intended by the design
10:16:13 <andythenorth> can objects show cargo?
10:17:07 <andythenorth> probably via town storage
10:17:11 <andythenorth> might work
10:21:41 <peter1138> Just make everything objects AMIRITE
10:21:59 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233724822853255230/image.png?ex=662e2347&is=662cd1c7&hm=b7083679c71d6f2f43ae30290b1a0b001984a1febbbbda3aed4302e7422a53fc&
10:21:59 <andythenorth> roadstops says no
10:22:23 <andythenorth> but this habit of using non-objects to do tile decor
10:22:29 <andythenorth> is weird
10:22:37 <andythenorth> non-track rail tiles
10:22:50 <andythenorth> those fancy waypoints with overlapping sprites
10:23:23 <andythenorth> hmm do roadstops have layouts?
10:24:21 <andythenorth> can stations count overbuilding?
10:26:03 <peter1138> Count, no.
10:26:37 *** mindlesstux has quit IRC (Ping timeout: 480 seconds)
10:27:19 <andythenorth> was considering whether cranes could rotate if overbuilt
10:27:57 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233726322564403270/image.png?ex=662e24ac&is=662cd32c&hm=a40db22357bbb2ef88c090bfdf217523d73266a2a5f72f6c8265c4263e83b190&
10:27:57 <andythenorth> ok so if we build 'tipple' on drag-drop we'd rather have the lower result, not the upper?
10:28:55 <peter1138> Yes
10:29:06 <peter1138> Not just drag & drop.
10:29:15 <peter1138> On a 6x2 one-button click.
10:29:23 <peter1138> But that's no different, it's the same process.
10:29:26 <andythenorth> yes
10:29:31 <andythenorth> compared to placing single 1x1 tiles
10:29:41 <andythenorth> where I expect to get the sprite shown in the preview
10:29:49 <merni> some stations work like that even if built incrementally I think
10:30:14 <peter1138> Or you can limit the length of tipple to be 1, so then it's 'natually' easier to build just one line, instead of multiple.
10:30:28 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233726957351342160/image.png?ex=662e2544&is=662cd3c4&hm=72e375ac7e4d3452280df4290fd9bee746b58f6e5019cda4bb25157b93862da6&
10:30:28 <andythenorth> CHIPS cranes on drag-drop are upper result; building 1 tile at a time gets lower result
10:30:50 *** mindlesstux has joined #openttd
10:31:15 <merni> peter1138: that'd mean building individually, didn't you say you don't like that micromanage-y style :P
10:31:16 <peter1138> Okay, how often should I can the map to find out what station types are in use?
10:31:32 <merni> "Every tick"
10:31:36 <merni> Why is that needed
10:31:41 <andythenorth> 5 times every tick
10:31:45 <peter1138> But I don't then have to micromanage pressing the 1-length button.
10:31:47 <peter1138> 🙂
10:31:52 <andythenorth> you can fork CHIPS 3
10:31:58 <peter1138> I'm not saying it's ideal, but it's better, imho.
10:32:07 <peter1138> I don't think ALL stations need to be one-click-beautiful layout.
10:32:15 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233727407354155138/image.png?ex=662e25af&is=662cd42f&hm=905d36d8a45af59690fd21a2db02613bb7d0600da2bfd6eaaa7cbad21dd9e1bf&
10:32:15 <andythenorth> silos are the best silos
10:32:27 <peter1138> ^ This is not the best layout 🙂
10:32:34 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233727483346419882/image.png?ex=662e25c1&is=662cd441&hm=d99e919786db926ee6bdc70943c432afa5c5f387d84047f214111117fb262b14&
10:32:34 <andythenorth> would be more convenient
10:33:43 <merni> Anyway why are you scanning the entire map to find what station tiles are in use?
10:34:07 <peter1138> I'm not.
10:34:16 <peter1138> But there's a caveat with the default station, of all things.
10:34:32 <peter1138> Basically for each station, that's a list that tells us which custom stations are in use.
10:35:26 <peter1138> So to populate my list of "used" station types, I iterate the station pool, iterate each stations spec list, and that's it. That tells me what's in use.
10:35:33 <peter1138> Except for the default station.
10:35:46 <peter1138> Because the default station is special, and is always slot 0 in the spec list.
10:35:59 <peter1138> That means ALL spec lists look like they have the default station assigned.
10:36:38 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233728508208087082/image.png?ex=662e26b5&is=662cd535&hm=fbc23caf00e58b98bfc26cd943ce0844a27f64e84c508f5fda66edf19cae1401&
10:36:39 <peter1138> So...
10:37:04 <peter1138> That default station is not actually in use 🙂
10:37:17 <merni> Just accept that the default will always be shown? :P
10:37:24 <peter1138> Yeah.
10:37:46 <peter1138> I can scan the station tiles of each station, to find out what is actually in use.
10:37:49 <andythenorth> slice 😛
10:37:57 <peter1138> But that's going to be slow.
10:38:00 <andythenorth> do we need a default station? 😛
10:38:25 <peter1138> TBH I'm not sure any more why I reserved the first slot for the default station.
10:38:44 <peter1138> I think it's so that if you run out of slots it falls back to that.
10:38:57 <peter1138> But you have to have 255 parts for that to happen.
10:40:07 <peter1138> That's another reason why one-click build is better, it only uses 1 slot.
10:40:14 <peter1138> Placing lots of 1x1 tiles uses slots up.
10:40:38 <peter1138> Because each slot is used to determine the platform/tracks layout for that part.
10:42:56 <andythenorth> placing 1x1 tiles is also boring
10:46:15 <andythenorth> piss 😛
10:46:28 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233730983203700836/image.png?ex=662e2904&is=662cd784&hm=203310eda62a75a87bd29957538a3793b463a5f257e2116a228bcefea9ea4360&
10:46:28 <andythenorth> these compact layouts look better, but the game struggles to place them
10:46:44 <andythenorth> they don't fit a lot of coasts
10:47:35 <andythenorth> I guess I move them back out to sea by 1 tile
10:52:37 <merni> given that people already struggle with placing firs docks, I don't think you should make that problem worse :P
10:53:22 <andythenorth> they are a PITA
10:56:13 *** Flygon has joined #openttd
11:14:24 <andythenorth> actually placing these manually is almost impossible
11:14:54 <andythenorth> the only solution to that is to place them 100% on land or 100% on sea
11:15:19 <andythenorth> or figure out if the spec supports a hybrid land / sea tile (I haven't found a way)
11:15:31 <andythenorth> oh
11:15:33 <andythenorth> ha
11:16:02 <andythenorth> I could make a land tile and a sea tile
11:16:17 <andythenorth> identical sprites
11:16:18 <andythenorth> then generate 1000s of layouts, with all the possible combinations
11:26:41 <peter1138> Building block layouts?
11:27:47 <peter1138> Procedural
11:52:08 <peter1138> ```$ ./ts3client_linux_amd64
11:52:08 <peter1138> QCoreApplication::applicationDirPath: Please instantiate the QApplication object first
11:52:08 <peter1138> Crashdump ENABLED, directory is: /home/petern/.ts3client/crashdumps```
11:52:12 <peter1138> Commercial software, eh?
11:58:50 <kamnet> __karma: If you're still taking suggestions, I sent you a PM.
11:59:36 <andythenorth> stations eh?
11:59:52 <andythenorth> could we have a modifier to flip the track direction?
12:00:04 <andythenorth> ctrl isn't available 😛
12:00:48 <merni> if openttd used wasd for movement we could use arrow keys for gui navigation
12:01:16 <andythenorth> movement is cmd-drag 😛
12:01:41 <andythenorth> arrow keys are bugged on macOS
12:01:50 <merni> Ah yes, cmd. Because control is not enough, you need command
12:02:17 <merni> Some army guy must have insisted that command and control are essential to have together
12:02:44 <andythenorth> need a 'conquer' key
12:02:51 <merni> "colonise"
12:03:12 <merni> "territorial dispute"
12:03:30 <merni> We could reuse SysRq, not like anyone knows what that means anyway
12:03:44 <merni> Or Insert
12:04:56 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233750732319232041/image.png?ex=662e3b68&is=662ce9e8&hm=c4bb25396fcee4ef8936b217e1447c0bbeaec29ed75a37fcb71ae666d61a2df5&
12:04:56 <andythenorth> maybe I should support 90 degree arrangements of the 2 port sub-layouts
12:04:58 <andythenorth> for corners
12:04:59 <Eddi|zuHause> i constantly get confused nowadays because some games use arrow keys for scrolling, and some games use WASD
12:06:05 <Eddi|zuHause> so i play one game for a week, get attuned to that, change games, and press wrong buttons again
12:06:54 <peter1138> The correct directional keys are Z X / : for believers, and QAOP for unbelievers.
12:07:08 <andythenorth> ^ this
12:07:13 <andythenorth> snapper
12:07:17 <andythenorth> repton
12:07:58 <andythenorth> ach my sub-layout merger doesn't really support combining layouts where one has a 90 degree rotation and the other doesn't
12:08:08 <andythenorth> can't be arsed to figure that out 😛
12:09:22 <Eddi|zuHause> and the WASD games also fall into two categories that use opposite versions of QE for looking left/right
12:14:47 <Eddi|zuHause> peter1138: that must have been before games were designed for holding a mouse in the other hand
12:15:17 <peter1138> What's a mouse?
12:16:20 <andythenorth> it has 3 buttons
12:17:35 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233753912205508638/image.png?ex=662e3e5e&is=662cecde&hm=f8412628324a20107879e1f4120f643c6695c71bdba2496201ee74a638631224&
12:17:35 <andythenorth> be nice if I could make this happen deliberately
12:17:47 <andythenorth> that spur of land makes a nice port
12:19:08 <Eddi|zuHause> well, technically, the modern standard mouse has 5 buttons
12:22:29 <andythenorth> I have none
12:23:29 <andythenorth> https://cdn.discordapp.com/attachments/1008473233844097104/1233755398410866788/image.png?ex=662e3fc1&is=662cee41&hm=f0953ac34acd4fc02daff960f7c80222c7a0ded9f03d62c59af6c7d2c041d200&
12:23:29 <andythenorth> hmm if I remove 'requires flat tile' from the water tiles
12:23:56 <andythenorth> I could make a layout that detects a raised tile and adjusts the concrete surface position
12:23:58 <andythenorth> and the foundations
12:24:59 *** brickblock19280 has joined #openttd
12:24:59 <brickblock19280> It isn't that hard only really annoying
12:26:15 <andythenorth> the downside of tiles that can adapt to the slope is that it traps small areas of water
12:36:38 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233758709117878292/Screencast_from_2024-04-27_13-36-16.webm?ex=662e42d6&is=662cf156&hm=4a7a8e7fe1b43c8bc38659c3d5bcf7b96bc8ce338854e0e4dd08be85f6eb1413&
12:36:38 <peter1138> Oh
12:40:51 <andythenorth> procedural industry layout?
12:46:06 <talltyler> Sounds like a fun rabbit hole 😄
13:39:56 <peter1138> Hmm, trying to make code smaller with templates, but it's ended up make it larger :S
13:47:45 <_jgr_> Size is not necessarily the most important metric
13:48:16 <Eddi|zuHause> that's what... :p
13:49:05 <peter1138> Given the purpose of using a template was to make it more concise...
13:50:34 <peter1138> Gah I want a ?. operator 😮
14:35:49 <peter1138> Hmm.
14:35:55 <peter1138> Unhappy with this :/
14:53:17 <andythenorth> :/
14:53:26 <andythenorth> despair phase of development
14:53:42 <andythenorth> precursor to either git reset --hard, or enlightenment
15:11:16 *** yup has joined #openttd
15:11:58 <yup> hello
15:14:15 <yup> I'm new to openttd but have played ttd. Now I wanted to start and was very puzzled. Are there ready-made assemblies/bundles?
15:16:21 <peter1138> Yes, you can just download stable from www.openttd.org or through Steam etc.
15:16:57 <_glx_> steam includes the basesets
15:19:38 <yup> No, no, my question is not about the raw client. I can download a pack of graphics and sounds and generate a new world. I have a question about all the AI and scenarios.
15:21:21 <kamnet> yup: Scenarios are just landscapes where somebody has added towns and industries and other stuff. If the scenario requires certain files then the in-game content system will automatically download them and activate them for the scenario with the settings the scenario creatorintended
15:22:22 <yup> kamnet: Yes, yes, that's what I'm talking about. But I tried to click for the sake of testing - they were either “outdated” or “not found”
15:23:38 <yup> can you name/recommend a few valid and recent ones?
15:28:05 *** Wormnest has joined #openttd
15:28:08 <kamnet> I honestly can't since I don't play a lot of scenarios myself. Which one had stuff missing?
15:29:11 <yup> Now I can’t say the exact name. I poked at the ticks in the morning
15:32:14 <kamnet> For me it's far easier to find stuff that's missing than to just pick a scenario that's "good".
15:33:40 <kamnet> Most scenarios are just set up like virtual train sets to recreate a specific time and place using the appropriate files. For example 1950s UK with all the right British trains and realistic placement of towns and major industries on a UK-shaped map
15:37:47 <peter1138> OverrideManager is a weird beast.
15:39:26 <_glx_> another weird newgrf thing 🙂
15:39:34 <peter1138> It's not a weird NewGRF thing.
15:40:01 <peter1138> It's a weird OpenTTD thing that manages some stuff that is provided by NewGRF.
15:40:41 <peter1138> It looks like it's trying to be a generic interface.
15:40:50 <peter1138> And yet every single user of it is different.
15:40:56 <_glx_> main use of overrides comes from newgrf being stored only in TTDp config file
15:42:05 <peter1138> Good job that ObjectSpec is only 64 bytes as each one is duplicated.
15:42:58 <peter1138> AirportSpec is a bit larger but there's hardly ever any of them.
15:43:14 <yup> please look: http://79.136.144.124/f/openttd.png
15:44:15 <yup> Now I made it for testing: 1. St. Sebastian -> ok.
15:44:34 <_glx_> can be wrong openttd version
15:44:42 <yup> 2. Scenario "Russia" - broking savegame
15:45:02 <kamnet> It was probably created for the JGR Patch Pack.
15:45:04 <yup> fresh (30 mins) download of public version
15:45:05 <peter1138> Basically whoever wrote the concept of them, didn't notice that all the specs are set up within the NewGRF struct (via a unique_ptr in a vector), and then copied to the _object_specs or Airport::Spec or _house_specs, _industry, _industry_tile... etc etc arrays.
15:45:47 <peter1138> Once the NewGRF is loaded, those in the unique_ptr ever never needed it.
15:45:54 <peter1138> But they're left there.
15:46:17 <peter1138> For Stations and RoadStops, the spec lives within the NewGRF, and isn't copied out.
15:47:00 <_glx_> this scenario is from 2012
15:47:26 <kamnet> yup: Looked it up. The online download points you to the TTD Russia forums, and that post there points users to a custom client which supports larger map sides.
15:47:47 <peter1138> Well, online content doesn't give you any indication of how old it is, because that isn't useful (so someone says...)
15:48:06 <_glx_> it doesn't tell which version to use in many cases
15:48:22 <yup> kamnet http://79.136.144.124/f/openttd_2.png
15:48:44 <yup> kamnet: random new scenario -> new error
15:48:48 <_glx_> that's JGRPP most likely
15:49:35 <kamnet> peter1138: The one thing I most dislike about online content is how poorly authors will document stuff and there's no way to fix it
15:50:31 <yup> no one. my problem - is second dislike thing
15:50:36 <peter1138> Don't scenarios have the required version fields like other content?
15:50:37 <_glx_> many just won't fill the data properly
15:50:44 <_jgr_> _glx_: Not every non-vanilla save is one of mine
15:51:34 <kamnet> yup: Another case where it requires a custom client (JGRPP) and a couple of files which aren't in the online content because it was created way back before that was common.
15:52:58 <kamnet> Now I know why whats his name threw such a fit on TT-Forums a few months ago. This is a pretty poor experience and the error messages aren't helpful to those who are inexperienced.
15:54:23 *** quantom2 has joined #openttd
15:54:23 <quantom2> Guys... I need some help with parameters
15:55:09 <quantom2> In baze game all of transport parameters are written with numbers first. Example:
15:55:09 <quantom2> Power: 100kN
15:55:33 <yup> <kamnet> Yes, yes, I launched it for the first time yesterday. And a simple generator started up. But all the online content, all the scenarios, dozens of different AIs - in general, everything is incomprehensible. I couldn't launch anything. And most importantly, I don’t understand whether it’s my fault or whether it was broken a long, long time ago.
15:55:59 <quantom2> But there are an need to add a parameters that starts with NOT a numbers, start from words
15:56:39 <quantom2> So, I looked into the baze game, and find NONE of parameters starting with a words... Exception of "N/A"
15:56:54 <kamnet> tartessos: Do you have a copy of the PGS files for the Alpine Imperial scenario you uploaded in 2022? Or maybe I should hit up reldred to see if we can get those added to bananas, no matter how bad they are?
15:57:35 <_glx_> all params are numbers
15:57:48 *** tartessos has joined #openttd
15:57:48 <tartessos> kamnet: you're saying the scenario is bad? :(
15:57:48 <tartessos> but i can take a look
15:57:51 <quantom2> So, what is correct in OTTD?
15:57:51 <quantom2> `Awability: *w*hole time`
15:57:51 <quantom2> Or
15:57:51 <quantom2> `Awability: *W*hole time?`
15:58:06 <_glx_> even those showing as text
15:58:41 <kamnet> tartessos: The PGS files you used aren't available on bananas, and I can't find them either.
15:58:50 <quantom2> Oh, look, _glx_, hi again! Huge thanks again for D0xx to DCxx string optimization! Now we have 375 D0xx and 3100 DCxx for all xUSSR set!
15:59:06 <tartessos> kamnet: do you know which ones are missing?
15:59:25 <peter1138> I would suggest `Availability`.
15:59:51 <quantom2> I mean that parameters
15:59:55 <quantom2> https://cdn.discordapp.com/attachments/1008473233844097104/1233809864501755945/Screenshot_2024-04-27-18-59-38-83_8705d65f4e4a46738d9996ee6824ca64.jpg?ex=662e727a&is=662d20fa&hm=f76f427b7bdcc3241183dd3c9d1c978c3f00880581c5abc41d2e51cfe5d523c9&
16:00:00 <peter1138> So what's the question?
16:00:10 <peter1138> Those srtings are derived from the properties of the engines.
16:00:45 <kamnet> tartessos: They're from Openttdcoop grfpack v 8, and you can't download those from coop anymore
16:00:50 <peter1138> You can add text in that panel with a callback, but the format of that extra text is up to you.
16:02:11 <peter1138> Assuming you're talking about developing NewGRF, but uh, that looks like a non-standard UI, Android version? I can't imagine developing NewGRF on Android...
16:02:19 <quantom2> quantom2: Just we today discovered that in xUSSR some of it written from main latter, some - none. And we wanna congress it to identically look, or all to `whole time` or all to `Whole time`. Now it looks somewhere `w` somewhere `W`, and it's not ok...
16:02:26 <tartessos> https://cdn.discordapp.com/attachments/1008473233844097104/1233810500882661428/ottdc_grfpack.rar?ex=662e7312&is=662d2192&hm=34d553ff5d45d2ad11a5b8108ed3822ca85dc9a4f78ea39faca42fefee60fc5b&
16:02:26 <tartessos> kamnet: i've zipped it for you, hope this works. if it doesn't i can zip my whole GRF folder for you later 🤷
16:03:18 <peter1138> Normally you'd use a capital letter after the colon in this context.
16:04:13 <kamnet> yup: OK download the .rar file that WendellSenior just uploaded. Unpack it into your newgrf folder. download the JGR Patch Pack if you haven't already, and it should work.
16:04:21 <quantom2> peter1138: That just an example. Question is how to write not a NAME of parameters (like `Awability`), question is how to write a changing part of it (like `whole` or `Whole`), because I didn't found any example in the baze game, exception of N/A
16:04:54 <_glx_> Xxxx: Yyyy
16:05:45 <tartessos> kamnet: since it seems like a lot of them are now missing, is there somewhere i can upload them so community can use them again?
16:06:31 <quantom2> peter1138: Yeah, that's normally. The question is what it CORRECT to write in BAZE GAME STYLE. And I asking, so, developers, if a baze game have a paramer like I mean ("Awability") that's will be written like "Whole time" or "whole time"?
16:06:43 <yup> one more: totally no hint for newbie: http://79.136.144.124/f/openttd_3.png Which one should I choose? There is nothing useful in the descriptions at all. There is not a single point for value judgment.
16:07:07 <_glx_> opengfx2
16:07:12 <kamnet> tartessos: Any file service which will permanently host them. But almost all of these files not on bananas already are pretty outdated and probably houldn't be used in new games and scenarios these day
16:07:16 <quantom2> _glx_: Yeah. That's how at the moment work our set in 70% of all. Other 30% is "Xxxx: *y*yyy"
16:07:18 <_glx_> ignore all a/zbase
16:07:36 <peter1138> OpenGFX cos that's the one that's already installed and in use 🙂
16:08:50 <yup> Wow, see. And if I hadn’t visited this channel, the only thing I could think was: bigger size -> better.
16:09:07 <peter1138> Hmmm, is there anywhere where it's possible to switch from scenario editor to game mode (or vice-versa) without saving and reloading?
16:09:28 <_jgr_> kamnet: This won't work
16:09:33 <kamnet> yup: base graphics just change how the game looks to you. OpenGFX is the "default" and looks most similar to the original Transport Tycoon Deluxe graphics. OpenGFX2 is a work in progress update to improve upon that. The rest can mostly be ignored.
16:10:22 <kamnet> _jgr_: No?
16:10:49 <yup> So yesterday I wanted to quit. Too geeky.
16:11:19 <yup> kamnet: Well, it would be cool to somehow make tooltips for mere mortals
16:11:30 <_jgr_> kamnet: You'd need to use whatever version was used to create it, presumably the TTDRussia version
16:11:32 <kamnet> yup: Totally understandable. There is perhaps a bit steepof a learning curve
16:11:53 <_glx_> oh IRC users are now marked as APP, they used to be BOT
16:11:58 <kamnet> _jgr_: Oh, no we're not talking about the Russian scenario
16:12:21 <kamnet> This is for the alpine scenario. it's a jgrpp one
16:12:53 <_glx_> with incorrect version data in bananas
16:13:12 <_jgr_> kamnet: Ah, OK
16:13:30 <kamnet> yup: There is a very good wiki and other tutorials out there, but these are all edge cases that a tutorial or such just isn't going to be able to cover.
16:14:20 <kamnet> and this is why I'm better at finding whats missing than suggesting whats good 😄
16:14:29 <peter1138> We moved quickly from "New user has problems" to "Download and install a different game (JGRPP)" today.
16:15:01 <andythenorth> don't we normally start there?
16:15:06 <andythenorth> in the main channel at least
16:17:22 <peter1138> And currently I'm getting inordinately agitated by my random music player being "too random" and repeatedly picking just the same set of albums.
16:17:26 <yup> kamnet: No, no, nowhere in the wiki or on the website is there information on an easy start. Last night I couldn't get through the scripts and scenarios. And yesterday it happened that I poked at three different ones and three had errors (yes, that’s a possibility) and I was completely upset.
16:18:05 <peter1138> To be honest, I'm not entirely convinced it's NOT a bug rather than human expectations of randomness.
16:19:39 <_glx_> we trust uploaders to properly fill metadata, like minimum openttd version
16:20:10 <_glx_> so incompatible scenario are not shown in the download window
16:20:19 <_jgr_> Savegame version is something that could be checked at the back end reasonably easily
16:21:23 <kamnet> yup: I think a major hole in OpenTTD is that it isn't packaged and created like many other video games. It comes with a bit of an expectation that you already know what it is and you have some memory or knowledge of the 1995 game and that much of the experience is going to depend on you being able to know what to do and how to do it, rather than a package experience that will guide you from new
16:21:23 <kamnet> user to becoming an expert.
16:22:37 <kamnet> Lots of this has been addressed to smooth that out (much to the upset of some of those more expert players) but there's some ways to go. The online content is like a huge chasm of potential fail for a new users.
16:22:48 <yup> It becomes too expensive for joy. )
16:23:08 *** admeliora has joined #openttd
16:23:08 <admeliora> Expensive for joy ?
16:23:45 <kamnet> But don't fret. There's a good community here to help. If you jump over to Discord, there's almost more of us here.
16:23:53 <yup> I saw a news story about my favorite game. Loaded it up and made tea. And instead of enjoying it, I read wikis and forums for two days
16:24:29 <admeliora> Then its probably not for you if you don't enjoy the process
16:24:36 <admeliora> Look at EVE online lol
16:24:45 <admeliora> Learning curve : your whole life
16:25:00 <kamnet> We almost need a starter edition of openttd, that has a functional beginner tutorial scenario and then an upgrade from there 🙂
16:25:19 <yup> admeliora: Sorry, this is not my main language. I wanted to say that in order to spend an hour or two on the game, I still have to spend two or three hours studying :)
16:25:43 <andythenorth> peter1138: in Flash games, I used to weight 'random', to prevent repeating
16:25:47 <yup> admeliora: yes!! thats my point! almost like eve!
16:25:50 <admeliora> I think that on startup of openttd if it detects its ran for the first time it would offer you opt in tutorial scenario.
16:25:50 <kamnet> "too expensive for joy" sounds like something I should be saying more often, honestly LOL
16:25:56 <andythenorth> people swear black and blue that repeating things "aren't random"
16:26:09 <admeliora> admeliora: Potential idea
16:26:12 <andythenorth> bring back Flash games TBH
16:26:28 <admeliora> But wyci applies and I'm not familiar with openttd codebase lol
16:26:32 <kamnet> hear, hear Andy!
16:27:11 <admeliora> yup: Ah I see my bad
16:29:24 <yup> admeliora: Even without detection: a separate button “play a ready-made scenario”. And there, for example, two or three (like on the main page with themes)
16:31:27 <_glx_> I think there's a tutorial scenario with matching game script
16:32:08 <yup> http://79.136.144.124/f/openttd_4.png
16:32:59 <kamnet> _glx_: There was for OpenTTD 1.10. But then there were changes in the scripting and it broke and hasn't been updated by anyone.
16:33:16 <_glx_> oh indeed some windows changed
16:34:01 <_glx_> and this part of the API is only valid for a given version
16:35:52 <kamnet> yup: This would be helpful. It would be helpful if those scenarios included a script that would guide you through some action as well. That's something that a lot of players expect, but OpenTTD hasn't ever really made that a thing. So a scenario is really just an open world with no explicit purpose other than what whoever created it says it is, and no mechanism of enforcement. The upside is you
16:35:52 <kamnet> can't play it wrong, downside is that there's no penalty if you don't play it "correctly".
16:39:50 <yup> kamnet: No, if it’s like training, then just make a fairly ready-made bundle: earn $30,000 with a train
16:40:19 <_glx_> https://cdn.discordapp.com/attachments/1008473233844097104/1233820031532667001/image.png?ex=662e7bf2&is=662d2a72&hm=7e1a597493ffd0cee8193736f82c964979927d80503d7a089c71b2165bb23a1f&
16:40:44 <yup> But that’s if it’s about learning to play the game yourself. I came to you with a question about the client.
16:46:54 <yup> And five different buttons Settings on the first screen is not fun at all http://79.136.144.124/f/openttd_5.png
16:47:32 <_glx_> because they are all separate
16:48:27 <yup> It’s quite possible, but if I came in for the first time, I don’t know about them and they bother me.
16:48:59 <_glx_> only game options matters when starting
16:49:35 <yup> My goal as newbie: adjust the volume level, screen resolution and press "play"
16:49:56 <_glx_> yes that's game options
17:13:59 <peter1138> Hmm, 1.5ms to build a list of station types.
17:14:25 <DorpsGek> [OpenTTD/OpenTTD] KamikaziF opened issue #12584: [Crash]: Unhandled exception in ottd:game thread: invalid stoul argument https://github.com/OpenTTD/OpenTTD/issues/12584
17:15:07 <peter1138> 1.14.0 eh?
17:16:03 <peter1138> Hmm, half of that is sorting.
17:16:09 <peter1138> sorting/filtering.
17:16:15 <_glx_> yeah some people will keep adding the 1.
17:16:48 <peter1138> Ah, SortList Filter is of course pretty inefficient.
17:18:18 <_glx_> ok so that kind of crash used to be a generic NOT_REACHED(), so that's an improvement
17:18:42 <_glx_> but good luck to find the real location
17:20:26 <peter1138> There is literally one stoul call.
17:20:45 <peter1138> But it's in the TarFile scanner.
17:22:34 <peter1138> std::invalid_argument if no conversion could be performed.
17:24:56 <peter1138> Given it's an exception, probably wrapping the whole `for (;;)` in a try-catch would be sufficient.
17:28:39 <peter1138> Okay, filtering in during adding is slower than adding then filtering out
17:30:12 <peter1138> Oh, still a debug build, never mind.
17:30:34 <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on issue #12584: [Crash]: Unhandled exception in ottd:game thread: invalid stoul argument https://github.com/OpenTTD/OpenTTD/issues/12584
17:33:51 <peter1138> Hmm.
17:35:40 <peter1138> Well, I don't have to scan the whole map. Only rail station tiles, and then only until the first one.
17:38:18 <_glx_> of course station store tile area of everything except train
17:40:17 <_glx_> ah no, it's just defined in another class
17:41:01 <_glx_> we are so consistent 🙂
17:41:44 <_glx_> train_station in BaseStation, everything else in Station
17:42:49 <peter1138> Yeah.
17:43:31 <peter1138> Because Waypoint is a BaseStation, not a Station.
17:43:59 <peter1138> So it is for a good reason, not just inconsistent.
18:00:03 *** jfs has joined #openttd
18:00:03 <jfs> yup: I fully agree that the main menu is a mess, and a large number of those "settings" button should probably exclusively be under the "New game" window instead (and while we're at it, merge "New game" with "Play scenario" and "Play heightmap")
18:00:44 <peter1138> But my spacebar!
18:01:24 <jfs> in particular because AI Settings, GS Settings and NewGRF Settings only apply to new games anyway. same as the (granted, iconic) landscape type buttons
18:02:06 <jfs> and also, the Settings tree containing a mix of settings that affect gameplay and settings that affect the UI only is also a bit confusing, perhaps
18:02:32 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233840721610412143/image.png?ex=662e8f37&is=662d3db7&hm=e3489c6328e9efdad3a234a02187e849f06e840dcf2e1586fc15b394a5be5861&
18:02:32 <peter1138> So yeah, they can't be removed 🙂
18:03:55 <jfs> here's a bad idea: keep the landscape buttons, but whatever one you select filters the files you can select in Load game and Play scenario and Multiplayer servers too
18:04:27 <peter1138> Yes, I agree. Bad idea 🙂
18:06:29 <jfs> fun thing is, in TTD the New Game button was actually more like "play heightmap" with an option at the top to generate a random landscape (based on the Difficulty settings)
18:07:36 <peter1138> It is.
18:13:17 <peter1138> Hm, favourites.cfg?
18:13:52 <peter1138> No. Too many spellings.
18:17:14 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 approved pull request #12583: Codechange: Shrink GUIList vectors less often, reserve before use. https://github.com/OpenTTD/OpenTTD/pull/12583#pullrequestreview-2026701686
18:23:20 *** gelignite has joined #openttd
18:25:37 <DorpsGek> [OpenTTD/OpenTTD] PeterN merged pull request #12583: Codechange: Shrink GUIList vectors less often, reserve before use. https://github.com/OpenTTD/OpenTTD/pull/12583
18:28:47 *** bootmii has joined #openttd
18:28:47 <bootmii> peter1138: I think irrelevant options, including trams if you don't have a GRF, should be hidden or moved behind the icon they used to be behind if your viewport is small enough. This is UI 101
18:28:54 <jfs> peter1138: favs.cfg
18:29:52 <peter1138> Okay, let's have a conversation this year not last?
18:30:57 <peter1138> You're replying to something I wrote a year ago, I have very little recollection of it even with a long scrollback...
18:31:38 <bootmii> Sorry, I forgot to include the text from before.It's slightly squashed and the spacer
18:32:07 <bootmii> > It's slightly squashed and the spacers are gone, but it's not quite "doesn't fit"
18:32:15 <peter1138> I can read the text.
18:32:25 <peter1138> But honestly, 1 year ago.
18:34:34 <bootmii> Sorry. While I have your attention, does the desync bug affect 13.4?
18:34:56 <peter1138> The desync bug in 14.0 does not affect 13.4
18:35:02 <peter1138> There may be other desync bugs in 13.4
18:35:33 <bootmii> Reason I asked was because I suspect n-ice is waiting for it to be fixed
18:36:34 <peter1138> In 13.4?
18:36:53 <bootmii> No, in 14.1. They're skipping 14.0 I think
18:37:24 <peter1138> Okay, seems a strange way of asking.
18:43:03 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on issue #12584: [Crash]: Unhandled exception in ottd:game thread: invalid stoul argument https://github.com/OpenTTD/OpenTTD/issues/12584
18:55:43 <yup> "Belgium" scenario didn't work too: http://79.136.144.124/f/openttd_6.png
18:57:03 <kamnet> LOL you're getting good at this! 😄
19:03:24 <kamnet> yup: If you see that the website button is highlighted its usually worth it to click it to see what info is there
19:04:19 <yup> Bug: won't find "sound" word http://79.136.144.124/f/openttd_7-1.png
19:04:45 <yup> but with "open": http://79.136.144.124/f/openttd_7-2.png
19:09:54 *** marchnex has joined #openttd
19:10:04 <yup> kamnet: "LOL you're getting good at this!" 😄 So true: Alaska is broken too
19:10:30 <yup> "Alaska" scenario http://79.136.144.124/f/openttd_8.png
19:11:06 <_glx_> many scenario authors don't check if what they use is available in content download
19:11:39 <kamnet> yup: The Belgium scenario uses a lot of files not found on the content server. Latest version of Marico, Newships and Newstations is here: http://ttdpatch.de/download.html
19:11:39 <kamnet> INFRA Green is here: http://www.simuscape.net/simutalk/viewtopic.php?f=120&t=758
19:11:39 <kamnet> WAS is going to be tricky. They had lots of releases. I'll have to download the scenario to try to figure it out.
19:12:03 <_glx_> yeah WAS is complicated
19:13:00 <_glx_> but many are [there](http://bundles.openttdcoop.org/worldairlinersset/push/)
19:13:33 <kamnet> yup: If you don't mind too terribly.... can you register an account on tt-forums.net, start a new topic discussing the broken scenarios? It would give me more opportunity to find these, get them updated and uploaded bck into the community so we can put an end to this crap.
19:14:56 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233858942036217970/image.png?ex=662ea02f&is=662d4eaf&hm=cd1d809bd537ba859f7327117f0f609296dd037dda84d8b95a2a8e95da79e173&
19:14:56 <peter1138> I like the default station so much I saved it 4 times...
19:14:59 <kamnet> yup: OpenSFX isn't a NewGRF, it is a base file. The menu you're on here only shows NewGRFs.
19:15:17 <yup> <_glx_>: even better than EVE Online and Excel Online! :) http://79.136.144.124/f/openttd_even_better.png
19:15:50 *** marchnex has quit IRC (Quit: marchnex)
19:16:36 <kamnet> yup: Alaska is permanently screwed for now. The creator of the Canadian sets intentionally corrupted the online versions and deleted the rest. You can't get them.
19:16:38 <yup> kamnet: No, no, I really shouldn’t know this. A little earlier on the main screen they told me to download Sound. I clicked on "sound" in the search field
19:18:03 <kamnet> Honestly this is frustrating enough that Id like to make a suggestion that if a scenario is on bananas, but the necessary files are not, that it be hidden by default from the client.
19:18:05 <_glx_> the search is based on some hidden tags too
19:18:25 <talltyler> kamnet: I agree, and uploading such a scenario should be blocked
19:18:51 <yup> kamnet: Are you just a player or do you have something to do with the developers? Maybe I shouldn't write anything here? And don't annoy you)
19:19:29 <kamnet> yup: I'm just an old player who has spent far too much of my life remembering this stuff
19:20:15 <kamnet> And I have nothing better to do today, I've been stuck in hospital all week 😄
19:21:40 <_glx_> IIRC there's some parsing of scenario on upload to auto add deps
19:21:53 <yup> If I can tell someone, my wish is this: to highlight 3-4 separate scenarios. Supervised by knowledgeable and understanding people. And bring them forward. And when the player understands it and falls in love, then he will start clicking endless checkboxes and reading on three forums and a wiki for other options :)
19:22:34 <yup> kamnet: oh, thanks
19:22:56 <_glx_> but scenario are usually not different than "new game"
19:23:13 <_glx_> only diff might be the hand placed stuff and the map
19:23:27 <_glx_> and choice of newgrf
19:23:45 <_glx_> but it's just like another game
19:23:48 <kamnet> One of the big hindrances is that OpenTTD isn't a commercial product that gets polished for users, it's a whole community of volunteers whose available time and motivation greatly varies. So it gets difficult to make changes that polish up the game.
19:23:50 <yup> _glx_: big differnce: it should just work
19:24:09 <_glx_> new game just work 🙂
19:24:34 <_glx_> all other stuff is offered by community
19:24:56 <kamnet> Well honestly it does "just work" if you don't start downloading stuff and making changes. THAT is were everybody gets in trouble 😄
19:25:06 <yup> <_glx_> but what point of 3 decades of development if "new game" is the same as "new game" in dos version
19:25:23 <peter1138> Well, it isn't 🙂
19:25:35 <kamnet> Openttd, right out of the box, just works ... in fact it works so well that it even stupifies players who expect they have to do a bunch of stuff to set up
19:25:42 <peter1138> But in most cases Scenario just means "someone made a map and saved it"
19:26:03 <peter1138> It is not like some other games where a scenario might be a set of challenges that need to be completed to progress.
19:26:58 <_glx_> something we could do is include "basic tutorial" scenario and the related AI/GS, but that would mean we'll have to maintain them too
19:27:09 <yup> So you want to say that I won’t find working AI and maps in the scripts now?
19:27:29 <_glx_> scripts usually work
19:27:53 <kamnet> yup: I would say that there is a chance that something uploaded doesn't work as expected due to <reasons>.
19:28:23 <kamnet> And today you're hitting 1.000 on finding stuff that doesn't run right out of the box.
19:28:53 <Rubidium> kamnet: why is it difficult to make changes that polish up the game? I think peter's been polishing the UI for a while now. The "only" problem is that there's no product owner that can demand us working on something
19:29:24 <_glx_> and most of us hate touching the UI 🙂
19:29:37 <Rubidium> but everyone's free to help polishing the game
19:30:19 <yup> but there are mentors here, some kind of backbone? Someone comes up with a roadmap for version 15?
19:30:35 <_glx_> there's no roadmap
19:30:57 <kamnet> Rubidium: Yes, and he's done an admirable job. It just takes time for everybody to work on that and make a decision as to how that gets done. and some stuff sits untouched for long periods of time. It's just what it is.
19:32:52 <andythenorth> Rubidium: sometimes there's a peanut gallery problem too 🙂
19:32:56 <yup> Offtopic: according to the rules, can I enter these games just to watch? I haven’t played TTD for over 10 years and I wonder what others are doing. https://servers.openttd.org/listing
19:33:16 <andythenorth> everyone has an opinion on UI, less so on changing std::vector or so
19:33:35 <kamnet> yup: OpenTTD started as a re-creations of Transport Tycoon Deluxe, so the basic game is 100% done, and everything that's done after version 1.0.0 is improvements on that. Basically somebody either identifies something new that can be done, or something that is broken and needs fixed, or could just be improved. One or ore people will take up the challenge of implementing a solution, and if that
19:33:35 <kamnet> solution works well then it gets considered for inclusion in the next release of the game.
19:35:17 <kamnet> OpenTTD is a hot rod race car and there's hundreds of mechanics working on it.
19:36:59 <yup> nice. yep. nice analogy
19:38:26 <yup> a race car without doors. You just need to learn how to climb through the window
19:39:19 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 opened pull request #12585: Codechange: refactor CalcHeightdiff to remove some magic numbers https://github.com/OpenTTD/OpenTTD/pull/12585
19:48:23 <jfs> yup: no seriously. if you download the game, accept the defaults, and click "new game" then you are dumped right into a new game that will just play, no need to tune or change anything.
19:51:22 <peter1138> One thing about joining multiplayer servers... generally if they will have either default content (nice) or content that is easy to download (also nice)
19:51:32 <peter1138> By default when you join, you join in spectator mode.
19:51:33 <jfs> I guess I could just close this again, since it seems to be "the wrong approach": https://github.com/OpenTTD/OpenTTD/pull/10671
19:51:47 <peter1138> So no need to worry about just entering to watch.
19:52:26 <peter1138> jfs: Honestly, the background should be a background.
19:53:11 <jfs> yeah as long as you just spectate a multiplayer server you're generally not troubling anyone. it's mostly if you then start a new company and do nothing and leave that company to wither, that can be annoying for the other players
19:53:19 <peter1138> Some of the other tweaks may well be useful.
19:53:46 <yup> I just logged into an online server (for the first time in my life) It’s wonderful!
19:53:54 <yup> http://79.136.144.124/f/openttd_online.png
19:54:02 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233868784499032174/image.png?ex=662ea95a&is=662d57da&hm=07a3a18a1462eed6412699372bd67603bc7c15110393760677e6ac7da26a4919&
19:54:03 <peter1138> Well.
19:54:41 <jfs> peter1138: see that's where I disagree, I think the background game should function as not just decoration, but also a tutorial. if the title game shows what a good and well-built network looks like, that alone can replace a lot of tutorial content. then the only part you need to teach is the UI
19:54:57 <peter1138> Tutorial button 🙂
19:55:04 <jfs> (in an ideal world, that is)
19:55:47 <_jgr_> jfs: Seeing the finished product doesn't really help that much with how players get to that point
19:56:17 <peter1138> The title game also varies in quality.
19:56:44 <yup> jfs: Not certainly in that way. I have to somehow find out that AI needs to be enabled somewhere. Otherwise it will just be a boring map.
19:56:45 <peter1138> The old one that we keep for master is not going to teach anything much.
19:56:52 <michi_cc> yup: We wrote some stuff on the development process at https://www.openttd.org/news/2024/03/09/how-its-made
19:57:20 <yup> jfs: http://79.136.144.124/f/openttd_9.png
19:58:13 <peter1138> Hmm, ctrl-click on a class to toggle everything in that class a favourite?
19:58:20 <peter1138> (Too obscure?)
19:58:44 <yup> jfs: http://79.136.144.124/f/openttd_10.png
19:58:48 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #12585: Codechange: refactor CalcHeightdiff to remove some magic numbers https://github.com/OpenTTD/OpenTTD/pull/12585
19:58:48 <jfs> that's the thing, lots of players prefer building alone, they do not want competition, but just want to challenge the game economy alone, or even just build a neat train diorama
19:59:17 <jfs> but also yes, programmer UI
20:00:02 <peter1138> I think this is probably "more lines of code" now.
20:00:16 <peter1138> 35 files changed, 1688 insertions(+), 1678 deletions(-)
20:00:18 <yup> <michi_cc>: thank you
20:00:18 <peter1138> Huh.
20:00:20 <peter1138> Only just.
20:01:28 <DorpsGek> [OpenTTD/OpenTTD] glx22 opened pull request #12586: Fix #12584: Improved error handling during tar scan https://github.com/OpenTTD/OpenTTD/pull/12586
20:01:54 <_glx_> not tested at all 🙂
20:03:13 <peter1138> Looks reasonable.
20:03:31 <peter1138> I think you need a corrupt tar file to test it.
20:04:45 <_glx_> hmm strange I get a lot of output
20:05:25 <yup> and volume more than 100 GB :)
20:06:39 <peter1138> Ah, actual testing 🙂
20:06:54 <_glx_> oh I'm stupid, forgot the base
20:07:49 <_glx_> stupid old stuff using octal
20:07:53 <peter1138> Ah, base 8 yes.
20:08:06 <peter1138> Yes, the fact it's an octal string is funny.
20:08:10 <peter1138> 1) octal
20:08:11 <peter1138> 2) string
20:08:21 <peter1138> 3) not necessarily null-terminated
20:08:32 <peter1138> "See this binary file here..."
20:09:42 <_glx_> https://cdn.discordapp.com/attachments/1008473233844097104/1233872727216230541/image.png?ex=662ead06&is=662d5b86&hm=47dddb838302ee1870221ddb1bb34b774ae5677ff810fd05bfe3ae05d5440f1e&
20:09:50 <_glx_> that's why VS is slow
20:22:46 *** nielsm has quit IRC (Ping timeout: 480 seconds)
20:25:51 <_glx_> but I don't see what's eating the RAM
20:26:29 <peter1138> All my templates 🙂
20:27:14 <_glx_> I closed VS and there's still 30GB used
20:28:06 <yup> Is this how it should be? http://79.136.144.124/f/open_ttd_shadow.mp4
20:29:05 <yup> The rails under the train are blinking. http://79.136.144.124/f/openttd_11_shadow.png
20:29:50 <_glx_> that's path reservation
20:30:12 <yup> is it okay?
20:31:20 <_glx_> yes, train just reserve under itself since you use block signals
20:34:55 <yup> thank
20:42:04 <peter1138> Hm
20:43:25 <_glx_> hmm so ` 0 ` triggers invalid argument
20:44:20 <_glx_> weird since it's perfectly convertible to 0
20:50:49 <_glx_> oh "leading whitespace is not ignored"
20:50:53 <peter1138> Maybe you need to skip the whitespace.
20:50:55 <_glx_> yeah it's an issue
20:51:02 <kamnet> truebrain: frosch123 can I get added to the contributors for WAS so I can upload the last published version? https://bananas.openttd.org/package/newgrf/57a50001/2012-09-24T15:01:15+00:00
20:52:27 <truebrain> A request that would have to be made by one of the authors on the current access list and via mail / ttforums
21:02:56 <DorpsGek> [OpenTTD/OpenTTD] glx22 updated pull request #12586: Fix #12584: Improved error handling during tar scan https://github.com/OpenTTD/OpenTTD/pull/12586
21:07:38 <_glx_> better with the correct base and some trimming
21:10:01 <kamnet> truebrain: None of the authors have participated in years. The last maintainer disappeared 2 years ago.
21:11:45 <audigex> truebrain: This is becoming an issue with BaNaNaS IMO, lack of ability to take over an open source project without the old one hanging around. It’s becoming noticeable now bananas is a few years old and things are more likely to be deprecated
21:12:19 <audigex> BRTrains v2 has been out for 2 or 3 years now and I’ve still not managed to get the two sets it replaced deprecated
21:12:28 <audigex> Three sets*
21:12:51 <truebrain> kamnet: Little I can do about that sadly. We can't just "randomly" assign new authors because the original ones are no longer there. If it is truly an open license, best to do is make a fork
21:12:58 <audigex> I see people using either BRTrains v1 or, worse, both v1 and v2 regularly
21:13:06 <kamnet> Normally Id think it's fine to require permission from one of the current team members, but as noted there is no more team. And it seems silly to fork this with a different M5D just to get the last file updated
21:13:29 <Eddi|zuHause> audigex: you've created an xkcd.com/927 ?
21:14:07 <DorpsGek> [OpenTTD/OpenTTD] glx22 updated pull request #12586: Fix #12584: Improved error handling during tar scan https://github.com/OpenTTD/OpenTTD/pull/12586
21:14:17 <audigex> Eddi|zuHause: Yes, exactly. Because as we’ve just seen, the advice is “make a fork”
21:14:17 <truebrain> kamnet: The issue is, there still is a team. Maybe not one that you perceive ad active, but there is no way to actually validate that 🙂
21:14:23 <audigex> truebrain: ^
21:15:29 <audigex> truebrain: Regardless it’s confusing for the community and frustrating for a new maintainer of a *de facto* inactive project
21:16:01 <truebrain> You can think all kind of things about that, but disregarding ownership is not the solution.
21:17:14 <audigex> I can’t take over the original project because the author isn’t contactable, I can’t deprecate that project either, so we end up with 4 separate newGRFs with no upgrade path and no way to even deprecate the old one
21:17:14 <audigex> It’s INCREDIBLY annoying to put so much work into a project and see people still playing the version from 2015 because they didn’t know there was an update, or using 3 or 4 versions side by side with all the bugs and inconsistencies that entails
21:18:08 <andythenorth> players gonna do player things
21:18:22 <andythenorth> FIRS 1 is still in use, despite all common sense
21:18:37 <audigex> andythenorth: But at least you can deprecate that yourself…
21:18:47 <andythenorth> not really
21:18:50 <truebrain> You are complaining about the wrong side of the system, and honestly, that way of communication doesn't get you all that far with me. Much more constructive is to think about how it can be solved in the system itself, instead of bluntly disregarding ownership.
21:18:52 <andythenorth> Bananas doesn't work that way
21:19:22 <audigex> truebrain: To be fair I wasn’t the one who suggested disregarding of ownership, I just chimed in to the initial person’s conversation
21:19:23 <_glx_> andythenorth: it can, just the GUI doesn't support it 🙂
21:19:23 <andythenorth> the lack of deprecation is why certain famous grfs aren't on Bananas (unless that's changed)
21:19:56 <audigex> andythenorth: You can see a last compatible OpenTTD version, and that stops it being used in future versions AFAIK?
21:20:10 <andythenorth> oh hacks
21:20:12 <andythenorth> I see
21:20:34 <truebrain> Anyway, BaNaNaS still is, and has been for the last 15 years, looking for a maintainer
21:21:01 <_glx_> in theory it should be possible to mark everything as "savegame only"
21:21:15 <peter1138> andythenorth: No, the lack of total control is why certain...
21:21:18 <_glx_> just the UI needs work
21:21:19 <audigex> truebrain: As above I’ve never said disregard ownership, I’d be happy to constructively discuss a new approach. I do struggle to find a solution which doesn’t *eventually* resort to overriding the ownership if the original owner can’t be contacted though
21:21:49 <peter1138> That and the whole "I refuse to acknowledge that OpenTTD is alive and took over from TTDPatch" 🙂
21:22:37 <yup> it is a joke or it is a pro trick: http://79.136.144.124/f/openttd_12.png
21:23:04 <peter1138> Extra power
21:23:04 <andythenorth> it's just trains? 🙂
21:23:06 <_glx_> more power, more acceleration
21:23:11 <yup> is it to maintain speed and power?
21:23:27 *** amadeus6152 has joined #openttd
21:23:27 <amadeus6152> I tried going back to the original TTD just for fun last night.
21:23:27 <amadeus6152> *scroll mousewheel to zoom out*
21:23:27 <amadeus6152> Nope
21:23:27 <amadeus6152> *right-click window to close*
21:23:27 <amadeus6152> Nope
21:23:37 <peter1138> Heh
21:23:39 <amadeus6152> They say you can’t go home again, and it’s true
21:24:14 <audigex> Yeah it adds power to help acceleration and maintaining speed up slopes. Most people have enough OCD to want to spread the carriages out between the power cars but not everyone does
21:24:16 <_glx_> only 2 buttons in DOS usually
21:24:41 <truebrain> audigex: The issue is, the fact you cannot contact them doesn't mean they stopped existing 🙂 so that never would be an eventuality 🙂
21:25:20 <truebrain> But that BaNaNaS could use better controls and something like a rating system or deprecation system or whatever, that nobody denies
21:25:26 <yup> amadeus6152: After they showed the original picture ttd I wanted to try the DOS version again :)
21:25:36 <audigex> And if we adhere strictly to that then there’s no viable solution because we don’t have any way to ever deprecate a set with a dead author or who just doesn’t check into the community
21:25:40 <truebrain> Just people always talk about it, just nobody ever designs anything that is sane
21:26:38 <_jgr_> There likely isn't any way to get around that some human judgement is required
21:26:44 <_jgr_> Not everything can be automated
21:27:37 <audigex> The most obvious solution to me is to require contact information if you want to maintain perpetual control over the set, and have to check back in occasionally when contacted if you haven’t logged in.
21:27:37 <audigex> If you don’t support contact information or respond, then someone else can claim ownership of the GRFID for open source projects after a sufficiently reasonable time period
21:27:47 <truebrain> _jgr_: One of the better suggestions made in the last 5 years was about a curated list of NewGRFs 🙂
21:28:02 <kamnet> I also did not advocate for disregarding ownership, but it was True brain who bluntly stated the only workable solution is to bluntly disregard ownership and fork the project.
21:28:47 <truebrain> kamnet: Lol, wuth?! No. Please don't put words in my mouth I never said. That doesn't help this conversation at all
21:29:04 <truebrain> That is really bad what you did there
21:29:11 <_jgr_> kamnet: Forking does not imply disregarding ownership
21:30:50 <audigex> To me it’s not even about ownership (it’s an open source project, nobody truly “owns” it anyway) it’s about how do we sensibly deprecate a project that has been superseded by a fork, without having to manually tell everyone using it to update? (Clearly not a manageable solution)
21:31:25 <truebrain> audigex: I think you are looking at the problem wrong. Isn't more the issue you describe that users don't know what is "better" or "more recent"? (Honest question)
21:31:47 <yup> Amazing game!
21:32:04 <audigex> truebrain: Partly, or simply that they aren’t even aware there’s an update because you can’t take over the GRFID. They have to go actively looking for a v2 and then realise it is a v2
21:32:25 <truebrain> So that is more the axis I would be looking for a solution
21:32:44 <audigex> Often people use BRTrains v1 because they’ve assumed it will automatically update. Or they use v1 AND v2 together because I can’t disable v1 unless v2 is loaded second
21:32:58 <audigex> Or whichever way round that is, I forget
21:33:00 <truebrain> How can we improve the system so the user is aware author X hasn't been seen in 2 years, and this better GRF Y done by author Z is there for a better experience?
21:33:07 <_glx_> so a way to mark a new GRFID as replacing an older one
21:33:37 <audigex> truebrain: And the obvious answer is to be able to deprecate the old one, leave it available for savegames but put the user towards the replacement project
21:33:53 <audigex> Maybe we’re considering the word deprecate slightly differently
21:34:11 <truebrain> audigex: That indeed would already be a lot better than to actually take over the upload 🙂
21:34:18 <kamnet> In my issue there isn't a new grfid. The project needs the latest files uploaded.
21:34:50 <amadeus6152> I’m not fully up on the dev side of this, but wouldn’t removing stuff result in loss of support for some scenario files, etc.?
21:35:01 <_glx_> we never remove stuff
21:35:07 <_glx_> it's just hidden
21:35:12 <audigex> truebrain: Which makes sense for me in BRTrains v2 that isn’t a direct update
21:35:12 <audigex> But Kamnet literally just has a newer version of the same GRF than the one on BaNaNaS
21:35:17 <truebrain> amadeus6152: Unless it is a violation of our ToS, nothing is ever removed
21:35:24 <kamnet> Well we don't have a new bananas that can do all of that. We have what we have and the decision to not allow somebody to join a dead project makes the experience for the player worse.
21:35:37 <amadeus6152> Yes, but I was under the impression the discussion now is about that?
21:35:41 <audigex> amadeus6152: Nothing is ever deleted, it just stops being available for non-savegame usage
21:36:31 <yup> "deprecate" and "obsolete"
21:37:11 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:37:31 <michi_cc> What TB actually wants to tell the room is that somebody ™️ just has to get up form their seat and f* do it.
21:38:30 <kamnet> amadeus6152: It's not removed. If you have a save or scenario that requires the older file it's still available. The newest file is the one that shows for new games
21:39:14 <truebrain> kamnet: I know it can be frustrating, but also not something we can help with atm. There are so many people on that list, literally nobody can be contacted?
21:39:22 <michi_cc> Well, maybe not really develop and code a full solutions, but at last start with a concept.
21:41:22 <audigex> michi_cc: The problem for me is that without a clear idea of what solutions would or wouldn’t be acceptable, I’ve got zero interest in building something speculative and then having the change rejected
21:41:30 <kamnet> truebrain: There are three people listed as maintainers for bananas. Two of them appear to be shell accounts for the team that is no longer active and the other is extspotter who hasn't logged into tt forums since 2000.
21:41:39 <peter1138> https://www.openttd.org/news/2024/03/09/how-its-made
21:42:08 <truebrain> audigex: We are flexible. But we do follow license and copyright as much as we reasonable can. So if it fits within our ToS, any idea can float freely 🙂
21:43:32 <truebrain> kamnet: There are 18 names on that list. Earlier comments suggested none of them have been active for years and can't be contacted?
21:43:37 <audigex> truebrain: So if it’s the same open license, what’s the specific objection to allowing someone to take over a long-idle project? If we’re going to find a reasonable solution then we need to understand the exact objection
21:44:11 <truebrain> audigex: The license allows you to reuse the content, not reupload it as your own
21:44:27 <audigex> truebrain: Wait so anybody on the list in bananas can give permission to take over the project?
21:45:02 <_jgr_> kamnet: Given that the project has stopped anyway, and the published GRFs look like nightly-style builds rather than actual releases, would uploading the most recent one really make a difference?
21:45:04 <audigex> Because in that case I REALLY need to change the BRtrains read me or half the community can give my project away…
21:45:10 <truebrain> Just imagine you go away for a year, and you come back and all your content is replaced with images of ducks (hyperbolic situation, to make a bit clear where we are coming from)
21:45:31 <truebrain> Different is if someone used your work, and uploaded it under another name
21:45:37 <amadeus6152> And then they say “hey, who’s been ducking around with my project”
21:45:45 <michi_cc> The rights "we" have to the content are listed here: <https://bananas.openttd.org/manager/tos/1.4>
21:46:32 <audigex> truebrain: But you just said any of the 18 names could give permission?
21:46:38 <audigex> Not just the original uploaded
21:46:56 <truebrain> audigex: In the old days "shell" accounts were used for uploading content
21:47:22 <truebrain> We have to be a bit flexible for migrations, as that is no longer possible
21:47:25 <audigex> So for clarity, on BRTrains V2 which users could give permission to take over the project?
21:47:33 <peter1138> audigex: Not exactly what was said.
21:47:57 <audigex> Just me, all those mentioned in the description, or anyone mentioned in the GitHub readme?
21:48:15 <truebrain> audigex: In the new system, anyone on the access list
21:48:55 <truebrain> But the irony of your remark is hopefully not lost on you 🙂
21:49:18 <kamnet> _jgr_: MTjere are scenarios on bananas now that use this missing file that most users don't know how to obtain, and this think the scenarios are "broken". And when they keep finding "broken" scenarios they believe everything is old and no longer maintained.
21:49:20 <audigex> I’m not complaining, I’m trying to understand the current system
21:49:29 <audigex> truebrain: What access list?
21:49:49 <audigex> I’m on the manager now and I don’t see an access list anywhere
21:49:55 <truebrain> audigex: The fact that you ask: only you can upload updates
21:49:57 <DorpsGek> [OpenTTD/OpenTTD] github-advanced-security[bot] commented on pull request #12586: Fix #12584: Improved error handling during tar scan https://github.com/OpenTTD/OpenTTD/pull/12586#pullrequestreview-2026750824
21:50:18 <audigex> So how would I add other users if I wanted to do so?
21:50:26 <truebrain> Request us
21:50:26 <audigex> I’ve never seen anything suggesting that’s possible
21:50:34 <truebrain> Nobody ever wrote an UI solution
21:50:35 <audigex> Ah okay, so it’s not on the UI?
21:50:55 <audigex> Right, that’s part of why I’m so confused here, it sounded like it was being based on a list in a description somewhere
21:51:07 <truebrain> But several packages have multiple authors assigned
21:51:12 <truebrain> Nah
21:51:21 <audigex> Yeah, none of this is very clear to a casual user tbh
21:51:29 <truebrain> Only during migration from old to new there is some slack
21:51:56 <truebrain> But especially as it was indicated nobody could be contacted, it made me wonder
21:52:15 <audigex> So the project in question (WAS) has 18 authors assigned?
21:52:35 <audigex> truebrain: As per this?
21:52:56 <audigex> truebrain: Sorry, this*
21:53:08 <kamnet> truebrain: But we're not talking about someone gone for a year. This is a project that last published on bananas in 2012 but who last published a version in 2021. All that is being asked is to upload the work they already created so that players have a better experience. Why can't there be flexibility for this?
21:53:20 <truebrain> audigex: No, also not what was sad 🙂 kamnet indicates WAS had shell accounts on the ACL, which most likely means they were used by one or more of the 18 people in the description
21:53:39 <audigex> Right, yeah none of this is made clear
21:53:42 <truebrain> This was a problem of the "old days"
21:53:46 <_glx_> and never was migrated most likely
21:53:49 <audigex> It’s all horribly opaque
21:54:05 <audigex> I do think kamnet has a point that common sense should probably prevail here
21:54:09 <_glx_> oh it was migrated
21:54:17 <_glx_> there's a github id
21:54:26 <truebrain> _glx_: It was?! Then it was active more recent
21:54:31 <michi_cc> Unfortunately, common sense and law don't always agree.
21:54:33 <_jgr_> kamnet: Likely getting rid of the obsolete scenarios is more practical
21:55:10 <truebrain> Sorry, I should have checked. I was assuming too much
21:55:11 <kamnet> _jgr_: So we can delete scenarios but we can provide updates for dead projects?
21:55:37 <audigex> michi_cc: TOS item 2 says OpenTTD has the right to provide the latest version of your work.,. It doesn’t actually have to say YOU have to upload it
21:56:04 <audigex> “You grant the OpenTTD team the rights to distribute the last version of your content from a central server.l
21:56:08 <truebrain> audigex: Migration work is not for the casual user. But I take it back, I assumed too much 🙂
21:56:47 <peter1138> I do think the irony was lost though 🙂
21:56:47 <_glx_> some extra validation for scenarios could reject uploading if it requires stuff not on bananas
21:57:24 <truebrain> audigex: Think you missed 1a. Either way, this all doesn't help kamnet at all 🙂
21:57:50 <_glx_> IIRC the newgrf are already listed for automatic deps
21:58:32 <audigex> truebrain: So Kamnet makes a small change and is now one of the authors satisfying clause 1a, uploads it, and OpenTTD can distribute it under clause 2? Gordian knot neatly severed
21:59:09 <michi_cc> audigex: A "Terms Of Service" for a online content service kinda implies that it only applies to content on that service, not random files found somewhere on the internet. But seriously, copyright doesn't work that way and if if we would have tried to imply something like this in our ToS, it would simply by invalid contractual terms.
21:59:32 <michi_cc> So, no, Bananas ToS of course only apply to stuff uploaded to it.
22:00:13 <truebrain> _glx_: where do you see a GitHub ID assigned to 57a50001?
22:00:20 <kamnet> Or kamnet forks the project making a renegade newgrf doing who knows what and everybody starts making scenarios using it until one of the authors comes back and makes a stink over it, and we get Canadian Sets all over again.
22:00:40 <_glx_> I was seeing it in the other WAS
22:01:05 <truebrain> which WAS is that?
22:01:13 <_glx_> 57415332
22:01:35 <audigex> _glx_: ^ hey look we’re already confused about which version is which. Point proven I think tbh, we can’t even keep track cleanly in this discussion
22:01:38 <_jgr_> kamnet: The actual problem is the scenarios, not that the latest/greatest GRF verison isn't available
22:02:10 <truebrain> _glx_: Tnx. So someone already uploaded another WAS to BaNaNaS a year ago 🙂
22:02:22 <audigex> How are users meant to keep proper track of 2 dozen newGRF versions and which is the “right” version for them to use if we can’t even be consistent about which version we’re talking about here?
22:02:29 <truebrain> audigex: this is not the flex you think it is, and again, not helping the actual conversation 🙂
22:02:50 <audigex> truebrain: I think it’s relevant to the conversation because it demonstrates the problem concisely and in context
22:03:00 <_glx_> so yeah the original team was not migrated
22:03:03 <truebrain> You said: "point proven". But what point? That is left to the imagination 🙂
22:03:09 <michi_cc> Scenario authors should probably know what the stuff is the add to their own scenario.
22:03:17 <audigex> truebrain: The point that this is confusing to the user?
22:03:25 <audigex> Which is what we’ve been talking about for 20 mins
22:03:45 <truebrain> No, we have been talking about kamnet wanting to take over someone elses upload 🙂 As a goal to remove that "confusion" 😛
22:03:46 <michi_cc> Should we add a skill test quiz before a scenario is allowed to be uploaded?
22:03:52 <_glx_> I still think we should not accept scenario using things not available on bananas
22:04:04 <_glx_> should ease users' life
22:04:15 <truebrain> _glx_: we never policed content like that; not sure I am a big fan, I have to admit
22:04:17 <audigex> truebrain: Are you just being deliberately pedantic here or what? Ironic that you accuse me of being unhelpful
22:04:46 <truebrain> audigex: No, pointing out that even your remark is confusing, as we are talking about at least two things at the same time
22:05:21 <audigex> We are talking about one thing: Kamnet wants to be able to upload it as a new version of the same GRF to avoid a confusing fork. We then saw confusion arising from a fork, proving the point in question
22:05:26 <truebrain> so just to be clear: changing ownership of content is not done just like that, and needs a lot more "convincing". We can talk about other possible solutions if you like, to see what is possible and what not 🙂
22:05:31 <kamnet> truebrain: So now "wasforbananas" has done what I've been trying to avoid.
22:05:46 <truebrain> kamnet: was already done last year; sorry. Nothing I can do about that 🙂
22:06:37 <truebrain> either way, the underlying issue is here that BaNaNaS is growing big enough with a lot of stale content, and that it gets increasingly more difficult for users to know what is "good" and what is "bad" content
22:06:40 <michi_cc> Well, the new WAS could be in violation of term 1a (didn't actually check who is what here) 🙂
22:06:48 <truebrain> WAS might be an example, but there are many many many many more examples
22:06:52 <audigex> Okay so let's talk deprecation - what can we do to deprecate a GRF that has a "replacement" fork, that actually does something to alert the user properly that they should move to the new version?
22:06:52 <audigex> And are we just meant to accept that we will never get savegame compatibility for that?
22:06:54 <_glx_> truebrain: we could also put a flag to warn users before they download it
22:06:55 <truebrain> so it might be more interesting to see what we can do about that problem 🙂
22:07:03 <truebrain> _glx_: that I like more 🙂
22:07:22 <_jgr_> truebrain: Scenario authors likely don't realise that they're creating this problem at all
22:07:43 <_glx_> we also need to validate the "minimum version" they set
22:07:44 <truebrain> _jgr_: I agree; so _glx_'s solution feels like a good balance there 🙂
22:08:08 *** Tirili has joined #openttd
22:08:38 <audigex> For the scenario issue, I think warning the uploader as part of the upload process would have value too. Let them continue if they want to, but in most cases I'd expect the author will likely want to resolve the issue first
22:08:55 <michi_cc> Somebody has to implement it of course, but it might also make sense to have an explicit confirmation when someone wants to upload a scenario with dependencies not on bananas.
22:09:06 <michi_cc> Not a block, just a double check if they really meant that.
22:09:13 <truebrain> we once had plans to automatically select the NewGRFs as dependencies even
22:09:18 <truebrain> but ... plans .... don't make a reality 😄
22:09:34 <_glx_> oh I though it was already done that way
22:10:42 <truebrain> _glx_: not to my knowledge
22:10:51 <truebrain> we do fetch them from the scenario
22:11:06 <truebrain> but I think there it stops 😛
22:11:17 <truebrain> you also still can't upload a new version of your scenario
22:11:29 <truebrain> talking about "annoying things for users"
22:11:51 <_glx_> there are annoying things on both sides 🙂
22:11:59 <_glx_> uploaders and end users
22:12:41 <_glx_> not being able to mark which version is "latest"
22:12:52 <truebrain> the wishlist is long
22:13:09 <_glx_> yes we had the case of someone uploading 2 updates in the wrong order
22:13:35 <audigex> _glx_: At least with that you can just upload the newer one again as a 3rd update and that'll fix it, surely?
22:13:44 <truebrain> nope
22:13:49 <truebrain> same ID + md5
22:13:52 <truebrain> system says: no
22:14:01 <audigex> Well, make a small change, re-save, and upload again
22:14:07 <_glx_> change internal version in grf and should pass
22:14:10 <truebrain> explaining that to authors isn't trivial 🙂
22:14:15 <_glx_> but it's still annoying
22:14:21 <truebrain> it is a problem of the system; not of the user
22:15:14 <truebrain> at least vanilla vs jgrpp seems to be going okay-ish these days
22:15:21 <audigex> Perhaps instead of saying no the system should say "You've already uploaded this as version 2.1, you may have uploaded the wrong version. Would you like to re-flag that as the latest version?"
22:15:41 <truebrain> one of the many solutions
22:15:51 <truebrain> ideally you can also just mark a version as "available to new-games"
22:15:57 <truebrain> or mark them all as "savegame-only"
22:16:12 <truebrain> https://github.com/OpenTTD/bananas-api/issues/31
22:16:12 <truebrain> 4 years old 😛
22:16:57 <truebrain> https://github.com/OpenTTD/bananas-api/issues/28 <- look, ACL is also there!
22:17:14 <truebrain> https://github.com/OpenTTD/bananas-api/issues/25 <- and scenario -> NewGRF dependencies!
22:17:31 <truebrain> again, we are looking for people willing to maintain this 🙂
22:17:46 <truebrain> (not meant to be childish; just showing the reality of it all)
22:17:53 <_glx_> we have ideas, not hands to implement them 🙂
22:18:13 <truebrain> hands -> energy 😛
22:19:02 <audigex> _glx_: We also have big debates about what's allowed to be implemented and how, which somewhat frightens off new contributors. Like look at the last 30 mins of discussion, it hardly makes me want to start working on BaNaNaS if I'm likely to put a lot of work into something that might get rejected because there's no clarity on what can/can't be changed
22:19:26 <truebrain> audigex: the clarity has been there all this time
22:19:31 <audigex> If I wanted to build deprecation of old newGRFs in and allow them to be superceded, how would I do that for example? After all this discussion I'm non the wiser about what's allowed
22:19:32 <truebrain> the acceptance of that however, was lacking 🙂
22:19:55 <audigex> TB I like you bro but you're just being deliberately combative now, please cut out the passive aggressive thing
22:20:08 <audigex> "We're clear you're not listening" isn't helpful
22:20:12 <_glx_> well #31 could help for your own stuff, as a starting point
22:20:17 <peter1138> "bro"
22:20:19 <peter1138> Wow
22:20:53 <audigex> Bro was an attempt to soften the sentiment with a familiar word
22:20:53 <truebrain> audigex: Sorry you read it like that, it is not meant like that. But the conversation was us being pushed towards "awh, for this one time, just make someone else the owner", or at least, that is the way I read most of the conversation
22:21:22 <_glx_> an author being able to deprecate what he uploaded would be an improvement, so andy could hide all his outdated stuff
22:21:32 <audigex> truebrain: I completely appreciate that we can't just take full ownership of the old upload, but the question is what we CAN do, other than just upload a fork and hope useers find it
22:21:34 <michi_cc> audigex: Nobody knows that yet, this is why it needs a concept first. Actually coding it is a second steo.
22:21:46 <peter1138> Design a process.
22:22:06 <truebrain> audigex: Thanks; it is the first time that is being acknowledge, and I appreciate that 🙂
22:22:23 <truebrain> (I am being honest, in case that gets lost in words 😛 )
22:22:38 <audigex> michi_cc: The concept for me is that we allow the community/devs to mark an old GRF as deprecated and allow a fork to use the same GRF ID or have some other mechanism for a new GRFID to take over savegame compatibility and *act like* an update to the original set
22:23:08 <kamnet> I wasn't asking for sole ownership.
22:23:14 <peter1138> As a process design, that sounds like "somebody™ should do it"
22:23:39 <_glx_> well GRFID overload in savegame might be complicated
22:23:54 <_jgr_> truebrain: I've tried to design things so that they fail/fallback as gracefully as possible when they do end up loaded in vanilla
22:23:56 <truebrain> audigex: it is tricky, if that is your endgoal. Maybe a good first step is to not touch the GRFID part first, and first enable some controls for when the author is active
22:24:07 <truebrain> _jgr_: I would say you succeeded 🙂
22:24:13 <michi_cc> Savegame compatibility is probably secondary, most changes to a NewGRF (like just re-ordered vehicle IDs) often make it incompatible anyway.
22:24:21 <audigex> peter1138: I'd consider trying my hand at it, I just want to know exactly what is/isn't allowed. Whether I actually have the time and ability to do it is a different question but I'd at least try once we've clearly established what can be allowed
22:25:01 <audigex> truebrain: Certainly allowing deprecation (by the author) seems like step 1, but it solves neither of the two problem scenarios (mine or Kamnets). Albeit it does allow Andy to properly deprecate FIRS1
22:25:10 <michi_cc> Allowed is what is covered by our TOS and EU copright law.
22:25:42 <audigex> michi_cc: It might not be savegame compatible but at least the user would "find" it more easily. And if using the same source then it could easily be savegame compatible with even a different GRF ID
22:26:15 <audigex> Eg in Kamnet's scenario, it would technically be a fork but essentially the IDs etc would be the same and it would be savegame compatible *if* a new GRFID was permitted
22:26:21 <michi_cc> Yes, but if it is exactly the same, it doesn't really need a re-upload, right?
22:26:45 <audigex> Eg if a GRF can supply an "overrides_deprecated_GRF: GRFID" identifier or something
22:26:50 <truebrain> audigex: I would rather have a method where we inform the uploader of the scenario about what is happening, and let them make an informed decision
22:27:03 <truebrain> as knowing our community, there will always be "that one guy" that actually wants the old content
22:27:07 <audigex> michi_cc: But some are not the same. Eg the first 90 IDs are the same, the other 10 are new
22:27:08 <truebrain> "because the new upload is shit" 😛
22:28:56 <audigex> michi_cc: In Kamnet's case it's literally an update of the old GRF, so it's different but presumably savegame compatible unless breaking changes have been introduced. It would be nice to be able to provide a new, savegame compatible, fork as a replacement there
22:28:56 <audigex> In BRTrains v2 case then it's not savegame compatible, but it would be good to be able to say "This is a replacement for (BRTrains), treat it like a new, non-savegame compatible version"
22:28:56 <audigex> Two slightly different scenarios but with the same basic frustration of it being confusing
22:30:43 <audigex> I released BRTrains v2 in 2022 and I still regularly get bug reports for BRTrains v1 (which I've never touched), MUTS, and even BROS (released 2011) because it's so confusing for users having all 4 available in the download list. They're frustrated at the bad experience, I'm frustrated I can't do anything about it other than manually tell every single user with a query to remove them and update
22:31:18 <truebrain> so is that actually about upgrading in savegames?
22:31:26 <truebrain> or is that about new games being started with "old" content?
22:31:40 <kamnet> Bananas needs curators but nobody can be a curator because somebody who hasn't been around for a decade may magically show up one day to find that somebody cared enough about their stuff to maintain it and they might get mad or they might haul the lot of us off to the Hauge for violating a contract.
22:31:41 <audigex> truebrain: Kamnet's is, BRTrains is not
22:31:47 <audigex> truebrain: BRTrains is this one
22:31:53 <audigex> Two slightly different problems, both around the same basic issue
22:32:24 <audigex> It's two different "use cases" for considering as we try to architect out a solution
22:32:25 <_jgr_> kamnet: It's really not the end of the world if someone throws a tantrum on the forums
22:32:37 <truebrain> audigex: I don't agree it is the same issue, tbh. It sounds like two different problems. As your solution sounds more like the problem that we have a lot of stale content on BaNaNaS.
22:32:40 <_glx_> in BRTrains case I'd assume users are smart and don't use v1 and v2 at the same time, and also understand v2 is more recent than v1
22:33:07 <truebrain> _glx_: when was the last time someone tried to load FIRS3 and FIRS4 in the same game? 😛
22:33:16 <audigex> _glx_: Your assumption doesn't match my experience... plus "v1" doesn't actually say v1 in the name (because obviously nobody was expecting a v2 when released)
22:33:17 <_glx_> yeah I know
22:33:33 <truebrain> audigex: you can rename content! 🙂
22:33:56 <audigex> truebrain: No I can't, I'm not the author/uploader
22:34:06 <truebrain> ah, lol, fair
22:34:13 <audigex> I say v1 here for clarity durin the discussion but to a user it's not so obvious. And it's REALLY not obvious to them that BROS and MUTS have a successor called BRTrains v2
22:34:40 <truebrain> in your example of BRTrains, I read a lot of the same issues as with FIRS3 / 4
22:35:16 <truebrain> for me the problem there is two-folds: some users want that older content, for .. what-ever reason. We have weird people. On the other hand, people are also made poorly aware of what is available, new, and shiny
22:35:18 <_glx_> and in FIRS3 / 4 the number is in the name
22:36:00 <peter1138> Hmm, `HT_DIR_*` looks a bit like `TRACK_*`
22:36:07 <audigex> I'm completely in favour of trying to contact the original author, but when they don't respond (or haven't left contact information) then I think we need a point whereby something can be done to have *some kind of* (direct or indirect) replacement process whereby the old set can be deprecated and have a new fork drop in as a replacement (with some kind of semi-automatic update process)
22:36:53 <audigex> Leave the old content available as a "No, I do want the old version" (just in case somebody REALLY wants a badly aligned British Rail Mk2 coach, I guess) but have it made clear that it's been replaced by (some other set) with an easy button to replace it
22:37:26 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
22:37:37 <truebrain> I am more thinking along the lines: if we can find a good way of promoting GRFs that are popular, updated, or what-ever
22:37:43 <truebrain> stale content goes to the back on its own
22:38:07 <audigex> That helps to an extent with people not accidentally downloading the old version, but I find a lot of people just search "UK" and download EVERYTHING
22:38:26 <_glx_> yeah some marker saying a new GRFID is updating an old one and an indication in OpenTTD
22:38:43 <audigex> It would also be nice if we could more easily supply a list of "not compatible with" GRFIDs and have a better warning system. Currently I can only warn about GRFs loaded *before* my own, I believe?
22:38:49 <truebrain> and we really need presets, as that creates a form of curation
22:39:43 <audigex> truebrain: In some ways but then how do you curate between BRTrains, UKRS2, UKRS3, RUKTS, Iron Horse, Timberwolf, UKRS3-in-NML? That just means some people's work is probably gonna get prioritised over others and that kinda sucks for whichever of eg RUKTS and BRTrains gets left out in the cold
22:40:07 <_glx_> audigex: no you can also check "to be loaded"
22:40:32 <audigex> If the curator likes hard realism then BRTrains gets chosen and hardly anyone plays the (excellent) RUKTS. Or if they prefer more of a gameplay angle, RUKTS gets chosen and BRTrains gets ignored despite its own merits
22:40:40 <michi_cc> audigex: `grf_future_status` and or `grf_order_behind` should be able to do it, but it does require care with using action 7 and or 9 in the right place, and I have no idea if NML is properly handlign that.
22:40:50 <truebrain> audigex: so that would be two presets 🙂
22:41:05 <audigex> truebrain: 7, by my count,
22:41:13 <truebrain> sure, 7
22:41:16 <truebrain> take 8, if you like
22:41:21 <truebrain> I mean, the number is not the relevant part 🙂
22:41:29 <_jgr_> audigex: Curation is fundamentally about prioritising, you can't have it both ways
22:41:55 <truebrain> it offers a way for people that understand the ecosystem less, to quickly find content that fits together and gives them a certain way of playing
22:42:30 <audigex> Perhaps if there was a way for the curated list to offer options?
22:42:30 <audigex> "Pick one of these train sets based on the following play styles"
22:43:19 <truebrain> (just for context, a preset is https://gist.github.com/TrueBrain/976cab3b6c88f208636653191ba5c420 in my vocabulary)
22:43:21 <audigex> 8bpp 1x>
22:43:21 <audigex> Vanilla replacement: UKRS2
22:43:21 <audigex> Realistic liveries and consists: BRTrains
22:43:21 <audigex> Realistic liveries with a gameplay focus: RUKTS
22:43:43 <truebrain> someone could make a website to make a wizard to find a good preset 😄
22:43:58 <audigex> I'd be pretty gutted if we started getting simple curated lists and BRTrains ended up being ignored by most of the community because RUKTS was a more "generic" option that was therefore more likely to be promoted by curators
22:44:29 <_jgr_> truebrain: Something along these lines perhaps: <https://captainklutz.github.io/GRFRecommendationForum.github.io/>
22:44:33 <truebrain> yeah
22:44:44 <audigex> Like I love RUKTS, all the respect in the world to those guys and we have very little rivalry - but as the maintainer of the slightly more niche set it wouldn't be a nice feeling to find my own work being the option that didn't make it into the lists
22:45:04 <truebrain> audigex: maybe good to emphasise, presets are not done by "curators", but by anyone who uploads one
22:45:36 <audigex> Perhaps, but still it's a risk of leaning into curation that you discourage content creators of the "second best" set etc
22:45:42 <_glx_> they are just a pre made grf list
22:45:53 <truebrain> grf list + settings 🙂
22:46:13 <audigex> Because you might go from a 75/25 split to a 98/2 split
22:46:13 <audigex> Anyway this is all a little sidetracked from the discussions of deprecation etc
22:46:19 <michi_cc> Selectively "suppressing" content is the whole point of presets/curators though. If everything is supposed to still be offered, then we already have that right now.
22:46:44 <truebrain> audigex: it is not a little sidetrack, it is an alternative to deprecation etc
22:47:04 <audigex> michi_cc: And I can see the use of it *to some extent* for supressing old content, but I think there's a risk to it when we have two sets of new content of being very demotivating to newGRF devs
22:47:19 <audigex> Like why would you ever make a new industry set when you're never going to make it into anyone's preset above FIRS?
22:47:38 <audigex> Who's ever going to bother competing with Iron Horse?
22:47:40 <_glx_> oh with all FIRS forks
22:47:44 <truebrain> yet we already have an "out of game" preset list, and yet still many clones of FIRS are being created?
22:48:01 <audigex> Out of game is different, it's much less heavily used than an official version would be
22:48:01 <truebrain> so I am not sure that is as black&white as you think it is
22:48:18 <audigex> How many people use an external preset, really?
22:48:33 <truebrain> looking how often that link is linked in our Discord .. more than 1 😛
22:48:49 <audigex> Probably closer to 1 than N, though where N is the total player community?
22:49:22 <truebrain> that comparison is fault, as most players don't use NewGRFs at all 😉 😛 (and yes, this one was meant childish 😄 Sorry)
22:49:44 <_jgr_> audigex: The "why would you make GRF X" argument does not hold much water really. Just about everything you can do in a GRF has been done already after all.
22:49:49 <audigex> Whereas an official tool would be a fundamental shift in newGRF popularity
22:49:49 <audigex> It's already hard to motivate yourself as a newGRF developer. As you say (joking or not, it's true) most players don't use newGRFs and you can't see how often it's downloaded or used in a savegame
22:49:51 <_jgr_> Creative people will create regardless.
22:50:08 <michi_cc> audigex: Well, this is a can't have your cake and eat it situation, and it somewhat also applies to the deprecation/replacement stuff, too.
22:50:08 <michi_cc> Either authors accept that some third-party has influence on the content selection (be it via presets or replacement markings or whatever), or the unvalued, unordered list is the only way to go.
22:50:12 <audigex> _jgr_: Perhaps, but if every preset includes RUKTS I'd probably give up on BRTrains, for example
22:50:57 <_jgr_> Make your own preset with BRTrains then?
22:51:07 <audigex> michi_cc: I think that's a different consideration, though
22:51:07 <audigex> One is choosing between obviously live projects, the other is allowing a *direct* replacement (specifically a fork) for an existing-but-dead project
22:51:23 <truebrain> audigex: I get your angst here, but I am not sure it holds truth. But it is hard to validate either way, which is annoying
22:51:53 <audigex> Either way I think it's a different consideration to the direct replacement with a fork type of deprecate-and-replace that I'm talking about here
22:52:24 <truebrain> audigex: But as you also notice, not the biggest fan of such solution. It has so many "buts", it is annoying to deal with
22:52:57 <truebrain> so more wondering if we can't have something that is simpler to maintain / explain / use 🙂 But, it is also just a wonder
22:54:08 <andythenorth> if we have curation, we just get multiple curated lists
22:54:11 <michi_cc> audigex: You are right that it is not identical, but conceptually it is the same problem. You are assuming that a person B can decide that the work of person A is obivously worse than the work of person B and has to be suppressed.
22:54:11 <michi_cc> While this might be objectively true in a technically sense (like for a broken GRF), but it still disregards persons A.
22:54:11 <michi_cc> And you are fine with suggesting it because with BRTrains V2, you are person B and not person A. But as rightly mentioned, with presets, you might suddenly be person A, too.
22:54:13 <andythenorth> then we need curated curation
22:55:40 <michi_cc> Hence my argument that if presets are a problem because content might get devalued, deprecation/replacement is a problem, too. So either authors in general can cope with that, or it's not going to go down very well.
22:55:56 <audigex> michi_cc: I think there's a clear difference when one is a direct update of the other, though
22:55:56 <audigex> RUKTS and BRTrains have no shared roots and curating between them is subjective, whereas BRTrains v2 is a direct replacement of BRTrains and is pretty easy to be objective about
22:56:30 <audigex> I don't think it's unreasonable to say that intelligent people can judge objectively whether the v2 project is a direct replacement for v1 and doesn't require much subjective consideration of merit
22:57:01 <_jgr_> audigex: You might see it differently if someone else uploaded an "obviously better/newer" BRTrains v3
22:57:35 <audigex> _jgr_: If I've not been active for 13 years and not responded to attempts to contact me, I think there's a point at which my opinion has to be considered irrelevant
22:59:21 <audigex> Also with BRTrains v2 it's literally the same sprites and most of the same code with bugfixes, and then some additions. The additions could be subjectively judged, I do see where you're coming from... but I think in an open source community there's probably a point where we have to consider work to be abandoned and not require too much subjevitity to cloud progress
22:59:21 <audigex> I do agree with truebrain that we shouldn't hand the old project over, I'm focused rather on how we can build a process that allows for "replacement" to be an actual mechanic
22:59:43 <truebrain> audigex: I think part of the problem is that it is hard to see for anyone but you how much effort you put into that contacting part. Who can't come by and claim they didn, but not actually did? (wondering out loud)
23:00:27 <truebrain> btw, this is not a new problem. npm, pypi, crates.io, ... , they all have similar issues
23:00:31 <audigex> truebrain: Certainly I agree it's tricky to do this retrospectively, but we can update the ToS going forward and state that the user must provide an email and respond within X amount of time to an email request?
23:00:35 <truebrain> their solution, almost universal, is a ranking system
23:01:15 <audigex> If they don't provide an email or respond in the agreed timeframe, they accept that their set may be deprecated and superceded (but not taken over or removed)
23:01:38 <michi_cc> audigex: Just to make it explicit, I am in no way against some kind of replacement system. I'm just thinking that it is strange to be in favour of kind of content moderation while against other content moderation (presets).
23:02:25 <truebrain> audigex: now I am wondering how many authors would go apeshit over such statement in the ToS 😛 We had our fair share of .... issues, with people not agreeing with some lines of our current ToS even 😄 (doesn't say we should or shouldn't do, but I am just wondering how much acceptance this would have in the community as a whole)
23:02:28 <audigex> michi_cc: I'm not against presets, especially now that it's been made clearer it's "user suggestions" rather than true curation (the word curation/curated was used a lot when it first came up). I have concerns about their impacts but that's a separate consideration and applied more to true curation
23:03:25 <truebrain> I do agree btw that an author should take reasonable steps to remain reachable as long as they have interest in their work
23:03:38 <peter1138> This is sounding a bit mad. "Let someone take over another project" "But not mine" "Let someone deprecate some other content" "But not mine"
23:03:56 <audigex> truebrain: Perhaps allow them to even opt in/out of it?
23:03:56 <audigex> You can either accept it and allow others to take over your project (in the spirit of open source) or retain ownership and your project dies when you stop updating it
23:03:56 <audigex> IMO most people would rather not see their work go to waste if they're hit by a bus (I'd love to have people continue using BRTrains v19 in decades to come)
23:04:14 <audigex> peter1138: I'm confused, I've not said that?
23:04:24 <truebrain> audigex: now this is getting a bit more reasonable, if I am being honest 🙂
23:04:49 <truebrain> "Do you allow your content to be superseeded when you are not reachable for NNN years? yes/no"
23:04:53 <audigex> truebrain: And that's my goal here, work through the objections and find a solution we can consider implementing
23:05:16 <peter1138> Ack this rebase...
23:05:38 <peter1138> https://cdn.discordapp.com/attachments/1008473233844097104/1233917002255437864/image.png?ex=662ed642&is=662d84c2&hm=80d144529404e1425d6008dd74e905ef090129081a920397d21b7231c766cd8e&
23:05:38 <peter1138> Need to get this in the right order :p
23:05:40 <audigex> I think that makes sense. That way if someone values ownership over longevity they can have their work die when they leave (I know some people do get protectionist over their work), or they can allow others to take up the mantle
23:05:45 <truebrain> peter1138: lolz
23:07:18 <truebrain> audigex: still not a fan btw; it puts the burden on us, instead of the community as a whole. We have to police that system.
23:07:18 <truebrain> I still rather look for a way where stale content gets to the bottom on its own, and people will find the new content more easily.
23:07:18 <truebrain> personal opinion
23:07:20 <michi_cc> Bit late for commit messages according to `git rebase --autosquash` I guess 🙂
23:07:24 <audigex> peter1138: At no point have I said "but not mine" in any of this? I simply said that I've got concerns about curation (especially when it seemed like it was actual curation rather than presets with a voting system) that it could end up making newGRFs into an all-or-nothing scenario, where either you're on the most popular preset (and get 99% of downloads) or vanish into the ether, which could be
23:07:24 <audigex> frustratin
23:07:58 <peter1138> it's call paraphrasing.
23:08:08 <audigex> Paraphrasing implies you retain the core meaning, you did not
23:08:51 <audigex> Let me be clear, if I vanish for 5 years and cannot be contacted, I give express permission to hand BRTrains to anyone who wants it. I've never suggested otherwise and would be hypocritical to do so considering it's entirely based on 2 other projects I adopted
23:09:06 <audigex> If I vanish for less than that, make a judgement call if you can't get hold of me
23:09:30 <truebrain> audigex: I think most of the confusion came from you panicing with the suggestion anyone in your readme could take ownership 🙂
23:09:32 <michi_cc> Presets will make it into an all-or-nothing scenario. Either that (due to some presets being very popular and recommended everywhere), or we just moved the whole discussion from today a few years into future, just with outdated and broken presets.
23:10:17 <truebrain> michi_cc: true
23:10:18 <peter1138> presets = gameplay settings and presets?
23:10:21 <audigex> truebrain: Yes, there's a distinction of thinking somene can take over an active project without speaking to the active maintainer
23:10:31 <truebrain> peter1138: yes
23:10:36 <peter1138> Good.
23:10:40 <truebrain> yes 🙂
23:10:46 <truebrain> it also defines playstyle 🙂
23:11:11 <audigex> michi_cc: That's a valid concern too, I think
23:11:15 <peter1138> Sadly, I do not have a patch for that.
23:11:25 <truebrain> for a change, I do!
23:11:39 <peter1138> But also, fortunately I do *NOT* have a patch that does preset-sharing that is only NewGRF presets...
23:11:39 <truebrain> shockingly easy, even
23:11:50 <truebrain> peter1138: haha 😄
23:12:44 <andythenorth> just recommend grfs by amount of content
23:12:47 <andythenorth> most railtypes wins
23:12:51 <truebrain> no
23:13:05 <peter1138> My thought process about that was "it would be nice is newgrf presets were stored in their own config file each" which sounds small... then you add on "oh, and all the gameplay settings too" and it's now a huge scope 😄
23:13:13 <truebrain> audigex: yeah, that is more clear now 🙂
23:13:18 <peter1138> And that's before you get anywhere with sharing them and content.
23:13:35 <truebrain> peter1138: I reworked parts of the ini-load system a while ago to make that possible, as I already had this in mind 😄
23:13:47 <audigex> peter1138: Include a map and we could call it a scenario!
23:13:51 <truebrain> the BaNaNaS part, and how to arrange that, that was more of an issue 🙂
23:14:07 <kamnet> Presets are nice but it's not going to fix a fundamental problem of what do we do about content that is missing files or content that has newer updates hanging out, or content that is broken but easily fixed.
23:15:13 <kamnet> If you want the community to be more responsible for this stuff, you have to actually let the community step up and claim responsibility.
23:17:42 <truebrain> ghehe, I was looking at npm, how they address this issue. They do not have a deprecation in that sense. But if you search for something, which is the most common way to find a package, it sorts it in such a way that content that is more likely to be what you need is on top
23:18:02 <truebrain> but you can find shitty 0.0.1 releases of shitty and broken implementations of that same search too .. just WAY WAY down
23:18:48 <truebrain> crates.io does exactly the same
23:18:59 <truebrain> 2 main statistics they precent: popularity and when-last-updated
23:19:15 <peter1138> truebrain: I've used some of it today to make saveload of your "favourite" in game newgrf trhings (stations, objects, etc)
23:19:18 <peter1138> Was super easy.
23:19:28 <audigex> I think we could make a start by allowing
23:19:28 <audigex> 1. Deprecation (just generally needed) for versions
23:19:28 <audigex> 2. Authors to define their work as "Can be superseded after X years of inactivity"
23:19:28 <audigex> At least that's a framework for allowing future changes, even if it doesn't directly address some of the concerns raised here today
23:19:36 <peter1138> (Likely means I've done it wrong :D)
23:19:47 <truebrain> OpenTTD is never easy 😛
23:20:01 <audigex> 1 is already included in issue #31 I believe?
23:20:01 <audigex> I'll make a ticket/issue for 2
23:20:04 <peter1138> Rebase complete, does it compile.
23:20:21 <peter1138> (And then, does each individual commit compile)
23:20:26 <peter1138> (That one is a no right now)
23:20:38 <truebrain> audigex: You are kinda stuck as this being the right solution; I am wondering if you can think of other ways to reach the same objective
23:20:49 <truebrain> (just as a creative process)
23:21:07 <audigex> "Accidentally" delete the old content 😉
23:21:14 <truebrain> anything else? 😄
23:21:35 <truebrain> pypi only uses the "last updated" as indicator; not even popularity. But the sorting heavily suggests they do take it into account
23:22:13 <truebrain> none of them support deprecation or fixes by anyone not the maintainer btw
23:22:27 <truebrain> (not saying it is good or bad, just indexing what other systems like BaNaNaS do to deal with it)
23:23:48 <peter1138> Do they have a maintainer transfer system?
23:23:52 <truebrain> yup
23:24:02 <truebrain> all seem to have an ACL much like us
23:24:10 <truebrain> so the current maintainer needs to add the new one
23:25:14 <yup> hm?
23:25:36 <truebrain> owh, they call it different: name transfer
23:25:46 <truebrain> with the idea you take over the name, not so much "have a better system"
23:26:06 <truebrain> which is often used, seemly, to just replace a package with a totally different something 😛
23:26:25 <truebrain> `Check the criteria above to see when a transfer is allowed. In particular, the criteria for reusing a name for a different project are more stringent than for continuing maintenance of the same project - although it’s not easy to get a name transferred in either case.`
23:26:27 <truebrain> ghehe, that last part
23:26:53 <peter1138> Speaking of preset sharing, anyone have a preset for a good selection useful stations, roadstops, objects etc...
23:26:57 <audigex> Ideas aren't the hard part, finding one that makes reasonable sense is. I'd disagree that I'm stuck on one idea, though.... I've thought of a handful and dismissed some myself before bringing them up as unreasonable or impractical, discussed others here, and finally settled on just doing some ground work that could allow for other solutions in future.
23:26:57 <audigex> - Admin deleting would work, obviously not reasonable (mentioned above as a joke)
23:26:57 <audigex> Personally I'd just allow it to be taken over directly, we've already dismissed that though due to legal concerns among other things (requiring third party consideration/intervention etc)
23:26:57 <audigex> I'd also suggest allowing authors to point their work at another work and declare it to be an "Update for", but that seems too open to abuse and I dismissed it before mentioning it
23:26:57 <audigex> Pushing it down the list based on recent downloads, (lack of) recent updates, and votes/other measures of popularity is viable, personally I don't think it allows for enough of a "direct/indirect update" path
23:26:59 <audigex> Allowing the author to provide a "next of kin" list of specific people who can either take over the project or authorise changes to it
23:26:59 <audigex> Allowing the author to set a general "people can take over in future" flag
23:27:01 <audigex> Expiring/deprecating content X years after an update. Seems kinda pointless though, it would hit a lot of projects that are not contentious, just finished
23:27:01 <audigex> Building in more contact methods: just generally beneficial
23:27:04 <peter1138> (Rather than jkust add ALL OF THE THINGS hehe)
23:27:45 <peter1138> Iron Horse 1.9.1. I guess that's an older scenario.
23:28:35 <truebrain> audigex: Tnx. And no, we can't see what goes on in your mind 😄
23:28:45 <andythenorth> peter1138: please delete that one
23:28:50 <audigex> After considering the above, I figure the best thing to do *currently* is allow deprecation in general (so AndyTheNorth can deprecate FIRS1...) per ticket #31, and adding *something* to allow the user to flag their set as allowing some kind of takeover in future
23:28:50 <audigex> IMO it's better to leave that open ended, but I figured discussion on the issue could include "providing successors"
23:29:21 <audigex> truebrain: No, but sometimes an idea isn't actually worth putting forward for discussion (admins just deleting when it's too old, for example, would obviously never be workable)
23:29:30 <peter1138> Alternative interim solution for kamnet that might easier: hack into github...
23:29:30 <truebrain> it might spark others to hav eother ideas 😉
23:30:26 <truebrain> "Alternative of" is not even a bad idea or something
23:30:39 <truebrain> would require a tons of (UI) changes, but ignoring that
23:31:25 <truebrain> https://peps.python.org/pep-0541/#implementation is what PyPi does
23:32:46 <audigex> Technically, could we legally just allow someone else to upload a new version (of which they are an author) with the same GRFID and a higher version? And that would therefore override
23:32:46 <audigex> To be clear, I'm not asking (yet) if we want to take that approach, just whether it would be technically and legally viable
23:33:23 <audigex> Technically it would work as long as BaNaNaS and OpenTTD allowed/understood it, correct?
23:33:23 <audigex> Legally, it's a separate project.... that just happens to override the original one in game and be savegame compatible
23:33:42 <audigex> Again leave aside "should we?" for a second, I'm just asking the "could we, legally and technically?"
23:33:43 <truebrain> audigex: There is Copyright, which makes you the owner of your work. If you upload it to BaNaNaS, we consider you the copyright holder. No matter your license, you are the owner, and only you can upload a new version (or add more owners to do the same)
23:34:12 <audigex> Okay, but if it's a separate, legal project that happens to use the same GRF ID and legally obtained code?
23:34:26 <truebrain> BaNaNaS assignes ownership based on GRFID
23:34:37 <audigex> But nothing in the TOS promises to do so
23:34:43 <truebrain> there can only be 1 package with the GRFID
23:34:52 <truebrain> if any other upload has the same GRFID, it is refused
23:35:06 <audigex> Currently. Could that be changed if desired?
23:35:10 <truebrain> (without that constraint, many systems would get very confused)
23:35:14 <truebrain> no
23:35:21 <truebrain> the database is stored based on GRFID
23:35:29 <audigex> Gotcha
23:35:38 <audigex> So there's a technical limitation there
23:35:45 <truebrain> https://github.com/OpenTTD/BaNaNaS/tree/main/newgrf for context
23:35:46 <peter1138> Switch from GRFIDv4 to GRFIDv6.
23:35:58 <truebrain> (and yes, that is the database)
23:36:15 <audigex> peter1138: I am absolutely not remembering an IPv6 GRFID 😂
23:36:35 <peter1138> It's okay, we have GNS. Grf Name Resolution
23:36:48 <peter1138> That's GNR.
23:36:50 <peter1138> Oh well.
23:36:53 <peter1138> It's late 😄
23:38:10 <audigex> So what is "6f747465" in this context? Is that some other representation of "brv2" (the GRF ID)
23:38:10 <audigex> https://github.com/OpenTTD/BaNaNaS/tree/9cb0cabbd861dbeb3a3fdd856097118f3d5d4c75/newgrf/6f747465
23:38:31 <truebrain> okay, npm no longer allows transfer of names for abandoned projects: `the process has changed since this issue was opened. We opted to move towards not allowing adoption of abandoned pacakges as it was an attack vector for folks could use for a supply chain attack.`
23:38:41 <truebrain> makes sense from their perspective, but irrelevant for us
23:38:48 <truebrain> audigex: it is your GRFID, yes
23:38:51 <audigex> Yeah not really a concern here
23:39:36 <audigex> truebrain: Gotcha. Then yeah, I don't think it would have passed the "should we" test, and not worth re-writing BaNaNaS to handle it... it just occurred to me that it would probably be a loophole in the legal consideration
23:40:01 <truebrain> honestly, legal left there, we also try to be open and fair to the authors what to expect
23:40:52 <truebrain> So without a change in the ToS, it feels really wrong to all of a sudden being able to take over, in what way that might be, content of another author 🙂
23:41:20 <truebrain> anyway, AIs have it far worse than NewGRFs
23:41:28 <truebrain> many AIs have weird issues that are easily solved
23:41:37 <truebrain> but the original author no longer responds in any way shape or form
23:42:12 *** tokai has joined #openttd
23:42:12 *** ChanServ sets mode: +v tokai
23:42:52 <truebrain> haha, crates.io has an even more creative way of "solving' this issue 😄
23:43:01 <truebrain> the only way is if the original author gives consent
23:43:08 <truebrain> but this can be in the way of updating their README with:
23:43:13 <truebrain> `I consent to the transfer of this crate to the first person who asks help@crates.io for it. `
23:43:18 <truebrain> that is just briliant 😄
23:46:12 <truebrain> audigex: I am kinda wondering if an "Alternative Of" would also address the issue. Just to get a bit more perspective of what solutions are there.
23:46:53 <truebrain> so that you could upload "BRTrains v2" as "alternative of" "BRTrains", and deal with that some how in the UI in a clean way
23:47:02 <truebrain> so people clicking on "BRTrains" can see "BRTrains v2" exists
23:48:33 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
23:48:40 <audigex> Possibly. The main "goal" for me would be that someone who has BRTrains/BROS/MUTS would get some kind of "There may be an updated version of this GRF: BRtrains v2"
23:48:40 <audigex> Ideally I'd love a system where it actually just updates (and allowing the old set to point the new one might work, if the old author can be found?) but the above would be okay
23:48:40 <audigex> Perhaps allow an option of "Replaced by:" or "Replaces:". If both are set (eg you eventually get hold of the original author), treat it like an update, otherwise just suggest it?
23:48:51 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
23:49:30 <audigex> I also just generally like the idea of allowing successors: Either specific users, "devs", or "anyone". Or maybe "anyone with write access to the github for the project" or something?
23:49:52 <audigex> The latter is kinda a separate idea for making this whole thing easier in future by allowing a "next of kin" approach
23:50:09 <truebrain> a last thought before I hit the sack, we also have to consider abuse, and the limited capacity we as development team have to deal with any of this.
23:50:32 <truebrain> as any official system might spark a lot of people trying to "claim" older content that isn't maintained anymore
23:50:41 <truebrain> and not always for the right reasons
23:51:13 <audigex> True, although we don't tend to be an abusive community surely? Perhaps only allow it with approval and with accounts in good standing or something. I'd happily moderate that if you just send me an email when it's requested
23:51:22 <truebrain> (so, in your example, what makes your BRTrains v2 worth the successor of BRTrains, and not some other upload that also considers themselves the successor)
23:51:44 <truebrain> audigex: no, but people can get competitive 😛
23:53:47 <audigex> True. For BRTrains v2 as a replacement for BRTrains it's not actually a big deal, I did manage to get hold of the uploader and he's set it to max out at OpenTTD 13, so that issue is resolved now
23:53:47 <audigex> But I appreciate that it can get subjective if I'm adding something: Like who decides if it's "worthy" - IMO the entire point of abandonware in open source would be that it doesn't matter, the fork doesn't *have* to be "better"
23:53:47 <audigex> I could also point to the fact that I was actually an original artist on BROS/BRTrains, therefore I'm not entirely new to the project just taking over the maintainer role
23:53:47 <audigex> But that's specific to BRTrains, and I take the point that there may be moe nuanced cases
23:54:08 <audigex> Perhaps the original author can return and reject the suggested "alternative to"?
23:54:20 <truebrain> Either way, my summary of this evening is:
23:54:20 <truebrain> - We need to look into sorting our content better, by some kind of ranking, so "newer" and "better" content is higher in the list (what npm/pypi/crates do)
23:54:20 <truebrain> - We really need a way for authors to deprecate their own work better
23:54:20 <truebrain> - We need to look into a way to help out with "broken" (in what-ever definition of that word) content
23:54:20 <truebrain> Anyway, I am off to bed. Tnx for the constructive conversation audigex 🙂
23:54:30 <audigex> If they don't.... tough, it's open source
23:54:48 <andythenorth> such bed
23:54:49 <andythenorth> also
23:54:50 <audigex> truebrain: You too. It definitely feels like there are solutions here, it's just a matter of figuring out which ones
23:55:24 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)