Back to Home / #openttd / 2021 / 02 / Prev Day | Next Day
#openttd IRC Logs for 2021-02-04

---Logopened Thu Feb 04 00:00:24 2021
00:40-!-muffindrake [] has joined #openttd
00:40-!-muffindrake is "muffindrake" on #openttd
00:44-!-muffindrake [] has quit []
00:48-!-HerzogDeXtEr [] has joined #openttd
00:48-!-HerzogDeXtEr is "purple" on #openttd
01:19-!-Wuzzy [] has quit [Remote host closed the connection]
01:40-!-muffindrake [] has joined #openttd
01:40-!-muffindrake is "muffindrake" on #openttd
02:15-!-tokai|noir [] has joined #openttd
02:15-!-tokai|noir is "Christian Rosentreter" on #openttd
02:15-!-mode/#openttd [+v tokai|noir] by ChanServ
02:20-!-sla_ro|master [slamaster@] has joined #openttd
02:20-!-sla_ro|master is "slamaster" on @#sla #openttd
02:22-!-tokai [] has quit [Ping timeout: 480 seconds]
02:23-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
02:50-!-WormnestAndroid [~WormnestA@] has quit [Remote host closed the connection]
02:50-!-WormnestAndroid [~WormnestA@] has joined #openttd
02:50-!-WormnestAndroid is "WormnestAndroid" on #openttd
03:15-!-andythenorth [] has joined #openttd
03:15-!-andythenorth is "andythenorth" on #openttd
03:58<@DorpsGek>[OpenTTD/nml] matthijskooijman commented on pull request #182: Fix: regression failure with Pillow 8.1.0
03:59-!-Wolf01 [] has joined #openttd
03:59-!-Wolf01 is "Wolf01" on #openttd
05:11<TrueBrain>required even more gfx .. 1920x620 image was already asked by Steam, but this image had to be 1920x622
05:12<TrueBrain>so many gfx needed ..
05:15<LordAro>get glx to do the gfx
05:16<LordAro>go digging through the screenshot competition threads on the forum
05:16<LordAro>that's where i got all the images for the website
05:17-!-andythenorth [] has quit [Quit: andythenorth]
05:18<TrueBrain>the problem is not finding material LordAro :)
05:19<TrueBrain>the problem is the endless stream of different resolutions :P
05:19<TrueBrain>Steam alone is already 16 different images
05:28<_dp_>exchanging images for hype :p
05:29-!-gnu_jj [] has joined #openttd
05:29-!-gnu_jj is "jj" on #ceph-devel #ceph #openttd
05:33<TrueBrain>lol, flatpak on WSL2 doesn't behave nicely :P
05:38-!-gnu_jj [] has quit [Ping timeout: 480 seconds]
05:54-!-tokai [] has joined #openttd
05:54-!-tokai is "Christian Rosentreter" on #openttd
05:54-!-mode/#openttd [+v tokai] by ChanServ
06:01-!-sla_ro|master [slamaster@] has quit []
06:03-!-Samu [] has joined #openttd
06:03-!-Samu is "realname" on #openttd
06:05<TrueBrain>LordAro: I am trying the deb-source thingy .. it works for some packages
06:05<TrueBrain>not all
06:05<TrueBrain>debhelper-compat issue :)
06:08<LordAro>oh no
06:08<TrueBrain>the Steam SDK runs debhelper 9, and we need 12 for some
06:08<TrueBrain>I guess that is a bit more difficult to fix
06:11<TrueBrain>the irony is when you google for "compile for older glibc", you find a blog post of someone I recognize :P
06:20<@DorpsGek>[OpenTTD/nml] glx22 commented on pull request #182: Fix: regression failure with Pillow 8.1.0
06:20<LordAro>TrueBrain: oh no
06:21<TrueBrain>it was a useful read :)
06:22<TrueBrain>I do not really see a way to produce a generic linux library without some runtime on top of it
06:23<TrueBrain>I think I concluded this years ago already :P
06:23<TrueBrain>not sure why I didn't remember that :)
06:23<TrueBrain>many runtimes we can pick from, ranging from flatpak to the steam runtime
06:23<TrueBrain>but .. I think if we want "generic" linux, we need to pick one
06:24<TrueBrain>or the alternative is, make it mandatory that the user installs SDL himself, for example
06:24<TrueBrain>but that can lead to subtle issues, ofc
06:25<TrueBrain>there is a reason the world stopped shipping "generic" linux binaries :P
06:26<TrueBrain>so I am sorry LordAro , but I am not going to look into this further :P I can PR the SteamRT to get a Linux version on Steam, but I am not going to invest any more time in making a "generic" linux build :)
06:27<TrueBrain>if you have the time, please do feel free, ofc :)
06:27-!-roadt [~roadt@] has joined #openttd
06:27-!-roadt is "roadt" on #openttd #qemu
06:33<TrueBrain>I do have to install a Linux VM and test if it works on a decent installed Steam before I PR .. hihi, that sounds like a good idea :P
07:01-!-HerzogDeXtEr1 [] has joined #openttd
07:01-!-HerzogDeXtEr1 is "purple" on #openttd
07:07-!-HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
07:36-!-Speeder_ [~Speeder@2804:14d:ac83:45aa:dd4d:327f:a690:ae8c] has quit [Read error: Connection reset by peer]
07:47<TrueBrain>hmm, however Factorio makes their linux binaries, it is not via the steam runtime :P
07:47<TrueBrain>there is a glibc 2.17 usage :)
07:57<TrueBrain>hmm, with other games I see similar .. GLIBC_2.17 secure_getenv
07:57<TrueBrain>the only 2.15+
07:57<TrueBrain>we just use "getenv" :P
08:04<TrueBrain>but okay, the Linux build works, except for music ... that is going through all files REALLY fast :P
08:05<TrueBrain>missing soundfont, ofc
08:07<TrueBrain>fluidsynth: warning: No preset found on channel 0 [bank=0 prog=1]
08:07<TrueBrain>what does that mean?
08:09<TrueBrain>ha, fixed it
08:21-!-tokai|noir [] has joined #openttd
08:21-!-tokai|noir is "Christian Rosentreter" on #openttd
08:21-!-mode/#openttd [+v tokai|noir] by ChanServ
08:28-!-tokai [] has quit [Ping timeout: 480 seconds]
08:32<TrueBrain>that moment strace segfaults
08:32<TrueBrain>w00p :D
08:42<TrueBrain>lol .. old "tar" had "gzip" paths hardcoded, but new "tar" uses /bin/sh ..
08:42<TrueBrain>and .. my trickery doesn't allow executing of /bin/sh
08:42<TrueBrain>hate :P
08:48<TrueBrain>Steam Linux will be ~180MiB (without OpenGFX and friends) vs ~16MiB for the other platforms .. lol? :D
08:53-!-fnutt0 [] has joined #openttd
08:53-!-fnutt0 is "fnutt" on #openttd
08:54-!-Gustavo6046_ [~Gustavo60@2804:14d:4cd8:9066::4] has joined #openttd
08:54-!-Gustavo6046_ is "Gustavo Rehermann <>" on #openttd #llvm
08:58-!-Gustavo6046 [~Gustavo60@2804:14d:4cd8:9066::4] has quit [Ping timeout: 480 seconds]
08:58-!-Gustavo6046_ is now known as Gustavo6046
08:59-!-murr4y [] has quit [Ping timeout: 480 seconds]
08:59-!-crem2 [~crem@] has joined #openttd
08:59-!-crem2 is "crem" on #openttd
08:59-!-tonyfinn[m] [~tonyfinnm@2001:470:1af1:101::53d9] has quit [Ping timeout: 480 seconds]
08:59-!-crem1 [~crem@2a02:169:160a:1:9b30:962e:76eb:4bb3] has quit [Ping timeout: 480 seconds]
08:59-!-fnutt [] has quit [Ping timeout: 480 seconds]
08:59-!-fnutt0 is now known as fnutt
09:00-!-greeter [] has quit [Ping timeout: 480 seconds]
09:03<TrueBrain>anyone with Steam on Linux that wants to try out this build?
09:05-!-murr4y [] has joined #openttd
09:05-!-murr4y is "AK" on #openttd #bitlbee #suckless
09:05-!-greeter [] has joined #openttd
09:05-!-greeter is "greeter" on #openttd #oolite #oftc
09:10<@orudge>Hmm, it suggests it requires Ubuntu. I could install a VM I guess, but probably not got time for that right now.
09:10<TrueBrain>Steam suggests that? Or what is suggesting that?
09:11<TrueBrain>"it" is very undefined :D
09:11-!-tonyfinn[m] [~tonyfinnm@2001:470:1af1:101::53d9] has joined #openttd
09:11-!-tonyfinn[m] is "org.matrix:tonyfinn" on #openttd #/r/openttd
09:11<TrueBrain>anyway, I rather have someone that is already using Steam on Linux :) I did install a VM myself and test it .. that is working ;)
09:11<TrueBrain>I am more curious in real-world testers, honestly :)
09:14<_dp_>I don't have steam but at least I have ubuntu xD
09:24<_dp_>lol, when did I buy rimworld xD
09:24<_dp_>I thought I only had mashinky there
09:24<_dp_>but yeah, have steam now so can test
09:27<TrueBrain>well, you never solved the riddle, so ... :P
09:28<TrueBrain>see your PM
09:28<TrueBrain>you have to switch to the "linux" branch
09:28<_dp_>I new it was useless to me at that point :p
09:29<_dp_>steam is weird xD
09:29-!-sla_ro|master [slamaster@] has joined #openttd
09:29-!-sla_ro|master is "slamaster" on @#sla #openttd
09:30<TrueBrain>yeah, it kinda expects you to have friends you know :P
09:32<_dp_>I pressed "play"
09:32<TrueBrain>again, switch to "linux" branch please :)
09:33<TrueBrain>under "Beta" in the game menu I believe
09:34<_dp_>ah, ok, now to find "game menu" xD
09:34<TrueBrain>right click OpenTTD
09:34<Xaroth>right click the game in the library, hit properties
09:34-!-nielsm [] has joined #openttd
09:34-!-nielsm is "Niels Martin Hansen" on #openttd
09:35<TrueBrain>its called Betas there
09:35<TrueBrain>Opt-in to "Linux" :)
09:35<_dp_>not on right click but I think I found it...
09:35<TrueBrain>at release, it will just install correctly btw :)
09:35<TrueBrain>I just cannot push this to the default branch atm :)
09:37<_dp_>yeah, runs fine now
09:37<TrueBrain>sound too?
09:37<_dp_>baseset missing some sprites but I guess that's expected
09:37<_dp_>oh, openttd has sound xD
09:37<TrueBrain>shocker, I know :P
09:39<_dp_>no sound but I need to check with the regular game how it should work xD
09:39<_dp_>also steam version picks up my openttd folder so it's not a clean test rly
09:39<TrueBrain>sound worked for me out of the box with Ubuntu 20.04, but .. yeah .. that was a clean installed VM :)
09:40<TrueBrain>does both sound and music not work?
09:41<TrueBrain>make sure you set the base music and base sound btw
09:41<TrueBrain>Steam will preinstall them for you
09:41<TrueBrain>but if you manually selected "No sound", it might win :P
09:41<TrueBrain>dunno, honestly :)
09:42<_dp_>yeah, I already noticed steam version has sound sets unlike the regular one
09:42<_dp_>but neither seems to work
09:42<TrueBrain>sound does work with your own build OpenTTD?
09:49<_dp_>oh god
09:49<_dp_>ok, I found some volume sliders in openttd itself xD
09:49<_dp_>surprisingly now in steam both music and sound work
09:49<_dp_>and my own build only sound
09:49<TrueBrain>yeah, music needs soundfonts
09:49<TrueBrain>with Steam I prepackage it
09:51<_dp_>f12 exits the game instead of making the screenshot as it claims on steam page
09:51<_dp_>hardly surprising I guess
09:51<TrueBrain>we do not integrate the Steam API
09:51<TrueBrain>so weird that they make any claim like that :P
09:53<TrueBrain>anyway, tnx _dp_
09:53<TrueBrain>guess now I just need to make this PR pass review :P
09:57<_dp_>It's super weird btw that you can only change volume if you start the game
10:08<TrueBrain>LordAro: well, now I am finishing the steamrt .. I guess it doesn't need the steam runtime, it just needs a few binaries installed. So I guess we can call that generic linux? Install SDL, zlib and png on your host, and you can run OpenTTD? :)
10:08<TrueBrain>it does need the old png btw, not the new :P
10:08<LordAro>mm, that makes it mildly more complicated :p
10:08<LordAro>not worth adding png to it?
10:09<TrueBrain>isn't the old png shipped by every distro still?
10:09<TrueBrain>but yeah, I can embed it
10:09<LordAro>i'm not sure i'd rely on it
10:09<TrueBrain>we have to rely on something :P
10:09<TrueBrain>as before you know it, you are embedding X11 too :D
10:10<TrueBrain>but okay, I am first going to finish this .. and that is hellish enough as it is :P
10:11<TrueBrain>that the new tar needs 'sh' is annoying as fuck :P
10:19-!-andythenorth [] has joined #openttd
10:19-!-andythenorth is "andythenorth" on #openttd
10:19<andythenorth>My AWS bill arrived!
10:19<andythenorth>monthly excitement
10:28<Wolf01>supermop_Home_: how is with snow there?
10:30<@DorpsGek>[OpenTTD/OpenSFX] orudge approved pull request #12: Change: Relicense sounds edited by Pendrokar and zephyris to CC BY 3.0
10:30<@DorpsGek>[OpenTTD/OpenSFX] orudge merged pull request #12: Change: Relicense sounds edited by Pendrokar and zephyris to CC BY 3.0
10:32<TrueBrain>you got to love CMake ... all LIBRARIES variables point to an so file .. except for SDL :P
10:36<TrueBrain>"LZO_OS_FREESTANDING" is not defined, evaluates to 0 [-Wundef]
10:38<andythenorth>AWS Bill....$1.40!
10:40<supermop_Home_>Wolf01 well its melted a little
10:40<supermop_Home_>i have not gone outside yet today
10:52-!-Flygon [~Flygon@2001:44b8:411e:4e00:59ea:8fa8:afd0:c7e0] has quit [Quit: A toaster's basically a soldering iron designed to toast bread]
10:53<supermop_Home_>otherwise getting good use out of goretex shoes
10:55<Wolf01>Ehe, but you should be used to snow there, maybe not this much
10:56<supermop_Home_>its pretty nice
10:56<supermop_Home_>we usually only get one big blizzard a year
10:56<supermop_Home_>Monday was kind of fun walking around in it
10:56<Wolf01>We might get one in some days
10:57*andythenorth back to work
10:57-!-andythenorth [] has quit [Quit: andythenorth]
10:57<supermop_Home_>it was more than a normal amount of snow, but not really more than a normal years blizzard
10:57-!-glx [] has joined #openttd
10:57-!-glx is "Loïc GUILLOUX" on #openttd
10:57-!-mode/#openttd [+v glx] by ChanServ
10:57<supermop_Home_>today looks pretty nice outside but I've been too busy to go out yet
10:58<supermop_Home_>yesterday and today both bright and sunny
10:58<supermop_Home_>they problem is the snow gets pretty gross after two days of cars driving on it
11:06<TrueBrain>owh, icu lx is not being installed for Steam Linux .. eeeuuhhh ... yet another problem for on the pile!
11:19<TrueBrain>that moment you cannot update debhelper because it needs dpkg, and you cannot update dpkg because it needs debhelper
11:36<Wolf01>Hmmm, I would like to watch a happy movie (not comic, just happy)... but then it will remember my shit, so it's better to watch a shitty movie... I need to find a balance
12:05-!-Gustavo6046 [~Gustavo60@2804:14d:4cd8:9066::4] has quit [Ping timeout: 480 seconds]
12:07<@DorpsGek>[OpenTTD/OpenSFX] Wuzzy2 opened pull request #13: Re-edit some sounds to relicense them
12:08<@DorpsGek>[OpenTTD/OpenSFX] Wuzzy2 commented on issue #9: Sound cleanup roadmap
12:11-!-Wuzzy [] has joined #openttd
12:11-!-Wuzzy is "Wuzzy" on #openttd
12:15-!-frosch123 [] has joined #openttd
12:15-!-frosch123 is "frosch" on #openttd
12:44-!-Progman [] has joined #openttd
12:44-!-Progman is "Peter Henschel" on #openttd
12:55-!-jottyfan [] has joined #openttd
12:55-!-jottyfan is "jottyfan" on #openttd
12:57-!-jottyfan [] has quit []
13:00<TrueBrain>LordAro: I fail to make this pretty .. I am now missing lx support for ICU, because I forgot to compile harfbuzz ... and ugh ..
13:00<TrueBrain>I just want something else to take care of dependencies :P
13:00<TrueBrain>this is not doable for us mere mortals
13:00<TrueBrain>vcpkg doesn't work because ... too old
13:00<TrueBrain>and deb approach fails because it is debhelper 9
13:00<TrueBrain>any ideas?
13:01<LordAro>not really
13:01<LordAro>no helpful results on google?
13:01<TrueBrain>we just need a docker image with an old glibc and new everything else :)
13:01<TrueBrain>difficult to google for :)
13:01<TrueBrain>I considered setting ".symver" for everything, and just compile on a modern machine
13:01<TrueBrain>but it requires patching our libraries too, to do that too :P
13:03<LordAro>python uses manylinux1/manylinux2010 centos images to build it's "wheel" packages
13:03<LordAro>would still require building all the (up to date) libraries yourself though, of course
13:03<TrueBrain>glibc 2.12, even older :P
13:03<LordAro>might have better luck finding rpms though
13:04<TrueBrain>mostly the problem with manylinux2010, is gcc 4.5.0
13:04<TrueBrain>hmm, centos6 .. might .. have newer?
13:04-!-Gustavo6046 [~Gustavo60@2804:14d:4cd8:9066::2] has joined #openttd
13:04-!-Gustavo6046 is "Gustavo Rehermann <>" on #openttd #llvm
13:05<LordAro>manylinux2010 is centos6
13:05<LordAro>manylinux1 is centos5
13:05<LordAro>(and manylinux2014 is centos7)
13:05<TrueBrain>I was ignoring manylinux1, sorry :) Jumped to 2010 :P
13:08<TrueBrain>let's see what is installed on this images ..
13:08<TrueBrain>gcc 8, okay, that is at least something
13:09<LordAro>that's plenty, i'd think :p
13:10<TrueBrain>hmm .. SDL2 I can only find for CentOS 7
13:10<frosch123>did we not yet delete icu lx?
13:10<TrueBrain>CMake tries to detect it .. so I assumed it was used?
13:11<TrueBrain>owh, even on my local install it fails to detect lx
13:11<TrueBrain>I can compile without lx?
13:11<frosch123>i guess it still works on old linux. but it's dead on debian
13:11<LordAro>yeah, lx hasn't existed in icu for a while
13:11<TrueBrain>do we lose any functionality because of it?
13:11<LordAro>rtl support
13:12<frosch123>yes, no tamil, hebrew, arabic.. on debian
13:12<frosch123>*on linux
13:12<frosch123>only latin, greek or russian letters
13:12<frosch123>more complicated stuff fails
13:13<TrueBrain>our official 18.04 build has lx, none of the other linux builds do
13:13<frosch123>it exists for linux before 2019 or so
13:14<TrueBrain>so basically, shipping a Steam version for Linux without lx isn't a real problem?
13:14<frosch123>correct, no problem :)
13:15<TrueBrain>hmm .. using manylinux2014 would simplify things, it seems
13:15<TrueBrain>libc 2.17, so a bit more modern than the Steam Runtime, but not by much
13:17<TrueBrain>I guess that is fair?
13:17<TrueBrain>2.15, which Steam Runtime uses, is from 2011
13:18<LordAro>this appears to contain an SDL2 for EPEL6
13:18<LordAro>which should work
13:18<TrueBrain>a bit old
13:18-!-y2kboy23_ [] has quit [Quit: ZNC -]
13:18-!-Wormnest [~Wormnest@] has joined #openttd
13:18-!-Wormnest is "Wormnest" on #openttd
13:18<TrueBrain>but I do not think finding all dependencies on all kind of different sites is going to be useful, honestly
13:18<LordAro>yeah, you're definitely going to have to build it yourself to get an up to date version :p
13:19<TrueBrain>well, the 2014 has the same version as ubuntu currently ships with
13:20-!-y2kboy23 [] has joined #openttd
13:20-!-y2kboy23 is "Got ZNC?" on #openttd
13:22<TrueBrain>CentOS 7 even has ICU 50.2 .. :o
13:23<TrueBrain>the reason I like manylinux2014, is that GitHub Actions work in it
13:24<TrueBrain>that ... simplifies things
13:25<TrueBrain>and even has lx
13:25-!-y2kboy23 [] has quit [Quit: ZNC -]
13:25<TrueBrain>was a good idea of you LordAro , manylinux :)
13:28<TrueBrain>and we don't use any function from glibc 2.16 and 2.17
13:28-!-WormnestAndroid [~WormnestA@] has quit [Read error: Connection reset by peer]
13:28-!-tokai [] has joined #openttd
13:28-!-tokai is "Christian Rosentreter" on #openttd
13:28-!-mode/#openttd [+v tokai] by ChanServ
13:28-!-WormnestAndroid [~WormnestA@] has joined #openttd
13:28-!-WormnestAndroid is "WormnestAndroid" on #openttd
13:29<TrueBrain>even the stdc++ should be fine
13:29<TrueBrain>so I now only have to find clever code to collect the right libraries to pack :)
13:30-!-y2kboy23 [] has joined #openttd
13:30-!-y2kboy23 is "Got ZNC?" on #openttd
13:31-!-gelignite [] has joined #openttd
13:31-!-gelignite is "realname" on #llvm #openttd
13:35-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
13:36-!-Progman [] has quit [Remote host closed the connection]
13:36<TrueBrain>hmm ... no license files anywhere to find ... oh-oh
13:37<TrueBrain>how to solve that on CentOS .. LordAro , you happen to know?
13:40<LordAro>not offhand
13:42<TrueBrain>it should be in /usr/share/doc, the rpm suggests .. but it remains empty :D
13:43<TrueBrain>possibly a setting of the manylinux
13:45<TrueBrain>no, also empty with plain centos docker image
13:49<TrueBrain>there it is \o/
14:03-!-iSoSyS [] has joined #openttd
14:03-!-iSoSyS is "realname" on #/r/openttd #openttd
14:11<TrueBrain>LordAro: can you help me, if you have some time .. one thing I never understood about generic linux, which maybe you can help with
14:11<TrueBrain>most libraries just need libc
14:11<TrueBrain>or libm
14:11<TrueBrain>so that will be okay
14:11<TrueBrain>but for example, libfreetype needs libbz2
14:11<TrueBrain>can I assume that is just available?
14:12<TrueBrain>where to draw the line?
14:12<TrueBrain>especially fluidsynth is a bit of a beast ... it has stuff like libjack, libasound, libpulse, ...
14:14<LordAro>it's a tricky line to draw indeed
14:14<TrueBrain>fluidsynth for example needs a libreadline that ubuntu 20.04 doesn't have in a normal install
14:14<TrueBrain>but that drags in libtinfo and liblash
14:15<TrueBrain>(I have readline 5.2 and 8.0 installed, but the CentOS 7 fluidsynth wants 6.0 :D)
14:16-!-tokai|noir [] has joined #openttd
14:16-!-tokai|noir is "Christian Rosentreter" on #openttd
14:16-!-mode/#openttd [+v tokai|noir] by ChanServ
14:16<TrueBrain>so I am a bit scared, that this will result in many errors for Steam users if we put it up there
14:17<TrueBrain>hmm .. my self-compile fluidsynth doesn't need readline at all
14:17<FLHerne>TrueBrain: This really does sound like you're reinventing appimage
14:18<TrueBrain>no, I am not; far from it in fact
14:18<TrueBrain>today I spend most time reading up on how flatpak and appimage do stuff
14:18<FLHerne>The appimage builder has a built-in list of which libs are assumed to be available
14:18<TrueBrain>they both do something useful, but both do different things than what we want :)
14:18<TrueBrain>all these platforms have a "runtime" on top of them
14:18<TrueBrain>something they assume is either there, or you can install to ensure it is there
14:20-!-DasPoseidon [~Thunderbi@2001:9e8:2050:bf00:81f1:8145:7303:32b9] has joined #openttd
14:20-!-DasPoseidon is "DasPoseidon" on #openttd
14:22<TrueBrain>okay ... fluidsynth 2.1.1 is used by Ubuntu, and ... 1.1.6 by CentOS
14:22<TrueBrain>that explains a bit why they are so different :D
14:22-!-tokai [] has quit [Ping timeout: 480 seconds]
14:25-!-andythenorth [] has joined #openttd
14:25-!-andythenorth is "andythenorth" on #openttd
14:25<@DorpsGek>[OpenTTD/OpenSFX] Wuzzy2 updated pull request #13: Re-edit some sounds to relicense them
14:26-!-Progman [] has joined #openttd
14:26-!-Progman is "Peter Henschel" on #openttd
14:28<@DorpsGek>[OpenTTD/OpenSFX] Wuzzy2 updated pull request #13: Re-edit some sounds to relicense them
14:28<TrueBrain>yeah, without fluidsynth the dependencies are very contained and not really an issue
14:29<TrueBrain>bz2 yes/no is not really worth a discussion at that point :)
14:29<TrueBrain>fluidsynth is the biggest ... "what to do with this" :)
14:29<TrueBrain>wasn't there another midi backend?
14:30<frosch123>fluidsynth is the one that works :p
14:30<@DorpsGek>[OpenTTD/OpenSFX] Wuzzy2 commented on pull request #13: Re-edit some sounds to relicense them
14:31<Wuzzy>One step further to nuking CC Sampling Plus!
14:32<TrueBrain>I am very tempted to just say: you need "jack/asound/pulse/sndfile/dbus" installed to run OpenTTD
14:32<TrueBrain>Steam has it in his runtime, so that is easy
14:33<Wuzzy>is there an official manual on how to get music to work?
14:37<Eddi|zuHause>a) nobody reads a manual. b) whose call is it to make it "official"?
14:37<Eddi|zuHause>and c) who says that person actually knows how to do it?
14:38<TrueBrain>Wuzzy: I would like to say: pressing the "Play" button doesn't need a manual. But it seems I am lacking a bit of context to what you are referring to honestly :) what OS, to start with?
14:39<Eddi|zuHause>i agree. it should "just work (tm)"
14:39<TrueBrain>follow-up questions would be: compiling yourself or using one of our binaries?
14:40-!-Wuzzy2 [] has joined #openttd
14:40-!-Wuzzy2 is "Wuzzy" on #openttd
14:41<TrueBrain>FLHerne: btw, are you sure AppImage works like you describe? From what I can gather, it copies all libraries, even libc, inside the package?
14:41-!-Wuzzy [] has quit [Ping timeout: 480 seconds]
14:44<FLHerne>TrueBrain: Traditional AppImage doesn't
14:44<TrueBrain>all AppImages I opened up, have libc embedded in them
14:44<TrueBrain>not sure what you mean with "traditional"?
14:44<FLHerne>This appimage-builder thing azubieta made works differently, but I don't understand it yet :p
14:46<TrueBrain>when you just read flatpak documentation, you notice AppImage is lacking a bit on that front :D
14:46<TrueBrain>it talks a lot about HOW to use it, not WHAT it is doing :P
14:46<TrueBrain>flatpak balances that a bit more
14:46<TrueBrain>which is nice
14:48<FLHerne>e.g. the list here
14:48<FLHerne>(I think AppImageKit has a similar list, but I didn't find it yet)
14:48<TrueBrain>ah, pkg2appimage, yeah, I skipped that one. Tnx :)
14:49<TrueBrain>they even assume harfbuzz? That is unusual :P
14:49<TrueBrain>I like about all these solutions, that they all make different assumptions :D
14:50<TrueBrain>funny, jack and asound are on that list, but pulse is not
14:51<TrueBrain>okay, fluidsynth 2 is much more acceptable in dependencies
14:51<FLHerne> links to that excludelist
14:53<TrueBrain>so okay .. setting goals for myself: it should run on steamrt, it should compile easily with GHA, and if it can run for others outside Steam easily, that is a nice bonus
14:53<TrueBrain>in other words: I am just going to assume jack, pulse, asound are installed :)
14:54<TrueBrain>tnx FLHerne , that excludelist gives me a bit of confidence this is fine :)
14:55<Eddi|zuHause>dunno what asound is, pulse is usually installed nowadays, but jack?
14:56<TrueBrain>if my memory serves me correct, asound comes from alsa
14:56<TrueBrain>but this has been long long long ago I did anything with that :P
14:57-!-Gustavo6046_ [~Gustavo60@] has joined #openttd
14:57-!-Gustavo6046_ is "Gustavo Rehermann <>" on #openttd #llvm
14:58<Eddi|zuHause>if you can reasonably implement "any one of those will do", that should be fine. if you have to focus on one, probably use pulse.
14:59<TrueBrain>owh, now I see what fluidsynth does
14:59<TrueBrain>it detects on compile which are available
14:59<TrueBrain>and compiles those in
14:59<TrueBrain>so ... yeah ... lol?
15:00-!-Gustavo6046 [~Gustavo60@2804:14d:4cd8:9066::2] has quit [Ping timeout: 480 seconds]
15:00-!-Gustavo6046_ is now known as Gustavo6046
15:01<TrueBrain>I somehow would expect such libraries to do this dynamically :)
15:02<TrueBrain>so no music you say? :P
15:04<TrueBrain>it can also do audio via sdl2
15:04<TrueBrain>hmm .. I need to test that :D
15:06<TrueBrain>my reasoning goes: we do sound via SDL2, so if fluidsynth does music via SDL2, it either both works, or neither works
15:10<+glx>would be the "logic" solution
15:10<TrueBrain>okay, that gives me a very nice and small set of libraries, excluding libc and friends
15:10<+glx>if it works with SDL2 then just use that
15:11<+glx>and ignore other backend
15:13-!-Gustavo6046_ [~Gustavo60@2804:14d:4cd8:9066::1] has joined #openttd
15:13-!-Gustavo6046_ is "Gustavo Rehermann <>" on #openttd #llvm
15:13-!-Gustavo6046 [~Gustavo60@] has quit [Remote host closed the connection]
15:13-!-Gustavo6046_ is now known as Gustavo6046
15:16-!-iSoSyS [] has quit []
15:17<TrueBrain>and it even works :D
15:18<+glx>less deps
15:20<+glx>I didn't follow everything, but the idea is to have openttd exe next to a set of libraries so it can run on any system ?
15:20<+glx>or will it be static build ?
15:20<TrueBrain>the first
15:20<TrueBrain>we have found out over the years that static building is not really .. going anywhere :P
15:21<TrueBrain>I believe you too digged into that from time to time :D
15:21<TrueBrain>so no, we use rpath to add "lib" to the library search path
15:21<TrueBrain>and build on a machine with a really old glibc
15:21<TrueBrain>making openttd work for any linux machine that is less than 10 years old
15:21<TrueBrain>with the lowest amount of assumptions of what is installed
15:22<+glx>well on windows we use static, but I guess dynamic could work too as vcpkg handles that more nicely
15:22<+glx>maybe I should test
15:23<TrueBrain>the only request that has been made to me, is to include the license files for all libraries we embed
15:23<TrueBrain>that is not as trivial as it sounds :D
15:24<TrueBrain>and I contributed to OpenTTD's flatpack!
15:24<TrueBrain>(it was creating a debug build :P)
15:25<TrueBrain>flatpak .. not flatpack
15:26<+glx>well with vcpkg it seems "copyright" files are easy to locate
15:29<TrueBrain>okay, using a CMake 3.15 function for this makes it really easy
15:29<+glx>I think for windows we used static builds because it was easier at that time, but with vcpkg it may be no needed
15:30<+glx>as vcpkg should auto copy the dll IIRC
15:39<+glx>hmm but for mingw it should still build static else it can't run "natively"
15:40<+glx>anyway mingw is not the primary target
15:44<+glx>oh seems vcpkg changed bootstrapping quite recently (it now just downloads a prebuilt vcpkg)
15:45<+glx> <-- indeed, 2 hours ago
15:49<TrueBrain>about time, tbfh
15:51<TrueBrain>okay, I kinda want to bump the minimal CMake now :P
15:51<TrueBrain>to 3.16
15:52<TrueBrain>it introduces something I am going to use
15:52<TrueBrain>as fuck no I am going to build that myself :P
15:52<TrueBrain>31MiB of libs I embed
15:52<TrueBrain>20 libs
15:52<+glx>oh our cmake should handle non static windows without change (static lib search is forced for mingw only already)
15:52<+glx>everything else rely on vcpkg
15:54<+glx>let's install a non required lib, just to see what it does exactly
15:55<+glx>I hope it won't copy unused stuff
15:58<+glx>seems promising :)
15:58<TrueBrain>and a new option: -DOPTION_PACKAGE_DEPENDENCIES=ON
16:00<+glx>oh now I think I need to detect if /MD -> /MT stuff is required
16:01<+glx>I'll see at link step
16:07<TrueBrain>okay .. time to see if GHA builds this as fine as I could build it locally :)
16:09-!-snail_UES_ is now known as Guest12289
16:09-!-Guest12289 [] has quit [Read error: Connection reset by peer]
16:09-!-snail_UES_ [] has joined #openttd
16:09-!-snail_UES_ is "Jacopo Coletto" on #openttd
16:09<@orudge>[20:22:04] <glx> well on windows we use static, but I guess dynamic could work too as vcpkg handles that more nicely <-- dynamic is certainly not a problem on Windows (when I was attempting to put together a UWP build, only dynamic was supported, not static)
16:10<@orudge>but I'd still probably suggest we ship static binaries, as it would be smaller
16:10<@orudge>and on Mac it's less of a headache
16:10<+glx>vcpkg works well for that, in build dir I have exe and 4 dll now
16:10<@orudge>If we had multiple executables or libraries then dynamic might make more sense
16:14<+glx>I can easily compare sizes, I just added another configuration
16:15<@orudge>I suppose the one thing is that -windows uses the dynamic CRT, but then you need to also distribute or have users install the appropriate VC++ runtime
16:16<+glx>for now I still use /MT
16:17-!-HerzogDeXtEr1 [] has quit [Quit: Leaving.]
16:17-!-HerzogDeXtEr [] has joined #openttd
16:17-!-HerzogDeXtEr is "purple" on #openttd
16:17<TrueBrain> <- all green ... okay ... lets see what happens if I upload it to Steam, I guess :)
16:18<TrueBrain>tnx again LordAro , manylinux was a good suggestion/solution :D
16:18<TrueBrain>I could in theory also use centos:7 as base
16:18<TrueBrain>but manylinux has all build tools already installed .. == faster builds :P
16:18<TrueBrain>but it might be better to use the centos as base ...
16:19<TrueBrain>more in line with the other platforms, I guess
16:19<+glx>TrueBrain: btw using a more recent cmake will fix the IPO warning ;)
16:19<+glx>at least 3.9 is needed IIRC
16:19<TrueBrain>glx: well, I now just added a check: if you enable that OPTION, you need CMake 3.16, otherwise it fatals
16:19<TrueBrain>I have no clue what cmake version we have on all our targets, honestly :P
16:20<+glx>ah so still minimal 3.5 then
16:20<TrueBrain>it was an easier solution, basically :P
16:21<+glx>dunno if it's easy to have a minimal per platform
16:22<TrueBrain>we should first check what version of CMake we run the farm with
16:22<TrueBrain>as users can easily upgrade CMake to what-ever those versions are
16:23<TrueBrain>Windows is 3.19.3
16:23<+glx>vcpkg itself needs 3.19.2
16:23-!-tokai [] has joined #openttd
16:23-!-tokai is "Christian Rosentreter" on #openttd
16:23-!-mode/#openttd [+v tokai] by ChanServ
16:23<+glx>C:\vcpkg [master ≡]> vcpkg upgrade
16:23<+glx>A suitable version of cmake was not found (required v3.19.2). Downloading portable cmake v3.19.2...
16:24<+glx>but it's independant from the installed one of course
16:24<TrueBrain>Ubuntu 18.04 is using 3.10
16:24<TrueBrain>guess that is the lowest we have atm
16:25<TrueBrain>next is 3.13 on debian:buster
16:25<TrueBrain>so 3.16 for sure is too high :D
16:25<+glx>so 3.9 should be ok (at least to fix the IPO policy issue)
16:26<TrueBrain>I think so, yes
16:26<TrueBrain>bump it in a branch of your fork, and make a fake tag
16:26<TrueBrain>the release run will tell you if we are correct :D
16:30-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
16:33<TrueBrain>_dp_: I just dropped an update to Steam .. would you mind testing again?
16:33<TrueBrain>should be "generic-linux" in the start-up title
16:34<+glx>TrueBrain: I just need to create a release of my branch ?
16:35<TrueBrain>just give it a silly number
16:35<TrueBrain>just make sure you do it on your fork :P
16:35<TrueBrain>don't be like me :D
16:35<_dp_>yeah, seems fine, downloaded ok, generic-linux, sound/music works
16:35<_dp_>anything else to test?
16:36<TrueBrain>_dp_: nope
16:36<TrueBrain>that is all :D
16:36<TrueBrain>thank you!
16:36<@DorpsGek>[OpenTTD/OpenTTD] TrueBrain opened pull request #8641: Feature: [Actions / CMake] support for generic linux builds
16:36<TrueBrain>that is a very small PR compared to the work that went into it :P
16:36<+glx> <-- at least it started
16:39<TrueBrain>LordAro: I gave up trying to add license files for each library .. it is one big mess when it comes to that. I also realised, when we do static builds, we don't do it either
16:39<TrueBrain>but if you have any ideas how to do it, I have no problems adding it
16:48<TrueBrain>glx: seems to be fine :)
16:48<+glx>yeah and warning is gone
16:48<+glx>I guess I can also remove the CMP test
16:49<TrueBrain>tomorrow I am going to ask our translators to translate the Steam Store Page :)
16:49<TrueBrain>haven't had a comment about the text in a few days, so I guess it is time :)
16:49<TrueBrain>no clue yet how .. I think I just drop a line in every Translator Team that Steam supports, asking to translate in a reply
16:50<TrueBrain>"mac" "true"
16:50<TrueBrain>"linux" "true"
16:50<TrueBrain>Steam store defined what targets are available like this ^^
16:50<TrueBrain>and for windows ...
16:50<TrueBrain>"win" "1"
16:51-!-jottyfan [] has joined #openttd
16:51-!-jottyfan is "jottyfan" on #openttd
16:51<+glx>hmm for windows you specified 64bit only or both are provided ?
16:51<+glx>(can't remember what's on the page)
16:52<TrueBrain>Windows 10, 8, 7, Vista (32 Bit and 64 Bit)
16:52<TrueBrain>I wrote
16:52<TrueBrain>and I did not enable the "64 Bit only" checkbox
16:52<+glx>so you upload 32bit version
16:52<TrueBrain>and I have a Win32 and Win64 depot
16:53<TrueBrain>they are configured correctly
16:53<TrueBrain>and they both have a different build
16:53<TrueBrain>yeah, it seems I did this correctly :D
16:53<TrueBrain>(had to check, I couldn't remember)
16:53<+glx>ah both, steam will show a start menu
16:53<+glx>well "menu"
16:53<TrueBrain>it doesn't for me
16:53<TrueBrain>I can configure that, I think
16:53<TrueBrain>I haven't
16:54-!-Samu [] has quit [Quit: Leaving]
16:59<TrueBrain>yeah glx , it is really small compared to other games :D
16:59<TrueBrain>and I included OpenGFX in there
16:59<+glx>ok only one exe is installed
16:59<TrueBrain>no clue how Steam does 32bit / 64bit, honestly
16:59<TrueBrain>I just made it 2 different depots ..
16:59<TrueBrain>lot of games do 32bit/64bit binaries in one depot, even windows+linux
17:00<TrueBrain>and launch the right one based on that
17:00<TrueBrain>but .. I don't understand that :P
17:00<TrueBrain>you can script all of this, so .. it feels like they are just lazy
17:00<@orudge>That's the same architecture I have for the Windows Store app
17:00<@orudge>x86, x64, and I guess soon arm64
17:00<@orudge>It installs the right one, starts openttd.exe, simple
17:00<TrueBrain>yeah .. on Steam I even put OpenGFX in its own depot
17:00<@orudge>with common stuff in a common .appx
17:00<TrueBrain>so we can update that independant of the rest
17:01<TrueBrain>for linux there are more depots .. 1 for the executable, and 1 for soundfont :)
17:01<+glx>ok it's the 64bit
17:01<TrueBrain>it is nice, those depots
17:01<TrueBrain>just no clue how Steam does it :P
17:02<+glx>I don't have 32bit OS to check
17:02<+glx>except maybe an XP VM, but I don't think steam still supports that
17:02-!-jottyfan [] has quit [Quit: jottyfan]
17:04<andythenorth>"Red Warning | Impact High | Eliminate render-blocking resources | Potential savings of 1,400 ms"
17:04*andythenorth will not be fixing that tonight
17:04<andythenorth>website performance :P
17:04<TrueBrain>holy crap
17:04<TrueBrain>yeah, and tomorrow is friday, so that is not a day to deploy, so why fix it tomorrow
17:04<TrueBrain>monday you have to start up first
17:05<TrueBrain>so tuesday earliest
17:06-!-frosch123 [] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
17:06<TrueBrain>1700 wishlists
17:07<TrueBrain>what I like about Steam, that you can see a bit more how many people play the game :)
17:08<andythenorth>TrueBrain I could fix it Saturday? :P
17:08<TrueBrain>nt going to happen
17:15-!-Progman [] has quit [Remote host closed the connection]
17:15<nielsm>so one of the next features should probably be support for other transport protocols for network games that "raw tcp"
17:15<nielsm>since using a different transport protocol could enable proxying multiplayer games through steam or discord matchmaking services
17:15<nielsm>without players having to configure firewalls
17:16<TrueBrain>what kind of protocol do they need?
17:16<nielsm>I believe that at least discord, possibly also steam, supports you more or less proxying through their server farm
17:17<TrueBrain>but that doesn't just work on TCP?
17:17<TrueBrain>I should read up on these things :D
17:17<nielsm>the problem most players have setting up ad-hoc multiplayer is that someone needs to act server, and for that they need to have a publicly routable IP address that can accept connections on some TCP port and reach the host computer
17:18<nielsm>and that's horrible for most people to configure
17:19<TrueBrain>well aware :)
17:19<TrueBrain>we should just create a NAT punching service honestly
17:19<TrueBrain>but .. we never did :)
17:19<nielsm>so if a matchmaking service can offer a full proxy for all connections, by encapsulating our data with their library, players can get functional ad-hoc multiplayer with their friends, without having to mess with port forwarding, public ip addresses, or VPN setups
17:19<TrueBrain>I am unaware that they offer proxying
17:19<nielsm>TCP NAT punching is also a big hassle, and not guaranteed to work
17:19<TrueBrain>I always assumed they assisted with NAT punching
17:20<nielsm>I'm not entirely sure if steam does, but I think discord does
17:20<TrueBrain>something to look at for sure
17:20<TrueBrain>and if they only do NAT punching, we can offer that too :)
17:20<nielsm>the other alternative would be what I've suggested a few times, but move away from TCP for game protocol entirely, since NAT punching is much easier with UDP
17:20<nielsm>even if it means reimplementing a reliable transport protocol on top of it
17:21<TrueBrain>I was about to say .. want to do a QUICy? :D
17:21<nielsm>yea that's what I looked at
17:21<supermop_Home_>i've never figured how to host a multiplayer game
17:21<TrueBrain>implementing TCP on UDP is not uncommon btw
17:21<nielsm>but all the libraries for QUIC I've looked at always seem like they're still experimental, or poorly documented, or in some "weird" language like Go or Rust
17:23<milek7>we could use existing STUN/TURN servers
17:23<milek7>"UDP and TCP modes with either IPv4 or IPv6"
17:26<+glx> <-- so yeah we'll stick to static build :)
17:26<TrueBrain>nearly no difference, right?
17:27<TrueBrain>but no, it is not worth it :)
17:27<+glx>dynamic uses a little more space
17:27<TrueBrain>nielsm: "Our newest APIs relay packets through the Valve network by default" <- Steam
17:27<+glx>smaller exe, but dll size
17:27<nielsm>same for discord yes, "Features P2P-like connections, but routed through Discord's high-end server infrastructure"
17:27<TrueBrain>did not know they were doing that, honestly
17:28<TrueBrain>I was wondering why it was so smooth these days, to join friends
17:28<TrueBrain>like with Factorio etc
17:28<nielsm>ofc going through either service means you can only play with friends on the same service, but if we can make the multiplayer host accept connections from many services that should be fine too actually
17:28<TrueBrain>Valve did add some nice features there .. no MTU limit etc
17:29<nielsm>so a multiplayer host could have clients via steam, discord, and direct tcp simultaneously
17:29<TrueBrain>I am not sure that is a direction we should move to, but I like how you think :D
17:29<TrueBrain>it is too bad we cannot pay the bill to do that ourselves, honestly :)
17:29<TrueBrain>well, it wouldn't be -that- expensive
17:29<nielsm>also a neat feature to have could be to convert a singleplayer game into multiplayer game "live"
17:29<nielsm>like just invite a friend into your singleplayer world
17:30<TrueBrain>many games do that ofc, always run a server, even if you are singleplayer
17:30<nielsm>yeah, but singleplayer in ottd is a little different
17:30<TrueBrain>just in OpenTTD that means duplicating the whole state, so forget about that :P
17:30-!-andythenorth [] has quit [Quit: andythenorth]
17:30<TrueBrain>switching from SP to MP is just a matter of changing some state, I think
17:30<TrueBrain>the game itself is fine, and doesn't need changing
17:31<Timberwolf>Internet: "we'd like some more of the well-known multiple units". Timberwolf:
17:31<TrueBrain>but yeah, modern games don't really make a distinction between SP and MP :)
17:31<TrueBrain>Timberwolf: the wheels come through the fence :o
17:32<milek7>or maybe use WebRTC? it could probably interop with web clients too
17:33<TrueBrain>nielsm: my main issue with all these solutions really is cross-play .. I like that OpenTTD is free of all of that
17:33<TrueBrain>if we would be Steam-only, that would allow for a lot of these nice features to be added quickly
17:33<TrueBrain>but that is a pretty huge change :P
17:33<TrueBrain>and having servers combine Discord and Steam and and and .. it becomes pretty heavy on the administrator of said server
17:33<TrueBrain>bit sad, honestly
17:34<nielsm>TrueBrain: that's why I'm saying that we should make sure that the game can accept connections from all protocols and mix-match clients from them in a single game
17:34<TrueBrain>it is not only a technical issue, the server also needs to be joined in all of them :)
17:34<nielsm>nah, if you're running a dedicated server it's a classic dedicated server
17:34<nielsm>direct TCP connection, firewall setup required
17:34<Timberwolf>It's a weird optical illusion, the fence and rail blend together, then the wheels look like they're in front of the fence even though that's really the rail.
17:35<nielsm>the idea with steam/discord proxying is to enable easier ad-hoc multiplayer without setting up a dedicated server
17:35<+glx>the hardest part would be to convert running SP to server
17:35<TrueBrain>nielsm: but if I want to play with someone on Discord and on Steam, I need to have both logged in, not?
17:36<nielsm>sure, if you have some friends on steam and some on discord, you need to have both running and ottd have integration enabled for both of them
17:36<TrueBrain>just to be clear btw, I am not disagreeing with you that it would be awesome :D
17:36<nielsm>but it's not like you need to log into them from inside ottd
17:36<TrueBrain>I wonder if you can have both active
17:36<TrueBrain>don't they clash?
17:36<nielsm>since the game just does some local IPC stuff via their libraries
17:36<+glx>rich presence stuff I guess
17:36<nielsm>I don't think they do?
17:36<TrueBrain>anyway, the list might be a bit lengthy .. Epic Gamelauncher, GoG, ... :D
17:37<nielsm>converting SP game to multiplayer is basically saving, switching modes, and reloading...
17:37<TrueBrain>I am not even sure SP -> MP needs saving and reloading :P
17:37<nielsm>it'd be the safer way
17:37<TrueBrain>we ditched "no-network" mode long ago
17:37<nielsm>there is some difference in how ticks are executed at least, and there might be some differences in world initialisation even? I don't remember
17:38<TrueBrain>so we could just start every game "as a server", just without advertising etc
17:38<TrueBrain>basically removing SP
17:38<+glx>SP has endless mode
17:38<+glx>MP doesn't
17:38<TrueBrain>well, there will be more of these tiny things
17:38<TrueBrain>time to iron them out and make them equal ;)
17:38<TrueBrain>I don't really see that as a blocker honestly :)
17:38<_dp_>sp has cheats :p
17:38<nielsm>first thing would be getting it working :P
17:39<nielsm>and SP has fast-forward
17:39<TrueBrain>we long talked about MP needing cheats too, honestly :)
17:39<+glx>some settings are modifiable only in SP mode, (or MP server)
17:39<TrueBrain>there are things to iron out
17:39<_dp_>TrueBrain, you talked I did :p
17:39<+glx>SP can change newgrf in game
17:39<TrueBrain>but it would make things a lot more clean
17:40<TrueBrain>as it is now sometimes a bit confusing, honestly
17:40<TrueBrain>on one hand we have people adding stuff that is SP only
17:40<TrueBrain>on the other hand you sometimes cannot do things in MP that are not logic why you cannot
17:41<+glx>but in theory SP could be MP with only local client connected
17:41<TrueBrain>nielsm: I guess it is a question of: do we want to setup our own "friendlist" and relay etc, or do we want to use the integration with Discord / Steam / ... for it :)
17:42-!-tokai|noir [] has joined #openttd
17:42-!-tokai|noir is "Christian Rosentreter" on #openttd
17:42-!-mode/#openttd [+v tokai|noir] by ChanServ
17:42<+glx>would be better to use existing "friendlist" system
17:42<TrueBrain>there are many positive things on both sides, and as many negative on both :P
17:43<TrueBrain>I don't like games that don't work with Steam, but that is because I use Steam for every coop game I own
17:43<nielsm>at the very least, it would be very nice for players if they can open e.g. the steam overlay, select someone on their friendlist, and invite them to their game
17:43<nielsm>even if they'd have to manually load it as a mulitiplayer game first
17:43<TrueBrain>nielsm: that is a good point: there is no need for them to use the Steam network, but the initiation can be done via Steam
17:43<TrueBrain>so both are possible
17:44<TrueBrain>the last few months I mentioned a few times that the network protocol requires a new version .. we dropped the ball in a few places :P
17:44<TrueBrain>so maybe that can go side-by-side
17:44-!-andythenorth [] has joined #openttd
17:44-!-andythenorth is "andythenorth" on #openttd
17:44<TrueBrain>network via Steam, network via Discord, network via direct
17:44<TrueBrain>define an API between them
17:44<TrueBrain>abstract it from the game
17:45<nielsm>there's also a slight worry I have, which is running out of command ID's in the current network protocol, it might be an idea to at least expand the command ID from 8 to 16 bit
17:45<TrueBrain>there are more of these small things
17:46<TrueBrain>we designed a lot with the MTU in mind
17:46<TrueBrain>which is hurting
17:46<nielsm>and well, the command format is also pretty limiting with all the bitpacking required
17:46<TrueBrain>back in the day, it was important to keep the MTU in mind .. these days it is bullshit :P
17:46<TrueBrain>you used to be able to play this on a 8k baud modem
17:46<TrueBrain>I do not think that is still a requirement :P
17:47<_dp_>as much as I hate current protocol changing it sounds terrifying...
17:47<TrueBrain>_dp_: mostly, it means not doing it ourselves
17:47<TrueBrain>as in, we did the low-level layer, and every layer after
17:47<TrueBrain>there are libraries for that these days :P
17:47<TrueBrain>and yes, it will consume more bandwidth
17:48<nielsm>nah we're talking about the game layer protocol here, on top of the transport protocol
17:48<nielsm>changing the transport protocol from tcp/ip to some "virtual" protocol offered by steam/discord shouldn't be too bad
17:48<TrueBrain>pretty sure it would make the code a lot more readable, if we use modern approaches :)
17:48<nielsm>since we already support ipv4 and ipv6
17:48-!-tokai [] has quit [Ping timeout: 480 seconds]
17:49<nielsm>but changing the game command protocol, that's something else
17:49<TrueBrain>there is already some abstraction in the code
17:49<TrueBrain>so plugging in Steam shouldn't be all that difficult
17:49<nielsm>although it's still mostly neatly wrapped
17:50<TrueBrain>there are other issues that need resolving .. like private servers are not really private :P
17:50<TrueBrain>limits on name-fields that are silly, or sometimes lower than the ones ingame
17:50<TrueBrain>max amount of GRFs you can have in a network packet
17:50<TrueBrain>etc etc :P List is pretty long
17:51<TrueBrain>and that is the level above TCP, but below the game commands
17:51<milek7>that looks interesting:
17:51<nielsm>I've slightly considered that maybe the entire protocol/command structure should be redefined as ProtoBuf or something similar
17:52<nielsm>with a definition in some interface language which then compiles to some C++ headers with data structures that can be filled in, and accompanying code to serialise/deserialise it
17:53<TrueBrain>protobuf, flatbuffers, cap'n proto
17:53<TrueBrain>or .. just JSON
17:53<TrueBrain>anything with a schema :)
17:53<nielsm>and as a bonus it would mean that other languages that want to interact with the game (e.g. adminport) has a machine readable definition of things
17:53-!-HerzogDeXtEr [] has quit [Read error: Connection reset by peer]
17:53<TrueBrain>we don't have to be seekable, so protobuf is fine
17:54<TrueBrain>(in many usecases, protobuf is not fine btw :P But people mostly find out after-the-fact :D)
17:54-!-andythenorth [] has quit [Quit: andythenorth]
17:55<TrueBrain>I have seen too many "inspect" functions on protobuf packets for performance reasons :P
17:55<TrueBrain>to pickle out a single value
17:55<TrueBrain>much fun :D
17:55<TrueBrain>but yes
17:55<TrueBrain>so this is a bit what I mean with: the whole stack kinda is ready for an update
17:55<TrueBrain>to be more in 2021
17:55<TrueBrain>instead of 2007 :P
17:56<TrueBrain>there are only, what, 30 different packet-types atm?
17:56<TrueBrain>it is not like OpenTTD is complicated
17:56<TrueBrain>but okay, subject of the night was Steam / Discord integration :D
17:57<TrueBrain>guess you need to dust off your rich presence branch nielsm :P
17:57<nielsm>and my build environment
17:58<TrueBrain>sadly, my job queue is full with other things: automate Steam release, see if I can help out with automating Windows Store release, ask translators for help with Steam content, create repo for Steam/Microsoft Store graphics, create repo for title screen competition
17:58<TrueBrain>I want to do fun stuff .. that list doesn't contain fun things
17:58<_dp_>btw, there are some issues with client infos being created out of queue
17:59<_dp_>like when client spectates immediately after sending a command
17:59<TrueBrain>there are 1 or 2 commands that are not queued
17:59<TrueBrain>with the idea: nobody would ever do NNN
17:59<TrueBrain>see here .. we were wrong :P
17:59<TrueBrain>I believe the whole COMPANY_CTRL is done instantly
18:00<_dp_>nah, company_ctrl is queued
18:00<_dp_>only clients aren't
18:00<_dp_>if companies were out of queue it would be crashing left and right
18:00<+glx>COMPANY_CTRL is queued and it's an "issue" for AIs ;)
18:01<TrueBrain>my memory is foggy; all I know we wrote something that skipped the queue, and we said in chat: someone could abuse this .. nah, what are the odds on that!
18:02<TrueBrain>it is funny how these things have the tendency to catch up with you :P :P
18:03<nielsm>okay bedtime
18:03<TrueBrain>sleep well nielsm
18:04-!-DasPoseidon [~Thunderbi@2001:9e8:2050:bf00:81f1:8145:7303:32b9] has quit [Quit: DasPoseidon]
18:06<@DorpsGek>[OpenTTD/OpenTTD] glx22 commented on pull request #8641: Feature: [Actions / CMake] support for generic linux builds
18:07<@DorpsGek>[OpenTTD/OpenTTD] TrueBrain updated pull request #8641: Feature: [Actions / CMake] support for generic linux builds
18:08<+glx>else it looks good
18:08<TrueBrain>sweet :D
18:08<TrueBrain>I am pretty happy with this result
18:08<+glx>and quite simple
18:08<TrueBrain>a lot cleaner than I expected
18:10<TrueBrain>_dp_: btw, that that really happen often?
18:10<_dp_>TrueBrain, client issues you mean? not rly
18:10<_dp_>mostly happens when server does some admin port stuff
18:10<_dp_>so timings are tight
18:11<TrueBrain>yeah, I was about to say .. it has to be within a net_frame
18:11<TrueBrain>which is not a lot of time
18:11-!-nielsm [] has quit [Ping timeout: 480 seconds]
18:13<TrueBrain>owh, right, company move was not done via CommandCtrl
18:13<TrueBrain>it has its own packet
18:13<TrueBrain>it was much worse :P
18:14<TrueBrain>so yeah .. you can queue 100 commands in a frame, and move to another company before anyone executed them :P
18:15<TrueBrain>I know I have asked this before, but I cannot remember the answer .. why isn't this done via the Command system ..
18:15<TrueBrain>I guess the Command system deals with companies, not clients? But we do add the client-id for some commands ..
18:17<_dp_>I think "some" is just one and that was me doing an oopsie :]
18:20<TrueBrain>lol ... BUILD_VEHICLE gets the client-id
18:20<TrueBrain>but doesn't do anything with it
18:20<TrueBrain>wuth? :P
18:21<TrueBrain>so you could: sell a vehicle, switch to another company, build a vehicle, and it will recover the order of the other company, I think :D
18:21<TrueBrain>ah, no, BUILD_VEHICLE does use it, it was hiding in my highlighter
18:22<TrueBrain>glx: you like it enough for an approval btw? :P :D
18:22<+glx>I need to recheck it
18:22<+glx>I'm still cleaning 3.9 bump
18:23<TrueBrain>I am very happy FluidSynth is only using SDL now
18:23<TrueBrain>that really made a huge difference in dependencies
18:23<TrueBrain>before it was also dragging in X11 etc
18:23<TrueBrain>really happy it is not
18:23<_dp_>I wouldn't be surprised if there is some desync hiding in those order backups
18:24<+glx>like "basic" harfbuzz including glib2
18:24<@DorpsGek>[OpenTTD/OpenTTD] LC-Zorg commented on pull request #8638: Feature: [GS] Allow non-question type windows to have no buttons
18:24<TrueBrain>_dp_: me neither .. that code feels like a hack
18:24<TrueBrain>so .. yeah ... :P
18:25<_dp_>whole command system looks like one big hack it this point :p
18:26<@DorpsGek>[OpenTTD/OpenTTD] TrueBrain commented on pull request #8638: Feature: [GS] Allow non-question type windows to have no buttons
18:26<TrueBrain>I really had to do that .. I mean .. I really had to
18:27<TrueBrain>"look, here are 10 other products that do things completely different than you, so this one place that is inconsistent is doing it correct"
18:27<_dp_>yeah, god bless smiles
18:27<_dp_>coz I have no words...
18:28<TrueBrain>you do have a warning to fix in that PR btw :)
18:29<_dp_>stupid tabs :/
18:29<TrueBrain>"GSGoal::Question and GSGoal::QuestionClient no longer require to have any buttons except for the window type GSGoal.QT_QUESTION"
18:29<TrueBrain>that is a brilliant sentence
18:29<TrueBrain>Questions no longer needs any buttons except for Questions
18:29<TrueBrain>I would ALMOST suggest we need to rename the class now :P
18:29<TrueBrain>it is nice how you see evolution here
18:30<TrueBrain>initially it was meant for questions, owh let add colours, based on severity, owh, lets remove buttons .. THEY ARE NO LONGER QUESTIONS :P
18:30<_dp_>yeah, I couldn't think of a way to put it any better
18:30<TrueBrain>rename to GSGoal::Message
18:31<TrueBrain>but I do not know if that is a good idea
18:31<TrueBrain>but it is what it has become
18:31<+glx>yeah it's a MessageBox now
18:31<+glx>with different types
18:33*_dp_ never used it with anything but "ok" button
18:35<_dp_>idk, everything is wrong with the name there
18:35<_dp_>like wtf is it even doing in GSGoal
18:36<TrueBrain>evolution at play :)
18:36<TrueBrain>wasn't this your idea to start with? :P
18:36<_dp_>what idea? GSGoal::Question existed before me
18:37<_dp_>and had nothing to do with goals :p
18:37<TrueBrain>(svn r23731) -Add: add GSGoal::Question(), to ask a question to a(ll) company(ies). It can contain random text, and at most 3 buttons from a collection of 17
18:37<TrueBrain>it was me :(
18:37<TrueBrain>but yeah, it fitted in the idea of GSGoal at that moment in time :)
18:38<TrueBrain>like: do you want to supply this town with this cargo
18:38<TrueBrain>stuff like that
18:38<TrueBrain>then you did this: Feature: Add GS method to question a single client (#6748)
18:40<TrueBrain>(svn r23827) -Feature [FS#4992]: [NoGo] Allow to chose the goal question window's title from a (small) set of options
18:40<TrueBrain>Rb is the reason it became weird :P
18:40<TrueBrain>here it become a severity thingy :)
18:40<TrueBrain>within 2 weeks after introduction
18:40<+glx>I guess it can be renamed with compatibility stuff
18:41<TrueBrain>so I send someone on Steam Community a message
18:42<@DorpsGek>[OpenTTD/OpenTTD] LC-Zorg commented on pull request #8638: Feature: [GS] Allow non-question type windows to have no buttons
18:42<TrueBrain>but ... no clue how to find it back
18:43<TrueBrain>he has 0 clue what he is talking about, it seems
18:45<TrueBrain>okay, funny, so this random Steam user says he wouldn't mind testing the Linux build
18:45<TrueBrain>so I give him a key
18:45<TrueBrain>he is ... not a small player :P
18:45<_dp_>whole goal ui is so awful that minor stuff like function names feels kinda irrelevant
18:46<milek7>these linux-generic binaries are for download somewhere?
18:46<TrueBrain>_dp_: it starts somewhere
18:46<_dp_>question, message, who cares
18:46<TrueBrain>milek7: once someone says "approved" and a nightly has happened, yes
18:46<_dp_>you need two freaking screens of code to show goals in right order :/
18:46<TrueBrain>_dp_: I am not sure it should be part of your PR, but for sure it becomes weird as you can see in the changelog now :D
18:47<_dp_>yeah, that's a different pr for sure
18:48<TrueBrain>okay, Steam forums are just a bit weird
18:48<TrueBrain>when you know what user you send a PM, you can find it back, basically
18:50-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
19:05-!-sla_ro|master [slamaster@] has quit []
19:11-!-muffindrake [] has quit [Quit: muffindrake]
19:14-!-dwfreed [] has quit [Quit: ZNC -]
19:40<@DorpsGek>[OpenTTD/nml] FLHerne commented on pull request #182: Fix: regression failure with Pillow 8.1.0
19:41-!-gnu_jj [] has joined #openttd
19:41-!-gnu_jj is "jj" on #ceph-devel #ceph #openttd
20:24-!-gelignite [] has quit [Quit: Stay safe!]
20:24-!-WormnestAndroid [~WormnestA@] has quit [Remote host closed the connection]
20:28-!-WormnestAndroid [~WormnestA@] has joined #openttd
20:28-!-WormnestAndroid is "WormnestAndroid" on #openttd
20:46<@DorpsGek>[OpenTTD/nml] Wormnest commented on pull request #182: Fix: regression failure with Pillow 8.1.0
21:18-!-dwfreed is "dwfreed" on #g7
21:18-!-dwfreed [] has joined #openttd
21:25-!-Flygon [~Flygon@2001:44b8:411e:4e00:6408:9bc1:224f:6ea] has joined #openttd
21:25-!-Flygon is "Flygon" on #openttd
21:31<@DorpsGek>[OpenTTD/nml] glx22 commented on pull request #182: Fix: regression failure with Pillow 8.1.0
21:34-!-glx [] has quit []
21:40-!-Wormnest [~Wormnest@] has quit [Quit: Leaving]
22:43-!-debdog [~debdog@2a00:79c0:64d:2f00:7a24:afff:fe8a:d04d] has joined #openttd
22:43-!-debdog is "Wowbagger" on #openttd
22:46-!-D-HUND [~debdog@2a00:79c0:679:8300:7a24:afff:fe8a:d04d] has quit [Ping timeout: 480 seconds]
23:23-!-tokai [] has joined #openttd
23:23-!-tokai is "Christian Rosentreter" on #openttd
23:23-!-mode/#openttd [+v tokai] by ChanServ
23:30-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
---Logclosed Fri Feb 05 00:00:25 2021