IRC logs for #openttd on OFTC at 2023-03-14
⏴ go to previous day
02:09:33 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
02:29:59 *** Wormnest has quit IRC (Quit: Leaving)
02:40:24 *** WormnestAndroid has joined #openttd
03:12:55 *** HerzogDeXtEr1 has quit IRC (Read error: Connection reset by peer)
03:21:30 *** debdog has quit IRC (Ping timeout: 480 seconds)
05:01:39 <purple> glx[d]: Is there a potential fix we could do to prevent the need for '-v win32' in #10571?
05:03:23 <purple> I'm happy to give it a go, but not sure if a decision has been made where we don't want to change it
05:26:24 *** HerzogDeXtEr has joined #openttd
06:05:36 *** keikoz has quit IRC (Ping timeout: 480 seconds)
06:14:59 <Rubidium> purple: I hope there is a potential fix, but I think we need to run into someone with that issue and enough knowledge to debug it. I, at least, have no idea how to solve an issue where the video driver does not draw anything. Although I guess it's some driver claiming OpenGL support without actually having the required OpenGL support
06:26:18 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
06:33:11 *** D-HUND is now known as debdog
09:53:17 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
11:19:07 *** planetmaker_ has joined #openttd
11:19:51 *** planetmaker is now known as Guest7680
11:19:52 *** planetmaker_ is now known as planetmaker
11:39:45 *** WormnestAndroid has joined #openttd
11:51:59 <LordAro> some sort of celestial body creator
11:58:42 <petern> I thought that was Slartibartfast.
12:37:37 <planetmaker> and yes, two decades ago when I chose this nick, Slartibartfast was taken. So here we (still) are
13:21:04 <pickpacket> way better than planetkiller :D
13:21:52 <pickpacket> I have a problem. I compiled 13.0 myself, and music doesn't play for me. I'm not sure if it worked after compile and has broken since or if it never worked in the first place
13:22:21 <pickpacket> game sounds work perfectly
13:25:49 <petern> Do you have the fluidsynth dependencies installed, and the fluidsynth soundfonts?
13:26:01 <petern> (Or are you trying to use a hardware MIDI device?)
13:27:44 *** planetmaker has quit IRC (Remote host closed the connection)
13:29:48 <glx[d]> You could test the generic linux build
13:42:48 <Xarick> there is no RemoveRailDepot
13:43:48 <Xarick> but there is a RemoveRoadDepot, RemoveWaterDepot
13:43:58 <Xarick> doesn't matter that much
14:02:33 *** HerzogDeXtEr has joined #openttd
14:05:20 <Xarick> how do i know a tile is mine if it is a rail crossing a road? how do i get the owner of the road or the owner of the rail as a script?
14:06:48 <petern> Depends if it's your rail or your road...
14:11:23 <Xarick> there should be a AIRail.GetOwner
14:11:49 <Xarick> there's a AITile.GetOwner but this one is not sufficient
14:14:09 <Xarick> i wonder how other AI makers deal with this situation
14:17:09 <Xarick> who can read this language? if(AIRail.IsLevelCrossingTile(t)) { // 失敗時にRailTypeが戻せないケースがあるので、先に踏切だけ試す。
14:22:53 <glx[d]> "Since there are cases where the RailType cannot be returned at the time of failure, try only the railroad crossing first."
14:23:23 <glx[d]> For once it seems to be an accurate translation
14:24:42 <Xarick> AAAHogEx is a japanese AI, interesting
14:25:30 <Xarick> how can openttd handle these characters?
14:27:19 <Xarick> AITile.GetOwner gets the owner of the rail or the road?
14:27:39 <Xarick> RailwAI says it gets the owner of rail, i don't think that's true
14:29:06 <Xarick> (Owner)GB(tile.m1(), 0, 5);
14:30:00 <glx[d]> Road tiles have 3 owners IIRC
14:30:42 <Xarick> oh, landscape grid confirms RailwAI claim
14:31:19 <Xarick> that tile is type road, and yet the main owner in m1 is for the rail
14:38:23 <glx[d]> Owner is important mostly for tracks, as they are not shared, while road/tram can be used by everyone
14:54:17 *** tokai has quit IRC (Quit: c('~' )o)
15:16:24 <dP> you know it's serious when both client and server are running under gdb... 😅
16:06:24 <glx[d]> should be slow as hell
16:08:25 <JGR> If you're not single stepping, gdb does not really slow things down much
16:09:54 <glx[d]> single stepping is undoable with network games
16:10:24 <glx[d]> you'll get connection lost
16:20:35 <Rubidium> lets see whether that solves the weird MSVC warnings...
16:21:56 <glx[d]> warnings were valid I think
16:23:30 <Rubidium> then either 1 or TILE_HEIGHT must be negative...
16:27:13 *** Wormnest has joined #openttd
16:30:51 <glx[d]> in `return (y < x ? (1 + y - x) >> 1 : 0) + TILE_HEIGHT;` it's the `y - x` that is negative
16:33:33 <Rubidium> though it's complaining about an integral constant
16:37:27 <glx[d]> yeah the warning itself is weird (maybe the wrong one)
16:37:58 <glx[d]> but I think `y - x` was an issue
16:41:07 <Rubidium> probably, but still... only the older one complained and it created the right code (at least for the static_assert)
16:59:45 *** gelignite has joined #openttd
17:03:36 <Rubidium> a PR on the bananas repository to change it might work as well
17:43:09 <andythenorth[d]> Did we discuss lunch?
18:05:59 <Xarick> converting rail is by tile?
18:06:47 <andythenorth[d]> What’s the difference? 🙂
18:06:53 <glx[d]> you can have only one type per tile
18:07:02 <Xarick> if i want to convert one piece and not the other, i can't
18:07:16 <Xarick> one piece is from one route, the other is from the other
18:10:57 <andythenorth[d]> One type per tile
18:11:27 <nielsm> you can't build two different types of rail on a tile either, so it all checks out
18:12:44 <Xarick> lucky me my double rail pieces are from the same route
18:13:30 <Xarick> if i had coded the pathfinder in a different manner.. I would be in trouble
18:13:59 <glx[d]> it's a known limitation
18:18:06 <andythenorth[d]> Fixed in jgrpp obvs 🙂
18:18:55 <Xarick> autorenew/autoreplace without changing vehicle ID's when?
18:19:14 <glx[d]> it's a new vehicle, it gets a new ID
18:19:50 <glx[d]> isn't there an event for that ?
18:19:51 <JGR> The new vehicle is created before the old one is deleted, so they're never going to have the same IDs
18:19:55 <Xarick> my AI attempting to renew ~1000 vehicles manually
18:20:09 <andythenorth[d]> You can just book-keep the IDs?
18:20:54 <Xarick> that's very unpractical to use it
18:21:34 <Xarick> it should automagically pick vehicles on my lists and replace their ids :p
18:23:14 <Xarick> i really need to migrate to autoreplace, if I wanna keep making routes instead of wasting time replacing vehicles
18:23:27 <Xarick> just didn't find the best strategy yet
18:23:28 <andythenorth[d]> What’s impractical? 🙂
18:24:20 <Xarick> when im in the middle of something and i wanna deal with vehicles with negative profit, for example, I do manage vehicles per route
18:24:45 <Xarick> so i send a vehicle with id xxx to depot, and have it memorized on a list
18:24:53 <Xarick> then i do something else
18:25:08 <Xarick> autoreplace acts while im doing something else, vehicle gets another id
18:25:28 <Xarick> when i get back to vehicles in depots, I don't find it
18:25:36 <glx[d]> that's why you should handle events on a regular basis
18:25:38 <andythenorth[d]> Maybe we should implement GS/AI threads 😛
18:25:58 <andythenorth[d]> Threads are just a dispatcher…
18:26:08 <Xarick> or, worse, if i find it, it may not be the same type of vehicle
18:26:20 <Xarick> it could suddenly turn from a bus into an aircraft
18:26:43 <andythenorth[d]> I see the issue 🙂
18:28:19 <Xarick> my long term strategy is to... ahem, have ships find depots by using pathfinder, so that i can keep a list of shared order vehicles
18:28:35 <Xarick> then I can use autoreplace globally
18:29:03 <Xarick> i can send negative profit vehicles to depot, without having to unshare orders for that vehicle
18:29:13 <Xarick> and have a stop at depot order specifically for it
18:30:24 <Xarick> with shared orders, I can just ignore which vehicle id it has, and just look for vehicles stopped in a depot
18:30:45 <Xarick> I will know which route it belongs to
18:31:45 <andythenorth[d]> When you do anything with any vehicle, you could first poll the event queue checking for replacement event on that vehicle
18:31:59 <andythenorth[d]> It’s quite inefficient
18:32:18 <Xarick> that's very pedantic, when i have 4-digit vehicles to manage
18:32:26 <andythenorth[d]> I believe you can step through the queue on demand
18:33:42 <Xarick> also, caching vehicles in a group would come handy for keeping the cpu in check
18:34:15 <Xarick> im not sure, but i may be needing to get a list of vehicles in a group if the shared orders strategy doesn't work
18:34:43 <andythenorth[d]> I think you will run into problems with this at 4 digit numbers of vehicles. Script remains dog slow
18:35:07 <andythenorth[d]> Even just adding 20 story book pages takes multiple seconds IRL
18:35:32 <glx[d]> it's at least 20 ticks 😉
18:35:44 <glx[d]> without counting the page elements
18:37:38 <frosch> is the poster working at epic?
18:40:03 <dP> or just his favorite game is epic-store exclusive xD
18:40:27 <Rubidium> did we pay for putting it to the other stores?
18:40:44 <frosch> the fun part with all these game store is, they all have a requirement "if you offer X on competitor store, you must also offer it here"
18:41:19 <frosch> so if anyone ever wants to implement achievements for one store, it cannot be merged until implemented for all stores 🙂
18:44:19 <glx[d]> there are entry fees (mostly to try to filter out some garbage)
18:44:37 <andythenorth[d]> glx[d]: 6 elements per page, 7 ops total per page, 140 ops at 30 ms each?
18:45:13 <andythenorth[d]> Yeah 4.2s is about right
18:45:25 <andythenorth[d]> That’s like an ice age 😉
18:46:15 <andythenorth[d]> Ok xarick will struggle replacing 1k vehicles
18:46:45 <dP> though I guess if you want company pages you're out of luck
18:53:25 <Xarick> Vehicle ID 30779 no longer belongs to this route, but it exists! And I don't even use autoreplace
18:53:42 <Xarick> just aircraft crashing
18:53:52 <Xarick> is sufficient to ruin vehicle ids
18:54:08 <glx[d]> crash are also in events 😉
18:59:47 <andythenorth[d]> dP: Even global pages seemed to not be created during map gen
18:59:55 <andythenorth[d]> Might be wrong
19:03:22 <andythenorth[d]> Promises will solve most of this though
19:05:24 <Rubidium> though that seems like a right PITA to implement right, as you essentially want to be able to pass futures on 'New'-style functions (those returning a new ID) to other functions, and then automagically do the right thing in the command stream
19:07:07 <andythenorth[d]> Where is TB’s gist? 🙂
19:07:35 <andythenorth[d]> I am on my phone, don’t have the link to hand
19:13:32 <dP> just don't delay commands intead of that promise nonsense :P
19:13:36 <Rubidium> that would reduce making a full story book to only two command cycles, but you need to make all the story pages in one tick and then add all the elements on the next
19:14:05 <Rubidium> dP: so, make GS single player only? That's indeed the simplest solution
19:14:39 <dP> huh? you can execute instantly in mp as well
19:15:03 <dP> gs is already event based so doesn't even have recursive command issuess
19:22:26 <Rubidium> not sure what (some) bridge/tunnel building does, but that has some secondary commands triggered from the API code
19:23:45 <dP> core recursive commands are fine, it's just gs recursing to itself would be an issue because of network queue
19:24:28 <dP> I mean gs command needs to be queued for clients but if that command has callback into gs that executes another command you kinda have a problem
19:24:46 <dP> but with events there is no problem
19:25:35 <dP> kinda have this issue with cmserver as I'm using callbacks
19:27:12 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
19:29:11 <Rubidium> that would tie the GS quite deep into the command stuff, which might not be the way I would like to go
19:30:26 <dP> but executing commands without delay is just a matter of shuffling things around a bit
19:32:06 <Rubidium> and it would be a royal PITA for with the frame frequency setting
19:32:53 <dP> I don't think it even works correctly nowadays
19:36:48 <Rubidium> it doesn't look obviously broken
19:37:34 <dP> I recall thinking it doesn't at some point, don't remember why
19:37:50 <dP> I don't see any point in having freq other that 1
19:37:57 <Rubidium> maybe andythenorth[d] can test whether setting network.frame_freq to 74 and then running his gs in MP has an appreciable effect on performance
19:42:42 <dP> I guess on shitty connection freq can trade smoothness of simulation for building lag
19:42:47 <dP> but it's a bad trade-off anyway
19:56:32 *** NGC3982 has quit IRC (Remote host closed the connection)
20:27:46 *** NGC3982 has joined #openttd
20:35:33 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
20:37:13 *** WormnestAndroid has joined #openttd
20:39:43 <andythenorth[d]> rubidium maybe 😛
20:49:06 <TrueBrain> kamnet: interesting, tnx for linking 🙂
20:51:06 <TrueBrain> frosch: luckily it is not something of an issue for us .. multiplayer cross play? Check! Achievements? Fuck no. Done 😄
20:52:17 <frosch> TrueBrain: in other news: someone complained to info@ that they cannot upload their jgrpp scenario to bananas. but it works with your PR 🙂
20:52:34 <TrueBrain> haha, that is a nice timing
20:52:36 <TrueBrain> let me fix up my PR
20:56:34 <frosch> oh, and in yet other news: docker(hub?) will delete all our data in a month, but i guess we have none there anymore
20:56:50 <TrueBrain> none that is relevant anymore
21:01:29 <TrueBrain> the amount of work that goes into something so simple .. pffff 😛
21:09:47 <frosch> what was your plan with showing the climate on the web-frontend?
21:10:03 <frosch> there are already a lot of columns, and newgrf-type is not shown either
21:10:11 <frosch> why do you consider climate so important?
21:11:15 <TrueBrain> newgrf type is shown, what you are talking about? 😄
21:11:37 <TrueBrain> and I just liked it .. just to add a bit more flavour to how it looks and feels 🙂
21:12:08 <TrueBrain> if I would make a new design, I would show all the columns (optional)
21:12:14 <TrueBrain> it is just weird, that you can filter on data you cannot see 😛
21:12:33 <glx[d]> filters in column header
21:15:04 <TrueBrain> hmm, something is off in the regression .. and it now fails locally for other reasons .. let's find out why!
21:15:31 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:15:49 <frosch> 021_two_newgrfs succeeds unexpectedly?
21:15:57 <TrueBrain> owh, lolz ... I used an invalid scenario, as it wasn't validating that part
21:16:01 <TrueBrain> and now that scenario is invalid 😄
21:17:32 <Xarick> need a way to keep track of the tracks I've layed
21:17:49 <Xarick> but without using a tile list
21:17:52 <TrueBrain> `scenario.scn: Scenario is missing essential chunks (MAPS)`
21:18:28 <TrueBrain> hmm, but it actually is a real scenario .. I wonder what it looks like ..
21:18:31 <glx[d]> store nodes and direction
21:18:32 <Xarick> i give a starting tile, and it finds on its own where it ends when followed
21:18:41 <andythenorth[d]> is it naptime?
21:19:48 <Xarick> so, a pseudo pathfinder
21:20:37 <TrueBrain> owh, maps without MAPS are 256x256 I guess ...
21:21:09 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
21:21:18 <TrueBrain> savegame version 6 ..
21:21:23 <frosch> did you pick the oldest scenario you could find? :p
21:21:23 <TrueBrain> let's see how old this one is
21:22:25 <glx[d]> nice to test afterload stuff 🙂
21:23:31 <TrueBrain> one scenario is also this old 😛
21:24:15 <TrueBrain> well, tnx regression, you found a bug 😛
21:26:05 <TrueBrain> so one more time frosch ; this time it actually works 🙂
21:27:03 <frosch> gh's "compare changes" is broken currently 🙂
21:27:31 <TrueBrain> indeed; well, added 2 lines of code 😛
21:29:49 <TrueBrain> 535 scenarios; not bad 🙂
21:41:31 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:44:43 <TrueBrain> I just had an interesting conversation with Bings Chat ... it claimed my name was some Jeroen, and that it was on my personal website that this was the case .. when I asked it where, it started to claim it was on the linkedin page linked .. and when I asked for a screenshot where this link was, it just said: `I’m sorry but I prefer not to continue this conversation. I’m still learning so I appreciate your understanding and pati
21:44:55 <TrueBrain> so first it lied .. when I asked it to come with proof, it just bailed
21:45:03 <TrueBrain> sounds like some users in this channel 😄
21:45:04 <andythenorth[d]> Bing chat remains a meme
21:45:56 <frosch> probably just cache invalidation, you got the chat from someone else
21:46:22 <TrueBrain> `I used the GitHub profile of TrueBrain to find his name. He has a link to his personal website on his profile, where he introduces himself as Jeroen`
21:46:45 <frosch> how did bing detect your pronoun?
21:47:31 <frosch> did someone watch the gpt4 show today?
21:48:02 <andythenorth[d]> ah vectors in n-dimensional hyperspaces
21:48:07 <andythenorth[d]> can miss by a mile
21:48:11 <frosch> ah, tb is actually belgian, that explains a lot
21:48:27 <TrueBrain> when I asked him again, he does know me .. I hate AIs 😛
21:48:51 <andythenorth[d]> I enjoy how it plays word soup with nearly-facts
21:48:59 <andythenorth[d]> infinite monkeys
21:48:59 <TrueBrain> haha, so I am not alone in this, pfew 😛
21:49:08 <andythenorth[d]> I am not Andy Clarke
21:50:07 <glx[d]> at least the first name seems correct
21:50:30 <andythenorth[d]> I have not doxed the rest of you
21:50:42 <andythenorth[d]> I tried rubidium
21:51:16 <frosch> i think you gave it some openttd context before
21:55:34 <andythenorth[d]> I had to give it
21:57:18 <TrueBrain> the amount of trees we burn for these things ... it is funny 😛
21:57:36 <andythenorth[d]> I asked it to make me a grf
21:58:45 <glx[d]> ah grfmaker is still a thing ?
22:00:48 <andythenorth[d]> I enjoy the new NML 2.0 format
22:01:00 <TrueBrain> lol, when people upload big scenarios, it really stalls the API .. guess that needs addressing at some point in time
22:01:10 <andythenorth[d]> it looks more like the code I wrote in python, or dP wrote
22:01:14 <andythenorth[d]> and not like NML
22:01:35 <TrueBrain> also close the TrueGRF's YAML 😛
22:01:51 <TrueBrain> it is just not YAML, just not JSON
22:02:26 <andythenorth[d]> I love chatGPT right now, it's my new toy to poke
22:03:38 <frosch> andythenorth[d]: too bad, it could have redirected you to ask andythenorth, or look at firs sources
22:04:59 <frosch> TrueBrain: python 3.12 will remove the gil, right?
22:11:46 <dP> I wish some OpenTTD PR's were as thought-through and well-explained as python PEPs...
22:11:49 <frosch> there is also pymultiprocessing or so
22:13:24 <dwfreed> note that disabling the gil is a build-time setting, and most distros probably won't do that
22:13:41 <TrueBrain> we already use multiprocessing frosch 🙂 But uncompressing 4kx8k savegames just takes a lot of memory 🙂
22:14:37 <frosch> i assumed the decompression would stream the data
22:14:37 <dwfreed> gentoo will probably expose the option, but it'll probably also be masked (meaning you have to take a second explicit action to enable it) because of the impact it can have
22:14:44 <frosch> what does the histogram use?
22:15:15 <frosch> dwfreed: let's first wait until is is actually available 🙂
22:15:56 <TrueBrain> frosch: shouldn't be much, just 256 ints
22:16:10 <TrueBrain> I need to profile this to get a real idea where the memory is going 🙂
22:16:12 <frosch> well, the height array then
22:16:58 <TrueBrain> frosch: still, 256 ints 😛
22:17:10 <TrueBrain> (secret: it is the same thing :D)
22:17:54 <TrueBrain> the only thing we read in bulk are all non-MAP chunks
22:18:00 <frosch> ah you are already processing it in chunks of 8k
22:18:31 <TrueBrain> I do see there is a mistake in MAP processing, but that just results in some code doing a `read(0)`
22:18:35 <TrueBrain> so shouldn't be any issue either
22:20:27 <TrueBrain> okay, even with 512MB RAM it seems to hit OOM
22:20:39 <TrueBrain> not 100% sure, as I actually cannot see if the OOM hits .. I just see the task rebooting
22:21:31 <frosch> the scenario is attached to a mail in info@
22:25:23 <TrueBrain> okay, memory only increased with 3MB
22:25:32 <TrueBrain> so that isn't actually the problem, and the streaming part is actually working, it seems
22:25:57 <TrueBrain> it is, however, slow 😛
22:26:08 <andythenorth[d]> TrueBrain: lambda 😛
22:26:29 <TrueBrain> and that is on my machine
22:26:48 <TrueBrain> ha, okay, so health-checks fail 😄 It isn't the OOM 😛
22:27:36 <frosch> really? i assume reloading the database would take even longer
22:27:56 <TrueBrain> yeah, looking back even further, the issue is not the uploading of the scenario
22:28:02 <TrueBrain> it is just never marked as healthy
22:32:15 <dP> lol, I just realized one-way road direction is decided by the part of tile I release the mouse button
22:32:26 <dP> was dragging it this whole time...
22:33:52 <TrueBrain> okay, so when it is analyzing a big scenario, which will take several seconds, the health-check misses too often, as the API is stalling, and as such, it is killed ... totally by design
22:33:57 <TrueBrain> just sucks for what we do now 😄
22:35:48 <JGR> Might be easier to fork another process and do the analysis there instead?
22:36:10 *** Etua has quit IRC (Remote host closed the connection)
22:37:05 <TrueBrain> it already does this for commits, but yeah .. I might have to
22:37:34 <TrueBrain> NewGRFs were already taken their sweet time, so I did not think any of it
22:37:46 <TrueBrain> but ... a 4kx8k map .... I did not have those in my benchmark yet 😛
22:38:59 * andythenorth[d] working out a spec for storybook, but in grf
22:39:33 <andythenorth[d]> for lolz mostly
22:40:27 <TrueBrain> okay, pyston-lite doesn't speed this up .. too bad 😄
22:42:17 <andythenorth[d]> callback in context of each storybook page, cycling through each page element
22:42:42 <andythenorth[d]> ok the lolz aren't lolz enough
23:08:33 *** debdog has quit IRC (Ping timeout: 480 seconds)
23:14:02 <Eddi|zuHause> <dP> lol, I just realized one-way road direction is decided by the part of tile I release the mouse button <-- the UI has some slightly ancient and potentially unintuitive behaviour
23:15:20 <Eddi|zuHause> but i actually thought one-way road was on a cycle like signals, where you click multiple times to get the right dirction
23:20:40 <dP> also, for multiple tiles it does go in the drag direction
23:22:18 <dP> hm, and bulldozer mode removes the road, not one-way...
23:24:15 <dP> would probably be much better if one way just placed it and bulldozer removed instead of the current weird toggle
23:24:58 <Eddi|zuHause> i've used one-way roads maybe twice in the last 15 years
23:26:18 <dP> I'm using them all the time
23:26:18 <dP> but probably not for the intended purpose xD
23:33:09 <Eddi|zuHause> there used to be a "forbid both ways" option
23:33:57 <JGR> Just toggle the other one way bit as well
23:36:28 <dP> yeah, I still want them to be able to enter though
23:37:40 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:40:19 <Eddi|zuHause> i'm assuming that's a teleporter?
23:43:02 <dP> just a carousel to move stuff in place
continue to next day ⏵