Config
Log for #openttd on 17th January 2023:
Times are UTC Toggle Colours
10:31:47  *** godbed is now known as debdog
10:41:50  <andythenorth[d]> oh GS runs in pause
10:41:50  <andythenorth[d]> ok
10:44:38  <Samu> for some reason yes, i really dunno why
10:44:49  *** UnluckyDoge has joined #openttd
10:44:49  <UnluckyDoge> join now https://discord.gg/tiktoksex
10:47:14  <CplBurdenR3294> UM
10:47:44  <Simo333> Unexpected development
10:47:55  <CplBurdenR3294> https://tenor.com/view/bold-strategy-dodgeball-cotton-strategy-tactics-gif-4957668
10:48:17  <LordAro> don't react to spammers
10:48:25  <LordAro> just call an admin however you do that
10:48:32  <CplBurdenR3294> Rico
10:48:45  <CplBurdenR3294> I wasn't sure if Unlucky was a Spammer given their role though
10:48:59  <Simo333> Most likely hacked
10:49:05  <CplBurdenR3294> Ah, that'd explain it
10:50:13  *** Rico[d] has joined #openttd
10:50:14  <Rico[d]> Banned
10:51:48  <CplBurdenR3294> Excellent, I've removed my gif since, nothing to react to.
10:59:21  <reldred> Too bad the IRC users still had to put up with everything πŸ˜›
11:06:14  <CplBurdenR3294> Well its their fault for refusing to modernise πŸ˜›
11:07:40  * LordAro slaps CplBurdenR3294 with a large trout
11:08:01  <CplBurdenR3294> ah memories
11:08:33  <CplBurdenR3294> I say the modernise thing somewhat with irony, as man i've been running some old hardware and software up until recently, so I am one to talk
11:43:59  <FLHerne> random code-style question: 0xFFFF or UINT16_MAX?
11:44:08  <FLHerne> the existing code mostly uses the former
11:44:30  <FLHerne> I realised that I was inconsistent and used both in different places of https://github.com/OpenTTD/OpenTTD/pull/10365/files
11:44:48  <LordAro> "it depends" :p
11:44:51  <petern> Hmm, what is Gemini, and why are there so many clients and servers for something I've never heard of...
11:45:38  <FLHerne> personally I prefer UINT16_MAX as being less arbitrary, but then it makes newgrf.cpp inconsistent unless I changed the various other instances
11:46:11  <LordAro> i would say that UINT16_MAX should be used if you're trying to fit something into a uint16
11:46:15  <LordAro> otherwise, it's a different constant
11:46:24  <LordAro> (that just happens to be the same)
11:47:37  <petern> If it's NewGRF stuff, then it should be 0xFFFF, as the spec will be 0xFFFF not "UINT16_MAX"
11:47:48  <petern> But in that case it should also be a constant πŸ™‚
11:47:50  <FLHerne> LordAro: specifically it's "there's no speed limit, so we make the speed limit the highest possible speed"
11:48:26  <FLHerne> it's in NewGRF code but not directly grf-API-facing
11:48:47  <FLHerne> (speed being a uint16)
11:49:32  <petern> `if (speed == 0xFFFF) speed = 0;` ... well
11:49:45  <FLHerne> petern: I didn't add that one :p
11:49:50  <petern> Yeah, that one is right.
11:50:11  <FLHerne> actually, I'm currently halfway through a patch to take that one out
11:50:13  <petern> `bridge->max_length = 0xFFFF` should probably be UINT16_MAX
11:50:33  <FLHerne> I was going to do bridges like that with special-cased 0 speed
11:50:37  <petern> That's the only existing 0xFFFF used that way./
11:50:49  <FLHerne> then I realised just how many hacks are scattered through the codebase to deal with special-cased 0 speed
11:51:15  <FLHerne> almost all of which just treat it as UINT16_MAX (implicitly or explicitly) anyway
11:51:15  <petern> So if (speed == 0) speed = UINT16_MAX
11:51:20  <FLHerne> yeah
11:51:40  <petern> Yeah, so in that case, use UINT16_MAX πŸ™‚
11:51:52  <FLHerne> so now I started (seperately from this PR) trying to remove the speed = 0 hack from road/railtypes
11:52:03  <FLHerne> unless I've missed some reason it's necessary
11:52:08  <FLHerne> well, not hack
11:52:23  <Samu> i fail at 2's complement
11:52:25  <FLHerne> but I don't see the point
11:52:51  <petern> FLHerne: Every conditional takes time...
11:53:23  <FLHerne> petern: yeah, so removing all the "if speed == 0" conditions should be an improvement
11:53:59  <FLHerne> I'm just wondering if there's some reason I missed that just making "no limit" UINT16_MAX doesn't work for road/railtypes
11:54:28  <FLHerne> after all, someoneβ„’ wrote all the speed-0-is-unlimited stuff in the first place
11:54:52  <petern> Probably not, just remember to change the default value in the original data.
11:55:00  <FLHerne> yes, I've done that :-)
11:56:02  <FLHerne> not closely relevant - is there any way a grf can overwrite another grf's action0?
11:56:20  <petern> As long as you check in all case that 0 limit is treated the same as max limit.
11:56:25  <petern> Yes.
11:56:44  <FLHerne> I'm wondering if I should be doing the "if (speed == 0) speed = UINT16_MAX" in AfterLoadGRFs
11:56:53  <FLHerne> rather than directly in action0
11:57:07  <petern> I don't see any reason to do that.
11:57:10  <FLHerne> because that's where similar stuff seems to be done
11:57:16  *** MarcosBisbalMUFH|C1 has joined #openttd
11:57:16  <MarcosBisbalMUFH|C1> https://cdn.discordapp.com/attachments/1008473233844097104/1064876054168219739/image.png
11:57:16  <MarcosBisbalMUFH|C1> Don't know if this could be the right place to share this but, well... here it goes! I've been playing this game since before it was called "OpenTTD", it was just called "Transport Tycoon Deluxe" back then, and recently I'm using the Steam version. I've always have the feeling that industries are unbalanced in terms of quantity. What do I mean? Well, as a player, personally, I always connect 3 or 4 industries that produce
11:57:16  <MarcosBisbalMUFH|C1> industry and of course, there are industries that stay there unnecessarily because I never use them, some of them even close due to lack of raw materials. It doesn't make any sense to me to connect only one producing industry with only one receiving industry. I would like something to be able to balance the number of industries in the game or at least to have the option available, each player will determine whether to use
11:57:16  <MarcosBisbalMUFH|C1> get some numbers I share these numbers with you which I show in the image.
11:57:16  <MarcosBisbalMUFH|C1> How would I balance it? Well, in the case of the first scenario, for a single Factory I would use 3-4 Steel Mills and 9-12 Iron Ore Mines. The same for the case of the second scenario, one Printing Works, 3-4 Paper Mills and about 9-12 Forests.
11:57:18  <MarcosBisbalMUFH|C1> Call me crazy if you want, but I would really like an option to be able to balance the industries in a better way.
11:57:48  <petern> AfterLoadGRFs is mainly where you need the original state while loading, which you don't here.
11:57:57  <FLHerne> so I tried to think why it would matter, and I thought maybe the grf would do the action0, and then something else might modify the action0 value after that but before AfterLoadGRFs is called
11:58:16  <FLHerne> but I don't know if that's true :p
11:58:32  <petern> If something else modifies it, then the same condition would be executed.
11:59:25  <FLHerne> ok
11:59:59  <Samu> these guides on the internet don't do what i want
12:00:05  <FLHerne> MarcosBisbalMUFH|C1: NewGRF can do that
12:00:13  <FLHerne> there's no game setting
12:00:33  <FLHerne> you can place them by scenario but they'll end up drifting back by industry opening/closure
12:00:48  <FLHerne> or start a game with very few industries and create more primary ones by prospecting
12:01:19  <FLHerne> *in the scenario editor
12:04:45  *** WormnestAndroid has joined #openttd
12:07:14  <MarcosBisbalMUFH|C1> Oh, wait. Prospecting? How can i do that?
12:07:35  <MarcosBisbalMUFH|C1> FLHerne: Any good recomendation?
12:08:13  <Brickblock1> firs
12:08:33  <FLHerne> MarcosBisbalMUFH|C1: settings -> manual industry placement method -> prospecting
12:09:10  <FLHerne> or you can set it to fund them in a specific location like secondary industries, but that's cheating-ish IMO
12:12:01  <FLHerne> I play with FIRS, but tbh the balance of industry numbers is one thing I don't love about it
12:12:08  <FLHerne> not sure what else is out there
12:12:46  <Samu> I need help, I want 3392918397 to become -902048899, help me
12:13:08  <Samu> int64 to int32
12:13:42  <FLHerne> what
12:13:48  <MarcosBisbalMUFH|C1> FLHerne: Well well, thanks for all the comments, really apreciated. πŸ˜‰
12:14:21  <Samu> I want (int32)3392918397 = -902048899
12:14:31  <Samu> to maintain compatibility
12:14:45  <Samu> need to make the operation manually
12:14:57  <Samu> because i'm working as int64
12:15:20  <Samu> how is this convertion done in code?
12:15:24  <Samu> with maths
12:16:27  <Samu> because i'm working in squirrel, I can't just use(int32)thenumber
12:16:42  <Samu> I'm forced to do the convertion using maths
12:22:30  *** keikoz has joined #openttd
12:23:09  <Samu> two's complement conversion guides i've found on the internet don't do exactly what I ask
12:27:33  <LordAro> i'm certain you're doing the wrong thing
12:28:16  <andythenorth[d]> I am very puzzled
12:40:52  *** Lemuria has joined #openttd
12:40:53  <Lemuria> Hey, how do I compile the OpenTTD JGR source into a debian package?
12:47:22  <Lemuria> Ah, it's `./make_bundle.sh`
12:47:28  <FLHerne> Lemuria: he does build debian packages for the released versions: https://github.com/JGRennison/OpenTTD-patches/releases
12:50:00  <Lemuria> I still prefer to build it myself, but thanks for linking though.
13:32:51  <andythenorth[d]> hmm circular tile search from a town?
13:33:03  * andythenorth[d] needs to build industries specific to a town
13:33:09  <andythenorth[d]> need to find an xy
13:33:21  <andythenorth[d]> in GS
13:33:43  <petern> Add a parameter to the prospecting command that only OWNER_DEITY can use...
13:34:50  <andythenorth[d]> that would be ideal
13:35:03  <andythenorth[d]> currently I'm reading the GS libs to see which ones have a tile search
13:35:30  <andythenorth[d]> Spiral.Walker.nut
13:35:53  <andythenorth[d]> don't really want to use a lot of commands trying to build on each tile in a spiral πŸ™‚
13:36:45  <andythenorth[d]> how do we extend GS anyway? πŸ˜›
13:37:08  <dP> it's not ideal to move custom functionality from mod to the game
13:37:28  <dP> why do you even need a tile search, just place industry somewhere near
13:38:31  <dP> citymania places industries in an uneven rectangular frame around town, imagine adding parameters for that :p
13:39:23  <petern> Does that cope with finding suitable terrain to place the industry nearby, or does the GS have to handle that?
13:39:54  <dP> it just does a high enough number of tries
13:40:14  <petern> "It" being the command or the GS?
13:40:53  <dP> command, also it's done on map generation
13:41:31  <andythenorth[d]> it just seems a bit odd
13:41:48  <FLHerne> some better generic tile search would improve GS/AI I think
13:42:01  <dP> though idk what you mean by command, it's a patched map generator code
13:42:02  <andythenorth[d]> if I tried to write my own prospecting routine, half the channel would be like 'wtf are you doing, you are a content author, stop doing things you don't understand'
13:42:03  <FLHerne> a lot of them seem to spend months of game time doing relatively trivial searches
13:42:16  <petern> What if x,y is unsuitable but x+4,y+4 is suitable?
13:42:18  <andythenorth[d]> but if we want constrained prospecting, now I'm suddenly an expert programmer?
13:42:48  <petern> dP: "Don't change command code just for GS" "Btw I changed the code" Uh-huh.
13:42:52  <andythenorth[d]> changing the goal doesn't change my skill level πŸ™‚
13:43:38  <dP> petern: I changed a lot of code and hardly any of it is useful for anyone but me :p
13:44:01  <petern> Yes, but you changed it because you couldn't achieve what you wanted with a GS.
13:44:13  <petern> (Or you could but it was quicker & simpler)
13:44:34  <Samu> SQInteger is int64, right?
13:44:36  <dP> there just are way to many cases of industry placement to add it to the game itself
13:44:52  <dP> it's like inbuilt citybuilder that openttd has but noone uses because it sucks
13:45:13  <andythenorth[d]> I have considered this, and I think I disagree πŸ™‚
13:45:35  <andythenorth[d]> being able to constrain placement to a segment of the map is not going to do harm
13:45:44  <andythenorth[d]> it has been discussed before in various forms πŸ™‚
13:45:46  <andythenorth[d]> regions etc
13:46:44  <dP> it's useful, but it my experience pretty much any game mode I do requires a custom map generator for placing industries
13:47:00  <dP> I can't even figure out a coherent way to put it in the config
13:48:01  <andythenorth[d]> frosch wrote something about 'areas' https://wiki.openttd.org/en/Development/Design%20Drafts/Scripts/Area%20Control
13:48:11  <andythenorth[d]> someone else did similar for 'regions' but I can't find it
13:49:32  <petern> How do you find these things?
13:49:37  <andythenorth[d]> google
13:49:40  <andythenorth[d]> honestly
13:49:52  <andythenorth[d]> but usually I know that somebody talked about it once or twice
13:50:05  <andythenorth[d]> they're all on frosch's wiki page also
13:50:16  <andythenorth[d]> https://wiki.openttd.org/en/Archive/Community/Users/Frosch
13:51:14  <dP> andythenorth[d]: I don't see how that would help you fund an industry that belongs to a certain town, it's a very complex area to define
13:51:44  <dP> also I still don't understand why you want that as if you plan to use cargomonitor it's doesn't count cargo by industry town
13:52:34  <andythenorth[d]> it's more like "why can't industries be placed in a certain town?"
13:52:47  <andythenorth[d]> how can anything interesting be done with GS if the spec is constantly nerfed?
13:53:04  <dP> it would be way more simple to just add a method to set town of the industry
13:53:29  <andythenorth[d]> right
13:54:14  <andythenorth[d]> do we know which town a tile belong to before an industry is built?
13:54:17  <dP> iirc even game doesn't know the area that belongs to the town, it can only check each tile individually
13:54:34  <dP> and that involves iterating all towns
13:54:41  <andythenorth[d]> I am uncertain if GS has a 'test' mode, like holding shift as player
13:54:56  <dP> if it doesn't it should xD
13:54:57  <andythenorth[d]> can I test building an industry and getting a result?
13:55:10  <andythenorth[d]> 'this would have succeeded'
13:55:11  <dP> testing doesn't even need 1 tick delay
13:55:43  <andythenorth[d]> how does GS even?  The wiki is mostly about AI and limited
13:55:50  <andythenorth[d]> do I need to fix the docs or something?
13:56:08  <andythenorth[d]> seems GS has to be learnt by (1) reading Zuu scripts (2) reading openttd src
13:56:59  <Samu> i think i did it
13:57:03  <andythenorth[d]> these are the GS docs https://wiki.openttd.org/en/Manual/Game%20script
13:57:07  <andythenorth[d]> and then doxygen
13:59:37  <petern> There is ScriptExecMode and ScriptTestMode, but I don't know how they work or are used.
13:59:53  <andythenorth[d]> I will google πŸ™‚
14:00:31  <andythenorth[d]> `    /* In test mode we only return 'false', telling the DoCommand it
14:00:31  <andythenorth[d]> *  should stop after testing the command and return with that result. */
14:00:31  <andythenorth[d]> `
14:00:38  <andythenorth[d]> someone ask chatGPT
14:01:35  <Samu> if ((r & 1 << 31) != 0) r = r | ~((1 << 31) - 1);
14:01:48  <Samu> r = (int32)3392918397 = -902048899
14:01:53  <Samu> success!
14:08:36  <glx[d]> andythenorth[d]: AI existed before GS, and GS is very similar to AI with more powers, and some extra API
14:08:57  <andythenorth[d]> yes
14:09:17  <andythenorth[d]> I think the TL;DR would 'can doxygen be made searchable'
14:09:25  <andythenorth[d]> either by a plugin, or indexing, or it not being doxygen
14:09:46  <andythenorth[d]> /* In test mode we only return 'false', telling the DoCommand it
14:09:46  <andythenorth[d]> *  should stop after testing the command and return with that result. */
14:09:51  <LordAro> https://www.doxygen.nl/manual/searching.html
14:09:55  <andythenorth[d]> https://www.doxygen.nl/manual/config.html#cfg_searchengine
14:11:32  <andythenorth[d]> oh there's a pipeline for doxygen to sphinx using something called breathe? https://devblogs.microsoft.com/cppblog/clear-functional-c-documentation-with-sphinx-breathe-doxygen-cmake/
14:14:55  <LordAro> i don't think we'd want anything other than client side searching
14:15:05  <LordAro> server side searching gets complicated fast
14:15:17  <LordAro> and the current deployments certainly aren't set up for it
14:16:14  <andythenorth[d]> wondering if I can run sphinx locally
14:16:20  <petern> Deliberately as static as possible, aren't they?
14:16:25  <LordAro> yup
14:16:27  <andythenorth[d]> yes
14:16:39  <LordAro> andythenorth[d]: it's hard enough to run on a server, i wouldn't bet on it
14:17:35  <andythenorth[d]> anyway I 'googled' src for ScriptTestMode and it's clearly a thing
14:17:43  <andythenorth[d]> but I can't discern how to switch mode
14:18:04  <andythenorth[d]> no examples in tt-forums
14:18:28  <glx[d]> It's scope based
14:18:40  <LordAro> AITestMode is definitely used in a few AIs
14:18:45  <LordAro> should be able to copy that
14:18:46  <andythenorth[d]> google only finds our src
14:18:49  <LordAro> but yeah, complicated
14:19:03  <LordAro> ...are you googling ScriptTestMode or GSTestMode ?
14:19:11  <andythenorth[d]> trying AITestMode now
14:19:31  <andythenorth[d]> got a result https://www.tt-forums.net/viewtopic.php?t=37887
14:19:33  <LordAro> Script* only exists in the cpp code
14:19:43  <andythenorth[d]> yeah I keep forgetting the prefix changes
14:20:04  <andythenorth[d]> we can improve all this, if we can make nfo workable, this is relatively easier
14:23:32  <andythenorth[d]> oh left turn, I'd never seen this https://www.tt-forums.net/viewtopic.php?t=68828
14:23:43  <andythenorth[d]> GS adapter for the admin port
14:23:48  <andythenorth[d]> so...multiple GS? πŸ˜›
14:24:13  <andythenorth[d]> but you have to run them via some external process πŸ˜›
14:29:24  <glx[d]> We could possibly optionally enable some doxygen stuff like CHM generation or macos  doc sets
14:39:02  <andythenorth[d]> might be nice
14:40:22  <Samu> i wish github desktop could show me unified diffs from different commits together
14:40:38  <Samu> is there a way, or must I upload to the web
14:56:55  <LordAro> you definitely don't need to push it anywhere to view more than one commit at once
14:57:04  <LordAro> but github desktop may not be able to display more than one, i suppose
14:57:27  <LordAro> `git show <my-commit-hash-here>` from the command line
15:05:33  <Samu> well, i decided to use the web
15:05:41  <Samu> im too noob for command line stuff
15:06:00  <petern> Didn't know there was some desktop github app.
15:06:11  <petern> I just use git stuff within VS Code.
15:06:26  <Samu> so, the unified diff for regression.txt doesn't show anything related to random values https://github.com/OpenTTD/OpenTTD/compare/master...SamuXarick:OpenTTD:script-random-values?expand=1#diff-8648c291a66295a5733e63097d9ab4761676f87d5cdc956d546bc5c3ccef84ba
15:06:46  <Samu> which means... my random number convertions are working!
15:07:29  <Samu> but i had to regress api version to 13 to test regression
15:07:46  <Samu> force it to use the compat_13.nut
15:08:03  <petern> If nothing is different, is anything different?
15:09:49  <Samu> look at compat_13.nut
15:10:30  <LordAro> petern: https://xkcd.com/722/
15:10:30  <glx[d]> But regression should use current api
15:11:25  <glx[d]> Else how could it detect an issue ?
15:12:02  <LordAro> i imagine Samu is adding compatibility functions and wants to make sure that nothing more has changed
15:12:13  <LordAro> possibly.
15:14:35  <Samu> i want the old Rand() to still return negative values for API 13 and lower
15:14:44  <Samu> that's what the convertion do
15:14:56  <Samu> the new Rand() will only return positives
15:15:10  <Samu> for API 14 possibly
15:16:37  <dP> I imagine Samu randomly changing random seed until his randomly generated code fixes some random issue
15:16:44  <dP> possibly wrong πŸ˜…
15:20:36  *** nielsm has joined #openttd
15:22:02  <petern> Huh, of course, the javascript change event occurs after the form is submitted.
15:22:09  <petern> I hate front-end...
15:24:19  <andythenorth[d]> 'event-driven JS'
15:25:03  <andythenorth[d]> I used to hate async Flash: your call has returned, but you decided to be non-blocking, so now local state has changed
15:25:10  <andythenorth[d]> GG
15:25:24  <andythenorth[d]> 'mistakes were made'
15:27:13  <petern> It's a stupid design, the values are updates as you change them via API, and the submit button doesn't actually submit the values, it just says "yup, it's done"
15:27:32  <petern> For "reasons"
15:28:17  <petern> I guess really it should just be a full-on modern front-end instead of a shameful hybrid.
15:30:46  <Samu> regression RandRange tests are a bit low number
15:33:40  <andythenorth[d]> can we add longshore drift to sea coasts?
15:34:10  <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1064930639721279608/480px-Spurn_in_1979.png
15:34:40  <LordAro> oh hey, i've been there
15:34:51  <LordAro> or, to where the tarmac now ends
15:35:04  <andythenorth[d]> GS
15:35:14  <andythenorth[d]> GS could actually do it
15:35:39  <andythenorth[d]> remarkably hard to find appropriate tiles or locations though
15:36:11  <andythenorth[d]> could we also have the inverse, and do Dawlish?
15:39:07  <LordAro> if you can do it in such a way that isn't just incredibly annoying to gameplay, i'll be impressed
15:44:49  <andythenorth[d]> I think it's one of those "don't ask if it's actually good" kind of ideas
15:44:54  <andythenorth[d]> "we did it for the lolz"
15:46:13  <andythenorth[d]> but finding coast tiles suitable for fake longshore drift might also....
15:46:36  <andythenorth[d]> - aid placing coastal industries
15:46:48  <andythenorth[d]> - placing objects like lighthouses, forts etc
15:47:21  <andythenorth[d]> /me can't convince self
15:59:30  <petern> Heightmap generator?
16:15:19  *** _aD has joined #openttd
16:15:24  <DorpsGek> [OpenTTD/OpenTTD] LC-Zorg commented on pull request #10355: Change #10077: make maximum loan a positive multiple of the loan interval https://github.com/OpenTTD/OpenTTD/pull/10355#issuecomment-1385672215
16:16:15  <petern> Uh oh
16:39:40  <andythenorth[d]> new TGP?
16:39:45  <andythenorth[d]> dynamic TGP πŸ˜›
16:39:56  <andythenorth[d]> every n ticks, the landscape changes
16:43:29  <TallTyler> https://cdn.discordapp.com/attachments/1008473233844097104/1064948086637604894/dates.PNG
16:43:29  <TallTyler> Okay, when economic periods aren't tied to calendar years, how do we label the "time" axis of graphs and records? `Now, -1, -2`? (This will get even harder with timetable dates)
16:43:40  <TallTyler> Right now this is economic years since game start
16:44:17  <TallTyler> But I do NOT want to expose players to the alternate calendar, unless it's presented as real-world time. So each calendar year is 12 minutes, and that's all they need to know
16:48:54  <andythenorth[d]> remember I had a proposal that kind of missed?  about your company just being in 'month 7' or 'year 5' or something
16:49:03  <andythenorth[d]> that's not what's needed here?
16:49:16  * andythenorth[d] is glad about NoDL, but I'm not really getting it yet :)
16:50:15  <andythenorth[d]> oh
16:50:23  <andythenorth[d]> can we just do 'elapsed real world time'?
16:50:26  <LordAro> TallTyler: probably dependent on the window? there's only ever 3, so "24-36 minutes ago", "12-24 minutes ago", "last 12 minutes" ?
16:50:43  <andythenorth[d]> every 12 minutes you get the finance window
16:50:51  <Brickblock1> I am not a huge fan of seeing things that irl would be done quarterly done based on irl minutes instead it just doesn't feel right
16:50:52  <andythenorth[d]> vehicles service every 3 minutes
16:50:53  <andythenorth[d]> etc
16:51:26  <petern> I guess keeping it as calendar years and just letting the values get big is not an option?
16:51:50  <petern> (interest rate would pretty tricky to explain too :))
16:52:00  <andythenorth[d]> I should build the PR and play a game πŸ˜›
16:52:05  <LordAro> also, i fear this sort of "just paper over the calendar" will result in thousands of feature requests along the lines of "12 minutes is a strange interval, can i have 10 minutes intervals instead?"
16:52:32  <andythenorth[d]> it might
16:52:34  <andythenorth[d]> but testing
16:53:00  <andythenorth[d]> we can record all the things that might not work or might be weird πŸ™‚
16:53:17  <andythenorth[d]> but we should keep going on this until Tyler wins, gets bored, or rage quits
16:53:44  <petern> Nice, turns out when I break javascript it falls back to standard posts which I didn't properly implement and it's broken πŸ˜„
16:53:51  <petern> Rabbit hole.
16:54:01  <andythenorth[d]> petern: you can blame former you
16:54:04  <TallTyler> petern: If we support "Frozen" economic time this isn't an option
16:54:08  <andythenorth[d]> former self was always an idiot
16:54:16  <andythenorth[d]> worst person in the world
16:54:49  <TallTyler> If we go down to 1% of current speed and don't support Frozen, almost nothing player-facing has to change and we just get huge values everywhere. No need for real-world time, we can keep Months and all that.
16:54:51  <petern> Well it can just accumulate in the current year... but yeah.
16:55:00  <TallTyler> But that's how the current daylength works and it makes the numbers meaningless
16:55:18  <TallTyler> Or at least too large for the average person to comprehend
16:57:33  <TallTyler> andythenorth[d]: That's how it works, yes πŸ™‚
16:58:12  <TallTyler> I wonder, can timetables use the user's local time for start date and such, where it currently uses the date?
16:58:22  <TallTyler> Is the computer's local time a safe thing to access?
16:59:09  <TallTyler> Hmm, could potentially be a desync risk converting the user-input Timetable Start Date to in-game time
16:59:12  <petern> Seem bad if you actually pause the game :p
16:59:18  <TallTyler> Or fast-forward
17:00:33  *** Speedy` has quit IRC
17:00:41  *** Speedy` has joined #openttd
17:04:32  <TallTyler> Okay, maybe a change of strategy is giving up on 0%/Frozen speed and the switch to real-world time units, since that seems to be the biggest point of contention
17:04:50  <TallTyler> 1% is still plenty slow and a huge improvement
17:05:49  <TallTyler> It's still not daylength, because daylength also slows down the economic simulation speed of paying running costs, changing station ratings, etc.
17:06:13  <petern> God damn it Chopin, I can't do that polyrhythm thing, even if it is one of the simpler ones :/
17:06:29  <TallTyler> Tile loop is the most frustrating daylength thing because it's so pointless
17:06:50  <TallTyler> "What if it took fifteen IRL minutes for the ocean to flood and for grass to grow on bulldozed tiles?"
17:07:43  <petern> Can we just do both?
17:08:13  <petern> Hmm, probably not a good idea πŸ™‚
17:08:21  <petern> What is profit last year.
17:08:31  <TallTyler> ?
17:09:28  <petern> Basically giving the player the option of seeing it in economy time or calendar time. Bad idea though.
17:10:13  <TallTyler> That would truly be a terrible idea for future support and features
17:10:29  <TallTyler> Worth considering but I already did that and rejected it πŸ™‚
17:12:31  <TallTyler> Okay, so if we ditch real-world time units and just let the user slow time down to 1% of default, it really is Daylength 2.0...which is fine
17:12:40  *** _aD is now known as Guest1632
17:12:44  *** _aD has joined #openttd
17:12:56  <petern> But not what you wanted πŸ™‚
17:13:01  <TallTyler> Do we need to make some settings more granular, like autosave frequency, servicing frequency, etc?
17:13:26  <TallTyler> Although arguably autosave should actually be real-world time even if you build while paused
17:14:12  <petern> Real-world is fine until you want it to autosave quicker during FFWD.
17:14:25  <TallTyler> Do we cater to service frequency granularity or ignore it since breakdowns are a dumb feature and users don't have to slow-down time?
17:14:51  <petern> service frequency should be economy time?
17:14:54  <TallTyler> Real-world autosave frequency is out of scope, IMO
17:15:07  <petern> And probably autosave should be economy time too.
17:17:14  *** Guest1632 has quit IRC
17:17:57  *** Wolf01 has joined #openttd
17:20:29  <TallTyler> Expressed in real-world minutes?
17:20:52  <Wolf01> Funny, I poisoned myself again because I'm gluttonous
17:22:36  <LordAro> yes... funny
17:23:14  <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #10355: Change #10077: make maximum loan a positive multiple of the loan interval https://github.com/OpenTTD/OpenTTD/pull/10355#issuecomment-1385769392
17:23:52  <DorpsGek> [OpenTTD/OpenTTD] rubidium42 updated pull request #10355: Change #10077: make maximum loan a positive multiple of the loan interval https://github.com/OpenTTD/OpenTTD/pull/10355
17:26:09  <andythenorth[d]> shall I end run daylength, and just put an intro date scaling parameter in all my grfs?
17:26:23  <andythenorth[d]> Pruple: already did it, so there's precedence
17:26:30  <TallTyler> No, that's only a good idea if you only use your own GRFs
17:26:40  <andythenorth[d]> does it matter if Horse Fake Train is introduced in 1978 when IRL it was introduced in 1967
17:26:59  <TallTyler> If you do that but use someone else's house set you'll get skyscrapers at inappropriate years
17:27:04  <andythenorth[d]> yes
17:27:09  <TallTyler> Or someone else's vehicle set
17:28:05  <andythenorth[d]> the upside is it doesn't preven NoDL
17:28:05  <TallTyler> There's maybe a handful of people who can use only their own GRFs: you, Timberwolf, Erato...that might be it
17:28:50  <andythenorth[d]> it makes testable the hypothesis that 'I want vehicle progression to be slower" is the main driver for DL
17:29:01  <TallTyler> Why do we need to test that?
17:29:15  <TallTyler> The people arguing for DL are explicitly asking for it
17:29:23  <TallTyler> Well, some of the people
17:29:49  <TallTyler> The other ask is for slower station rating drops, cargo and passenger production etc., which I think is a separate PR to slowing calendar time
17:29:51  <TallTyler> Both are valid
17:29:57  <TallTyler> But don't need to be done simultaniously
17:30:04  <andythenorth[d]> I am trying to arrive at an understanding in my brain of something that doesn't click πŸ™‚
17:30:14  <andythenorth[d]> not trying to gatekeep NoDL, 100% supportive of it
17:30:31  <andythenorth[d]> but everything about DL just baffles me, when it comes to time and ticks and scaling
17:30:32  <Samu> is this good english?
17:30:33  <TallTyler> I'm not defensive, hope I'm not coming off that way πŸ™‚
17:30:34  <Samu> * \li AIBase::Chance randomized 'max' value is now in the correct range when tested with 'out'
17:30:51  <Samu> sounds like bad english, how can i improve this statement
17:31:16  <andythenorth[d]> can GS mess with time? πŸ˜›
17:31:17  <nielsm> Samu: it sounds wrong, especially the last part "when tested with 'out'"
17:31:27  <Samu> out is a param
17:31:37  <Samu> max is another param, this one gets randomized
17:31:37  <TallTyler> If we make time a setting, then GS can change it
17:31:48  <nielsm> but "when tested with" is wrong
17:31:56  <Samu> then it returns randomized(max) < out
17:31:59  <nielsm> you need a different verb than "tested", maybe compared
17:32:06  <TallTyler> Would arguably be the easiest way to implement "research" to move time forward
17:32:29  <andythenorth[d]> GSEventDayAdvanced
17:32:42  <andythenorth[d]> GSTimeAdvanceDay
17:32:56  <andythenorth[d]> allow or deny OpenTTD moving the day forward
17:33:07  <andythenorth[d]> I am aware that this is really not a thing
17:33:10  <andythenorth[d]> πŸ˜›
17:33:39  <TallTyler> Well, I'm starting to come to the conclusion that 1% of current rate is an order of magnitude less work than going all the way to 0% of current rate
17:33:46  <TallTyler> And is good enough for my purposes
17:33:53  <andythenorth[d]> ahem, is there a global tick counter somewhere?
17:34:01  <andythenorth[d]> can we just modify it behind OpenTTD's back? πŸ˜›
17:34:14  <TallTyler> At 100% rate a year takes 12 minutes. At 1% rate a year takes 20 hours.
17:34:25  <TallTyler> I think that is plenty
17:35:11  <Pruple> andythenorth[d]: did I?
17:35:21  <andythenorth[d]> UKRS 99 has 1960 forever, I think?
17:35:41  <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1064961221285118075/image.png
17:37:45  <Pruple> https://cdn.discordapp.com/attachments/1008473233844097104/1064961743312400384/Untitled.png
17:37:46  <Pruple> πŸ€”
17:38:18  <Pruple> must have imagined it πŸ™‚
17:38:44  <andythenorth[d]> BAD FEATURES
17:39:18  <andythenorth[d]> hmm
17:39:35  <andythenorth[d]> what if pause wasn't pause?
17:39:45  <andythenorth[d]> so the economy, vehicles etc just kept running
17:39:47  <andythenorth[d]> but time did not
17:39:55  <Wolf01> Just freeze time
17:40:13  <andythenorth[d]> https://tenor.com/view/stuck-in-time-clock-time-tick-tock-gif-5358530
17:40:22  <nielsm> TallTyler: have you considered making the calendar speed setting measured in ticks per day instead? it will give the full granularity of setting, the main disadvantage is that you don't get an easy % speed change readout
17:43:22  <TallTyler> That's how the current daylength implementation in JGRPP does it, but I don't feel like that's an acceptable interface to expose to the player
17:43:51  <Samu> isn't there a better way to work with the compat_.nut files? having to copy paste the same thing over 30 files is tiring -> https://github.com/SamuXarick/OpenTTD/commit/ba784026c33144d007a70c43ac436db4af635e08
17:44:44  <andythenorth[d]> hmm
17:44:56  <andythenorth[d]> my idea, which I self-rejected, was to just start the game year at 0
17:45:01  <andythenorth[d]> advance at the current speed
17:45:17  <andythenorth[d]> but find everywhere that has an intro date or expiry date, and make it take a scaling factor
17:45:25  <andythenorth[d]> I decided it was mad and confusing
17:45:33  <Wolf01> You'll get trains when you'll be 80 years old
17:45:43  <andythenorth[d]> but I'm not convinced that I understand daylength so eh
17:46:21  <DorpsGek> [OpenTTD/OpenTTD] ldpl commented on pull request #10355: Change #10077: make maximum loan a positive multiple of the loan interval https://github.com/OpenTTD/OpenTTD/pull/10355#issuecomment-1385797872
17:47:05  <Wolf01> I think that the entire daylength concept is wrong, I had a lot of different problems working with that, instead of just working on the date
17:50:22  <dP> what if you decouple both economy year and tech year? xD
17:50:30  <dP> economy year can't be frozen but tech one can
17:50:49  <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1064965029574750298/16.png
17:50:49  <andythenorth[d]> games like Township progress via levels, not dates
17:50:57  <andythenorth[d]> a lot of casual games my kids play do this
17:50:59  *** Flygon has quit IRC
17:51:06  <dP> btw, nuts has scalable intro dates iirc
17:51:10  <andythenorth[d]> it does
17:51:17  <andythenorth[d]> I long ago was going to do it in Horse
17:51:35  <andythenorth[d]> just didn't figure out a nice UI
17:51:51  <TallTyler> dP: That's the current implementation, but there are a lot of complaints about "real-world time units feel wrong" and also a lot of code to change
17:51:58  <TallTyler> And the problem of no fixed reference
17:51:58  <andythenorth[d]> then GS tech tree feature became available, so maybe it should be GS not grf
17:52:09  <andythenorth[d]> there is a tech tree GS existing
17:52:13  <andythenorth[d]> I tried it, didn't understand it
17:52:21  <dP> TallTyler: no, I mean economy year will be player-facing date
17:52:31  <dP> and tech progress in whatever units
17:52:34  <andythenorth[d]> https://cdn.discordapp.com/attachments/1008473233844097104/1064965468840005652/image.png
17:52:50  <TallTyler> I previously tried that: https://github.com/OpenTTD/OpenTTD/pull/9789
17:53:17  <TallTyler> It was (correctly) deemed too confusing from the player's perspective
17:53:21  <TallTyler> By you and others πŸ˜›
17:54:11  <dP> yeah, but now do both at the same time xD
17:54:20  <dP> I already kinda commented that idea there
17:54:27  <andythenorth[d]> I upvoted 9789 πŸ˜›
17:54:37  <andythenorth[d]> this democracy sucks, I want my money back πŸ˜›
17:54:42  <dP> economy year is player-facing one but can be slowed down and sped up, but not frozen
17:55:08  <dP> techno year convert to something that isn't a year
17:55:25  <dP> "12 minutes" xD
17:55:35  <dP> though it kinda sucks even that way
17:55:36  <TallTyler> But NewGRFs use year for availability...
17:56:00  <dP> you don't need to show newgrf year to player ;)
17:56:13  <TallTyler> but mah realism"
17:56:27  <dP> mah realism use 100% techo speed ;p
17:57:16  <andythenorth[d]> hmm
17:57:22  <andythenorth[d]> what about two clocks
17:57:32  <andythenorth[d]> ticks advance, and ticks reverse πŸ˜›
17:57:33  <dP> and techno year can probably even use two ways of showing it, as a year for 100% and as something else for other
17:57:46  <dP> it's also needed in way less places than economy year
17:58:07  <andythenorth[d]> https://en.wikipedia.org/wiki/Differential_steering#Double-differential
17:58:40  <andythenorth[d]> lol signed ticks, alternating
17:58:42  <andythenorth[d]> like AC current
17:59:20  <andythenorth[d]> we math.abs for game progress
17:59:28  <dP> actually, is techno year even shown anywhere directly or just as intro dates?
17:59:29  <andythenorth[d]> we accumulate signed ticks for date
17:59:41  <dP> intro dates can just be scaled arbitrarily into economic year
17:59:49  <andythenorth[d]> we offer a knob for the ratio of -ve ticks to +ve ticks
17:59:55  <andythenorth[d]> ok my solution is the best so far
18:00:39  <andythenorth[d]> ticks are constant rate, but the mix of -ve and +ve ticks can be adjusted
18:00:50  <andythenorth[d]> between 0:74 and 74:74
18:01:19  *** gelignite has joined #openttd
18:02:07  *** Wormnest has joined #openttd
18:03:52  <petern> Oh that was a bad idea.
18:04:33  <andythenorth[d]> in the new, improved version of the game, you start with maglev, and everything is taken away
18:04:42  <andythenorth[d]> you end up with a slightly round rock
18:04:50  <andythenorth[d]> and a log
18:04:55  <andythenorth[d]> and you have to build stonehenge
18:05:10  <andythenorth[d]> then the spaceship lands and you win
18:05:39  <andythenorth[d]> you have to use the good tech rapidly at game start, because you're going to lose it
18:05:59  <petern> TallTyler: Not really a complaint from me, it's just I also don't know what is a good solution.
18:06:23  <dP> hm, negative tech progression is an interesting gameplay idea xD
18:06:32  <andythenorth[d]> neverending story
18:06:33  <dP> gs disables engines as the game goes
18:06:39  <andythenorth[d]> also the tiles are removed
18:06:41  <andythenorth[d]> to blackness
18:06:55  *** _aD is now known as Guest1649
18:07:00  *** _aD has joined #openttd
18:07:37  <petern> Expose the map as the game progresses
18:08:19  <petern> Fog-of-war?
18:09:13  <dP> free timeline navigation
18:09:20  <dP> changing the past changes the future
18:10:24  <dP> fog of war isn't a bad idea actually
18:10:41  <andythenorth[d]> petern: we can do overlays, I don't know how, but there's the cdist thing
18:10:48  <andythenorth[d]> so we could fog of war
18:11:00  <dP> kinda hard to do fairly though
18:11:12  <andythenorth[d]> start with 'do'
18:11:23  <andythenorth[d]> 'fair' is for advanced civilisations
18:11:24  *** Guest1649 has quit IRC
18:12:03  <dP> ha, reminds me of a minesweeper mode I did
18:12:55  <dP> There was actual fog of war
18:15:20  <dP> can probably even fix desyncs with 12.0
18:17:05  * petern gives up on the 4:3 polyrhythm again.
18:17:41  <andythenorth[d]> likely better than me
18:17:55  <andythenorth[d]> I can't even beat normal 4 4 time reliably
18:19:28  <andythenorth[d]> fog of war...another case for areas / regions πŸ˜›
18:20:41  <DorpsGek> [OpenTTD/OpenTTD] rubidium42 commented on pull request #10355: Change #10077: make maximum loan a positive multiple of the loan interval https://github.com/OpenTTD/OpenTTD/pull/10355#issuecomment-1385841936
18:23:12  <petern> andythenorth[d]: GS could loop the map and hide individual tiles πŸ˜‰
18:23:54  <TallTyler> Time for Garry G's cloud objects?
18:25:16  <andythenorth[d]> GS weather?
18:29:59  <andythenorth[d]> hmm
18:30:02  <andythenorth[d]> grf weather
18:30:09  <andythenorth[d]> but GS driven
18:30:30  <andythenorth[d]> grf feature 18: fog of war
18:30:36  <andythenorth[d]> grf feature 28: weather
18:30:53  <andythenorth[d]> GS decides the region / area of effect
18:31:01  <andythenorth[d]> and sets the local periodic condition
18:33:40  <petern> With NoDL can I have make it realtime? One day is... one day...
18:34:29  *** _aD has quit IRC
18:37:03  <dP> I had an idea once to do clouds as gs-controlled airplanes
18:37:20  <andythenorth[d]> petern: realtime map sizes also
18:37:47  <andythenorth[d]> lol, given that 16k ^ 2 runs at 0.5x game speed on my laptop
18:37:52  <andythenorth[d]> that might be a fail idea
18:38:17  <dP> auto-adjust map size to run 1x
18:38:34  <andythenorth[d]> if you have realtime DL, you also need 1 mile to be 1 mile
18:38:42  <andythenorth[d]> unless our physics is...less than accurate πŸ˜›
18:38:47  <andythenorth[d]> imagine if it was
18:39:57  <JGR> At what point is it easier to just hang around at the end of a platform with a camera πŸ˜›
18:41:19  <petern> It's -2Β°C, so never πŸ™‚
18:41:39  <dP> shouldn't train honks sound differently on diagonals because of space distortion?
18:44:04  <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/dcc06f44bc0b6bbd6cd08913a16337209db9d73f
18:44:05  <DorpsGek>   - Update: Translations from eints (by translators)
18:44:16  <TallTyler> petern: No, that would be 0.004%, and the percentage setting is an integer
18:46:25  <TallTyler> I'm looking forward to someone coming along with a depreciation spreadsheet to complain that purchase prices aren't realistic because vehicle life is tied to calendar time and maintenance costs are tied to economy time, therefore vehicles last much longer than they should and the purchase costs should be scaled accordingly
18:46:27  <TallTyler> "no"
18:46:54  <petern> Uh oh
18:47:05  <TallTyler> Time for a walk to clear my head
18:48:22  <JGR> You can't please everyone
18:51:10  <JGR> Sometimes a fait accompli is a more pragmatic way to get things done πŸ˜›
19:02:54  <petern> Converting old code to use DateOnly instead of DateTime is... a huge project :/
19:10:24  <andythenorth[d]> do I want an M2?
19:10:45  <andythenorth[d]> Iron Horse might compile in 20 seconds on it
19:15:28  <petern> Yes, but not with macOS.
19:17:08  <andythenorth[d]> does it do Windows yet?
19:17:09  <andythenorth[d]> probably not
19:24:49  <andythenorth[d]> ok so tile a

Powered by YARRSTE version: svn-trunk