IRC logs for #openttd on OFTC at 2023-05-24
β΄ go to previous day
02:03:45 *** herms has quit IRC (Quit: bye)
02:09:33 *** Wormnest has quit IRC (Quit: Leaving)
02:49:04 *** debdog has quit IRC (Ping timeout: 480 seconds)
05:21:33 <andythenorth> async GS eh? π
05:31:54 *** keikoz has quit IRC (Ping timeout: 480 seconds)
05:54:25 *** D-HUND is now known as debdog
06:52:57 *** normanj400newaccount has joined #openttd
06:52:57 <normanj400newaccount> i want to try making new house sprites for ottd but i do not know how to code
06:59:52 <EmperorJake> normanj400newaccount: Discord channel #add-on-development is the place for this. Also you don't need to know how to code if you just want to draw
07:00:55 <normanj400newaccount> EmperorJake: ok
10:47:34 <petern> So many geniuses. Genii?
11:13:32 <petern> Do I even want to reply...
11:19:06 <pickpacket> I was looking for the setting that prevents industry closures this morning but I couldnβt find it
11:19:24 <Eddi|zuHause> there isn't one, but NewGRFs can do it.
11:20:10 <Eddi|zuHause> (or maybe we had one and it got hidden)
11:21:37 <pickpacket> Hm. I wonder if I should disable industry closures for tea tree farms then
11:22:07 <Eddi|zuHause> oh... "economy: static" seems to be a setting
11:22:30 <pickpacket> Does that also mean no production changes?
11:22:58 <Eddi|zuHause> closing is part of production change
11:24:11 <Eddi|zuHause> but still, industries can do more stuff
11:24:25 <Eddi|zuHause> industy grfs i mean
11:27:13 <petern> I still don't really get what the issue is. Sounds like you're expecting a fairly static number of your industry to exist, but industry creation is random with probabilities.
11:59:42 <pickpacket> petern: industry creation is relative to the number of different industries in the game. Closure depends on production. Non-serviced industries lose production quite rapidly. Eventually they start closing down en masse
12:00:41 <Eddi|zuHause> you have 5 years after game start to connect your industries
12:01:12 <Eddi|zuHause> then you get a wave of closure
12:02:07 <pickpacket> if coal mines have a creation probability of 2 and iron mines have 1 then 2 out of 3 new industries will be coal mines. If we add teahouses with a probability of 2 then 2 out of *5* new industries are coal mines
12:03:02 <petern> If you ignore the cool-down time, yes.
12:03:11 <pickpacket> Creation of new industries is more and more rapidly outpaced by closures
12:06:55 <petern> So service them before they close down.
12:10:22 <andythenorth> the correct meta is to try and fix it in grf
12:10:27 <petern> To me that is one of the challenges, if you don't service industries there are less of them around so it becomes harder. Ensuring there is a roughly constant amount all the time feels like it becomes more sandboxy.
12:11:00 <petern> "You didn't service it, but it doesn't matter because there'll always be some more for you to not service"
12:11:42 <petern> Yes, I had... oh surprise, a salad.
12:11:48 <andythenorth> I had an unscheduled nap
12:11:54 <andythenorth> it didn't solve my huner
12:12:05 <petern> I had a morning breakfast today, it was disappointing. A Lidl pain-au-chocolat.
12:12:45 <pickpacket> I run a server and players arenβt necessarily online at the same time. I may start playing and the next time I log in 50 years have passed and there arenβt many primary industries left to service
12:14:19 <Eddi|zuHause> but why would you expect these industries to be left alone, and not already serviced by the other players by the time you get back?
12:14:22 <petern> Yes, if the game isn't paused then things still happen while you aren't there.
12:14:55 <pickpacket> In a single player game I might focus on cargo type A for the first few years and then when I want to branch out to type B all the type B producers have really low production
12:15:28 <Eddi|zuHause> means you play a too big map
12:15:54 <petern> Is it 1024x2048 on a Raspberry Pi 1? π
12:16:00 <pickpacket> I play a 1024x1024 map most of the time... that's not very big
12:16:22 <Eddi|zuHause> that is quite big
12:16:30 <andythenorth> if you do try to fix it in grf, you will find why you can't π
12:16:32 <petern> Fix it with a GS that creates industries based on different rules. (Is that a thing?)
12:16:36 <Eddi|zuHause> the last game i played was 128x256
12:16:39 <andythenorth> then you try to fix it in GS
12:16:39 <petern> Yes, 1024x1024 is big.
12:16:39 <dP> in a long-running server I find stable economy to be the only solution
12:16:46 <andythenorth> then you find it can't be fixed in GS
12:17:20 <pickpacket> I don't enjoy the smaller maps quite the same way
12:17:56 <pickpacket> I usually play 1950-2050. A smaller map feels tiny in that timeframe
12:18:38 <dP> though it's kinda weird, game is supposed to keep amount of industries relatively stable unless you change density setting
12:18:42 <dP> maybe that just doesn't work
12:19:06 <pickpacket> my server runs a 1024x1024 map (on a RPi 3B+ ;) ) from 1950-2050 and paused when no clients are connected
12:19:49 <petern> If your industry is difficult to place then it also obviously has less chance of being built.
12:20:33 <petern> By that I mean if it picks your industry but fails to build it, then it will not try to build your industry again for a while it tries to build other industries.
12:21:43 <pickpacket> dP: I play with high density. Hasn't occurred to me to check on normal, but as mentioned the creation probabilities are relative to the number of different industries in the game, not production or closures. If you have 5 different primary industries and 5 different secondary or tertiary and they all have the same creation probability you can have
12:21:43 <pickpacket> one of each primary close one month while only one out of the total of 10 industries is created.
12:21:49 <Eddi|zuHause> i think it retries a bunch of times, but that might only be on map creation?
12:22:26 <pickpacket> now double that amount and you can have 10 primary industries close in the same month and only 1 out of *20* different industries created
12:22:30 <Eddi|zuHause> pickpacket: it'll balance out in a longer timeframe
12:23:43 <pickpacket> it won't. Stuff like oil rigs and banks are created in large amounts as cities grow and time passes, and non-serviced primary industries close at an ever increasing rate
12:23:59 <andythenorth> I spent a long time trying to fix this in FIRS
12:24:06 <andythenorth> my conclusion was to give up
12:24:29 <petern> I'm looking at the code and it does look like industry probability does take into account the number of existing industries.
12:25:16 <petern> Yes, TryBuildNewIndustry uses GetIndustryTypeCount a few times.
12:25:50 <pickpacket> As I wrote in my forum post about my test run: "Coal mines have gone from 142 in 1950 to 55 in 2010, and the tea tree farms have gone from 179 to 58 in that same time. Meanwhile banks and oil rigs have been popping up all over the place."
12:26:06 <Eddi|zuHause> yes. banks and oil rigs have very high chance of being created during the game, because they aren't created at game start
12:26:32 <pickpacket> petern: apparently it doesn't take it into account enough :(
12:26:42 <Eddi|zuHause> (you can change these chances with a newgrf)
12:26:45 <dP> petern: there is also target_count
12:26:58 <dP> it just doesn't seem to be working
12:27:14 <pickpacket> Eddi|zuHause: I get that. It's just that the fact that they do impedes on the probabilities of every other industry being created
12:27:47 <Eddi|zuHause> i don't think the chances have been rebalanced since the new economy model was introduced
12:28:24 <dP> maybe it just doesn't build often enough to keep targets...
12:28:31 <dP> doesn't seem like it scales with map size
12:29:00 <Eddi|zuHause> would be strange if it didn't
12:29:27 <andythenorth> the industry map scaling was questionable last time I looked at it
12:29:31 <petern> It does look like it doesn't
12:29:47 <andythenorth> can't remember what the issue was, but the scaling should be log not linear or something like that
12:29:53 <pickpacket> I think that it's in general unfortunate that creation probabilities are relative to the number of different industries. A probability of "2" changes meaning drastically depending on how many NewGRFs you're using
12:30:10 <petern> Maybe that's why I don't see an issue... I don't play with such large maps.
12:30:33 <Eddi|zuHause> pickpacket: the usual assumption is that you don't mix industry grfs
12:41:07 <petern> Hmm, wanted_inds is scaled
12:43:50 <petern> Looks like it is scaled, just not literally by calling it more times.
12:48:27 <petern> Looking at what a huge map does and it's still generating π
12:49:12 <petern> 14.5 million trees, lush
12:50:24 <petern> On 1024x1024 there is 1 industry change every two days -- that includes production changes.
12:50:31 <petern> On 4096x4096 there are 8 industry changes every day.
12:50:37 <dP> yeah, industry_daily_increment is also scaled
12:51:24 <petern> Scaled by map size but not with Map::ScaleBySize, sneaky.
12:51:45 <andythenorth> is 4096^2 16 times larger than 1024^2?
12:52:01 <TrueBrain> andythenorth: sometimes
12:52:05 <dP> hm, is `max_wait` scaled I wonder...
12:52:22 <andythenorth> my maths made it 16x larger π
12:53:10 <petern> max_wait depends on the number of industries created, not on a timer.
12:54:19 <pickpacket> Eddi|zuHause: yeah... That was an annoying thing to note when I made Tea Tea Deluxe :D
12:54:53 <dP> max_wait is weird, what is it even supposed to achieve?
12:55:53 <dP> unless I'm missing something it feels like wait will only cause industries that are hard to place to appear even less often
12:56:51 <andythenorth> is it a performance optimisation? π
12:57:01 <pickpacket> Eddi|zuHause: though the relative probabilities have the same problem in any industry newgrf
12:57:45 <petern> Yes, it means an industry with high probability of placement which is difficult to place doesn't end up with no other industry being created. (hah)
12:57:51 <Eddi|zuHause> pickpacket: why would that be a problem? the monolithic industry grf has full control over the chances
12:58:21 <petern> i.e. "it failed to place it after 2000 tries last time, it's probably not going to be able to place it again 1 day later"
13:00:15 <pickpacket> Eddi|zuHause: yes, but the more industries you have the more outpaced they will be by closures
13:00:49 <pickpacket> *the more different
13:02:16 <Eddi|zuHause> i don't understand
13:04:33 <TrueBrain> I am hungry, and I have to wait 2 more hours before I can eat .... so annoying
13:06:53 <pickpacket> Eddi|zuHause: if you have 5 industries with a probability of 1 each and then add a 6th it doesn't matter how much you tweak the probabilities because whenever a new industry is created it's only going to be 1 out of those 6, but 1 or more of *each* of them could be closing at that same time. Add a 7th industry and the problem is compounded
13:07:25 <Eddi|zuHause> that doesn't make any sense
13:41:21 *** _aD has quit IRC (Quit: leaving)
15:34:06 *** Wormnest has joined #openttd
16:07:22 <pickpacket> andythenorth: did you say youβve struggled with primary industry closures too?
16:17:52 <andythenorth> I nerfed them off in FIRS
16:18:01 <andythenorth> everything to do with industry open and close is a tarpit
16:18:09 <andythenorth> I would step away from it, find something fun to do π
16:18:38 <andythenorth> petern: I don't know if you've thought of this, but all you need to do is let the virtual vehicle decide which livery preview sprite to show?
16:18:44 <andythenorth> had you thought of that?
16:18:59 <andythenorth> pickpacket, sorry not trying to be discouraging
16:19:06 <andythenorth> it's just all a bit lame π
16:19:14 <dP> I did virtual industries for build preview in cmclient, it's not that hard apparently
16:19:31 <andythenorth> this is for vehicle livery callback π
16:20:29 <dP> also if some property can be faked it just can be specced ;p
16:20:55 <andythenorth> I don't think anyone thinks it's impossible?
16:20:56 <dP> as long as it fakes good enough old newgrfs should mostly work
16:21:16 <andythenorth> also lolz, because livery callback
16:22:04 <dP> hm, I guess I could do livery preview in cmclient as well
16:22:09 <dP> have better things to do though xD
16:24:20 <dP> plot twist - liveries with previews replace variants π
16:25:56 <Eddi|zuHause> <dP> have better things to do though xD <-- i think that's what everyone participating in that thread thought
16:33:52 <petern> Main thing with cargo subtypes is they vary depending on vehicle properties, not only the current vehicle but the rest of the chain. Therefore, use a prototypical callback (based on engine id instead of vehicle) isn't useful in all cases.
16:35:56 <petern> Well, no, the subtype itself doesn't. But the meaning/availability of them.
17:05:29 <andythenorth> `nmlc info: Train items: 4726/65420`
17:05:34 <andythenorth> goes it replace with subtypes?
17:05:49 <TrueBrain> 60000 more to go? Or isn't it a progress-bar?
17:06:14 <andythenorth> playing for a high score
17:07:39 <andythenorth> TBH compile time means I'll never get close to 65k
17:07:55 <andythenorth> although....wasn't the Rust grf compiler much much much faster?
17:08:22 <Eddi|zuHause> did we fix the articulation callback yet?
17:09:06 <andythenorth> did we break it? π
17:09:20 <Eddi|zuHause> i mean, allowing more than 16k vehicles
17:09:40 <andythenorth> we fixed the docs that said it was 8192 vehicles I think π
17:18:13 <petern> openttd.cpp:1292/1307 uses mempcy/memcmp to check if some data is valid.
17:21:09 <petern> But I'm not sure if they are correct any more, as the underlying types are not flat arrays, it'll be comparing a the meta data of a vector instead of the contents, and such like.
17:31:09 <Rubidium_> good point, though if == and = are (automatically) implemented correctly, we could get rid of memcpy/memcmp there... which would be nice
17:43:16 <pickpacket> andythenorth: how do you mean βnerfed then offβ?
17:44:45 *** HerzogDeXtEr has joined #openttd
17:49:20 <andythenorth> I just banned closure
17:49:28 <andythenorth> and in some cases I've also banned opening
18:12:15 *** gelignite has joined #openttd
18:18:26 <JGR> Trouble is, this leads to the overall industry density gradually creeping up until they're everywhere like barnacles
18:32:37 *** Flygon has quit IRC (Read error: Connection reset by peer)
18:40:58 <DorpsGek> - Update: Translations from eints (by translators)
19:08:29 <andythenorth> petern: I also banned Haskell?
19:08:32 <andythenorth> is that the same?
19:08:50 <andythenorth> JGR: that's why I've banned opening in some cases
19:09:39 <andythenorth> I've written a GS class to handle curating industries on the map
19:09:46 <andythenorth> obviously it doesn't work, because GS
19:09:52 <andythenorth> but it was a start
19:10:01 <andythenorth> ideally the grf would just have embedded WASM or something
19:10:07 <andythenorth> or we just expose the global state to grf
19:10:22 <andythenorth> but eh, those discussions never yielded so far π
19:35:24 *** gelignite has quit IRC (Quit: Stay safe!)
20:34:55 <Rubidium_> glx[d]: could you check whether #10852 works correct on Windows?
20:59:37 <glx[d]> building master to compare
20:59:53 <glx[d]> (because I need the crash key)
21:00:59 <glx[d]> ```Summary of What's New in this Release of Visual Studio 2022 version 17.6.1
21:00:59 <glx[d]> We have made some updates to whatsnew content.
21:01:15 <glx[d]> that's a very useful changelog π
21:03:05 <Rubidium_> glx[d]: and that's a few hundred MBs worth of update I'd reckon :(
21:15:39 *** _aD has quit IRC (Ping timeout: 480 seconds)
21:19:19 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:24:13 <Rubidium_> glx[d]: if at line 433, you cast frame.AddrPC.Offset to (const void*)frame.AddrPC.Offset or something similar, it it then printed in hexadecimal again?
21:27:39 <Rubidium_> could also change it to {:X}, but then the same should be done at line 165 for the (essentially) memory addresses to look the same
21:29:17 <Rubidium_> it's also a bit of a question whether we want to bother with 16 vs 8 character wide hexadecimal addressed based on the architecture
21:32:33 <glx[d]> no need to bother about 16 vs 8
21:35:34 <petern> glx[d]: Ahhh, when the update is especially made for you π
21:46:15 <glx[d]> for the windows part it's fine
21:51:04 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:03:18 *** tokai|noir has joined #openttd
22:03:18 *** ChanServ sets mode: +v tokai|noir
22:05:12 *** felix has quit IRC (Ping timeout: 480 seconds)
22:10:19 *** tokai has quit IRC (Ping timeout: 480 seconds)
22:28:31 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
continue to next day β΅