Times are UTC Toggle Colours
00:00:54 <FLHerne> Would be nice if you PRed the updated version at some point, of course 00:02:16 <andythenorth> so income cannot be varied 00:02:20 <andythenorth> cargo aging is junk 00:02:32 <spnda> FLHerne: It's not completely finalized, but yes that was my plan 00:02:33 <andythenorth> how about using loading speed as a dimension? 00:02:43 <andythenorth> capacity vs. loading speed for balance? 00:02:52 <FLHerne> UKRS does that with the metros 00:03:07 <FLHerne> They're slow, and relatively low-capacity per car 00:03:21 <FLHerne> But load and unload near-instantly, and accelerate fast 00:03:23 <andythenorth> speed vs. capacity is the single best balancing point 00:04:09 <FLHerne> So you can run lots of them through cramped urban stations 00:05:04 <andythenorth> I basically ran out of other dimensions 00:05:27 <andythenorth> I keep trying to figure out wheezes with run costs, but unless they're really really high, run cost is of no interest 00:05:44 <andythenorth> and if they're really high, playerbase can't make profit 00:06:29 <spnda> NML supports "" and '' strings, but not `` strings, right? 00:06:31 * andythenorth will undelete extra pax coaches if they can be figured out 00:06:47 <andythenorth> what about every luxury pax car adds 100hp to the train? 00:06:54 <andythenorth> and restaurant car adds 200hp? 00:06:58 *** Slash has joined #openttd 00:07:13 <FLHerne> spnda: right 00:07:22 <FLHerne> (do you expect that to do something special?) 00:07:49 <FLHerne> andythenorth: I don't see how that makes sense, tbh 00:08:08 <FLHerne> "can't make profit without caring about running cost" is a good thing 00:08:09 <spnda> the ``? It's just used as strings in JS for example, wondered if they were also in NML 00:08:17 <spnda> or as template strings in JS rather 00:08:50 <andythenorth> to put it another way, the only way to 'balance' a lux pax coach is to make the standard pax coach unusable 00:09:48 <andythenorth> [for certain circumstances] 00:10:27 <FLHerne> Restaurant cars decrease running cost by n%, but cost a fixed amount more? 00:10:37 <FLHerne> Then they make sense for long trains but not short ones 00:10:50 <FLHerne> Is that what they do? 00:10:52 <andythenorth> yes 00:10:57 <andythenorth> but it has been proven wrong 00:10:58 * FLHerne is bad at remembering things 00:11:36 <andythenorth> what other dimensions do trains have? 00:11:49 <andythenorth> power, speed, run cost, length, capacity, buy cost 00:11:54 <andythenorth> TE is meaningless 00:11:57 <FLHerne> How is it wrong? 00:12:23 <andythenorth> https://www.tt-forums.net/viewtopic.php?p=1242877#p1242877 00:12:27 <FLHerne> You already mentioned loading time 00:12:49 <andythenorth> I did :) 00:13:02 <FLHerne> That's not a fundamental wrongness, that's just implementation wrongness 00:13:09 <FLHerne> I think? 00:13:17 <andythenorth> I opened the savegame 00:13:31 <FLHerne> Prettiness :p 00:13:32 <andythenorth> it's so wildly different to how I play 00:13:39 <andythenorth> also I use FIRS 00:13:46 <andythenorth> and Mistakes Were Made 00:13:49 <FLHerne> Luxury cars are twice the price, but they look awesome 00:14:02 <andythenorth> FIRS sets an excessively high rate for pax payment compared to vanilla 00:14:07 <andythenorth> like twice the price 00:14:16 <andythenorth> for historical reasons that aren't well documented 00:14:56 <FLHerne> There's sharp-turning speed as used by tilting thingies, but that seems irrelevant for most things 00:14:56 <andythenorth> so any attempt to balance costs vs. income is dead in the water at this point 00:15:13 <andythenorth> tilting thingies feature is used by the pendolino 00:15:56 <andythenorth> I could just rename them Corridor Coach and Open Coach and level the capacity 00:16:02 <andythenorth> pure eye candy 00:16:19 <andythenorth> so candy 00:16:22 <andythenorth> for the eyes 00:16:40 <FLHerne> weight, cargo decay, loading gauge and axle load but needs trackset 00:16:48 <andythenorth> I considered railtype :P 00:16:54 <FLHerne> max/min train length? 00:17:14 <FLHerne> Vehicle length is obvious 00:17:28 <andythenorth> I also considered what child #1 said, which is that lux cars are express and go faster 00:17:34 <andythenorth> but then I need 3 kinds of engine speed 00:17:43 <andythenorth> and that's not just an eye candy choice 00:17:49 <FLHerne> But you could can have DMUs that have unbalancedly good specs, but can only be short so they don't scale well 00:17:51 <FLHerne> or something 00:17:57 <peter1138> Is it sleep time? 00:18:01 <andythenorth> well beyond 00:18:05 <peter1138> I think I have work tom... today. 00:18:07 <andythenorth> I am not working though so yolo 00:18:12 <FLHerne> two hours ago it was, now it seems hardly worth it 00:18:28 <peter1138> Oh but there's a Geoff Marshall video to watch. 00:18:45 <andythenorth> ok so Corridor Coach, and Open Coach, same capacity 00:18:54 <andythenorth> then Make Restaurant Cars Great Again 00:19:07 <andythenorth> that just leaves the problem of cargodist vs. autoreplace 00:19:40 <andythenorth> cargodist requires steeply increasing pax capacity per generation 00:20:02 <andythenorth> but that messes up non cargodist games, and makes autoreplace a shitshow on routes that aren't busy 00:20:43 <peter1138> I would stop trying to balance out different game modes that are inherently unbalanced due to the game itself. 00:20:51 <FLHerne> andythenorth: I *think* this save isn't how anyone plays the game :p 00:21:11 <andythenorth> FLHerne it has been expressly made to demonstrate the grf is broken, no? 00:21:25 <FLHerne> It looks to me like they've deliberately created a large flat map with infinite passenger supply, so they can test things statistically 00:21:26 <FLHerne> so that 00:21:39 <andythenorth> peter1138 I have "stopped" as in I stopped shipping the attempt to balance :) 00:21:50 <FLHerne> Given that no-one does play like this, I don't know if it matters :p 00:22:17 *** supermop_Home_ has quit IRC 00:23:19 <andythenorth> I wonder what happens if I give the lux cars cargo-aging of 0 00:23:23 <andythenorth> which disables aging 00:23:38 <andythenorth> and then leave everything else on the default value 00:24:02 <andythenorth> and then set the FIRS pax curve to maximum decay rate 00:24:14 * andythenorth is so hungry 00:24:18 <andythenorth> is it beyond eating time? 00:25:56 <FLHerne> never 00:27:41 * andythenorth eats crisps 00:33:02 <andythenorth> what does this save actually show? 00:33:45 <andythenorth> looking at the red, yellow, and white trains, I don't see what's broken? 00:35:52 <andythenorth> the green trains make no money because they use the standard pax coach 00:36:06 * FLHerne finally commits to sleep 00:36:49 <andythenorth> is it a trend? 00:37:20 <andythenorth> so Iron Horse is 'broken' on a 1024 tile long pax route 00:37:34 <andythenorth> using coaches that have age period set to 56 instead of 185 00:37:49 <andythenorth> with result that they don't make much money 00:38:39 <andythenorth> well no shit 00:44:46 *** FLHerne has quit IRC 00:46:30 * andythenorth has an idea 00:46:36 <andythenorth> see if it survives sleeping on it 00:46:37 *** andythenorth has quit IRC 01:12:33 <spnda> 031_aircraft.nml in the regression tests has stupid {} placement... its triggering me 01:31:45 *** spnda has quit IRC 01:34:58 <DorpsGek> [OpenTTD/OpenTTD] perezdidac updated pull request #8958: Feature: button to reset game settings to their default values https://git.io/JY7Yr 01:35:06 <DorpsGek> [OpenTTD/OpenTTD] perezdidac commented on pull request #8958: Feature: button to reset game settings to their default values https://git.io/JY7zE 01:41:41 <DorpsGek> [OpenTTD/OpenTTD] JGRennison opened pull request #8959: Fix: [Network] State conditions for sending client info/quit packets https://git.io/JY7gc 02:35:53 <DorpsGek> [OpenTTD/team] yellowbigbird opened issue #184: [zh_CN] Translator access request https://git.io/JY76D 02:42:12 *** Wormnest has quit IRC 03:33:13 *** Flygon has joined #openttd 03:44:07 *** snail_UES_ has quit IRC 05:55:24 *** Flygon_ has joined #openttd 06:00:56 *** Flygon__ has joined #openttd 06:02:11 *** sla_ro|master has joined #openttd 06:02:14 *** Flygon has quit IRC 06:03:51 *** Flygon has joined #openttd 06:07:43 *** Flygon_ has quit IRC 06:09:43 *** Flygon__ has quit IRC 06:09:53 <DorpsGek> [OpenTTD/OpenTTD] jschadewald opened issue #8960: Game crashed while trying to get details on crashed plane https://git.io/JY5YT 06:18:32 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #8960: Game crashed while trying to get details on crashed plane https://git.io/JY5YT 06:19:50 *** didac has quit IRC 06:26:38 *** nielsm has joined #openttd 06:30:39 *** andythenorth has joined #openttd 06:41:28 <andythenorth> yo 06:49:24 <reldred> ohayou gosaimasu 06:49:39 <reldred> I was thinking your up early but DST just ended here so 06:53:31 <andythenorth> I went to sleep at 02.30 06:53:36 <andythenorth> got up at 06.45 06:56:27 *** EER has joined #openttd 06:57:32 *** Wolf01 has joined #openttd 06:58:14 <reldred> Ooof 06:59:02 <reldred> Yeah I saw your conundrum last night, you really gotta stop letting dickwagon get to you man. Just design the set you want man, balance be damned :-) 07:07:40 *** keenriser has joined #openttd 07:07:49 *** keenriser has quit IRC 07:09:18 <SpComb> I'm so used to the game just not being balanced in terms of either late-game profit or cargodist pax demand vs capacity :P 07:11:21 <Wolf01> <reldred> Yeah I saw your conundrum last night, you really gotta stop letting dickwagon get to you man. Just design the set you want man, balance be damned :-) <- you really don't know andy, that is his reason of life :P 07:11:43 *** keenriser has joined #openttd 07:12:29 <SpComb> tell me, what's cargo aging/decay? 07:13:31 <andythenorth> you know the chart showing cargo payment rates? 07:13:34 <reldred> Wolf01: I know I know, I just don't like seeing people doubt themselves. He does good work :) 07:13:40 <andythenorth> and the payment declines over time? 07:14:09 <andythenorth> reldred the same obsession that means I actually finish and ship coherent sets...has a downside sometimes 07:14:26 <andythenorth> but also I'm pretty fed up with the newgrf spec also and that's showing through 07:14:36 *** EER has quit IRC 07:14:40 <andythenorth> poor choices made 10 years ago or more 07:14:44 <andythenorth> and we have to live with them 07:16:44 <SpComb> yes, the cargo payment decay curve makes sense... just momentarily confused, the choice of vehicle/wagon doesn't factor into that, does it? 07:18:20 <nielsm> I'm going to try to rewrite the discord integration I made using the MIT licensed discord-rpc library, if that works then I guess it can be shipped with OTTD out of the box? 07:18:35 <reldred> andythenorth: I know man I know, I just didn't like seeing LC get to you, I like seeing authors imaginations run wild and design the sets the way they want them to. If my style of gameplay doesn't work on their set then maybe I change my gameplay style, or I just use a different set. OpenTTD is such a broad platform that can be played in sooooooo many different ways. 07:19:25 <nielsm> "It sounds like this set is not designed for your playstyle. You are free to play with something else if you dislike this. Thank you." 07:21:00 <reldred> Or as I suggested on discord "lol fuck off" 07:22:40 <andythenorth> all LC does is prove that OpenTTD is broken in specific ways 07:22:50 <peter1138> Useful 07:22:53 <andythenorth> we know it's broken, but LC causes me to go and look why 07:23:03 <andythenorth> by digging through old forum threads etc 07:23:14 <andythenorth> the process is .... oof ... but nobody makes me do it 07:23:31 <andythenorth> I find interacting with LC ooof also and won't do it any more 07:23:35 <andythenorth> but this is self-inflicted 07:23:57 <andythenorth> for the map thing, it was ultimately useful 07:24:27 <andythenorth> for the Iron Horse thing, the actual fact LC uncovered was a bug / nml design issue 07:25:54 <andythenorth> which I will fix...when I know what the numbers should actually be 07:26:13 *** HerzogDeXtEr has joined #openttd 07:26:16 <andythenorth> gamed myself by testing with the bug in place, so the numbers are all off :) 07:26:40 <peter1138> Gah, should've gone Yamaha 07:26:46 <andythenorth> o_O 07:26:51 <andythenorth> you buying moped? 07:27:08 <andythenorth> SpComb vehicles can make the cargo decay faster or slower 07:27:26 <nielsm> peter1138: I'm listening to the TT music on a yamaha right now and it sounds pretty good, yes 07:27:43 <peter1138> That's closer 07:30:43 <andythenorth> have we seen? https://www.youtube.com/watch?v=xo-TmXPAmWo 07:34:10 <SpComb> interesting 07:34:47 <Wolf01> YT suggesting me "why mental health goes wrong and how to make sense of it" 07:35:01 <SpComb> meanwhile, I played some vanilla OpenTTD over the weekend, so I was trying to tell people that they shouldn't use the AsiaStar to haul cargo, but they didn't understand :P 07:35:29 <andythenorth> Wolf01 I think it's mixed up your recommendations with mine 07:35:33 <Wolf01> :D 07:36:01 <reldred> I never get those. As someone who has legit actually struggled the later half of 2020 and start of 2021 with mental health pretty fucking badly (Got dem happy pills now) you'd think YT would catch on and bend the reccomendations, but no, more goth and darkwave music. I'm okay with that tbh. 07:39:30 <andythenorth> Youtube knows me pretty well 07:39:35 <andythenorth> mostly shows things I like 07:39:46 <andythenorth> but now and then "Watch this conspiracy video" 07:39:53 <andythenorth> or random shit 07:40:24 <reldred> Lol, I don't get those. I've been getting some random engineering videos lately, X15 vid cropped up a day or two ago. But usually it's just music. 07:44:43 <andythenorth> I get the 'this song, broken down track by track by the producer' 07:44:46 <andythenorth> those are awesome 07:45:39 <reldred> heh, I get those for film making even though I really don't have any interest in them. Still get the reccos *eyeroll* 07:45:59 <andythenorth> the ones that show the mistakes in Blue Monday are good 07:46:17 <reldred> ooooh 07:46:26 <reldred> I mean I love New Order but still 07:47:53 <andythenorth> this is good https://nylon.net/ttd/new.htm 07:48:06 <andythenorth> "A new industry in the 1800s will be the STREET SWEEPER." 07:48:21 <andythenorth> ok let's turn up Blue Monday https://www.youtube.com/watch?v=FYH8DsU2WCk 07:48:26 <andythenorth> on my 5w laptop speakers :P 07:48:55 <reldred> I'm listening to some more modern stuff atm 07:49:08 <reldred> I'm fond of this artist: https://www.youtube.com/watch?v=e7Tc5Nk_n4M 07:49:38 <reldred> Darkwave is a distant descendent of New Wave so yeah. 07:50:00 <reldred> I still listen to a lot of 80's New Wave as well. 07:50:42 <andythenorth> pls explain DAG of new wave, dark wave, synth wave 07:50:54 <andythenorth> graphviz or go home 07:50:57 <reldred> DAG? 07:51:02 <andythenorth> directed graph 07:51:15 * andythenorth doesn't actually care 07:51:22 <reldred> LOL 07:51:25 <andythenorth> but there used to be neat diagrams in music magazines 07:51:29 <reldred> Good because I wasn't graphing shit 07:51:31 <andythenorth> explaining genres 07:51:33 <reldred> :P 07:56:58 <andythenorth> not a rickroll (Happy Mondays) https://www.youtube.com/watch?v=p5HhwecdCQw 07:58:14 *** EER has joined #openttd 08:04:09 <reldred> My client previews/embeds vids, I cannot be rickrolled 😎 08:04:17 <LordAro> up to 110 bugs :( 08:04:28 <andythenorth> local maxmia 08:04:31 <andythenorth> maxima * 08:04:35 <andythenorth> congrats to us 08:07:21 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on issue #8960: Game crashed while trying to get details on crashed plane https://git.io/JY5YT 08:08:23 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on issue #8949: Unable to abandon/quit https://git.io/JYS9b 08:08:26 <DorpsGek> [OpenTTD/OpenTTD] LordAro closed issue #8949: Unable to abandon/quit https://git.io/JYS9b 08:11:49 <peter1138> Oof. Playing TTD music in the background while working. There's definitely some bum-notes. 08:12:25 <andythenorth> why am I listening to Stone Roses? 08:12:28 <andythenorth> never really liked them much 08:12:31 <andythenorth> something different I guess 08:13:13 <TrueBrain> LordAro: surprising, how many people go: owh, a template, lets remove it completely and ignore it .. 08:13:24 <TrueBrain> I wonder if we can do anything about that 08:13:43 <LordAro> "if this template is not filled out properly, the issue may be closed without further comment" 08:13:59 <TrueBrain> and you think they will read that? :P 08:14:12 <LordAro> no, but it'll give an excuse to close it :p 08:14:25 <TrueBrain> :D 08:14:33 <TrueBrain> right, today, we punch NATs from C++ 08:14:37 <TrueBrain> no clue how I am going to do this 08:15:09 <TrueBrain> and why is it still snowing .. 08:15:19 <TrueBrain> white christmas is the dream, not white easter 08:16:29 <andythenorth> so not snow here 08:16:35 <andythenorth> full on blue sky and sun 08:16:44 <andythenorth> I am going to stay in all day and not go near the windows! 08:16:51 <TrueBrain> I am looking at near horizontal snow here 08:16:54 <TrueBrain> not vertical, horizontal 08:16:54 <andythenorth> oof 08:17:17 <TrueBrain> I reseeded my grass last week 08:17:20 <TrueBrain> this is not helping :P 08:18:21 <orudge> Our daffodils are looking rather sad 08:18:36 <reldred> Lol, explains why a friend that neck of the woods was surprised at my photo I posted this morning that had bright blue skies 😂 08:18:45 <andythenorth> so today I will mostly be complaining that I stayed up too late 08:20:16 <TrueBrain> we expected nothing less of you, honestly 08:20:19 <TrueBrain> so the floor is yours 08:21:32 <andythenorth> sorry, too tired to complain 08:21:36 <andythenorth> did I mention? 08:23:01 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain approved pull request #8959: Fix: [Network] State conditions for sending client info/quit packets https://git.io/JY5w4 08:23:20 <TrueBrain> did not really review ^^, but I think we can trust it enough to just blindly approve it :) 08:23:42 <TrueBrain> "code looks good" :D 08:24:36 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8926: Fix #8922: Show vehicle window for single vehicle in shared order grouping https://git.io/JY5wM 08:25:00 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8926: Fix #8922: Show vehicle window for single vehicle in shared order grouping https://git.io/JY5wQ 08:25:52 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8951: Fix graphical issues with dragging measurement tooltips in the viewport https://git.io/JY5wh 08:26:10 <reldred> Was some exception with the sprite sorter or something a known issue in trunk or did multitile depots pr get broken again? Trying to decide whether I bother the patch author about that one or not. 08:26:19 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8955: Change: [CMake] Improve 'In-source build' error message https://git.io/JY5rf 08:26:33 <reldred> I do want to see that PR make some progress. I'm awfully fond of it. 08:27:14 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8953: Fix: Use FluidSynth default soundfont https://git.io/JY5rn 08:28:43 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8950: Make effect volume slider non-linear https://git.io/JY5ra 08:40:55 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8941: Fix: fix nullptr deletion in DeleteWindowById https://git.io/JY56J 08:43:55 *** FLHerne has joined #openttd 08:44:01 *** Gustavo6046 has quit IRC 08:45:27 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8894: Replace IConsolePrint*(F)( calls with specific console level calls https://git.io/JY56K 08:50:00 <DorpsGek> [OpenTTD/OpenTTD] LordAro updated pull request #8936: Add: Plural support for Romanian translations https://git.io/JYX84 08:50:40 <DorpsGek> [OpenTTD/eints] LordAro merged pull request #40: Add: plural form 14, used in Romanian. https://git.io/JYyzf 08:51:15 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8936: Add: Plural support for Romanian translations https://git.io/JY5i3 09:01:31 *** roadt_ has joined #openttd 09:02:51 *** roadt__ has quit IRC 09:03:17 <TrueBrain> okay, to make STUN work and not drain all our resources, we need to punch a hole over UDP and TCP :P 09:03:35 <TrueBrain> when a server is behind a NAT, we need a way to tell him to punch a hole to a new client .. so I need something persistent to the server 09:03:53 <TrueBrain> doing that over TCP is possible, but ... say we have on peak 10k active players, which all want their friends to be able to join 09:03:59 <TrueBrain> would require 10k active TCP connections :D 09:04:02 <TrueBrain> that might be a bit too much 09:05:21 <TrueBrain> so we can do that part over UDP 09:05:30 <TrueBrain> which requires a keep-alive signal every N seconds 09:05:43 <TrueBrain> which we can use to make servers update their info on the master-server side 09:06:39 <TrueBrain> this will be a non-trivial dance, that is for sure :D 09:07:40 <LordAro> how much can we offload to the server itself? 09:07:52 <LordAro> (rather than master-server) 09:07:56 <TrueBrain> I do not understand the question, sorry? 09:09:01 <LordAro> not that i understand any of this, but it seems like once the initial connection has been made everything else can be done client-server, rather than client-masterserver-server ? 09:09:11 <TrueBrain> no 09:09:15 <TrueBrain> STUN is about punching holes 09:09:19 <TrueBrain> a server that is behind a NAT 09:09:26 <TrueBrain> needs a STUN server for others to connect to 09:09:35 <TrueBrain> as it needs a way to exchange peer info with the other side 09:09:47 <TrueBrain> well, yes, depends on what you mean exactly 09:09:56 <TrueBrain> once a client<->server are connected, we have nothing to do with it anymore 09:10:02 <TrueBrain> my problem is to get them connected 09:10:16 <TrueBrain> every server that is behind a NAT needs some way of being told someone wants to join 09:10:43 <TrueBrain> so every server behind a NAT needs some persistent connection to our STUN server 09:10:45 <LordAro> right 09:10:48 <TrueBrain> if that makes sense :P 09:11:00 <LordAro> i think so :) 09:11:24 <TrueBrain> the problem is, how long a NAT tracks an UDP stream is a bit undefined 09:11:27 <TrueBrain> "at least several seconds" :P 09:11:35 <LordAro> how does factorio do it, ooi? they have a similar multiplayer model, iirc? 09:11:44 <TrueBrain> they use Steam Relay (SDR) 09:11:52 <LordAro> oh, they actually use the steam stuff 09:11:57 <TrueBrain> which is a cloak relay network with persistent connection to the Steam network 09:12:03 <TrueBrain> you can also run it outside of Steam 09:12:07 <TrueBrain> which uses normal TCP 09:12:11 <TrueBrain> from what I could figure out at least 09:12:16 <LordAro> i see 09:12:16 <TrueBrain> or UDP, I don't even know what they use :P 09:12:32 <TrueBrain> building our own relay is a bit expensive, but by far the easiest solution :) 09:12:41 <TrueBrain> 100% always working, basically :P 09:12:58 <TrueBrain> STUN for UDP is .. mostly .. working 09:13:06 <TrueBrain> STUN for TCP is .. less often but also commonly working 09:13:18 <TrueBrain> and STUN means client<->server traffic is direct after setup 09:14:38 <DorpsGek> [OpenTTD/OpenTTD] kneekoo commented on pull request #8936: Add: Plural support for Romanian translations https://git.io/JY51y 09:15:35 <TrueBrain> always lovely if you have to optimize to cost, not to best functionality :P 09:18:11 <milek7> well server could just keep tcp connection to master-server? 09:18:20 <TrueBrain> what is funny about a server using STUN, he never really has a listening server open .. it just opens long enough for a client to connect :D 09:18:35 <TrueBrain> milek7: that is what I said: 10k TCP connections .. that might be pushing a lot of things a bit :P 09:19:42 <milek7> honestly 10k doesn't seem much :P 09:19:50 <TrueBrain> 10k persistent TCP connections? 09:24:16 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8936: Add: Plural support for Romanian translations https://git.io/JY5Dt 09:24:40 <milek7> "In 1999 one of the busiest ftp sites, cdrom.com, actually handled 10000 clients simultaneously" 09:25:05 <milek7> and that was over 20 years ago ;p 09:25:23 <TrueBrain> there is a bit of a difference between handling HTTP requests and having 10k persistent TCP connections, but okay .. 09:25:38 <TrueBrain> the AWS bill alone would be through the roof 09:25:44 <DorpsGek> [OpenTTD/OpenTTD] nielsmh opened pull request #8961: Add: Larger size renderings of the logo/icon https://git.io/JY5D0 09:26:53 <milek7> why? 10000 simultaneous http is 10000 tcp after all 09:27:19 <LordAro> milek7: short lived != persistent 09:27:32 <Xaroth> and http has a bit more overhead than just tcp. 09:27:51 <milek7> LordAro: I'm not convinced there's any difference 09:28:05 <milek7> AWS bill will be insane of course, but what AWS isn't? :P 09:28:15 <milek7> *what on 09:29:46 * andythenorth naptime 09:29:57 <andythenorth> involuntary sleeping 09:30:08 <andythenorth> woke up now though 09:31:06 <TrueBrain> I hope you are not at work :P 09:31:11 <peter1138> Yay, what a mess up. 09:31:47 <andythenorth> TrueBrain sometimes I sleep at work 09:31:50 <andythenorth> known thing 09:31:53 <andythenorth> but yeah no 09:31:57 <andythenorth> "trending" https://www.tt-forums.net/viewtopic.php?p=1243382#p1243382 09:33:32 <SpComb> AWS NLB pricing is 100k active TCP connections per LCU, so it would depend on the EC2 backend side of things 09:33:52 <TrueBrain> SpComb: ALB is 3k active TCP connections per LCU :P 09:33:57 <TrueBrain> but you are right, NLB now also supports IPv6 09:34:02 <TrueBrain> so that becomes viable 09:34:08 <SpComb> ALB is HTTP-only 09:34:12 <TrueBrain> well aware 09:34:49 <TrueBrain> hmm .. but did they already fix outgoing IPv6 from ECS 09:34:55 <TrueBrain> hard to test ... 09:35:01 <peter1138> NLB? 09:35:06 <TrueBrain> Network Load Balancer 09:35:55 <TrueBrain> SpComb: my initial idea was to simply use HTTPS via a REST API, as that makes a lot of things a lot simpler 09:36:59 <milek7> sticking http into something that doesn't need it sure makes it simpler, suuure.. :D 09:37:08 <SpComb> with AWS Lambda function pushing each game-state tick into an SQS queue? :P 09:37:27 * SpComb has no idea what's being designed 09:37:40 <TrueBrain> SpComb: haha, no, although that would be interesting :D 09:38:54 <TrueBrain> SpComb: in short, we want to use STUN to allow people behind NATs to connect to each other to remove all the "open your firewall" issues people are having 09:39:17 <TrueBrain> there are two things that are needed for this: a "lobby" system, where people can find each other based on tickets 09:39:27 <TrueBrain> and a coordinator, that tells both sides to punch their NAT at a certain moment 09:39:44 <TrueBrain> so there is a lot of bookkeeping involved 09:39:46 <TrueBrain> like .. lots :P 09:40:08 <TrueBrain> and currently I am making the rounds: what is the non-expensive solution that doesn't take weeks to implement 09:40:45 <TrueBrain> for example, the current master-server uses DynamoDB; what would the cost do if we keep using that for such implementation 09:42:37 <TrueBrain> but the NLB is interesting .. we now run our "custom" NLB via 2 EC2 instances 09:42:54 <TrueBrain> as we needed IPv6 support 09:44:27 <TrueBrain> but I also cheated "pproxy" on there, as ECS couldn't query servers over IPv6 correctly :D 09:44:53 <TrueBrain> (mainly as ECS doesn't have IPv6 :P) 09:45:00 <LordAro> TrueBrain: seen https://steamcommunity.com/app/1536610/discussions/0/3076496088126186386/ ? 09:45:18 <TrueBrain> I did now :) 09:46:45 <TrueBrain> will forward the first 3 parts to 2TallTyler, as he did most of that work 09:50:13 <andythenorth> quite good feedback I thought 09:51:24 <TrueBrain> I gave him an award :) 09:53:50 <TrueBrain> hmm .... I guess we do have to support older OpenTTD versions for the master-server for a while, don't we? :P 09:54:02 <LordAro> forever, ideally 09:54:09 * andythenorth bad habit of refreshing steam pages currently 09:54:15 <andythenorth> like opposite of doom scrolling 09:54:51 <TrueBrain> what we could do, is use STUN for all servers, even if they do not have a NAT 09:54:58 <TrueBrain> that would mean servers no longer need to have their UDP port bound 09:55:16 <peter1138> IPv6 though 09:55:22 <TrueBrain> that in turn would mean the network flow becomes simpler (it is pretty complex atm) 09:55:29 <TrueBrain> doing a STUN on IPv6 has some use 09:55:33 <TrueBrain> mostly, it opens firewalls 09:55:37 <TrueBrain> in the same way it opens NATs 09:55:54 <peter1138> Hmm, well, that's nasty. 09:56:09 <TrueBrain> currently, a server announces itself via another port to tell the master-server it can be queried on the game port 09:56:10 <peter1138> Getting through NAT is fine, breaking through firewalls, not really. 09:56:20 <TrueBrain> the maser-server queries this, and tells back for the other port that it was successful 09:56:31 <TrueBrain> turns out, hosting that on a cloud provider is difficult :D (lot of coordination needed) 09:56:49 <TrueBrain> peter1138: how are things like UPnP different? 09:57:32 <peter1138> UPnP is a router feature that can be disabled/administered. 09:57:49 * andythenorth might be getting somewhere now https://github.com/andythenorth/iron-horse/commit/c956f2c0424d37d41e434f801c29146c8f03f329 09:57:53 <TrueBrain> its is basically the same as a websocket etc 09:58:02 <TrueBrain> STUN creates an outbound connection 09:58:04 <andythenorth> left a long commit msg for when future me declares I'm an idiot 09:58:05 <TrueBrain> which can also be used for inbound traffic 10:02:10 <peter1138> Hmm, -1 this morning, maybe I can have the heating on./ 10:02:41 <peter1138> Oh, thermostat says it's 20, but my feet says it's freezing. 10:04:54 <andythenorth> https://www.wynsors.com/products/wynsors-claw-6163096?gclid=EAIaIQobChMI4v-Mjq_p7wIVRwWiAx249Q8KEAQYAyABEgJ7jvD_BwE&gclsrc=aw.ds 10:05:35 <TrueBrain> peter1138: anyway, doing a STUN on a public IP (either IPv4 or IPv6) has no effect; just always doing it makes the implementation a lot easier :) 10:05:59 <peter1138> kk 10:06:47 <TrueBrain> hmm .. dualstack might also become a bit cleaner 10:07:07 <TrueBrain> now the client has to pick one or the other 10:07:15 <TrueBrain> but we can now "autodetect" which are available, and try all 10:12:20 <SpComb> are we talking STUN and/or TURN both? 10:14:16 * LordAro doomscrolling negative reviews 10:14:26 <peter1138> Is it possible to use colours in the "say" console command? 10:14:37 <LordAro> https://steamcommunity.com/profiles/76561198012889292/recommended/1536610/ is a curious one, as they've now got 20 hours in it, 14 more since they reviewed 10:14:57 <LordAro> https://steamcommunity.com/profiles/76561198411932041/recommended/1536610/ no idea about this one, some sort of rendering issue? 10:15:12 <LordAro> or they've just put their game into Russian and just been very confused 10:16:48 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8961: Add: Larger size renderings of the logo/icon https://git.io/JY5dP 10:17:08 <SpComb> but some kind of just-works multiplayer server would be pretty important for steam players :I we played with some friends over the easter weekend, and getting a working server was a big pain point 10:17:22 <SpComb> playing on a random public server isn't really an option, you really do want to host your own 10:19:30 <andythenorth> LordAro it's like 98% positive or something 10:19:33 <andythenorth> insaneo 10:19:49 <LordAro> i suppose i should look through the positive reviews too 10:20:51 <peter1138> `Nah 10:20:55 <peter1138> Too many 10:21:22 <SpComb> https://steamcommunity.com/sharedfiles/filedetails/?id=2442896129 meme content for OpenTTD :P 10:21:48 <LordAro> they used the correct ship this time! 10:22:44 <LordAro> TrueBrain: https://steamcommunity.com/app/1536610/discussions/0/3076496088126217139/ also this one which you may like to weigh in on 10:22:57 <LordAro> i can't remember what the ultimate result of all the screen-tearing stuff was 10:22:58 <TrueBrain> SpComb: STUN first .. TURN maybe later :) 10:23:09 <TrueBrain> and yes, exactly that scenario is the one we want to fix :) 10:24:06 <peter1138> LordAro, yeah, I get tearing in full-screen mode. 10:24:45 <TrueBrain> LordAro: nothing for me to add there. He got tearing no matter what he does .. not sure if that is something we can fix :D 10:24:56 <TrueBrain> The suggestions made were spot-on 10:25:44 <TrueBrain> okay, switching to NLB + IPv6 ECS requires me to redo parts of the infra ... lets not do that 10:25:53 <nielsm> I think there is some GL extension that can be set to make PresentBuffers wait for vsync? 10:25:53 <peter1138> Having a vsync on/off option in the game might be useful, dunno. 10:25:54 <TrueBrain> but NLB does support Proxy Protocol v2, which is very nice 10:26:18 <TrueBrain> peter1138: it is what all the big-boy games have, so I guess there is something to that :) 10:26:34 <TrueBrain> you can now force vsync on with a video driver command I believe 10:26:39 <TrueBrain> -vwin32-openg:vsync ? 10:26:48 <TrueBrain> anyway, michi_cc 's department :P 10:26:49 <TrueBrain> :D :D 10:27:06 <TrueBrain> he knows far better about what the OpenGL driver does and doesn't do :) 10:30:20 <peter1138> Yeah, that's a bit low level for a player on Steam :D 10:30:37 <TrueBrain> you can at least test if it fixes the issue I guess? :D 10:30:49 <TrueBrain> don't most games enabled vsync when going fullscreen, and disable when leaving, or something? 10:30:56 <TrueBrain> I never pay attention to that, as who plays in full screen these days? 10:31:25 *** FLHerne has quit IRC 10:34:45 <DorpsGek> [OpenTTD/OpenTTD] zoltantamasvajda opened issue #8962: Build error on armhf architecture https://git.io/JY5Af 10:36:12 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on issue #8962: Build error on armhf architecture https://git.io/JY5Af 10:36:15 <DorpsGek> [OpenTTD/OpenTTD] LordAro closed issue #8962: Build error on armhf architecture https://git.io/JY5Af 10:36:18 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on issue #8962: Build error on armhf architecture https://git.io/JY5Af 10:36:19 <TrueBrain> damn you LordAro ! 10:36:22 <TrueBrain> I WAS DOING THAT :) 10:36:23 <LordAro> bwhaha 10:37:06 <DorpsGek> [OpenTTD/OpenTTD] zoltantamasvajda commented on issue #8962: Build error on armhf architecture https://git.io/JY5Af 10:37:28 <TrueBrain> commented, but there is nothing there? :P 10:37:56 <milek7> compiler bug? 10:39:21 <LordAro> TrueBrain: GH web interface seems to be a bit slow today 10:39:32 <TrueBrain> you can say that again :) 10:39:35 <TrueBrain> strong caching? :P 10:43:26 <michi_cc> TrueBrain: What will your framerate limit code do if vsync slows it down? 10:43:47 <TrueBrain> michi_cc: last I checked, Paint() is delayed 10:44:04 <michi_cc> V-Sync off by default was really about fast-forward speed, but now that we have mostly decoupled that, we could probably just turn it on. 10:44:16 <TrueBrain> so that means drawing notices it misses its deadline, and will either try to catch up (and fail) or skip a frame 10:44:42 <TrueBrain> having vsync on with non-fullscreen also has some drawbacks if I remember correctly 10:45:17 <TrueBrain> easiest way to test: set refresh rate to 144, your display to 60, and enable vsync 10:45:22 <TrueBrain> and see what it does :D 10:45:33 <TrueBrain> I think video-performance time will be a high value .. at least, I hope so :D 10:47:06 <DorpsGek> [OpenTTD/OpenTTD] kneekoo commented on pull request #8936: Add: Plural support for Romanian translations https://git.io/JY5x2 10:47:15 <DorpsGek> [OpenTTD/OpenTTD] michicc approved pull request #8958: Feature: button to reset game settings to their default values https://git.io/JY5xV 10:47:48 <DorpsGek> [OpenTTD/OpenTTD] michicc merged pull request #8958: Feature: Button to reset game settings to their default values https://git.io/JY7Yr 10:47:56 <peter1138> Hmm, wonder how long it'll take before people realise I have asymmetric distribution turned on on my server. 10:49:50 <andythenorth> 99 10:50:35 <peter1138> Ok. 10:51:03 <peter1138> Doesn't take long to get 10+ players at the moment. 10:52:53 <milek7> TrueBrain: I wonder how that interacts with freesync displays 10:53:51 <michi_cc> TrueBrain: Video output time is high (already with 60 Hz), graphics frame rate is red, and FF speed is slightly reduced. 10:54:13 <TrueBrain> michi_cc: first two are completely expected 10:54:17 <peter1138> They still have vsync, it's just not limited to a fixed rate. 10:54:22 <TrueBrain> second is a bit surprising; it should be a bit faster, I would think :D 10:54:48 *** Gustavo6046 has joined #openttd 10:54:56 <TrueBrain> but the game does notice it is running at 60fps for graphics at that point right? 10:55:19 <TrueBrain> there is a real problem if people use no_threads with vsync btw :P That would just kill the game :D 10:55:21 <TrueBrain> just don't do that :P 10:55:27 <TrueBrain> no_threads is a debug command :D 10:55:28 <michi_cc> Yes, actual graphics frame rate is as expected. 10:55:38 <TrueBrain> sweet; well, that is surprisingly low effort :D 10:55:54 <michi_cc> With no vsync I hit my current 25x FF, with vsync I get 20-22x. 10:56:39 <TrueBrain> odd 10:56:49 <TrueBrain> the GameThread has more chance of hitting his mark 10:57:21 <TrueBrain> would need to debug that to see what is going on 10:59:50 <Wolf01> <Wolf01> YT suggesting me "why mental health goes wrong and how to make sense of it" <- I should get some drugs, but bad ones 11:04:04 <TrueBrain> hmm .. am I going to allow persistent server tokens, so people can have tokens like "reddit1" :P 11:04:13 <TrueBrain> means it also needs some cookie to proof you are the owner .. bah :D 11:04:17 <TrueBrain> guess not 11:04:20 <TrueBrain> too much effort, too little gain :D 11:04:27 <nielsm> nah the tokens should be meaningless 11:04:35 <TrueBrain> on the other hand, we could sell them :P :P 11:04:37 <nielsm> and not something the user normally sees at all 11:04:49 <peter1138> NFT? 11:05:32 <nielsm> in the shower I thought about selling a DLC that places a file in your steam ottd folder that causes the game to display a "thank you <steam username> for supporting ottd development" in the about box or on the main menu or something 11:05:40 <peter1138> Have they found the secret crypto miner embedded into the pathfinding and processing loops yet? 11:05:54 <peter1138> TTD ran on a 486, after all... 11:07:26 <DorpsGek> [OpenTTD/OpenTTD] btzy dismissed a review for pull request #8926: Fix #8922: Show vehicle window for single vehicle in shared order grouping https://git.io/JY5wM 11:07:29 <DorpsGek> [OpenTTD/OpenTTD] btzy updated pull request #8926: Fix #8922: Show vehicle window for single vehicle in shared order grouping https://git.io/JYoqP 11:07:48 <DorpsGek> [OpenTTD/OpenTTD] btzy commented on pull request #8926: Fix #8922: Show vehicle window for single vehicle in shared order grouping https://git.io/JYdeZ 11:07:53 <TrueBrain> nielsm: haha, that kinda works :p 11:08:39 <andythenorth> can I NFT Iron Horse? 11:08:52 <andythenorth> like an NFT for the edition with Restaurant Cars not removed 11:08:57 <andythenorth> limited 500 pieces 11:09:38 <andythenorth> Make NFTs Great Again 11:12:36 <peter1138> Cool, desync errors. That's nice. 11:12:39 <nielsm> non-fungible trains 11:12:45 <LordAro> oh no 11:12:46 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8926: Fix #8922: Show vehicle window for single vehicle in shared order grouping https://git.io/JYdvU 11:13:01 <peter1138> Yeah. 11:13:08 <peter1138> Two clients. Damn it. 11:14:10 <peter1138> Although interestingly it was the same IP for both. Hmmmmm. 11:14:56 <andythenorth> hmm ffwd button gets stuck in down state on mac sometimes 11:15:01 <andythenorth> no reliable repro thoughh 11:15:12 <andythenorth> tab a few times clears it 11:17:49 <Timberwolf> I got TTO running on a 386/20 once. 11:17:59 <Timberwolf> I'm not sure how playable it was. 11:18:17 <Timberwolf> At the age I did it, I had a tolerance for games running at around 8-10fps that I've since lost. 11:18:37 * andythenorth plays Warcraft 1 in Dosbox 11:18:51 <andythenorth> sound sample rate runs at about 50% when my mac throttles 11:18:52 <andythenorth> it's lolz 11:19:07 <andythenorth> 'y o u r o r d e r s' 11:19:35 <Timberwolf> Correct output and silence modulated by a square wave? 11:21:51 <Timberwolf> Or half speed? 11:21:51 <peter1138> construction.max_tunnel_length ... hmm, can't change this during a multiplayer game. nice. 11:22:23 *** WormnestAndroid has quit IRC 11:22:52 <peter1138> No desync since. We'll see. 11:23:47 *** WormnestAndroid has joined #openttd 11:27:17 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8943: Volume controls in Game Options window https://git.io/JYdJP 11:28:49 <peter1138> ^ Possible to have a promiment "MUTE" button on the intro screen? 11:31:59 <peter1138> Timberwolf, ships and aircraft when? 11:36:15 <peter1138> With CDist, I suddenly fancy using shared infrastructure... 11:36:22 <Wolf01> Sell DLCs with starter packs, M, 3 trains with 5 wagons, 10 RVs 11:36:47 <Wolf01> 100 track pieces 11:37:32 <peter1138> purchase 200 landscaping operations 11:44:21 * andythenorth starts a new game 11:44:26 <andythenorth> 'newgame' 90 times 11:44:34 <andythenorth> trying to get lakes without FIRS ports in 11:44:40 <andythenorth> one day I fix that in grf 11:45:00 <andythenorth> circular search of 4096 tiles, probably fine right? 11:45:42 * andythenorth has a code generator, not afraid to use it 11:50:36 *** blathijs has quit IRC 11:54:32 <DorpsGek> [OpenTTD/OpenTTD] glx22 merged pull request #8955: Change: [CMake] Improve 'In-source build' error message https://git.io/JY7fB 11:55:54 *** Flygon_ has joined #openttd 11:56:17 *** blathijs has joined #openttd 11:56:24 <Wolf01> BTW, did I miss an april fool or we decided to stop that year I almost broke internet? 12:00:59 <andythenorth> remove ships 12:02:15 <Timberwolf> peter1138: I'm trying to revisit stations, I keep failing at willpower and spending my computer time on Flight Simulator or BeamNG.drive. 12:02:43 *** Flygon has quit IRC 12:04:13 <Timberwolf> I hadn't thought about boats before. 12:04:34 <peter1138> Hmm, did my work to make station tiles graphics behave more like other tiles graphics get anywhere... 12:04:36 <Timberwolf> What did we agree on that, a boat set only needs Small Boat, Large Boat, and then in the 1960s you add Fast Boat? 12:04:51 <andythenorth> Hover Zellepins 12:05:12 <peter1138> Mixed cargo ships would be nice 12:05:23 <peter1138> Articulated ships... 12:05:40 <Timberwolf> I wonder how to make an ekranoplan a) work and b) not be hopelessly unbalanced. 12:05:42 <andythenorth> be good for mail / pax combo 12:05:49 <andythenorth> articulated barge trains 12:05:56 <andythenorth> niche cases I reckon though :D 12:06:11 <andythenorth> station-tile-as-objects though 12:06:16 <andythenorth> can I fund your Patreon? 12:06:29 <andythenorth> oh wait, that takes the fun out of it :D 12:06:34 <peter1138> Fund my new glasses. I'm running at 1x on 2560x1440... 12:06:35 <TrueBrain> or does it ..... :P 12:07:29 <peter1138> I think newgrf docks implemented industry-tile-type graphics for station tiles. 12:07:38 <andythenorth> whatever it was, it looked nice 12:09:22 <andythenorth> hmm how many players we have? 12:09:32 <TrueBrain> 12 12:09:34 <TrueBrain> 42? 12:09:40 <andythenorth> yes 12:09:46 <TrueBrain> rabbit 12:09:54 <andythenorth> if it was a business 12:10:23 <andythenorth> we'd have to do it bare bones at about £500k / year, or a bit bigger at £2.5m 12:10:34 <andythenorth> there's not much middle ground due to management bollocks 12:10:50 <andythenorth> how many players can we get for £10 / month? :P 12:10:59 <TrueBrain> at least 2 12:11:03 <TrueBrain> reading the Steam Discussions :P 12:11:14 <andythenorth> ok well it's > 0 12:11:33 <andythenorth> need about 5000 on repeating subscription 12:11:43 *** glx has joined #openttd 12:11:43 *** ChanServ sets mode: +v glx 12:11:54 <andythenorth> also depends how high our infra costs are as % 12:12:14 <andythenorth> we charge for infra and mods, not the original client 12:13:05 <TrueBrain> static const int MAX_PACKETS_TO_RECEIVE = 42; <- gems in our code :D 12:13:11 <TrueBrain> I know exactly who wrote that, and it wasn't me :D 12:13:50 <glx> rb ? 12:13:55 <TrueBrain> yuppp 12:35:21 *** supermop_Home_ has joined #openttd 12:35:23 <supermop_Home_> yo 12:46:56 <andythenorth> yo 12:52:08 <peter1138> no 12:52:48 <LordAro> on 12:52:56 <TrueBrain> off 12:55:36 <peter1138> Oh, I found a mug of tea in the kitchen. 12:55:49 <LordAro> how long has it been there? 12:56:05 <TrueBrain> it started in the living room 12:56:21 <planetmaker> moin. I just had a very good laugh at the issue label "missing intention". I guess it should be "missing indention"? 12:56:48 <TrueBrain> no .. it says the right thing :P 12:56:56 <TrueBrain> why would we label something that is missing indention? 12:56:58 *** snail_UES_ has joined #openttd 12:57:11 <TrueBrain> no clue what indention is btw :P 12:57:14 <TrueBrain> indentation? 12:57:24 <TrueBrain> ah, that is the same 12:57:26 <TrueBrain> so still no :D 12:57:48 <planetmaker> indentation yes 12:58:01 <TrueBrain> but no, intention is what it should read :) 12:58:14 <TrueBrain> https://www.merriam-webster.com/dictionary/intention <- this word :) 12:58:40 <planetmaker> I know what intention means... that's why I laughed :) 12:59:00 <TrueBrain> only kept for the most special of pull requests :) 12:59:24 <TrueBrain> was especially an issue when we did not have a Pull Request template yet 12:59:29 <planetmaker> ok, I see :) So basically "nice idea. But please try again :D" 12:59:42 <LordAro> "please explain yourself" 12:59:48 <TrueBrain> no, more: wtf is this doing and why on earth should we want this you did nothing to tell us why you would have this change approved :P 12:59:59 <TrueBrain> +like 13:00:02 <TrueBrain> what-ever, english is hard today :( 13:00:25 <planetmaker> ah. So you are missing an explanation for the necessity of the patch? 13:00:26 <TrueBrain> it was created for one single person, that is the worst part :D 13:00:35 <peter1138> Wasn't that specifically for S... ah... 13:00:39 <TrueBrain> peter1138: :D 13:00:55 <TrueBrain> planetmaker: yup. We now have that in the PR template 13:00:56 <peter1138> All these long complicated commits to do things, with no *reason* specified. 13:01:05 <TrueBrain> so we tell people to fill in the template, which is a bit nicer way of saying the same :P 13:01:27 <planetmaker> yeah, I like the template a lot 13:01:34 <peter1138> Bloody VS Code, nearly every time I switch branches it messes up intellisense. 13:02:04 <TrueBrain> but in December there were 100+ PRs of which most were old .. so I used these labels to sort out to "we should do something with this" vs the "yeah, whenever I can muster the energy" 13:03:48 <TrueBrain> okay .. took an hour to implement a STUN-like protocol in OpenTTD .. adding new network protocols in OpenTTD is a lot of copy/paste :P 13:03:56 <peter1138> Doesn't andy just close them all anyway? 13:03:57 <TrueBrain> now for a STUN-server .. 13:04:05 <andythenorth> peter1138 I stopped closing them 13:04:10 <TrueBrain> and after that: logic for a handshake so client/server knows when to do STUN requests .. ugh .. 13:04:13 <TrueBrain> complex shit :P 13:04:24 <andythenorth> last time I looked they were all really bona fide etc 13:04:29 <andythenorth> hire more devs! 13:04:34 <andythenorth> so we can make bugs faster 13:05:51 * andythenorth sleepy 13:06:08 <TrueBrain> tell us again why you are sleepy? 13:06:26 <andythenorth> stayed up late 13:06:30 <TrueBrain> interesting 13:06:32 <TrueBrain> tell me more 13:06:32 <andythenorth> got up early 13:06:42 <andythenorth> you were there for most of it TBH 13:06:48 <andythenorth> why do you need me to repeat it? 13:06:51 <TrueBrain> yet I am not sleepy 13:06:55 <TrueBrain> so .. hmm .. weird :P 13:06:57 <andythenorth> seems like a boring topic to keep mentioning 13:07:06 <andythenorth> :P 13:07:11 <TrueBrain> :D 13:07:16 <andythenorth> did you get up at 06.45? 13:07:23 <TrueBrain> close to that, but no, a bit later 13:07:25 <TrueBrain> like an hour 13:07:27 <TrueBrain> so that is the difference 13:07:28 <andythenorth> ouch 13:07:29 <TrueBrain> I see :P 13:07:45 <andythenorth> wife gets up at 05.30 13:08:08 <TrueBrain> see, that is the difference .. I opted-out of that feature 13:08:11 <TrueBrain> can't say I regret that :P 13:10:47 <TrueBrain> hmm .. our network protocol is LE? Lol? 13:11:09 <TrueBrain> which weirdo invented that 13:16:40 <glx> you ? 13:16:44 <TrueBrain> yes :( 13:17:36 <glx> BE or LE should work the same, as long it's not mixed 13:17:48 <LordAro> good check to make sure you're not assuming byte order :p 13:17:51 <TrueBrain> network order is normally BE 13:17:56 <TrueBrain> so it gives you mindfucks when you write software :P 13:18:09 <TrueBrain> its easily fixed .. just .. uncommon :) 13:18:22 <TrueBrain> and clearly an noob at the wheel :P 13:19:16 <michi_cc> But everything of important runs LE, so why bother with a BE network protocol? :) 13:19:24 <TrueBrain> haha :D 13:19:51 <glx> everything in openttd was LE (except macos at that time) 13:21:06 <michi_cc> Everything in personal computing is LE, and things like ARM that do have BE specified are run in LE mode for all relevant OSes. 13:21:38 <LordAro> which is M1? 13:21:45 <LordAro> presumably BE, since it's arm-based? 13:21:57 <LordAro> oh 13:22:00 * LordAro reads properly 13:22:11 <TrueBrain> wait, how do you get that upgrade? 13:22:17 <DorpsGek> [OpenTTD/team] GLgele opened issue #185: [zh_CN] Translator access request https://git.io/JYdl6 13:24:19 <TrueBrain> so someone just send us an ad via email on our abuse@ email address ... 13:27:10 <TrueBrain> @base 10 16 1234 13:27:10 <DorpsGek> TrueBrain: 4D2 13:29:05 <DorpsGek> [OpenTTD/team] LordAro commented on issue #185: [zh_CN] Translator access request https://git.io/JYdl6 13:33:21 <andythenorth> TrueBrain well it does say 'abuse' no? 13:33:26 <andythenorth> seems valid to abuse it 13:33:34 <TrueBrain> I disagree! 13:33:59 <andythenorth> dorpsek should count 13:34:05 <andythenorth> dorpsgek * 13:34:13 <TrueBrain> nahhh 13:34:59 <andythenorth> I disagreee 13:35:13 <TrueBrain> now what? 13:35:37 <peter1138> Running a server with a lot of water produces quite a different play-style... 13:43:10 <milek7> MIPS was typically BE 13:43:17 <milek7> did anybody ran ottd server on their router? :p 13:43:18 <LordAro> there's a joke somewhere about water cooling or pouring water on your server 13:44:05 <peter1138> Local rating, poor, 37%. And still 2400 passengers waiting for the one ship... 13:44:38 <TrueBrain> LordAro: I had the same :P But I failed to find a good one :D 13:44:55 <peter1138> We used to care about LE/BE due to MacOS at least. 13:48:23 <TrueBrain> hmm, ss_family that is neither AF_INET nor AF_INET6 13:48:24 <TrueBrain> oh-oh 13:49:58 *** Flygon__ has joined #openttd 13:53:00 <TrueBrain> 38064 <- that doesn't sound like a valid ss_family :D 13:53:49 <TrueBrain> ugh, stack variable that wasn't copied 13:53:52 <TrueBrain> C++ can be annoying 13:54:59 <TrueBrain> (read: I cannot program) 13:56:43 *** Flygon_ has quit IRC 14:03:04 <Timberwolf> peter1138: I love high water quantity maps! 14:06:47 <Timberwolf> I should try for a proper islands map once I'm done with Blue & Co. 14:13:53 <Eddi|zuHause> anyone else enjoying the very literal april weather? 14:14:15 <peter1138> :( 14:14:24 <peter1138> I wanted a bit warmer. 14:14:27 <Eddi|zuHause> where it's cycling through sunshine, rain, hail, snow, etc. in a 5 minutes interval 14:19:48 <Timberwolf> It's been fairly stable here. Cold enough to require additional dog admin though. 14:20:04 <Timberwolf> (Below about 8 degrees they need to wear coats for their walk) 14:20:55 <Eddi|zuHause> https://de.wiktionary.org/wiki/Aprilwetter <-- i wonder why there is no english translation for it 14:21:43 <glx> because it's their usual weather ;) 14:22:05 <LordAro> there was some snow earlier 14:22:27 <glx> I saw some snow here this morning 14:22:35 <glx> with bright sun 14:23:24 <Eddi|zuHause> i was trying to dry some laundry. but every time i remember to bring it back in, it was just as wet again... 14:30:53 *** Kitrana has quit IRC 14:41:41 *** Kitrana has joined #openttd 14:49:36 <peter1138> andythenorth, newgrf water? 14:53:36 <andythenorth> err 14:53:42 <andythenorth> sure? 14:53:49 <andythenorth> it does...what? :) 14:58:17 <TrueBrain> grrr, bind() before connect() doesn't do what I want it to ... what is wrong ... hmm 15:04:50 <peter1138> Timberwolf, of course, there are always people who build diagonal rails across the whole map... 15:06:05 <peter1138> What ever happened to deep water... 15:08:15 <Timberwolf> I played a flat map for a bit the other day, it felt wrong being able to build tracks and junctions wherever I wanted. 15:10:27 <Timberwolf> What was it andythenorth was saying about the real currency being tiles? :) 15:10:47 <andythenorth> @peter1138 there's a PR for deep water 15:10:49 <andythenorth> it got stuck 15:10:55 *** spnda has joined #openttd 15:14:10 <peter1138> Old I assume? 15:16:59 <milek7> https://github.com/OpenTTD/OpenTTD/pull/7924 15:17:11 <milek7> relatively not that old 15:19:18 <peter1138> I suppose now that 1.11 is out it's on the cards... nielsm? :D 15:20:16 <peter1138> Although the implementation is a bit odd. 15:20:46 <peter1138> Not sure why depth needs its own storage. 15:21:46 <nielsm> it would be boring if it just looked at distance to land and assumed an even gradient 15:22:13 <nielsm> this allows you to have a shallow coast area and then a sudden (steeper than 1:1) drop into deep ocean 15:22:39 <glx> can't rely on land height and height level ? 15:22:43 <peter1138> Don't we already have lots of height levels though? 15:23:00 <glx> *water height level 15:23:16 <nielsm> you mean use the tile height level to mean depth level? not really, since river and canal tiles are also water tiles 15:23:33 <nielsm> and rivers should also support depth 15:23:43 <peter1138> Hmm, I see. 15:24:08 <peter1138> So e.g. you could have water at level 5 but with depth 3. 15:24:16 <nielsm> besides, water tiles have lots of free bits 15:24:26 <andythenorth> I would have settled for 'deep' and not deep but eh 15:24:31 * andythenorth is not hard to please 15:24:32 <peter1138> andythenorth, wuss. 15:24:40 <andythenorth> yeah easy life for me 15:24:53 <Timberwolf> newgrf specs for ship draft? 15:24:53 <peter1138> Yeah, storing it separately from landscape level makes sense then. 15:25:08 <andythenorth> presumably this makes raising some seabed insanely expensive? 15:25:31 <peter1138> I hope so. 15:25:36 <andythenorth> lol if we placed transmitters on the ocean floor, it would be impossible to raise some areas 15:26:02 <peter1138> What about wind farms... 15:26:23 <Timberwolf> How does the depth get signalled to the user? Have we got something clever going on with shaders like that height-based tree one? (for 32bpp users, i.e. most of them) 15:26:40 <peter1138> height-based tree shader?! 15:26:52 <peter1138> I think I saw something about newgrf water and depth level. 15:26:56 <Timberwolf> I thought there was something added with trees to make slopes more defined. 15:27:02 <andythenorth> goes it silly features? 15:27:04 <Timberwolf> I could have hallucinated it, though. 15:27:17 <andythenorth> Timberwolf slope based tree planter 15:27:27 <andythenorth> grf trees would be .... more flexible 15:27:40 <nielsm> Timberwolf yes I made a hack that shades trees in 32bpp blitters, it actually got imported to citymania client 15:28:09 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes updated pull request #22: Fix: Use urllib to combine urls (#5) https://git.io/JYQbM 15:28:12 <nielsm> it's an ugly hack, will need lots of cleaning up before I want to make it a PR to master 15:28:38 <nielsm> although I don't know if dp did something with it before taking it 15:31:20 <peter1138> "I'm glad to hear that the cost of filling in the ocean is finally getting reasonable." 15:31:22 <andythenorth> Timberwolf goes it suburban coaches? 15:31:24 <peter1138> Promising. 15:31:38 <andythenorth> think I might have sorted out having variety + cdist shit 15:31:45 <andythenorth> oops swearing 15:31:46 <andythenorth> sorry 15:32:36 <nielsm> peter1138: also some screenshots here https://www.tt-forums.net/viewtopic.php?f=33&t=86559&start=20 15:33:22 <TrueBrain> argh, why does this work in Python, but is C++ giving me a hard time :P 15:33:23 <TrueBrain> ffs 15:33:40 <peter1138> Yeah, palette isn't great for deeper water, needs more darker shades. 15:33:47 <TrueBrain> mostly, the client is doing its job just fine, but the server has "Address already in use" for no good reason :( 15:34:57 <andythenorth> we have some spare palette :P 15:34:58 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes updated pull request #21: Fix: do not try to authenticate when requesting help (#4) https://git.io/JYQzj 15:35:14 <TrueBrain> YESSSSS :D Finalllyyy :) 15:35:16 * andythenorth considered just reducing the amount of white waves 15:36:00 <andythenorth> why is horizontal hail hitting my windows? 15:36:02 <andythenorth> it's April 15:37:05 <peter1138> Spare palette, let's make some RGB company colours... 15:39:55 <TrueBrain> okay, I can now play with myself from behind two NATs, without ever manually exchanging an IP or what-ever .. all it takes is a common token :) 15:40:15 *** gelignite has joined #openttd 15:40:22 <andythenorth> peter1138 3CC pls 15:40:28 <andythenorth> it's only one more column in the UI 15:40:28 <TrueBrain> there is a latency dependency which I have to figure out, but .. details 15:40:32 <andythenorth> we have spare pinks :P 15:40:55 <andythenorth> best part of livestream, frosch didn't warn me about the palette satire 15:40:57 <peter1138> Why 3cc? 15:41:10 <andythenorth> because wagons 15:41:15 <andythenorth> different colour to engines 15:41:17 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes commented on pull request #22: Fix: Use urllib to combine urls (#5) https://git.io/JYdS6 15:41:25 <peter1138> Yeah, the bit about all those spare entries never used... 15:41:49 <andythenorth> I use them for masks 15:41:54 <andythenorth> but sometimes I pick the wrong pink 15:42:07 <peter1138> Hmm, isn't that like just using a different colour scheme for wagons which you want to remove? :p 15:43:02 <peter1138> But yes, part of my patch is dynamic creation of palette remaps, to avoid needing 16 * 16 * 16 hardcoded remaps. 15:43:31 <peter1138> Or, indeed, 32*32*32 if I take more-cc further. 15:43:41 <peter1138> Although more-cc is stretching it. 15:44:05 <peter1138> Have we dropped 8bpp output support yet? 15:44:09 <andythenorth> I mostly use the groups livery thing you made 15:44:20 <peter1138> "we" god damn it you make me talk like I'm still involved :( 15:44:22 <andythenorth> but 'default' maps to default 2cc, not default for the weird group type 15:44:38 <andythenorth> group group group grou 15:44:40 <andythenorth> p 15:45:08 <andythenorth> what even do I call 'steam coach' UI livery thing 15:45:11 * andythenorth has no idea 15:45:16 <andythenorth> back to making trains 15:45:20 <peter1138> Call it "ripped out" 15:45:25 <andythenorth> WFM 15:45:30 <andythenorth> group liveries so much better 15:45:45 <andythenorth> bet nobody dares do it though 15:45:59 <andythenorth> have we consulted important non-contributing players? 15:46:12 <andythenorth> oh frosch did a poll, job done 15:46:29 <andythenorth> https://www.goodreads.com/quotes/40705-but-the-plans-were-on-display-on-display-i-eventually 15:47:42 <peter1138> Add the classes system onto "Freight Wagon"... CC_BULK etc 15:47:56 <peter1138> Or, indeed, not. 15:48:01 <peter1138> It's all Lakie's fault. 15:49:28 <peter1138> If you have deep water, then that gives you a nice thing for oil rigs to work with. 15:49:56 <peter1138> And also means building landmass out to the oil rig is no longer feasible 15:51:46 <glx> still doable, just more expensive I think 15:52:50 <peter1138> If it's really deep and the oil rig prevents raising the ocean floor then it could stop it a bit. 15:53:13 *** Wuzzy has joined #openttd 15:54:04 <nielsm> I should also update deepwater PR and then put the preview tag on it? 15:54:12 <peter1138> \o/ 16:01:29 <peter1138> Oh, it's home time. Time to pack up, put on the lycra, and cycle 15 miles home, in the cold snow. 16:02:09 <peter1138> Well, it used to be. Now it's time to just sit here and close one VS Code and open another. 16:02:33 <LordAro> aw 16:03:44 <peter1138> Especially as it's 4 degrees out currently. 16:03:46 <DorpsGek> [OpenTTD/bananas-frontend-cli] glx22 commented on pull request #21: Fix: do not try to authenticate when requesting help (#4) https://git.io/JYd7j 16:04:07 *** Flygon__ has quit IRC 16:06:22 <DorpsGek> [OpenTTD/bananas-frontend-cli] LordAro commented on pull request #22: Fix: Use urllib to combine urls (#5) https://git.io/JYd5n 16:08:08 <peter1138> Okay, close and open is not the right order, it defaults to opening the last workspace... 16:08:19 <spnda> is this someone who actually uses bananas-frontend-cli? :o 16:13:23 <andythenorth> so was it stations-as-objects then? :) 16:13:35 <andythenorth> because nml hasn't stationed, and nobody wants to 16:13:40 <andythenorth> but objects would be easy ish 16:14:47 * andythenorth experiments with playing Blitz 16:14:52 <andythenorth> see which morons I get today 16:15:01 <andythenorth> yesterday was a run of 38-39% players 16:15:12 <andythenorth> a tank left afk for 100 battles gets 42% 16:15:21 <andythenorth> so 38% you have to be actively bad 16:15:40 *** Progman has joined #openttd 16:18:49 <DorpsGek> [OpenTTD/bananas-frontend-cli] Xaroth commented on pull request #22: Fix: Use urllib to combine urls (#5) https://git.io/JYdFi 16:36:58 <Wolf01> Poor andy :( 16:37:42 <Wolf01> Draw pixel tanks, like I do for my game 16:39:14 <LordAro> andythenorth: depends how new you are 16:44:59 <TrueBrain> I estimate he is like 16 years old 16:45:02 <TrueBrain> :P 16:45:35 <TrueBrain> right, lets see if my hole poking code also works on Windows 16:47:05 <TrueBrain> Client 2 made an error and has been disconnected. Reason: 'wrong revision' 16:47:08 <TrueBrain> awwwhhhhhh 16:48:01 <nielsm> do you have some code others can build? 16:48:33 <TrueBrain> I do, but currently it has a fixed ticket 16:48:46 <TrueBrain> and only allows 1 person in your server 16:48:47 <TrueBrain> :D 16:48:47 *** Wormnest has joined #openttd 16:49:43 <TrueBrain> hmm .. how to make a zip file on Windows .. gooood question 16:49:59 <TrueBrain> code is here btw: https://github.com/TrueBrain/OpenTTD/tree/stun-me 16:50:11 <TrueBrain> it is still in "this is hacky" phase 16:50:13 <TrueBrain> but it does work :D 16:50:27 <nielsm> consider making a console command for it 16:51:07 <TrueBrain> lol, "cpack" on my system is linked to Chocolatey 16:51:08 <TrueBrain> that is not useful 16:51:59 *** virtualrandomnumber has joined #openttd 16:52:14 *** virtualrandomnumber has quit IRC 16:55:24 <peter1138> andythenorth, no, no stations as objects, why would you do that? 16:55:43 <andythenorth> I don't know, it got suggested a few times 16:56:00 <peter1138> It doesn't even make sense 16:56:03 <peter1138> A station is a station 16:56:08 <peter1138> And object isn't a station 16:56:15 <TrueBrain> nielsm: console command for what? 16:56:27 <nielsm> for specifying game to join or whatever? 16:56:47 <nielsm> no idea if your limit is at the master server 16:57:05 <TrueBrain> when I say something is hacky, I mean it :D There is more than one thing to fix to make it usable in a bigger setting then my local setup :P :D 16:57:15 <TrueBrain> I added two globals just to influence Connect :D 16:57:20 <TrueBrain> I am good in writing ugly code :P 16:57:26 <TrueBrain> but, it works, so tomorrow we clean it up :) 16:57:45 <TrueBrain> and if you like, we can test it :) 16:58:46 <peter1138> Ooh, OpenTTD server consuming 13% CPU. 16:59:10 <peter1138> I guess 3.4 GHz Xeon is okay. 16:59:40 <peter1138> Beats my old 2.4 GHz P4-based Xeons... 17:00:15 <peter1138> six pee ems already 17:00:46 <nielsm> hmm how to name social plugins for discovery 17:03:21 <andythenorth> still 17:03:25 <peter1138> TrueBrain, build now... 17:03:34 <peter1138> +ing 17:03:37 <TrueBrain> :D 17:03:38 <andythenorth> vehicle payment multiplier 17:03:39 <andythenorth> thing 17:03:40 <andythenorth> could be 17:03:59 <andythenorth> restaurant car = 1.25 * multiplier for all vehicles in train 17:04:03 <andythenorth> such 17:04:09 <andythenorth> many pies 17:04:17 <TrueBrain> peter1138: when it is done building, start a multiplayer server from ingame and I will join :) 17:04:37 <peter1138> Just don't cheat and use IPv6. 17:05:16 <TrueBrain> the STUN server is IPv4 only, so it won't :) 17:05:32 <TrueBrain> which crashes because the SSH timed out .. lol .. I should fix the server to do SSH pings, I see :) 17:05:40 *** frosch123 has joined #openttd 17:06:14 <peter1138> "stun test peter1138" 17:06:27 <TrueBrain> hmm .. not getting through .. 17:07:00 <TrueBrain> can you restart the game? 17:07:11 <peter1138> "please allow udp and tcp packets to...." 17:07:19 <peter1138> advertising is failing, hm. 17:07:26 <TrueBrain> yeah, you can disable advertising 17:07:35 *** dd has joined #openttd 17:08:02 <peter1138> Restarted 17:08:35 <peter1138> received invalid packet type 0 from [::]:0 17:08:36 <peter1138> Hmm 17:08:47 <TrueBrain> yeah .. something is not routing correctly :( 17:09:06 <peter1138> Or my router sees past your sneakery and doesn't allow it. 17:09:14 <TrueBrain> that is very much possible 17:09:25 <TrueBrain> if any firewall validates the SYN sequence, it will be kicked out 17:09:30 <TrueBrain> so far, surprisingly many do not validate 17:09:36 <peter1138> Any external IPs I should snoop traffic on? 17:09:48 <TrueBrain> I did not make it follow any binds yet 17:09:51 <TrueBrain> so it just picks a random port :D 17:10:06 <TrueBrain> in the console it returns an IP pair 17:10:09 <TrueBrain> you can monitor on that 17:10:16 <peter1138> 62... 17:10:18 <peter1138> Ok 17:10:43 <TrueBrain> sadly, you do need to restart the server first 17:10:46 <TrueBrain> as it is a one-shot thing atm :D 17:11:06 <TrueBrain> (basically, when the server starts, it allows 1 STUN request :P) 17:11:28 <peter1138> Oh, it crashed. 17:11:40 <TrueBrain> and running with -dnet=1 might also help 17:11:57 <peter1138> CheckCallbacks() 17:11:59 <peter1138> delete cur 17:12:04 <TrueBrain> ah, that would be me 17:12:25 <TrueBrain> I indeed close a connection but do not remove the object 17:12:27 <TrueBrain> so .. oops :P 17:12:40 <TrueBrain> and that crashed the STUN server 17:12:42 <TrueBrain> also interesting :D 17:13:00 <TrueBrain> ah, closed-connection not handled properly 17:13:38 *** FLHerne has joined #openttd 17:13:43 <dd> Hello, I joined this game yesterday. :) 17:13:48 <TrueBrain> I see traffic going to your machine, but no response 17:14:18 <TrueBrain> lets try it the other way around: I host, you join. You can do that by doing ./openttd -n 127.0.0.1 (or any IP really .. I just hacked into the -n handler) 17:15:29 <TrueBrain> guess this is asking for a tool to analyze someones local setup, just to probe it what works and what doesn't 17:15:55 *** dd has quit IRC 17:16:14 <peter1138> trying to find where the binary is :p 17:16:18 <TrueBrain> :D 17:16:23 <TrueBrain> HIDING! :P 17:16:31 <TrueBrain> Debug/openttd.exe :P 17:16:34 <TrueBrain> but what folder ... 17:16:45 <peter1138> got it 17:16:56 <peter1138> Okay 17:18:10 <peter1138> 1/6 connecting.... 17:18:16 <TrueBrain> hmm 17:18:19 <TrueBrain> now I have an invalid packet type 17:18:20 <TrueBrain> wtf 17:18:23 <TrueBrain> what did I break ... 17:19:03 <peter1138> My packet sniffer statys 11/19 bytes both times. Hmm. 17:19:06 <peter1138> *says 17:19:18 <TrueBrain> something is weird, give me a moment to figure out what I did to break it :P 17:19:37 <peter1138> By both times I mean running as server and then client 17:19:40 <TrueBrain> is says it received a type=0 packet, and that it is unknown, but it really exists, and really is in that switch :D 17:20:43 <TrueBrain> ah, if Python terminates the connection too quick, this happens 17:21:04 <TrueBrain> pushed a new version to my branch 17:21:18 <peter1138> Having a packet sniffer on your router is handy, I say 17:21:31 <TrueBrain> you can filter out the 12121 packets btw 17:21:38 <TrueBrain> port 12121 17:21:44 <TrueBrain> that is out-of-band communication with the STUN server 17:22:11 <TrueBrain> k, after recompile, you can try joining my server again (so with -n 127.0.0.1) 17:22:17 <peter1138> There's not a lot of them 17:22:24 <TrueBrain> I copied the handler of the ContentServer, but it is weiirrrddd, that code 17:22:56 <TrueBrain> nah, it just send a packet to the STUN server, and he returns the public IP/port of the other side (me in this case) .. all it does :P 17:24:15 <glx> <TrueBrain> hmm .. how to make a zip file on Windows .. gooood question <-- right click, send to, and you should have an option to zip 17:24:26 <TrueBrain> glx: sorry, I meant via CMake 17:24:29 <peter1138> Okay, trying -n 17:24:31 <TrueBrain> as Windows put stuff in weird folders etc 17:24:39 <TrueBrain> hmm .. there was some traffic flowing 17:24:40 <peter1138> Revision does not match 17:24:41 <peter1138> eh 17:24:45 <TrueBrain> owh, oops 17:24:50 <glx> oh install 7zip then :) 17:24:53 <TrueBrain> my bad 17:24:56 <TrueBrain> now you host a server peter1138 :) 17:25:09 <TrueBrain> glx: no, I had to copy files from Debug folder, then the lang folder, etc etc 17:25:12 <TrueBrain> was manual work 17:25:13 <TrueBrain> was annoying :P 17:25:18 <TrueBrain> cpack is fucked up here :P 17:25:41 <peter1138> Binding 17:25:41 <glx> hmm cpack should just copy binary from build dir 17:25:52 <TrueBrain> glx: cpack is chocolatery here 17:25:54 <TrueBrain> no clue how that happened 17:26:01 <TrueBrain> peter1138: hmm .. seems it cannot punch a hole in your NAT, I think 17:26:04 <glx> path issues 17:26:32 <TrueBrain> peter1138: if you try -n 127.0.0.1 again? (I should have fixed revision now) 17:27:29 <glx> but yeah chocolatey using same tool name as cmake is quite stupid ;) 17:27:49 <peter1138> Started 17:27:57 <peter1138> received illegal packet type 0 17:27:58 <TrueBrain> peter1138: hmm .. any errors on your console? 17:28:00 *** jottyfan has joined #openttd 17:28:01 <TrueBrain> again? 17:28:17 *** Synck has joined #openttd 17:28:58 <TrueBrain> okay, modified the STUN server a bit to not close the socket directly after sending the last packet 17:29:05 <peter1138> And crashed again :D 17:29:09 <TrueBrain> I noticed :P 17:29:26 <TrueBrain> now you joined as client? 17:29:46 <peter1138> up-arrow command line was for client, so yeah 17:30:04 <TrueBrain> guess what I could do that it tries to poke a hole in either direction, and pick one that works 17:30:08 <peter1138> Ok, here goes 17:30:23 <TrueBrain> "The server didn't answer the request" 17:30:24 <TrueBrain> wuth? 17:30:39 <TrueBrain> never saw that error before :P 17:30:47 <TrueBrain> I love how explicit "the request" is :D 17:31:01 <peter1138> [tcp] listening on IPv4 port 192.168.1.19:64594 17:31:01 <peter1138> Hmm 17:31:08 <TrueBrain> okay, one more time :D 17:31:20 <TrueBrain> and that is a good sign, that log line btw 17:31:24 <TrueBrain> that is the dedicated host port :P 17:31:34 <peter1138> illegal packet again 17:31:37 <TrueBrain> ugh 17:31:44 <TrueBrain> I think latency is the issue here 17:32:02 <TrueBrain> but it might very well be that your NAT is more strict :) 17:32:20 <TrueBrain> the "correct" way of TCP NAT punching is predicting the next port the NAT is going to use 17:32:24 <TrueBrain> but that sounds really wrong to do 17:32:53 <TrueBrain> I have to figure out why it is showing illegal packet errors 17:33:02 <TrueBrain> well, at least you could see my awesome map :D 17:34:19 <peter1138> I've turned off the SIP ALG now 17:34:28 <peter1138> I don't think it'll have any effect because it's not SIP, but you never know. 17:34:39 <TrueBrain> start your server! :D 17:34:48 <peter1138> Crashed 17:34:50 <TrueBrain> haha 17:35:04 <TrueBrain> why do you get it crashing so easily :P 17:35:05 <peter1138> ok 17:35:06 <Synck> Great developer experience with OpenTTD, clone + install packages and go. 17:35:24 <peter1138> "could not connect IPv4 socket: No error" 17:35:25 <TrueBrain> Synck: we tried :) 17:35:26 <peter1138> Well :) 17:35:28 <TrueBrain> peter1138: nope :( 17:35:38 <milek7> if it's worth getting more datapoints, I could test with mine 17:35:42 <peter1138> Didn't think it would have any effect, but SIP ALGs can be weird. 17:35:55 <TrueBrain> I wonder why it gets an illegal packet from the STUN server 17:35:58 <TrueBrain> especially type 0 17:36:25 <peter1138> What layer is that type 0 ? 17:36:30 <TrueBrain> come to think of it .. type 0 goes TO the STUN server 17:36:37 <TrueBrain> it is from our protocol 17:36:46 <peter1138> Ok, so L7. 17:36:46 <TrueBrain> something is fishy about that error 17:36:50 <TrueBrain> yup 17:36:57 <TrueBrain> and it is on an normal TCP connection 17:37:00 <TrueBrain> just a normal outbound 17:37:04 <TrueBrain> not even the STUN part itself 17:37:59 <TrueBrain> okay, at least I broke it locally here too now :D So that is a good thing :) 17:38:39 <TrueBrain> "could not bind: Address already in use" .. hmm .. 17:38:43 <Synck> The contribution guide says to ask before starting e.g. refactoring code. Would adding some missing overrides to functions be a useful addition? 17:39:48 <TrueBrain> peter1138: k, tnx for testing. I have some more data to explore now :) 17:42:31 <DorpsGek> [OpenTTD/OpenTTD] nielsmh updated pull request #8952: Social rich presence plugins https://git.io/JYQJS 17:42:53 <peter1138> Synck, do you mean missing override keyword or something else? 17:43:30 <peter1138> If that, then yes. That's one thing that's easy to forget, I'm not sure there's a way to enforce that it must be present either :( 17:45:49 <TrueBrain> peter1138: okay, one more try for this evening .. I just pushed a new version :) 17:45:52 <TrueBrain> who knows ... 17:46:01 <Synck> Adding missing override keywords indeed. 17:46:31 <Synck> Does OpenTTD have any automated builds? 17:47:05 <TrueBrain> we have a CI for every Pull Request, and a nightly test build every night, which produces binaries available for download 17:47:51 <peter1138> Recompiling, as I'd just switched back to master :p 17:47:56 <TrueBrain> sorry :D 17:48:04 <peter1138> 6 cores is still slow... 17:48:14 <TrueBrain> I added REUSEADDR again .. I removed it as I thought it wasn't needed, but it seems it is needed after all 17:48:36 <peter1138> ok, server started 17:48:49 <TrueBrain> nope :( 17:49:09 <peter1138> Figures. 17:49:17 <TrueBrain> same error on your side? 17:49:30 *** Synck has quit IRC 17:49:32 <peter1138> Actually no error 17:49:38 <peter1138> Hmm, but I didn't run with -dnet 1 17:49:41 <TrueBrain> :D 17:50:06 <peter1138> Take 2 17:50:22 <peter1138> could not connect IPv4 socket: No error 17:50:28 <TrueBrain> that is normal 17:50:31 <peter1138> OK 17:50:34 <TrueBrain> that is a fake connect to punch the hole in your NAT :P 17:50:47 <TrueBrain> but nothing happens after 17:50:54 <TrueBrain> can you see if your NAT sends out a RST? 17:53:35 *** Synck has joined #openttd 17:53:41 <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://git.io/JYFI9 17:53:42 <DorpsGek> - Update: Translations from eints (by translators) 17:53:47 <peter1138> Adding some packet logging 17:53:56 <peter1138> Whew, that's noisy :p 17:53:57 <TrueBrain> cool :) 17:54:21 <peter1138> Started 17:54:41 <peter1138> illegal packet type 0 17:54:50 <TrueBrain> again from tcp/stun? 17:55:04 <peter1138> Yeah 17:55:14 <TrueBrain> owhhhhhh 17:55:18 <TrueBrain> wait a minute .. hmm 17:55:27 <TrueBrain> I think the wrong socket picks up the data :D 17:56:05 <TrueBrain> that might explain it 17:56:12 <TrueBrain> basically, there are 2 sockets open on the same ip/port 17:56:17 <TrueBrain> and I guess you are on Windows? 17:56:24 <peter1138> Yes 17:56:52 <TrueBrain> I do close the socket before I create the next one 17:56:59 <TrueBrain> but I guess there is a short delay before it is really closed 17:57:01 <peter1138> And a crash :D 17:57:08 <TrueBrain> those 2 might be related :P 17:58:05 <TrueBrain> owh, yes, I do not cycle the object 17:58:07 <TrueBrain> so it remains valid 17:58:12 <TrueBrain> and I guess it is trying to read random memory 17:58:14 <TrueBrain> oops? :D 17:59:07 <TrueBrain> okay, I need to clean up this code first 17:59:13 <TrueBrain> the network has so many layers on top 17:59:19 <TrueBrain> it is sometimes a bit hard to see which is responsible for what 17:59:22 <TrueBrain> so, tomorrow :D 17:59:25 <TrueBrain> tnx again peter1138 :) 18:00:14 <andythenorth> seems we have quite a lot of WinXP users 18:00:23 <andythenorth> I used an emoji, all will be well 18:00:26 <TrueBrain> owh, derpiederp, I see for sure what goes wrong .. haha 18:02:33 <TrueBrain> I think I change the protocol a bit so there is no data received from the STUN server 18:02:40 <TrueBrain> also avoids things like resends etc 18:03:30 <TrueBrain> say, a packet from STUN server to client is received by not ACKd .. the client changes the socket to the game socket, TCP resends the STUN packet, and it is now received by the wrong socket 18:03:52 <peter1138> Yeah 18:04:44 <TrueBrain> but in order for that to work, I need to add the Game Coordinator (as replacement of the master-server). We need that anyway, so I guess we might as well 18:05:46 <peter1138> I wonder if there's some way to detect if STUN has worked? Otherwise we're still stuck with "My friends can't join my server" 18:06:07 <TrueBrain> yeah, that is what I would like the Game Coordinator to do 18:06:10 <TrueBrain> first try a direct connect 18:06:10 <peter1138> we again. fs. 18:06:16 <TrueBrain> if that fails, try STUN 18:06:26 <TrueBrain> if that fails, report a wiki page with things to fix it by 18:06:27 <TrueBrain> or something 18:06:48 <peter1138> Step 4: Get users to bug Valve to make a BSD-compatible API... 18:06:58 <peter1138> (license-wise) 18:07:02 <TrueBrain> well, I think we found a nice way for us to use their API 18:07:12 <TrueBrain> so over time, I hope to add: try SDK (Valve Relay network) 18:07:17 <TrueBrain> and: try TURN (as last resort) 18:07:32 <TrueBrain> 90% of the traffic should already been taken care of, so TURN should be cheap at that point 18:07:38 <peter1138> Any public STUN/TURN servers you could leech off? :p 18:07:44 <TrueBrain> STUN servers, yes 18:07:52 <TrueBrain> TURN servers .. not looked, I don't want to know :P 18:07:59 <TrueBrain> Google's STUN servers are public 18:09:12 <nielsm> TrueBrain: I've thought about that maybe a social plugin that supports joining friend games can set up a connection via whatever service and then relay it on a localhost socket it then instructs the game to connect to 18:09:31 <nielsm> that way there is definitely no tight/special coupling to the steam API or whatever else 18:09:52 <TrueBrain> creative idea, but to me it feels like "hiding" that we want to integrate with the Steam API 18:09:59 <nielsm> <TrueBrain> Google's STUN servers are public <-- OH SHIT THEY ARE SELLING OUT TO GOOGLE THEY CONNECT TO GOOGLE SERVERS ALL THE TIME 18:10:14 <TrueBrain> personally, I would say: as long as we keep it optional and do it in a clean API way, I think we should just directly integrate with the SDK 18:10:20 <TrueBrain> so in the shim-fashion we talked about 18:10:45 <TrueBrain> and lets not make it more complicated than that :) 18:13:12 <TrueBrain> that is also why for me it would be ideal nielsm if your plugin system could also hook into the Steamworks SDK networking part 18:13:24 <TrueBrain> doesn't have to be done on day one, but if the possibility would be there, that would be nice 18:13:40 <TrueBrain> but again, my opinion :) 18:14:18 *** supermop_Home_ has quit IRC 18:14:24 <nielsm> well sure I can make an "extensibility point" where you just query the plugin for an interface named by string 18:14:53 <TrueBrain> I was more thinking that in the future we could add a networking API to it on our side 18:14:54 <nielsm> (interface being a struct of function pointers) 18:14:56 <TrueBrain> and make the shim talk to it 18:15:30 <nielsm> may as well make all the network protocols plugins then!!! 18:15:55 <TrueBrain> it is not the worst idea, just a lot of work :P 18:16:52 <TrueBrain> anyway, not something for now, possibly not even for 1.12 18:17:03 <TrueBrain> but if we have the possibility towards the future, would be nice 18:17:07 <nielsm> anyway the plugin api has a simple versioning scheme right now 18:17:16 <TrueBrain> cool :D 18:17:48 <nielsm> just passing an int to the init-function telling which version you expect, and the plugin must either return the interface matching that version, or reject it 18:18:24 <TrueBrain> sounds good 18:20:00 <nielsm> but maybe I should change it to something like, instead of naming it SocialInit(int api_version, struct *api, struct *callbacks), then name it OTTDPlugin(const char *interface, void *api) 18:20:37 <nielsm> and then you'd request "OTTDSocial4" or "OTTDNetwork2" interfaces or something 18:20:56 <TrueBrain> personally, that sounds a lot better, as that also removes the weirdness of having "Social" plugin doing networking :P 18:21:23 <TrueBrain> but frosch123 is our interface wizard, so maybe he has some good input here too :D (sorry frosch123 , but given you understand NewGRF, you might have some good ideas here :D) 18:22:50 *** EER has quit IRC 18:22:52 <TrueBrain> oeh, an email about a company that wants to "help" us with our installer 18:22:53 <TrueBrain> haha 18:23:26 *** EER has joined #openttd 18:24:38 <frosch123> newgrf may be pretty asocial :p 18:24:45 <DorpsGek> [OpenTTD/bananas-frontend-cli] TrueBrain commented on pull request #22: Fix: Use urllib to combine urls (#5) https://git.io/JYFYM 18:29:01 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes commented on pull request #22: Fix: Use urllib to combine urls (#5) https://git.io/JYFOB 18:29:49 <andythenorth> if newgrf was a social network, which social network would it be? :) 18:29:58 <Xaroth> Hyves. 18:30:21 <andythenorth> https://en.wikipedia.org/wiki/The_WELL 18:30:39 <DorpsGek> [OpenTTD/OpenTTD] LordAro closed issue #8922: NOT_REACHED() crash when selling shared vehicles https://git.io/JYw71 18:30:42 <DorpsGek> [OpenTTD/OpenTTD] LordAro merged pull request #8926: Fix #8922: Show vehicle window for single vehicle in shared order grouping https://git.io/JYoqP 18:31:18 <DorpsGek> [OpenTTD/OpenTTD] LordAro merged pull request #8950: Make effect volume slider non-linear https://git.io/JYHuH 18:31:57 <DorpsGek> [OpenTTD/OpenTTD] LordAro merged pull request #8959: Fix: [Network] State conditions for sending client info/quit packets https://git.io/JY7gc 18:33:47 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes updated pull request #20: Support developer authentication flow in bananas-cli https://git.io/JYQTb 18:34:49 <EER> Let's see if that makes the git-hooks happy ;-) 18:35:08 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8902: Feature: show upload date in the network content window https://git.io/JYF3s 18:36:00 <FLHerne> LordAro, glx: When I try to build grfcodec, `make install`/`ninja install` seems to not exist as a target? 18:36:19 <FLHerne> Reproducible, or am I doing something wrong? 18:36:19 <LordAro> probably not 18:36:33 <LordAro> i don't think the cmake build has any concept of install files 18:36:38 <LordAro> it's just not been set up for that 18:36:43 <LordAro> perhaps it could be, but eh 18:36:55 <LordAro> it's just a single executable, right? 18:37:23 <FLHerne> four 18:37:45 <LordAro> or that 18:38:20 <DorpsGek> [OpenTTD/bananas-server] LordAro commented on pull request #43: Add: pass upload date to OpenTTD client https://git.io/JYF3Q 18:39:42 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8948: Fix: Honor default soundfont for FluidSynth https://git.io/JYFsf 18:41:33 <FLHerne> It makes the PKGBUILD a bit untidy 18:41:42 <LordAro> probably 18:41:47 <LordAro> feel free to improve it :p 18:41:53 <LordAro> i've no idea about that bits of cmake, tbh 18:43:57 <nielsm> https://gist.github.com/nielsmh/8f7caa144f435189e9c392d267f73733 TrueBrain and anyone else interested in plugins 18:46:17 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8943: Volume controls in Game Options window https://git.io/JYFGT 18:47:05 <DorpsGek> [OpenTTD/BaNaNaS] frosch123 opened pull request #91: Change: migrate OpenTTD user thexa4 to GitHub user thexa4 https://git.io/JYFGY 18:48:57 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes updated pull request #20: Support developer authentication flow in bananas-cli https://git.io/JYQTb 18:49:20 <frosch123> we don't have a hindi translation yet 18:49:29 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8794: Feature: Show rail/road/tram NewGRF name in Land Area Information window https://git.io/JYFGr 18:51:24 <peter1138> Why do I have code here for NewGRF tunnels? 18:52:18 <TrueBrain> nielsm: sounds good to me. One has to wonder if it should return a vector or an array or something, that last function, but yeah 18:52:24 <TrueBrain> maybe add a few examples to the gist 18:52:28 <TrueBrain> just so people get what an interface is 18:52:35 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes updated pull request #21: Fix: do not try to authenticate when requesting help (#4) https://git.io/JYQzj 18:52:38 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8716: Fix #8713: Change OTTD2FS and FS2OTTD to return string objects https://git.io/JYFZv 18:53:02 <nielsm> TrueBrain refresh 18:53:16 *** blathijs has quit IRC 18:53:26 <peter1138> Urgh, rebasing old code... every file gets changed and then updated, mega recompile :( 18:53:51 <TrueBrain> nice 18:53:53 *** WormnestAndroid has quit IRC 18:54:09 <TrueBrain> nielsm: only odds ones are not the init() and shutdown() in Social, but details :D 18:54:36 <LordAro> not sure i like the pseudo-dynamic interface 18:55:00 <LordAro> why not just require to have all the functions defined ? 18:55:06 *** WormnestAndroid has joined #openttd 18:55:09 <LordAro> they can easily do nothing if not required 18:55:17 <peter1138> Does smallvector still exist? 18:55:21 <LordAro> no 18:55:46 <DorpsGek> [OpenTTD/OpenTTD] perezdidac commented on pull request #8902: Feature: show upload date in the network content window https://git.io/JYFZu 18:55:53 <DorpsGek> [OpenTTD/team] frosch123 commented on issue #183: [hi_IN] Translator access request https://git.io/JYSUg 18:56:08 *** blathijs has joined #openttd 18:56:40 <peter1138> Hm 18:57:14 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8902: Feature: show upload date in the network content window https://git.io/JYFZK 19:00:02 <DorpsGek> [OpenTTD/OpenTTD] JGRennison commented on pull request #8716: Fix #8713: Change OTTD2FS and FS2OTTD to return string objects https://git.io/JYFZA 19:00:16 <DorpsGek> [OpenTTD/BaNaNaS] TrueBrain approved pull request #91: Change: migrate OpenTTD user thexa4 to GitHub user thexa4 https://git.io/JYFne 19:00:19 <DorpsGek> [OpenTTD/BaNaNaS] TrueBrain merged pull request #91: Change: migrate OpenTTD user thexa4 to GitHub user thexa4 https://git.io/JYFGY 19:00:53 <frosch123> https://github.com/OpenTTD/team/issues/183 <- lol, now dorpsgek closed it :p 19:01:17 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on pull request #8716: Fix #8713: Change OTTD2FS and FS2OTTD to return string objects https://git.io/JYFnG 19:02:01 *** Synck has quit IRC 19:02:29 <DorpsGek> [OpenTTD/team] frosch123 commented on issue #183: [hi_IN] Translator access request https://git.io/JYSUg 19:02:37 <DorpsGek> [OpenTTD/OpenTTD] ghisvail commented on pull request #8948: Fix: Honor default soundfont for FluidSynth https://git.io/JYFna 19:02:53 <LordAro> lol dorpsgek 19:03:42 <frosch123> no idea why we have no hindi translation yet 19:03:54 <frosch123> there are only like 300M speakers 19:04:54 <DorpsGek> [OpenTTD/OpenTTD] ghisvail commented on pull request #8948: Fix: Honor default soundfont for FluidSynth https://git.io/JYFnA 19:06:57 <frosch123> i'll leave it to LordAro and TrueBrain to decide, whether we want a translator with such stupid avatar 19:08:00 <TrueBrain> which one? 19:08:02 <FLHerne> Isn't it just one of those autogenerated ones? 19:08:09 <frosch123> TrueBrain: the only open one 19:08:29 <DorpsGek> [OpenTTD/OpenTTD] ghisvail updated pull request #8953: Fix: Use FluidSynth default soundfont https://git.io/JYQGl 19:08:29 <TrueBrain> I leave it to LordAro :P 19:08:30 <FLHerne> Oh, the other one 19:08:32 <LordAro> oh heavens 19:08:47 <DorpsGek> [OpenTTD/OpenTTD] ghisvail commented on pull request #8953: Fix: Use FluidSynth default soundfont https://git.io/JYFcE 19:10:50 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8953: Fix: Use FluidSynth default soundfont https://git.io/JYFcQ 19:11:12 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8948: Fix: Honor default soundfont for FluidSynth https://git.io/JYFc5 19:11:32 <TrueBrain> LordAro: going by discord it is a popular request, sort by upload .. but I am +0 on it .. don't really care either way 19:11:45 <TrueBrain> I rather see we add something to measure popularity, and sort by that :P 19:11:54 <LordAro> yeah 19:12:04 <LordAro> sorting by upload date alone has no purpose, imo 19:12:16 <frosch123> sorting by upload is like "what's new" 19:12:17 <LordAro> there's plenty of ancient things that are perfectly valid 19:12:28 <peter1138> Yes, What's New is useful, I think. 19:12:32 <frosch123> when you checked everything, and regulary recheck 19:12:33 <DorpsGek> [OpenTTD/OpenTTD] adamcirillo opened issue #8963: Black Bars during gameplay https://git.io/JYFCT 19:12:43 <LordAro> i suppose 19:13:05 <peter1138> I need to know andythenorth's latest unfinished masterpiece. 19:13:33 <LordAro> "It did not show up in the screen shoot not sure why" 19:13:40 <LordAro> dying monitor? 19:13:40 <peter1138> Useful 19:13:58 <nielsm> sounds like an issue with the video output on user's machine 19:15:07 <andythenorth> I did what now? 19:15:19 <peter1138> Might be a hardware issue, I reckon if they could send their GPU to use to check... 19:16:00 <DorpsGek> [OpenTTD/OpenTTD] LordAro commented on issue #8963: Black Bars during gameplay https://git.io/JYFCT 19:17:42 <milek7> I think it might be worth checking with vsync 19:17:56 <andythenorth> so we agreed...newgrf payment multiplier for vehicles will be added yes? :) 19:18:18 <DorpsGek> [OpenTTD/OpenTTD] ghisvail commented on pull request #8953: Fix: Use FluidSynth default soundfont https://git.io/JYFCd 19:18:40 <DorpsGek> [OpenTTD/OpenTTD] adamcirillo commented on issue #8963: Black Bars during gameplay https://git.io/JYFCT 19:19:36 <glx> <FLHerne> LordAro, glx: When I try to build grfcodec, `make install`/`ninja install` seems to not exist as a target? <-- ah yes, I didn't implement this part 19:21:34 <peter1138> Hmm, Ctrl-S crashed. 19:21:37 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes commented on pull request #22: Fix: Use urllib to combine urls (#5) https://git.io/JYFWl 19:22:16 <peter1138> Oh, might be my patch 19:22:49 <FLHerne> glx: I can try to copy it from ottd or whatever at some point 19:24:05 <peter1138> Problem with more-cc... there's not much you can do with the palette. 19:25:16 <glx> FLHerne: I think you need at least "install(TARGETS grfid grfstrip nforenum grfcodec RUNTIME)" 19:26:14 <glx> or something like that 19:26:25 <glx> hardest part is the doc 19:29:19 <DorpsGek> [OpenTTD/bananas-frontend-cli] erenes updated pull request #22: Fix: Use urllib to combine urls (#5) https://git.io/JYQbM 19:33:23 *** heffer has quit IRC 19:36:30 *** heffer has joined #openttd 19:53:06 <DorpsGek> [OpenTTD/OpenTTD] adamcirillo commented on issue #8963: Black Bars during gameplay https://git.io/JYFCT 19:58:38 <LordAro> doesn't look very vsyncish 19:58:40 <DorpsGek> [OpenTTD/bananas-server] perezdidac commented on pull request #43: Add: pass upload date to OpenTTD client https://git.io/JYFRT 19:58:58 <TrueBrain> that looks like a broken something :D 20:00:04 *** iSoSyS has joined #openttd 20:00:23 *** jottyfan has quit IRC 20:02:24 <DorpsGek> [OpenTTD/OpenTTD] perezdidac commented on pull request #8902: Feature: show upload date in the network content window https://git.io/JYFRC 20:07:46 <peter1138> God damn that ugly big gui crap 20:12:17 *** frosch123 has quit IRC 20:12:57 *** EER has quit IRC 20:27:23 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #8963: Black Bars during gameplay https://git.io/JYFCT 20:37:34 *** heffer_ has joined #openttd 20:43:13 *** heffer has quit IRC 20:45:33 <TrueBrain> LordAro: honestly, I think the idea of nielsm is a good one. There are Rich Presence plugins that never get whole parts of that plugin, like Networking. Discord won't have it, unlikely for Epic etc to have it. It does make it a bit more clear what a plugin does and doesn't 20:45:34 *** iSoSyS has quit IRC 20:45:53 *** heffer_ has quit IRC 20:45:54 <TrueBrain> it keeps things a bit more tailored for what-ever is presented by the overlay 20:46:17 <TrueBrain> CloudSaves is another of such interface 20:46:27 <TrueBrain> and I am sure I am forgetting ones :) 20:47:05 <TrueBrain> sure, you can make 1 single interface, but this feels more to the point .. one could even argue they should be separate shims, but that is hard with the globals things like Steamworks SDK have 20:47:10 <TrueBrain> just my 2 cents :D 20:48:08 <LordAro> idk, maybe? but OTTD isn't (or shouldn't be) interested in what the plugin provides 20:49:15 <TrueBrain> look at it a different way: those SDKs offers a lot of things totally unrelated. So unrelated, the documentation has them in different locations 20:49:25 <TrueBrain> but we cannot load them as separate plugins 20:49:30 <TrueBrain> so this mimicks that 20:50:04 <TrueBrain> (https://partner.steamgames.com/doc/sdk/api at the bottom "Steam Game Servers", their APIs for completely unrelated things) 20:50:09 <TrueBrain> owh, Achievements, how could I forgot .. :P 20:50:41 <TrueBrain> SDL does this too, basically, with their Audo / Video / Input :) 20:50:59 <LordAro> i get that 20:51:04 <LordAro> i'm talking about the struct interface thing 20:51:15 <TrueBrain> yeah, you want one big one, right? 20:51:19 <TrueBrain> instead of a chunked one? 20:51:25 <LordAro> no, the opposite 20:51:42 <LordAro> nielsm's plan currently is "give me a struct pointing to functions x, y & z" 20:51:46 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #8956: Disasters: wrong location shown in factory/refinery destroyed message https://git.io/JY7L2 20:51:50 *** heffer has joined #openttd 20:52:00 <LordAro> whereas i think it should just be "plugins must provide functions x, y & z" 20:52:11 <TrueBrain> yeah, so you want them to define all 20:52:16 <LordAro> if function z is irrelevant, it can just be empty 20:52:16 <TrueBrain> right? 20:52:18 <LordAro> yeah 20:52:29 <TrueBrain> there are two things from what I can see 20:52:29 <LordAro> then OTTD doesn't need to care about null function pointers 20:52:36 <peter1138> Doesn't that make extending it later more difficult? 20:52:36 <LordAro> it will just fail to load it in the first place 20:52:38 <TrueBrain> 1) it will be a really long list :P And we need some kind of versioning 20:52:55 <TrueBrain> so having them all "just exist" makes changing anything really tricky, I think? 20:53:01 <TrueBrain> or we need to do @GLIBC stuff 20:53:07 <TrueBrain> not sure that works on Windows etc :D 20:53:28 <TrueBrain> but the other thing is, we also need a way to list "what plugins can supply networking", so people can enable/disable it etc 20:53:32 <nielsm> null function pointers are useful though, it's a way of saying "don't try asking me for this, I can't do it" 20:53:53 <LordAro> yeah, pros/cons 20:54:04 <LordAro> i hadn't really considered versioning 20:54:41 <TrueBrain> I honestly do not know if there are C++ ways to do versioning differently 20:54:50 <LordAro> not afaik 20:54:50 <TrueBrain> @GLIBC seems a useful approach, but .. shrug 20:55:03 <nielsm> "supply an identifier, receive a bag of function pointers" is basically the standard paradigm for doing plugins 20:55:12 <LordAro> @GLIBC is more of an artefact of the ELF standard, rather than a language :p 20:55:14 <DorpsGek> [OpenTTD/OpenTTD] rpwjanzen commented on pull request #8894: Replace IConsolePrint*(F)( calls with specific console level calls https://git.io/JYFzF 20:55:22 <TrueBrain> awwhh :( 20:55:53 <nielsm> and we can define a rule that interfaces should be designed such that a plugin must implement all or nothing 20:56:02 <LordAro> nielsm: it's just not how you (generally) do libraries though 20:56:05 <LordAro> it just feels... weird 20:56:41 <TrueBrain> if you consider it something you could statically link, I get what you mean, yes :) 20:56:47 <TrueBrain> but I guess it is not that :P 20:56:59 <TrueBrain> (we can never statically link them, btw, to be clear :D License shit ....) 20:57:25 *** FLHerne has quit IRC 20:57:39 *** FLHerne has joined #openttd 20:58:01 <TrueBrain> I don't know any C++ plugin system, so I do not know how common this is :D 20:58:30 <LordAro> me either 20:59:01 <peter1138> "Codechange: WIP" 20:59:11 <peter1138> I wonder why I did that instead of just, say, "WIP"... 20:59:23 <LordAro> incidentally, how are these social plugins planned to be distributed? 20:59:34 <TrueBrain> we have no clue yet :P 20:59:34 <nielsm> peter1138: local commit checker scripts? 20:59:42 <peter1138> Ah possibly 20:59:50 <LordAro> it occurred to me that distributing via bananas could work, as a separate content type 20:59:59 <TrueBrain> that was my suggestion a few days ago yes 21:00:00 <TrueBrain> BUT 21:00:06 <LordAro> though it would be the first case of being architecture specific 21:00:15 <TrueBrain> distributing binaries (as in, .so / .dll) via BaNaNaS feels icky 21:00:22 <TrueBrain> not just anyone should be able to upload them 21:00:30 *** andythenorth has quit IRC 21:00:36 <TrueBrain> arch-specific is rather easy to solve honestly :) 21:00:39 <LordAro> it'd be a special case, for sure 21:00:39 <nielsm> well, it looks like the discord RPC thing can work, and it's MIT, so it would allow full in-box distribution 21:01:13 <nielsm> they say the API is deprecated but haven't given any notice of removing support of it from their desktop client 21:01:23 <TrueBrain> what I was thinking, that that category can only be added via PRs to the BaNaNaS repo, to make sure nobody sneaks in weird binaries 21:01:39 <LordAro> that would work, sure 21:01:49 <peter1138> Oh jeez, newgrf docks compiled. 21:01:55 <LordAro> ship it! 21:01:59 <LordAro> </puns> 21:02:07 <TrueBrain> but it feels the cleanest to do it via BaNaNaS, as it gives people a choice 21:02:11 <TrueBrain> which I really like 21:02:11 <peter1138> Oh, I don't have the custom NewGRF for it :/ 21:02:39 <LordAro> TrueBrain: and indeed not bundling things that people don't need/want 21:02:40 <nielsm> if I ever appear in a stream or something I will make sure to say "grf" in as many different ways as possible 21:02:42 <peter1138> Implement a plugin system via NewGRF 21:02:43 <TrueBrain> (as in, do I want to download this non-free yes/no) 21:03:23 <TrueBrain> we briefly looked at a FFI interface via Squirrel LordAro , to see if we can avoid shipping binaries :P 21:03:29 <TrueBrain> possible, but ........ ugh 21:03:55 <TrueBrain> what might be a good idea is to see if we can sign those binaries 21:04:01 <TrueBrain> and refuse to load plugins that are not signed by us 21:04:04 <peter1138> So much faff, curse you GPL 21:04:07 <LordAro> mm 21:05:30 <orudge> I know we had a discussion about it before, but if we wrote an MIT-licenced (let's say) plug-in that interfaces with the Steam API, and distribute that as a Steam depot that gets installed alongside OpenTTD, using this new interface, could you argue it's allowable? You could take the DLLs and stick them into a regular version of openttd, or replace the Steam openttd executable, for instance. 21:06:58 <Xaroth> Didn't TrueBrain include that in his gist writeup of it? 21:07:09 <orudge> Not sure, I have probably missed that :) 21:07:32 <TrueBrain> https://gist.github.com/TrueBrain/bccb44cf813cb556613dcb89889bd357 21:08:17 <TrueBrain> https://gist.github.com/TrueBrain/bccb44cf813cb556613dcb89889bd357#steam-depots to be exact 21:08:36 <TrueBrain> it is a very .. thin line to walk .. strictly seen we never distributed GPL with non-GPL 21:08:44 <TrueBrain> no Dutch judge will agree with you 21:08:54 <TrueBrain> but more likely US judges will :P 21:10:02 <TrueBrain> LordAro: one of the things that was mentioned for BaNaNaS downloads, that you want to avoid someone copying in a "bad" DLL in their plugin folder, that makes that computer into a coin miner 21:10:18 <TrueBrain> but we could SHA256 check every plugin on disk against a known-good list, I guess 21:10:54 <TrueBrain> and warn a user about it possibly being a horrible plugin if not on that list :) 21:10:59 <LordAro> possible? 21:11:00 <orudge> You also have to deal with 32-bit/64-bit/ARM64 versions of Windows, all sorts of fun with potential versions of C++ libraries on Linux, macOS code signing 21:11:10 <orudge> I would very much avoid distributing binaries via Bananas if possible :P 21:11:25 <LordAro> so make plugins be checked against online checksums every time it loads, rather than just on download/update? 21:11:27 <TrueBrain> orudge: what ever way of distribution we do, we have to deal with that anyway 21:11:28 <orudge> (anything distributed and loaded via Bananas on macOS would I think need to be signed) 21:11:31 <TrueBrain> that is the fact of it being binaries :) 21:11:46 <TrueBrain> LordAro: yeah, and a built-in list for fallback or something .. dunno 21:12:03 <LordAro> but ultimately... orudge is right 21:12:16 <orudge> TrueBrain: but there's a difference between us providing a single zip full of binaries that have been compiled together, versus a random user who may have compiled OpenTTD in who knows what way, trying to then link in prebuilt binaries 21:12:20 <orudge> on windows this is usually fine 21:12:24 <orudge> On other OSes, there can be a world of pain 21:12:34 <orudge> in my experience :P 21:12:35 <LordAro> we can build our plugins to be as compatible as possible, but ultimately there's always going to be an OS that we don't support 21:12:38 <TrueBrain> orudge: I do not follow, sorry 21:12:43 <TrueBrain> "single zip full of binaries"? 21:12:51 <TrueBrain> we cannot distribute OpenTTD together with, say, a Steam shim 21:12:56 <orudge> OK, not literally 21:12:59 <TrueBrain> those have to be distributed apart 21:13:01 <orudge> but Steam for instance 21:13:20 <orudge> we would presumably build them in a controlled manner 21:13:57 <orudge> For Discord, etc, then yes, perhaps this is less applicable 21:14:11 <peter1138> How does the Steam overlay hook into everything? I guess that isn't... linking... 21:14:12 <TrueBrain> you say words, but I have a hard time following, sorry :D 21:14:44 <TrueBrain> it seems you are really thinking about this orudge , and I really try to follow, but I am missing critical pieces it seems :) 21:15:01 <nielsm> is it possible on steam to supply a free DLC that causes it to add the steam integration code? something that's obvious and easy to reach for users, but also makes a very clear "the user actively chose to get this" button 21:15:07 <orudge> TrueBrain: I am thinking/rethinking it through myself to be fair :P 21:15:09 <michi_cc> peter1138: By not asking a lawyer :D At least on Windows it is an injected DLL, which per FSF is probably bad bad bad bad. 21:15:13 <TrueBrain> orudge: :D 21:15:22 <LordAro> as long as the interface is explicitly C (rather than C++), there should be no issues 21:15:32 <LordAro> libstdc++ ABI issues can get in the way 21:15:48 <LordAro> but yeah, distributing a binary via bananas to get full compatibility is going to be tricky 21:16:01 <TrueBrain> LordAro: we are limited by how compatible the DLL is we have to ship too 21:16:03 <orudge> TrueBrain: perhaps too many experiences with people offering a "generic Linux" binary (not necessarily OpenTTD :P) that turns out to require a glibc version distributed with RHEL 5 or something 21:16:08 <TrueBrain> the SteamSDK DLL has a limit to what it supports 21:16:10 <TrueBrain> all we have to do is match that 21:16:28 <michi_cc> OTOH, the overlay is in-memory on runtime only, so GPL probably doesn't apply as nobody is distributing anything. 21:16:30 <TrueBrain> we cannot be "more" compatible than the DLL :) 21:17:15 <LordAro> orudge: glibc is *always* fowards & backwards compatible, so "require an old glibc version" is not an issue 21:17:17 <TrueBrain> orudge: yeah; and I think that is the biggest difference here. We are integrating with an already existing library that is at least runs on all machines supported by the platform we build for (lol, that sentence is weird :P) 21:17:18 <orudge> but anyway, for Steam, given OpenTTD Distribution Ltd is the company distributing it technically, the director of that company is willing to take the risk of distributing a depot containing a Steam plug-in DLL that implemented the OpenTTD plug-in interface 21:17:37 <TrueBrain> orudge: good to hear :D 21:17:39 <orudge> LordAro: maybe not glibc then, but something along those lines 21:17:59 * orudge waits for the rush of OS/2 social presence plug-ins... 21:18:01 <TrueBrain> so something like ARM support is not needed for Steam 21:18:04 <TrueBrain> as .. it doesn't exist 21:18:04 <orudge> Mm 21:18:10 <orudge> ... yet ;) 21:18:15 <LordAro> the reverse however, someone running OTTD on RHEL5 (selfcompiled or whatever) might have issues with the distributed social-plugin, and we need a good way of detecting that beforehand 21:18:22 <TrueBrain> when it does, we know the exact conditions in what we have to distribute our shim + the library :) 21:18:50 <TrueBrain> LordAro: if Steam runs on RHEL5, and we make sure the library has the same dependencies, that is not an issue, is there? 21:18:59 <michi_cc> A zero-cost DLC might actually not be that bad of an idea, because then it is absolutely clear that main OpenTTD is not distributed concurrently with any Steam plugin. 21:19:05 <LordAro> TrueBrain: exactly 21:19:12 <LordAro> (presumably it's Ubuntu12.04) 21:19:23 <TrueBrain> so if someone builds OpenTTD for WinXP 21:19:26 <TrueBrain> he is not going to get a Steam plugin 21:19:30 <TrueBrain> that is simply not going to happen :P 21:19:41 <LordAro> the tricky bit is determining that beyond "linux" and "x64" before downloading and attempting to use it 21:19:57 <TrueBrain> I wonder what Steamworks does in those cases 21:20:01 <michi_cc> I would assume a Steam plugin only makes sense if actually running via Steam. 21:20:28 <TrueBrain> but BaNaNaS or not 21:20:38 <TrueBrain> there will be a user, that downloads the shim + dll from the website 21:20:41 <TrueBrain> puts it in his plugin folder 21:20:45 <TrueBrain> and complains it is not working on WinXP 21:21:03 <TrueBrain> so it is not a BaNaNaS issue, just a very generic issue, I guess? 21:21:04 <orudge> I don't think Steam has worked on XP for some years now though 21:21:10 <orudge> but yes 21:21:15 <orudge> there'll still be somebody complaining about it ;) 21:21:17 *** Progman has quit IRC 21:21:19 <TrueBrain> well, what LordAro says is right, it would crash 21:21:20 <LordAro> there's also all sorts of fun regarding DLL loading, especially with chaining things together 21:21:21 <TrueBrain> that is bad 21:21:31 <peter1138> I kinda think if you have to come up with these schemes to circumvent, then perhaps it just shouldn't be done. 21:21:35 <TrueBrain> but that would mean we cannot do plugins :D 21:21:58 <orudge> This is now where you spawn a separate executable to load the plug-ins, and write an IPC interface between openttd.exe and openttd_plugin_loader.exe... 21:22:13 <TrueBrain> the separate executable would crash 21:22:15 <orudge> or you just accept that it might not work occasionally 21:22:15 <TrueBrain> someone would complain 21:22:19 <TrueBrain> it is just moving the issue, not solving it :) 21:22:22 <orudge> Well quite 21:22:39 <TrueBrain> and I agree, I doubt there is a way to detect all edgecases :P 21:22:39 <LordAro> what would crash? 21:22:55 <TrueBrain> who are you asking in relation to what LordAro ? :) 21:23:13 <LordAro> dlopen/dlsym would fail, and then we would display a suitable error message 21:23:20 <LordAro> well, both 21:23:27 <TrueBrain> say, there is an opcode in there the CPU doesn't support 21:23:28 <TrueBrain> boom 21:23:49 <TrueBrain> if we make a binary plugin system, someone is going to run into that, sooner or later :P 21:23:59 <TrueBrain> question is, I guess: do we care :) 21:24:20 <TrueBrain> (a typical, does the 99% has to suffer because of the 1%) 21:24:25 <LordAro> so... what were the issues with the squirrel FFI? :p 21:24:33 <TrueBrain> FFI has the exact same issue :) 21:24:44 <TrueBrain> in the end, it binds to the Steamworks DLL 21:24:56 <LordAro> true 21:25:22 <TrueBrain> I just wonder if it is really a problem 21:25:34 <michi_cc> Isn't that what try/catch and signal handlers where invented for? :D 21:25:44 *** sla_ro|master has quit IRC 21:25:46 <TrueBrain> can they catch invalid opcodes? 21:26:02 <TrueBrain> but yeah, we can always fork and run the plugin in the fork :P 21:26:43 <TrueBrain> so with extra effort, we can guard against it crashing OpenTTD, I guess 21:27:06 <michi_cc> On Windows, I think yes. Invalid opcode is an SEH exception that can be translated to a C++ exception. 21:27:19 <nielsm> uh steam also has a way to show a license agreement to the user first time they launch, right? could we do that? "OpenTTD is available under the terms of the GPL version 2 or later license, however the version installed via Steam contains code copyright Valve Software which is not available under an open license. Do you accept to run this combination?" 21:27:47 <TrueBrain> 2 different topics, I think? 21:27:58 <TrueBrain> 1 is: do we want binary plugins as someone might find a combination that crashes and burns 21:28:05 <TrueBrain> the other is how we can distribute it? 21:28:41 <LordAro> correct 21:28:47 <TrueBrain> as for distribution, I am really not worried about the Steam distribution itself. There are so many options and possibilities there 21:28:53 <michi_cc> nielsm: A zero-cost DLC is IMHO better for that. Not distributed at the same time and definitely a user choice, not a distributor choice. 21:28:56 <LordAro> michi_cc: some googling suggests that it works with MSVC, but only in debug mode 21:28:56 <TrueBrain> OpenGFX and friends are shipped nicely too :) 21:29:06 <nielsm> hmm dynamic libraries can also export symbols that are not actually callable functions but just e.g. a string pointer 21:29:28 <michi_cc> LordAro: Why would _set_se_translator not work in Release though? 21:29:39 <nielsm> if the plugin library has to export a string describing its build environment, which openttd can then compare to its own, maybe it can be verified before any code is run? 21:29:56 <LordAro> michi_cc: https://stackoverflow.com/questions/457577/catching-access-violation-exceptions ¯\_(ツ)_/¯ 21:30:24 <TrueBrain> nielsm: haha, that is the most guarded solution yet, I think .. "you can only run libraries compiled with the exact same compiler as openttd itself is" :D 21:30:53 <nielsm> TrueBrain well yeah... it can maybe be handled in some more flexible way 21:30:59 <michi_cc> LordAro: _set_se_translator will solve that, as long as you accept non-portable, OS specific code. 21:30:59 <TrueBrain> still, as a reminder, we cannot compile the Steamworks DLL. But I doubt anyone not running Steam is going to copy that file in his plugin folder and complain if it doesn't do exactly what he wants 21:31:19 <nielsm> but the basic idea of exporting a symbol that's not code which the host process can verify first 21:31:47 <TrueBrain> tldr; having binaries other than our main binary is shit :P 21:32:20 <LordAro> quite 21:32:25 <peter1138> https://github.com/SteamRE/open-steamworks 21:32:26 <peter1138> Who knows 21:32:40 <TrueBrain> peter1138: lol @ last commit timestamp :D 21:32:47 <nielsm> 5 years ago 21:32:47 <peter1138> Yes 21:32:55 <LordAro> also quite likely to get you kicked off steam quite quickly 21:33:05 <TrueBrain> well, if we go the FFI route, we could argue that the glue can never crash .. at worst, the DLL we load crashes .. but we should be able to contain that and only make the plugin crash, I guess 21:33:37 <TrueBrain> dunno .. licenses suck .. 21:33:59 <peter1138> Just get that exception clause agreed and link directly... 21:34:13 <TrueBrain> that does solve a lot of issues, yes :) 21:34:34 <LordAro> (but not actually link, because then we'd need multiple binaries) 21:34:41 <LordAro> but... urgh 21:34:43 <TrueBrain> we have GitHub workflow for that 21:34:54 <LordAro> dlopen pls 21:35:17 <TrueBrain> I don't disagree, but that does mean we have to accept there will be combinations that cause weird effects :D 21:35:24 <DorpsGek> [OpenTTD/OpenTTD] nielsmh commented on issue #8963: Black Bars during gameplay https://git.io/JYFCT 21:37:02 <LordAro> sure 21:37:13 <LordAro> but regardless, that takes us back round to the original argument 21:37:23 <LordAro> and i still don't feel that changing the licence is a reasonable solution 21:37:26 <TrueBrain> circles? We? Here? NEVAH! :) Do tell :) 21:37:31 <TrueBrain> what argument you refer to? 21:37:48 <TrueBrain> nielsm: in case you didn't know btw, https://github.com/Warzone2100/warzone2100/blob/276b1e4ec7c38b9114e3bc013aef8f09e70692d3/src/integrations/wzdiscordrpc.cpp 21:38:01 <LordAro> i don't feel the exception clause a feasible/good solution 21:38:09 <TrueBrain> nah, we shouldn't do that 21:38:31 <TrueBrain> the idea of a plugin system is best, I think. We just have to consider "what if the plugin crashes" 21:38:35 <TrueBrain> and find a neat way to solve that 21:38:43 <TrueBrain> in my opinion :) 21:39:08 <TrueBrain> lets figure out distribution when we have a plugin system, tbh 21:40:16 <peter1138> God aBase is depressing isn't it... 21:40:37 <LordAro> i might be misremembering, but i think there is a way of statically linking a dynamic library, through some horrific binary fiddling, so we could *theoretically* just have a single plugin file that also includes the steamworks library 21:40:45 <LordAro> but i am not advocating that in the slightest 21:41:00 <LordAro> but i have seen it (or something very like it) done 21:41:09 <LordAro> peter1138: it's like zbase, but with some gui icons! 21:41:15 <TrueBrain> I once wrote eDLL, which made a DLL into lazy binding .. you can do some NASTY shit :P 21:41:18 <LordAro> seriously, why have we not merged them yet? 21:42:09 <peter1138> And dumb sprite offsets all over the place. 21:42:28 <LordAro> and so many people just use it by default 21:42:35 <LordAro> it looks so bad! 21:42:41 <peter1138> And no animated water 21:42:44 <TrueBrain> 32bpp and EZ, yes 21:43:48 <TrueBrain> just too bad Steam doesn't have some API you can use to talk to the client 21:43:53 <TrueBrain> that would be so much easier :D 21:44:00 <TrueBrain> as in, HTTP API or what-ever 21:44:02 <TrueBrain> gRPC for all I care 21:44:07 <DorpsGek> [OpenTTD/OpenTTD] nielsmh commented on pull request #8716: Fix #8713: Change OTTD2FS and FS2OTTD to return string objects https://git.io/JYFV0 21:44:27 <LordAro> indeed 21:44:58 <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #8716: Fix #8713: Change OTTD2FS and FS2OTTD to return string objects https://git.io/JYFVg 21:45:04 <TrueBrain> but, we can always make an "openttd" that is free and one that is non-free :) 21:45:11 <TrueBrain> we wouldn't be the first to take that approach :P 21:46:41 <LordAro> rewrite it in rust! 21:46:46 * LordAro is slapped 21:47:32 <TrueBrain> I haven't written anything in Rust in a while .. 21:47:36 <TrueBrain> was pretty nice 21:47:42 <nielsm> your rust is... rusty? 21:47:46 <TrueBrain> :P 21:48:20 <LordAro> so i guess the answer for friday is "due to licensing restrictions it's pretty difficult. we're looking into possibilities but have no eta on anything" 21:48:41 <TrueBrain> LordAro: if they ask, I am going to spend 10 minutes explaining the shitshow this is :P 21:48:45 <TrueBrain> they will regret asking :D 21:48:51 <DorpsGek> [OpenTTD/OpenTTD-git-hooks] PeterN closed pull request #9: Change: Allow multiple #<issue>s without additional prefixes. https://git.io/JYFVS 21:49:01 <LordAro> i'd start writing the speech now :p 21:49:05 <LordAro> they are absolutely going to ask 21:49:13 <TrueBrain> I will prepare some slides, k? :D 21:49:42 <TrueBrain> btw, I like the idea of distributing the Steam plugin via DLC. Not that I think it is needed, we can just also "just" distribute it. But just because it gives a fun platform to show how insane license issues can become when platforms don't have free-licensed alternatives for their integration :D 21:49:50 <TrueBrain> but it might also give a huge blowback .. so yeah .. there is that :P 21:51:14 <TrueBrain> LordAro: fun thing, there are 4 parts to Steam integration: social-part (the plugin stuff), achievements (wtf, how do you do that with a sandbox game?!), cloudsaves (just needs doing) and workshop (FUCK no) 21:51:31 <LordAro> indeed 21:51:38 <LordAro> achievements are also a "nah", imo 21:51:40 <peter1138> Some games give you an achievement just for starting the thing... 21:51:42 <TrueBrain> so yeah, I will make a slide :P Just so I can rant, okay? :D 21:52:06 <TrueBrain> there are 2 things for me with achievements and OpenTTD: 1) we cannot have a "secret", so anyone can claim all achievements in seconds 21:52:20 <TrueBrain> 2) wtf? achievements in OpenTTD? Are you mental? I know you need a goal .. but come one .. wth? :P 21:52:25 <LordAro> but if we do, one for starting the game, and one for finishing the game with 1000 points 21:52:30 <LordAro> difficult to even cheat to that one 21:52:39 <TrueBrain> one for reaching FF of 10000x 21:52:43 <LordAro> (other than source modifications, of course) 21:52:58 <TrueBrain> one for finding the online content menu :P 21:53:27 <peter1138> Achievements for using the original data 21:53:39 <TrueBrain> and just to fuck with people, impossible scenarios 21:53:58 <TrueBrain> like "A ship just crashed into a train" 21:54:15 <FLHerne> Achievement for using the original data without pirating it 21:54:24 <peter1138> See, a few seconds and we already have some achievements... 21:54:26 <TrueBrain> "Generate a map with the highest peak at 255" 21:54:28 <FLHerne> (god knows how) 21:54:40 <TrueBrain> Generate a 4kx4k map in 1 second 21:54:44 <peter1138> FLHerne, checks if you insert the CDROM :D 21:54:45 <FLHerne> I think it would effectively just be an encouragement to pirate it otherwise 21:55:09 <TrueBrain> "Enter the sixth word on the 5th page of the manual" 21:55:11 <FLHerne> People like to get All The Achievements, and buying a CD is hassle 21:55:28 <FLHerne> Someone would put it on the wiki 21:55:50 <TrueBrain> next question will be Trading Cards 21:56:08 <FLHerne> TrueBrain: There's that bloody stupid hovercraft patch 21:56:22 <TrueBrain> "run JGRPP via Steam" 21:56:23 <LordAro> FLHerne: lies and slander 21:56:41 *** gelignite has quit IRC 21:56:44 <TrueBrain> "Install 2 NewGRF that are not compatible with each other" 21:56:46 <Xaroth> heh, manual-based DRM, those were the golden days 21:56:57 <peter1138> Just found a pile of old CDROMs, but not TTD :( 21:57:03 <nielsm> classic goal would be servicing oil rigs by train ofc 21:57:12 <TrueBrain> "just found", how the fuck do you "just find" a pile of CDROMs? 21:57:15 <LordAro> pretty sure mine is on the shelf 21:57:19 <peter1138> US Robotics 56k modem. Why did that even have a CD? 21:57:22 <FLHerne> "Upload a picture of yourself holding the original CDROM"? 21:57:28 <dwfreed> peter1138: drivers 21:57:36 <TrueBrain> FLHerne: who is going to screen those? :D 21:57:40 <FLHerne> you 21:57:40 <TrueBrain> crowdsourcing? 21:57:42 <peter1138> What drivers? 21:57:58 <dwfreed> granted, it's an MC97 compatible, so it should just work 21:58:06 <FLHerne> Machine Learning Cloud AI 21:58:09 <Xaroth> win98 needed drivers for some networking features 21:58:13 <peter1138> It's a serial modem. 21:58:17 <TrueBrain> "Start a map with an AI and lose" 21:58:30 <dwfreed> config software? 21:58:36 <TrueBrain> Achievement: "enable inflation" 21:58:44 <peter1138> Ooh Indycar Racing 21:58:48 <dwfreed> or an init string generator 21:59:00 <dwfreed> good ol' AT commands 21:59:07 <Xaroth> Achievement: disable inflation within 15 minutes of enabling it 21:59:16 <TrueBrain> how did we get from plugins to Steam to freaking 56k6 modems? :P 21:59:19 <TrueBrain> this channel is supah weird 21:59:23 <peter1138> Ultimate Doom on CD :D 21:59:29 <peter1138> I was looking for my TTD CD :D 21:59:30 <LordAro> surely: "Keep breakdowns enabled longer than 15 minutes" 21:59:35 <TrueBrain> LordAro: :D 21:59:37 <milek7> "change all settings from default value" 21:59:55 <TrueBrain> "change all settings from default value, including the hidden ones" 22:00:07 <Xaroth> Achievement: play with max_station_spread set to 2 22:00:16 <TrueBrain> now you are being serious, that is not fun Xaroth 22:00:17 <TrueBrain> :P 22:00:41 <TrueBrain> nah, creating some decent Achievements is not really difficult for OpenTTD 22:00:51 <TrueBrain> we could, if we really wanted to 22:01:00 <TrueBrain> just ... "it requires someone implementing it" :P 22:01:09 <FLHerne> "Convince andythenorth that one of his features is good and worth keeping" 22:01:19 <TrueBrain> FLHerne: evil :D 22:01:23 <peter1138> FLHerne, impossible achievements are no fun 22:01:32 <TrueBrain> "Find at least 1 bug in FIRS and report it to the author" :P 22:01:41 <FLHerne> "Have a patch committed to OpenTTD"? 22:01:50 <TrueBrain> oof 22:01:51 <TrueBrain> that burns 22:02:15 <FLHerne> I guess that thing a few months ago is cautionary 22:02:19 <Xaroth> the amount of "Fix: Typo" PRs after that achievment 22:02:32 <TrueBrain> Hactoberfest all over again 22:03:53 <nielsm> achievement: ghost train (have a train cross through itself) 22:04:49 <FLHerne> Now that one's sane 22:04:58 <LordAro> nielsm: i feel like if we could detect that, we wouldn't allow it :p 22:05:42 <TrueBrain> makes achievements .. considers win-condition a bug .. fixes bug .. 22:05:45 <TrueBrain> sounds like us :D 22:06:51 <TrueBrain> maybe tomorrow I should make a tiny tool which people can use to test of this way of NAT punching works for them 22:06:58 <TrueBrain> just so we can gather some stats how often it would work 22:07:54 <TrueBrain> well, that is just a too sane of an idea for this late .. night 22:11:44 *** WormnestAndroid has quit IRC 22:12:35 *** nielsm has quit IRC 22:12:46 *** WormnestAndroid has joined #openttd 22:14:53 <Timberwolf> "Have 4096 people waiting at a bus stop" or is that getting dangerously sensible? 22:15:29 <Timberwolf> "My eyes: mix 1x, 2x and 4x newgrfs in the same game and zoom in all the way" 22:15:30 <Xaroth> only 4k? 22:15:51 <Xaroth> 36656 sounds more challenging :P 22:16:25 *** Wolf01 has quit IRC 22:19:14 <Timberwolf> Should have an achievement for cheating called "a disgrace that will be remembered for eternity" for old times' sake. 22:19:40 <peter1138> Oh, should I resurrect #7441? 22:19:48 <peter1138> It's only from 2 years ago :/ 22:25:18 <FLHerne> Timberwolf: Have more passengers waiting on your stations than the population of the map 22:25:29 <FLHerne> It's easy to do for towns 22:41:40 <spnda> oh no just found a weird bug with fullscreen 22:41:47 <spnda> will open a issue shortly 22:43:06 <spnda> ok now it doesn't happen?? 22:43:07 <spnda> weird 22:43:33 <spnda> well if anyone wants to try and reproduce it: Click fullscreen at a low res like 1280x768, then change it to something higher as 1920x1080. 22:44:10 <spnda> The window won't resize but the screen will render at the new resolution 22:48:41 *** FLHerne has quit IRC 23:24:44 *** HerzogDeXtEr has quit IRC 23:25:57 <peter1138> Generating code 23:36:50 <DorpsGek> [OpenTTD/OpenTTD] PeterN updated pull request #7441: Feature: Per-group wagon removal flag https://git.io/fjkJl 23:40:08 <DorpsGek> [OpenTTD/OpenTTD] PeterN commented on pull request #7441: Feature: Per-group wagon removal flag https://git.io/JYFD8 23:43:46 <peter1138> Hmm, why does my own-built OpenTTD crash when I try to make a screenshot... 23:43:59 <peter1138> Hmmmmmmm 23:44:33 <peter1138> It's the same weird error I get when the content downloader tries to save a file too... 23:44:39 <peter1138> Suspicious... 23:45:13 <peter1138> STACK_BUFFER_OVERRUN. uh. 23:46:06 <peter1138> Both times the error occurs in vcpkg compiled parts, libpng and zlib respectively. 23:49:33 <TrueBrain> There is a ticket with more people having the same issue 23:49:51 <TrueBrain> I myself can also not make screenshot with a debug build 23:50:39 <TrueBrain> https://github.com/OpenTTD/OpenTTD/issues/8814 23:52:11 <peter1138> Hmm, this is release with debug info 23:53:19 *** glx has quit IRC 23:53:23 <peter1138> That both libpng and zlib fail when dealing with files is... suspicous.