IRC logs for #openttd on OFTC at 2025-09-15
⏴ go to previous day
00:14:54 *** Flygon_ has joined #openttd
00:20:53 *** Flygon has quit IRC (Ping timeout: 480 seconds)
01:20:06 *** WormnestAndroid has quit IRC (Remote host closed the connection)
01:20:14 *** WormnestAndroid has joined #openttd
01:52:07 *** Wormnest has quit IRC (Quit: Leaving)
03:42:04 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
03:53:03 *** Zathras_11 has joined #openttd
03:56:25 *** Zathras has quit IRC (Ping timeout: 480 seconds)
04:13:05 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:13:08 *** WormnestAndroid has joined #openttd
04:13:16 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:13:17 *** WormnestAndroid has joined #openttd
04:13:20 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
04:13:32 *** WormnestAndroid has joined #openttd
04:29:27 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
04:39:06 <DorpsGek> - Update: Translations from eints (by translators)
04:56:00 *** dh1 has quit IRC (Remote host closed the connection)
05:08:40 *** dh1 has quit IRC (Remote host closed the connection)
05:17:16 *** dh1 has quit IRC (Ping timeout: 480 seconds)
05:57:51 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
07:06:23 <DorpsGek> - Add: summary for week 37 of 2025 (by OpenTTD Survey)
07:06:59 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
07:08:30 *** WormnestAndroid has joined #openttd
07:39:09 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
07:54:09 *** firepup650 has joined #openttd
07:55:09 <peter1138> I now how 15+ commits of fixes :(
07:57:50 <jessicathegunlady> in my experience, if you haven't had to do a ton of fixes, you haven't tested it enough
08:01:52 <andythenorth> oversight-driven-development
08:02:35 <peter1138> Yeah, I know, I'm a shit developer.
08:06:46 <peter1138> It's well known that good developers start with knowing exactly how long a task will take without any planning, they then take the well-specified design brief and build the solution to exactly that brief and deliver the task exactly on time.
08:37:49 <kuhnovic> (yes, this is an actual problem for something I'm working on)
08:38:30 <peter1138> Why does the commit title say the oppose of the motivation?
08:40:02 <kuhnovic> Well that is the fix... but yeah that's confusing
08:40:02 <peter1138> "FioRemove should return false if the file does not exist" would make more sense.
08:41:08 <peter1138> Or "FioRemoved returned true if the file does not exist" would state the problem being fixed.
08:41:30 <peter1138> (But that implies it always does it and I don't know if that's the case.)
08:41:42 <LordAro> "Make FioRemove return false if...."
08:42:07 <kuhnovic> Just look at the code alright 😛
08:42:19 <LordAro> nah, i'm busy doing real work
08:42:50 <peter1138> Yes our code always makes perfect sense.
08:43:18 <jessicathegunlady> peter1138: To me, it doesn't seem like they actually oppose? It's just not the most clearly written.
08:43:19 <kuhnovic> Things get messy when we start talking about it
08:43:54 <jessicathegunlady> States current behaviour, says "this is an issue", and clarifies in description the reason why.
08:44:29 <peter1138> kuhnovic, that's why we just force commit with no reviews and don't add any comments :D
08:44:51 <peter1138> jessicathegunlady, it didn't :)
08:46:26 <jessicathegunlady> I mean, I was looking at it before the update and still thought that. But... Doesn't really matter. Being worded confusingly was still the issue either way.
08:49:13 <peter1138> I am still kinda offended by andythenorth's comment. Hmm.
08:49:35 <jessicathegunlady> Heh, the 'ODD' comment?
08:57:06 *** lobstaroooo has quit IRC (Remote host closed the connection)
09:04:12 <kuhnovic> Yes, that does seem to be the case. I guess returning an error code for a non-existing file was just too straightforward...
09:27:48 <xarick> I received a strange crash report on my AI
09:28:30 <andythenorth> peter1138: I should have included an emoji 😛
09:28:42 <andythenorth> it was entirely 'lol'
09:28:56 <xarick> airport type 254 is weird
09:30:25 <xarick> then i find the affected route and it only has 1 airport... something tells me the airport was flooded
09:33:20 <jessicathegunlady> andythenorth: Heh, I was amused by it at least.
09:33:54 <jessicathegunlady> *Describes my experience thus far with doing GS work. I love ADHD.*
09:35:30 <kuhnovic> Xarick's summer hibernation seems to be over
09:36:14 <LordAro> sounds like something returned an invalid value (because it no longer exists) but that was never checked
09:36:57 <xarick> I wish openttd had a "replay" feature
09:37:27 <xarick> wanted to see when things got wrong
09:38:31 <xarick> a replay file would need to contain everything required to replicate it
09:39:50 <LordAro> that's basically what the desync debugging stuff does
09:40:00 <LordAro> it's no minecraft replay mod though ;)
09:41:07 <xarick> can someone make it more easily accessible, more noob friendly, fool proof
09:41:34 <xarick> Load replay, select replay file, and that would be all it needed 😮
09:43:57 <xarick> the old restart method for AIs no longer working 🙁
09:47:17 <xarick> oh, one thing that could (theoretically) help me as an AI developer would be to save the AI data when it crashes.
09:47:49 <xarick> In this crash report I would be able to find the location of the affected airport
09:47:56 <xarick> digging my own save data
09:48:09 <jessicathegunlady> Which data?
09:48:46 <LordAro> i'd consider that reasonable to do when the AI developer setting is enabled
09:49:10 <LordAro> would need some questions answering about exactly where it gets saved, and what form it takes
09:49:17 <LordAro> dumping a binary blob wouldn't be particularly useful ;)
09:49:33 <jessicathegunlady> I don't know if it would be necessary.
09:50:37 <jessicathegunlady> I've not tried it before, but couldn't you just put everything in a `try/catch`?
09:51:02 <jessicathegunlady> Then just log through what data you'd find necessary for debugging if it fails.
09:52:25 <LordAro> that's certainly one way you could do it
09:53:11 <kuhnovic> Good ol' Pokemon exception handling
09:53:13 <jessicathegunlady> Mmm. Don't know if it has any performance impacts though.
09:53:41 <jessicathegunlady> But it at least seems like a universally applicable solution we already have.
09:54:14 * LordAro hits kuhnovic round the head with a master ball
09:56:02 <kuhnovic> Great, now you have me in your pocket. I do require a lot of coffee.
09:58:11 <peter1138> Is that kuhnovic in your pocket or are you just...
10:01:30 <xarick> task manager sometimes shows me cpu usage over 100% 🙁
10:01:44 <xarick> what the hell microsoft...
10:02:12 <LordAro> 100% per core is quite common
10:05:57 <peter1138> Overclock your cores to get 110% of out them.
10:06:28 <LordAro> Shuttle main engines famously went to 114%(?)
10:07:08 <LordAro> 100% being the maximum when they were designed, but then they were able to rate them higher
10:07:54 <peter1138> That's a short hand way of saying "ignore safety margins"
10:35:48 *** Flygon_ has quit IRC (Remote host closed the connection)
10:43:55 <_glx_> LordAro: Well AI `Save()` function, if it exists, returns a table, and we have code to convert squirrel objects to JSON (for GSAdmin)
12:32:30 <LordAro> i'm sure that issue is a duplicate, but i can't find anything
12:47:48 <jessicathegunlady> VacuumBreatherviaGit: > "letting an aircraft crash when the player specifically has turned accidents OFF is not ideal"
12:49:23 <jessicathegunlady> Was going to comment on sizes, but... I've been running on JGR for so long I forget if base OpenTTD even has sizes to worry about.
12:50:27 <jessicathegunlady> Oh no, seems like according to the wiki it is in vanilla. Had to check my sanity.
12:50:47 <_jgr_> There is very little in my branch to do with aircraft
12:50:54 <jessicathegunlady> Yeah, that's what I thought.
12:51:26 <peter1138> Why would a model train simulator need aircraft...
12:51:27 <jessicathegunlady> Just worried for a second about going "oh but what about x" and then it turns out it's not vanilla behaviour.
12:52:01 <jessicathegunlady> More things to crash.
12:52:58 <jessicathegunlady> jessicathegunlady: Anyway, yeah. Best I remember, large aircraft will still crash at small airports sometimes, even with everything else turned off.
12:59:59 <peter1138> Silly bad reviewer.
13:00:12 <peter1138> (That led of that PR, hopefully not of that PR.)
13:08:25 <xarick> i hope account actions don't include creating prs
13:09:14 <LordAro> you'll be pleased to learn that a phone is not required for such things
13:21:20 <_glx_> usually an email is a valid option yes
15:14:47 *** Zathras_4 has joined #openttd
15:33:11 *** Wormnest has joined #openttd
15:47:29 <peter1138> I wonder how they vet packages they, uh, package...
15:48:21 <LordAro> >It does not prohibit adding packages for AI-related software or software that is being developed with the help of such tools upstream.
15:49:35 <peter1138> Yeah, I didn't actually read all of it :D
16:34:06 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
16:34:08 *** WormnestAndroid has joined #openttd
16:35:23 <kuhnovic> Now TrueBrain will be able to sleep tonight 😉
16:42:15 *** gfja8rga has joined #openttd
16:49:41 *** gfja8rga has left #openttd (Leaving)
17:14:12 *** gelignite has joined #openttd
18:10:40 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
18:10:41 *** WormnestAndroid has joined #openttd
18:10:50 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
18:10:51 *** WormnestAndroid has joined #openttd
18:10:54 *** WormnestAndroid has quit IRC (Read error: Connection reset by peer)
18:11:06 *** WormnestAndroid has joined #openttd
18:28:47 *** lobstaroooo has joined #openttd
18:57:31 *** vikkeri05 has joined #openttd
18:57:31 <vikkeri05> Does the NoAI need the registerAI() ?
18:57:44 <vikkeri05> or is it just for the legacy ai?
18:58:30 <LordAro> what do you think legacy AI is?
18:58:45 <vikkeri05> i just saw it when i searched it up
18:59:12 <LordAro> the only "legacy AI" is the original, hardcoded AI that wasn't scripted at all
18:59:20 <LordAro> it's been gone for... 18 years now?
18:59:41 <vikkeri05> i have literally 2 hours on open ttd
19:00:34 <peter1138> Seems like LordAro beat me to the sarcasticish response, he's normally the sensible one :)
19:00:52 <LordAro> i wasn't trying for sarcasticish
19:01:08 <vikkeri05> vikkeri05: im literal about this btw
19:01:14 <LordAro> starting an AI after only playing for 2 hours seems... bold
19:01:28 <vikkeri05> i really dont care about the gameplay
19:01:33 <vikkeri05> i like modding games
19:02:08 <peter1138> LordAro, yeah, I went with "ish" cos it wasn't my level of douchebaggery.
19:02:09 <vikkeri05> vikkeri05: plus i understood the whole game in like 1.5 hours
19:02:25 <vikkeri05> the main stuff of the game
19:09:09 <vikkeri05> is there something more easier to start to mod about the game other than the ai
19:09:30 <vikkeri05> cus this is literally my first time touching squirrel files
19:09:39 <LordAro> i'd be surprised if it weren't
19:09:47 <LordAro> it's not a common scripting language
19:10:00 <LordAro> but it's probably still easiest
19:10:06 <vikkeri05> why does the game even use squirrel? was it just for the funzies orrrrr?
19:10:08 <LordAro> newgrfs are... clunky at best
19:10:23 <jessicathegunlady> Aye. I'm only familiar with Squirrel being used in Source engine games.
19:10:29 <vikkeri05> jessicathegunlady: damn
19:10:38 <jessicathegunlady> (Not as the main language)
19:10:51 <vikkeri05> i know i dont think its used for main language
19:10:54 <jessicathegunlady> vikkeri05: Left 4 Dead 2 and Portal 2 have had it for a while as far as I know.
19:11:04 <LordAro> I believe Squirrel was chosen as it was more or less the only option at the time. Its integration more or less predates Lua
19:11:04 <jessicathegunlady> TF2 got it... I think 1 or 2 years ago?
19:11:47 <andythenorth> one day, Squirrel dies
19:11:55 <jessicathegunlady> I PRAY TO GOD IT DOES
19:11:58 <andythenorth> but we'd probably keep it around for all the existing content
19:12:52 <jessicathegunlady> It's been so nice trying my hand tinkering with OTTD's code for the first time. I've missed just... *everything* about using... well, an actual language
19:13:18 <vikkeri05> is openttd like EVER going to change from squirrel to something else?
19:14:30 <jessicathegunlady> ~~ask me when my patience is running thin~~
19:14:44 <vikkeri05> what do yall know about Tcl
19:14:50 <jessicathegunlady> Biggest issue of swapping away from it is legacy support and having to maintain two+ languages.
19:15:20 <LordAro> and all the others are quite large to integrate
19:15:32 <jessicathegunlady> I'm also not aware of anything that would make sense to implement in it's place that would present a significant improvement.
19:16:07 <jessicathegunlady> ~~just make scripts also have to use C++~~
19:16:50 <vikkeri05> hear me out. i dont like C++
19:18:36 <jessicathegunlady> I got my start with coding using something related *to* C++, and most of my experience has been with C#. ...Though I don't know if that really *belongs* in the supposed family.
19:18:59 <vikkeri05> i started with batch 🤦
19:19:08 <vikkeri05> and moved on to python
19:19:12 <vikkeri05> and after that to lua
19:19:19 <vikkeri05> lets put it that way
19:19:30 <jessicathegunlady> ~~i mean at that point i might as well say i started my programming experience with JSON~~
19:19:43 *** dh1 has quit IRC (Remote host closed the connection)
19:21:13 <vikkeri05> atp that the most annoying so said ""unknown"" languages like brainfk and piet arent like that that that hard anymore that they became mainstream
19:21:28 <vikkeri05> tcl is what fkd up my brain
19:24:05 <vikkeri05> but if you really really really want to get ur brain fkd try out APL
19:24:15 <vikkeri05> A Programming Language
19:27:47 <LordAro> it took quite some effort to find that code
19:28:16 <LordAro> the commit that removed it wasn't exactly usefully titled :p
19:30:12 <jessicathegunlady> LordAro: ~~...okay maybe squirrel has it's merits-~~
19:35:18 <_glx_> one of the main advantage of squirrel is it's fully embedded, and we can add our own stuff in its internals
19:35:45 <_glx_> disadvantage: we are stuck to an old version 🙂
19:35:56 <jessicathegunlady> Guess that's a good point.
19:36:16 <rito12_51026> Why badges are so complicated?
19:36:42 <_glx_> squirrel3 has nice additions IIRC but it also removed some stuff used by existing AIs
19:36:58 <jessicathegunlady> We can also at least replicate some of it's functionality, right?
19:37:05 <truebrain> Tnx for involving me in the conversation LordAro 😛 😄
19:37:25 <LordAro> couldn't let you get away with it
19:38:00 <jessicathegunlady> I know I ran in to an issue at some point trying to use the `table.keys()` function the Squirrel 3 manual described, because I was a goober who didn't realise we were on Squirrel 2.
19:39:50 <andythenorth> rito12_51026: they're not? 👀
19:40:16 <_glx_> badges are just stickers
19:41:12 <rito12_51026> I mean the badge configuration dropdown
19:41:32 <_glx_> oh you are inside GUI code ?
19:42:01 <truebrain> Btw, I don't think WASM will become viable for OpenTTD in the near-future. I think lua would be a safer bet.
19:42:45 <peter1138> I'm not sure there's an appetite for adding a second language-specific interface.
19:43:11 <jessicathegunlady> peter1138: I don't know. Spite can be a pretty powerful motivator.
19:43:32 <truebrain> I did look into the complexity of automatically converting Squirrel to lua. It was .. interesting 😛
19:45:10 <peter1138> rito12_51026, complicated to use, or what?
19:45:44 <jessicathegunlady> I mean... If anything, wouldn't it make sense just to modify Squirrel if there's anything we *really* wanted to change?
19:46:18 <truebrain> It is difficult to manipulate the brain of all people who want to write AIs 😛
19:46:47 <truebrain> (the biggest issue for me with Squirrel, is that nobody knows the language; next to the points glx made 🙂 )
19:46:54 <LordAro> the copy of the squirrel runtime copied into OTTD's codebase has been extensively modified already
19:47:00 <truebrain> lua at least is a language that many people know 🙂
19:47:25 <jessicathegunlady> That's true.
19:47:58 <jessicathegunlady> It doesn't help that it's not the *easiest* thing to get in to either, from an OpenTTD-specific angle.
19:48:18 <jessicathegunlady> At least, that was my experience starting GameScript writing. Finding the information I was looking for was often difficult.
19:48:33 <andythenorth> GameScript is quite easy
19:48:40 <andythenorth> start from the starter GS
19:48:45 <andythenorth> delete some of it
19:48:48 <truebrain> Doxygen also isn't the best to convey an API 🙁
19:48:50 <jessicathegunlady> Oh, I've been already working on one for a while now.
19:48:59 <rito12_51026> peter1138: complicated to merge badges for multiple vehicle types into one configuration window
19:49:04 <andythenorth> I prefer GS doxygen to other forms of our docs
19:49:06 <jessicathegunlady> I know Squirrel and a good chunk of the API by now.
19:49:51 <andythenorth> it's often helpful to read OpenTTD src for script stuff
19:50:12 <jessicathegunlady> Aye. I had to consult it on more than one occasion.
19:51:05 <jessicathegunlady> I'd like to work on improving the GS documentation at some point, maybe try and tidy up the experience for someone getting in to it via the OTTD wiki.
19:52:23 <truebrain> It wouldn't hurt to use a more modern approach to generating documentation for a script API
19:52:43 <truebrain> Mainly if that would include many more example code 😄
19:52:44 <peter1138> > UIBadgeClasses badge_classes[4]{{},{},{},{}};
19:52:51 <peter1138> Jesus christ what tooling came up with that?
19:53:26 <jessicathegunlady> if I submit a PR request, that's gonna be what it looks like :>
19:53:30 <peter1138> `std::array<GUIBadgeClasses, VEH_COMPANY_END> badge_classes{};`
19:54:01 <LordAro> truebrain: and find some bugs :p
19:54:07 <peter1138> But I will argue that badges probably don't need to play a part in the engine preview window.
19:55:08 <kuhnovic> I would like to merge 14578, any objections? It does include, god forbid, the removal of a single pathfinder setting.
19:55:40 <jessicathegunlady> not for any actual reason, just because i want to.
19:56:15 <jessicathegunlady> I could *only* ever see it being an issue if for some god-forsaken reason a GameScript touches it.
19:56:57 <peter1138> When GitHub hides a diff because it's too large...
19:57:00 <_jgr_> The setting is totally useless, there's no need to hang onto it
19:58:08 <peter1138> kuhnovic, it's approved, I'm not sure anyone is going to object?
19:58:54 <peter1138> Take your moment before someone requests changes ;-)
19:59:04 <kuhnovic> Some might approve of it and some migth still reject it 😛
19:59:29 <kuhnovic> ... but you have a point 😉
19:59:56 <peter1138> kuhnovic, they had 11 days to do so :)
20:00:18 <peter1138> GitHub believes that's 2 weeks but...
20:00:45 <kuhnovic> Those are silicon valley weeks
20:01:02 <_glx_> usually nobody complains before the merge anyway
20:02:12 <kuhnovic> You guys definitely aren't the "I don't really under stand the code but it looks nice" kind of crowd. Which I really appreciate.
20:03:31 <jessicathegunlady> *We'll see about that.*
20:04:35 <FLHerne> truebrain: Why do you not think wasm will be suitable? The component model in 0.2 should help a lot, and there's getting to be enough tooling to actually use it
20:05:04 <truebrain> The issue are the frontends
20:05:19 <truebrain> So far the only workable frontend are Rust and Go
20:05:41 <FLHerne> I suppose it would be best to wait for WASI 1.0 to avoid a repeat of the Squirrel problem
20:05:58 <truebrain> You dont need WASI for this
20:06:05 <truebrain> In fact, I think you should avoid it
20:06:38 <truebrain> AIs should be contained as much as possible
20:09:04 <FLHerne> I don't want the whole WASI system interface, just the component model to represent objects and APIs without loads of nonstandard hand-rolled code on both sides
20:09:23 <truebrain> Many engines dont allow you to pick that option
20:09:29 <truebrain> Either WASI or not 😛
20:09:41 <truebrain> But you can mimic most of it with ease
(this day is still ongoing; reload to check for any updates)