IRC logs for #openttd on OFTC at 2021-08-21
            
00:39:50 *** Progman has quit IRC (Remote host closed the connection)
00:53:15 *** Gustavo6046 has quit IRC (Ping timeout: 480 seconds)
01:13:29 *** Gustavo6046 has joined #openttd
01:50:41 *** Flygon has joined #openttd
02:30:35 *** glx has quit IRC ()
02:44:48 *** tokai has joined #openttd
02:44:48 *** ChanServ sets mode: +v tokai
02:46:44 *** D-HUND has joined #openttd
02:50:06 *** debdog has quit IRC (Ping timeout: 480 seconds)
02:51:51 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
02:59:27 *** Wormnest has quit IRC (Quit: Leaving)
03:50:01 *** tokai|noir has joined #openttd
03:50:01 *** ChanServ sets mode: +v tokai|noir
03:56:56 *** tokai has quit IRC (Ping timeout: 480 seconds)
05:50:05 *** tokai has joined #openttd
05:50:05 *** ChanServ sets mode: +v tokai
05:56:59 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
07:17:39 *** nielsm has joined #openttd
07:22:56 *** Wolf01 has joined #openttd
07:32:17 *** Progman has joined #openttd
07:33:54 *** tokai|noir has joined #openttd
07:33:54 *** ChanServ sets mode: +v tokai|noir
07:40:49 *** tokai has quit IRC (Ping timeout: 480 seconds)
07:41:10 *** Donk has joined #openttd
07:57:02 *** WormnestAndroid has quit IRC (Remote host closed the connection)
07:57:15 *** WormnestAndroid has joined #openttd
08:01:48 *** Donk has quit IRC (Quit: Leaving)
08:41:19 <TrueBrain> "this=0x8" <- never a good sign, right?
08:55:58 <Rubidium> it rarely ever is, so an earlier nullptr check's missing I guess
08:57:58 <TrueBrain> r/wooosh? :D
08:58:28 <TrueBrain> that sweet moment you remove 20 includes, and it still compiles!
09:02:34 *** andythenorth has joined #openttd
09:06:43 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened pull request #9502: Fix #9501: [Network] crash when more than one game-info query was pen… https://git.io/JEvyo
09:07:40 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on issue #9501: [Crash]: Crashes when Multiplayer Opened https://git.io/J0hmu
09:08:03 <TrueBrain> now while doing this, I finally found a way to reproduce another bug we are having ... lets see what that is about ..
09:08:16 <_dp_> there are some (base*)8 in settings.h ... whatever those were supposed to mean
09:11:40 <andythenorth> yo
09:12:44 <LordAro> TrueBrain: nice :)
09:16:49 <TrueBrain> error: conflicting declaration ‘auto item’
09:16:53 <TrueBrain> yet another impressive error :D
09:22:34 <DorpsGek> [OpenTTD/team] CzechRepublic98 opened issue #243: [cs_CZ] Translator access request https://git.io/JEv5e
09:29:50 *** tokai has joined #openttd
09:29:50 *** ChanServ sets mode: +v tokai
09:33:27 <TrueBrain> okay, so if the last joined server no longer exists on the GC, you have the network list selected, and you hit Search Internet, it crashes
09:33:30 <TrueBrain> well, that was hiding
09:33:54 <TrueBrain> owh, and you have NOT the last joined selected
09:36:27 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened pull request #9503: Fix: [Network] crash when last-joined server that is no longer available https://git.io/JEvNS
09:36:39 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
09:36:58 <TrueBrain> Rubidium: maybe you have some ideas how we can cleanly solve that a "full server" is not allowing game-info queries?
09:37:22 <TrueBrain> AcceptConnection handles this logic, but as such incoming connection will never use a client-slot, it feels a bit weird to deny game-info queries for that reason
09:38:18 <TrueBrain> in other news: yesterday there were more game-sessions over direct-IPv4 than over TURN :P
09:38:49 <TrueBrain> an average TURN session is ~1 hour
09:38:50 <LordAro> \o/
09:39:26 <TrueBrain> and despite some servers having direct-IPv4 available, in 16 cases yesterday the connection from a client failed
09:39:52 <TrueBrain> so this stuff not only make multiplayer easier, but it seems it also allows more people to connect to public servers that are configured correctly
09:40:47 <TrueBrain> out of the more than 800 created game-sessions, only 100 of them didn't succeed with the first method of connecting
09:41:03 <TrueBrain> so the GC is doing a good job estimating what would be the right way to connect two people
09:42:41 <TrueBrain> the only weird part in the stats is, that some servers are only reachable by relay .. that is unusual, as that means they could contact coordinator.openttd.org, but not stun.openttd.org ..
09:46:55 <michi_cc> No idea what the stats exactly track, but does that really mean they can't reach stun.ottd at all, or just that they are behind some NAT/FW that completely blocks STUN itself?
09:47:57 <TrueBrain> what I see is that the server announces itself, the GC asks him to make connection to stuin.openttd.org, and that never happens
09:47:58 <DorpsGek> [OpenTTD/OpenTTD] michicc approved pull request #9503: Fix: [Network] crash when last-joined server that is no longer available https://git.io/JEvhQ
09:48:13 <TrueBrain> stuin?
09:48:13 <TrueBrain> stun
09:48:14 <TrueBrain> :P
09:48:43 <TrueBrain> (STUN btw is just "connect over TCP to this host" in our context, to be clear)
09:48:46 <michi_cc> uiuiuiui :
09:50:38 <TrueBrain> so I can only imagine it is either a server that has changed OTTD_STUN_CS, altered his host-file, or is blocking outgoing connections (but does allow it for coordinator, and is blocking it for stun .. which use the same IP)
09:51:02 <TrueBrain> I have a hard time envisioning what is going on :D
09:51:53 <TrueBrain> owh, or didn't manage to create a TCP connection within 2 seconds
09:53:37 <_dp_> there is some weird stuff going on with stun and direct servers
09:53:57 <_dp_> I already wrote few days ago that I can connect peter1138's server directly only if I add it by IP
09:54:03 <_dp_> otherwise it uses TURN
09:56:33 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain merged pull request #9503: Fix: [Network] crash when last-joined server that is no longer available https://git.io/JEvNS
09:57:14 <_dp_> also mb worth to combine solving full server query with moving client management to command queue (it being out of queue also causes a number of issues
09:57:40 <_dp_> so there are separate limits for clients on queue and just connections
09:58:15 *** tokai|noir has joined #openttd
09:58:15 *** ChanServ sets mode: +v tokai|noir
10:05:07 <Rubidium> TrueBrain: I'd remove the client_on check in the connect and check for it being able to allocate a pool item instead. Then in the Receive_CLIENT_JOIN do the check on number of clients
10:05:11 *** tokai has quit IRC (Ping timeout: 480 seconds)
10:06:08 <TrueBrain> I couldn't really figure out if it needed a pool item at that stage :P
10:06:25 <Rubidium> having said that, I think that you can (currently) exceed the number of clients as the clients_on is only incremented after game and company passwords are checked
10:07:23 <TrueBrain> lol, so join with 3 clients at once, and they all get in, you say? :P
10:08:12 <Rubidium> yeah, I think that might work
10:08:27 <TrueBrain> lolz
10:09:03 <Rubidium> it will always need a pool item, as the pool item is object that is going to handle received packets (including those query packets)
10:09:39 <TrueBrain> The pool is capped at 255, not? So a maxxed out server would still have issues?
10:10:29 <Rubidium> oh, the check on _network_clients_connected should stay in AllowConnection
10:10:53 <Rubidium> yes, except when you increase the size of the pool
10:11:52 <Rubidium> though the question becomes... how many spare connections do you want to allow for querying?
10:12:04 <TrueBrain> At least 1 :p
10:12:47 <TrueBrain> The alternative is that we handle "full server" client side nicely, by updating the info stating it is full
10:12:56 <TrueBrain> Many games don't allow querying full servers
10:14:03 <TrueBrain> With 9502 that is easy to implement even
10:15:27 <Rubidium> I think we should do both. Move the _network_game_info.clients_on to a later moment, so setting it to one clients doesn't immediately block it when that client joined, but at 255 clients any attempts to make it always work will fail.
10:16:09 <TrueBrain> and handle that more graceful on the client (instead of this annoying red popup :P)
10:17:41 <TrueBrain> right, sounds like a plan. I will not have time for this today, so if you want to give it a spin, go for it. Otherwise I can look at it later this week(end) :)
10:18:14 <Rubidium> As at the time of connect we cannot distinguish between querying and joining, so someone connected to join (but the server not having received the join message yet) would block the spot for the query. Adding another slot, means space for another client that could join... repeat that until your resources run out and there is still no place for a querying client
10:18:58 <Rubidium> I don't have the time either ;(
10:19:15 <TrueBrain> that is fine, this already helps :)
10:19:38 <TrueBrain> guess we can also tackle "being banned" giving a red popup .. might be nicer to update in the list too
10:20:02 <TrueBrain> 9502 gives more options to handle these situations, I like that :)
10:59:43 *** tokai has joined #openttd
10:59:43 *** ChanServ sets mode: +v tokai
11:06:29 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
11:21:01 <andythenorth> oof
11:21:06 * andythenorth playing solitaire
11:39:19 <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on pull request #9502: Fix #9501: [Network] crash when more than one game-info query was pen… https://git.io/JEfR7
12:08:40 *** glx has joined #openttd
12:08:40 *** ChanServ sets mode: +v glx
12:15:27 <DorpsGek> [OpenTTD/team] glx22 commented on issue #243: [cs_CZ] Translator access request https://git.io/JEv5e
12:33:52 *** WormnestAndroid has quit IRC (Remote host closed the connection)
12:36:05 *** WormnestAndroid has joined #openttd
12:52:16 <andythenorth> hmm
12:52:19 <andythenorth> still solitaire
12:52:21 <andythenorth> why?
12:52:29 <andythenorth> what about lunch eh?
12:59:04 *** virtualrandomnumber has joined #openttd
12:59:33 *** virtualrandomnumber has quit IRC ()
12:59:52 <andythenorth> hmm
12:59:56 <andythenorth> was I doing FIRS?
13:00:50 <andythenorth> yes :)
13:01:04 <andythenorth> ok so I need to replicate FIRS production logic, but in GS
13:01:05 *** Progman has quit IRC (Remote host closed the connection)
13:01:09 <andythenorth> for goal tracking
13:01:22 <andythenorth> looks like GSCargoMonitor can do that
13:02:45 * andythenorth needs to generate Squirrel from python
13:05:07 <andythenorth> this is not the droid I am looking for https://inventwithpython.com/pygame/chapter8.html
13:05:49 <glx> it's not too different from generating nml from python
13:07:43 * andythenorth wondered if there was a library, there doesn't seem to be
13:07:49 <andythenorth> so I'll use my html templater :)
13:07:54 <andythenorth> so inappropriate, but works
13:38:28 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9502: Fix #9501: [Network] crash when more than one game-info query was pen… https://git.io/JEvyo
13:39:47 <peter1138> Lunch eh?
13:42:25 <andythenorth> I did
13:43:12 *** tokai|noir has joined #openttd
13:43:12 *** ChanServ sets mode: +v tokai|noir
13:50:06 *** tokai has quit IRC (Ping timeout: 480 seconds)
13:58:41 *** tokai has joined #openttd
13:58:41 *** ChanServ sets mode: +v tokai
14:01:35 *** Gustavo6046 has quit IRC (Ping timeout: 480 seconds)
14:05:36 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
14:05:51 *** tokai|noir has joined #openttd
14:05:51 *** ChanServ sets mode: +v tokai|noir
14:06:48 *** Gustavo6046 has joined #openttd
14:12:42 *** Gustavo6046_ has joined #openttd
14:12:46 *** tokai has quit IRC (Ping timeout: 480 seconds)
14:14:55 *** Gustavo6046 has quit IRC (Ping timeout: 480 seconds)
14:14:55 *** Gustavo6046_ is now known as Gustavo6046
14:17:01 *** tokai has joined #openttd
14:17:01 *** ChanServ sets mode: +v tokai
14:23:56 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
14:29:05 *** tokai|noir has joined #openttd
14:29:05 *** ChanServ sets mode: +v tokai|noir
14:36:14 *** tokai has quit IRC (Ping timeout: 480 seconds)
14:36:40 *** Gustavo6046 has quit IRC (Ping timeout: 480 seconds)
15:06:35 *** tokai has joined #openttd
15:06:35 *** ChanServ sets mode: +v tokai
15:13:36 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
15:31:29 *** tokai|noir has joined #openttd
15:31:29 *** ChanServ sets mode: +v tokai|noir
15:38:31 *** tokai has quit IRC (Ping timeout: 480 seconds)
15:42:21 *** andythenorth has quit IRC (Quit: andythenorth)
15:51:53 *** tokai has joined #openttd
15:51:53 *** ChanServ sets mode: +v tokai
15:59:10 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
16:03:29 *** tokai has quit IRC (Ping timeout: 480 seconds)
16:16:23 *** Progman has joined #openttd
16:18:05 *** tokai has joined #openttd
16:18:05 *** ChanServ sets mode: +v tokai
16:46:21 *** Wormnest has joined #openttd
18:06:55 *** Nicd has joined #openttd
18:08:49 <Nicd> hi, I upgraded to 1.11 on macOS and now everything is super tiny. according to this forum post I should set interface and font size to double, but in game options the interface size only lets me select "normal" or "auto-detect"? https://www.tt-forums.net/viewtopic.php?f=31&t=88805
18:13:27 *** tokai|noir has joined #openttd
18:13:27 *** ChanServ sets mode: +v tokai|noir
18:15:12 <michi_cc> Nicd: Not sure about the exact name, but there's also a setting to limit graphics zoom. This limits GUI zoom as well.
18:15:38 <michi_cc> It's the large settings tree, though.
18:16:08 <Nicd> maximum zoom in level?
18:16:43 <Nicd> that was it!
18:16:50 <Nicd> that enabled the double size interface in the options
18:16:54 <Nicd> thanks <3
18:17:46 *** gelignite has joined #openttd
18:20:21 *** tokai has quit IRC (Ping timeout: 480 seconds)
18:33:10 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
18:46:07 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
18:46:31 *** WormnestAndroid has joined #openttd
18:48:52 <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://git.io/JEUoC
18:48:53 <DorpsGek> - Update: Translations from eints (by translators)
18:54:21 <TrueBrain> one happy customer!
18:54:49 *** gelignite has quit IRC (Quit: Stay safe!)
18:54:51 <TrueBrain> glx: nice catch in #9502, no clue why I derp'd there :D
19:09:05 *** Samu has joined #openttd
19:37:08 *** Nicd has left #openttd
19:40:25 *** iSoSyS has joined #openttd
19:40:37 *** iSoSyS has quit IRC ()
19:47:43 *** andythenorth has joined #openttd
19:48:22 <andythenorth> so should every newgrf feature be able to trigger a game event?
19:48:39 <andythenorth> vehicles, industries, industry tiles, objects, houses, rail/road/tram types?
20:04:50 *** HerzogDeXtEr has joined #openttd
20:06:00 *** jottyfan has joined #openttd
20:09:05 *** jottyfan has quit IRC ()
20:41:10 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
20:44:23 *** WormnestAndroid has joined #openttd
20:48:13 <nielsm> okay how about adding a flag for AI scripts that lets them cheat. it would be a static flag in the info.nut and be displayed in the AI configuration in-game, and then allow the AI to access a few cheat functions (give itself money, maybe magic bulldozer, maybe override town rating). one use would be those "town traffic" etc things...
20:50:14 *** Tirili has joined #openttd
20:51:39 <andythenorth> GS can do it? :)
20:51:58 <nielsm> then you need a GS that does it
20:52:17 <nielsm> and not use any other GS
20:54:07 *** Samu has quit IRC (Quit: Leaving)
20:55:01 * andythenorth forgot
20:55:08 <andythenorth> shall we make a GS merger tool?
20:55:11 <andythenorth> that merges them all
20:55:20 <andythenorth> I think they could be written to do it
20:55:37 <andythenorth> have each sub GS declare a main loop function that can be called
20:55:46 <andythenorth> then call those from a parent main loop
20:55:55 <andythenorth> so each GS acts more like a module
20:56:17 <andythenorth> if they were each encapsulated in a directory, merging would be plausible
20:56:29 <nielsm> the thing is that a lot of features for GS are designed around having complete control
20:56:44 <nielsm> what if you load two GS that attempt to control town growth? which one "wins"?
20:58:26 <nielsm> or one that makes a goal for the player to build somewhere and will penalise them if they don't, and another that makes a rule that players are not allowed to build in that area and penalizes them for building there
20:59:47 <nielsm> it's going to be even more of a support nightmare with GS authors having to battle it out whose fault it is, with the core game being the third participant for allowing the situation to happen in the first place
21:02:04 <andythenorth> set the load order
21:02:13 <andythenorth> I _know_ it has edge cases
21:02:14 <andythenorth> but eh :)
21:02:21 <nielsm> no it doesn't even have to do with load order
21:02:29 <andythenorth> eh?
21:02:35 <nielsm> it's two gods pulling the rope in each their own direction
21:02:36 <andythenorth> whoever runs last in main loop will win
21:02:48 <andythenorth> anyway I have authored a FIRS GS
21:03:00 <andythenorth> all it does is build certain industries in town, because grf can't
21:03:12 <andythenorth> but that means no other GS for FIRS players
21:03:23 <andythenorth> so I probably kill all other GS based on FIRS hegemony
21:03:54 <andythenorth> or I merge the other GS into it :P
21:04:50 <nielsm> I've read some bad stories about "pulling in each their own direction" mods with one thing known as Brutal Doom, a mod/sourceport for original Doom, that changes around a lot of things
21:06:25 <nielsm> which causes lots of other maps/mods for original doom to not work as intended, and there's pretty much a war between the factions saying one or the other side is at fault for things not "working properly" or allowing it to be loaded together when it wouldn't work
21:06:37 <andythenorth> sounds like grf :P
21:06:48 <andythenorth> FIRS kbans itself with loads of grfs
21:06:50 <andythenorth> including trains
21:07:59 <nielsm> NewGRF has a pretty good mehanism for detecting what else is going on and being loaded, so you can adjust/block yourself depending on circumstances
21:09:13 <nielsm> but with GS that would be more or less impossible since it's not just an enumerated list of features you can implement, but essentially an infinite number of rulesets. trying to enumerate constraints to communicate that would be so difficult to do well I'd just call it impossible
21:10:18 <andythenorth> AI then? :)
21:10:19 <FLHerne> andythenorth: nielsm's "require the player to build somewhere but also don't let them" thing doesn't have a 'winner', both behaviours will work perfectly fine
21:10:19 <andythenorth> FIRS AI
21:10:54 <FLHerne> so loop order doesn't matter, the player just gets stuck with a catch-22
21:10:57 <andythenorth> FLHerne I am aware that it will be a car crash of contention :)
21:11:24 <andythenorth> but in the specific condition where 2 GS control the same resource, the last one to execute will win no?
21:11:45 <glx> they both win
21:11:52 <nielsm> or imagine two GS both trying to force towns to have a road network of different styles, they will keep building their own and removing the other's roads
21:12:03 <andythenorth> yes
21:12:19 <nielsm> the player will see a schizophrenic game
21:12:57 <glx> and some GS set a rule (a setting) and never check if it is modified, and expect it to stay
21:14:02 <andythenorth> it will be amusing
21:15:26 <glx> it's probably possible to detect at compile time if 2 scripts use the same group of functions, but that would be a pain to implement a check like that
21:15:50 <andythenorth> it's also hard to know which ones are harmless and which aren't
21:16:22 <nielsm> anyway, that's the argument for why multiple GS is probably never going to happen
21:16:28 <glx> oh 2 GS writing the story book would be fun too :)
21:17:11 <nielsm> and that's the argument for why I think it'd be okay for AIs to get access to cheating (as long as they manifest themselves as a cheating AI)
21:18:33 *** jottyfan has joined #openttd
21:18:52 *** jottyfan has quit IRC ()
21:19:03 <glx> the only way to have multiple GS is someone manually merge them
21:19:43 <glx> and handling possible conflicts during the merge
21:19:47 <andythenorth> nielsm I originally meant 'if GS can cheat, why not AI?' :)
21:19:50 <andythenorth> and players can cheat
21:20:10 <andythenorth> I will probably have to merge the main GS into the FIRS GS
21:20:19 <nielsm> well part of the original purpose of the AI design is that they need follow the same rules as players
21:20:24 * andythenorth wonders if Squirrel can nest .nut files in dirs
21:20:38 <andythenorth> "add a setting"
21:20:38 <nielsm> original goal *
21:20:47 <andythenorth> "AI can cheat: bool"
21:21:17 <glx> and GS don't cheat, they are god :)
21:21:34 <nielsm> see that's precisely what my proposal is: a flag in the info.nut file, "i_want_to_cheat = true"
21:22:07 <nielsm> and when that flag is set, the AI can call the cheat functions and succeed, but it also shows in the UI the player uses to select/configure AIs
21:25:29 <andythenorth> FIRS + Silicon Valley
21:25:33 <andythenorth> FIRS + NoCarGoal
21:25:38 <andythenorth> FIRS + Busy Bee
21:25:45 <andythenorth> no city builders though :)
21:26:16 <glx> an option could be a GS (still unique) using a GS framework in squirrel to manage sub-GS deisgned for it
21:27:20 <glx> so no changes in openttd, and GS authors find a way to work around the limitation
21:27:45 <nielsm> yeah, something that basically runs a main loop and asks all submodules to do a tick-step, and distributes events to everyone
21:28:18 <nielsm> and then it's up to an author to assemble some modules that make sense together and can be configured to work as a whole
21:28:43 <andythenorth> the FIRS one would rely on parameter to configure exclusive behaviour on/off
21:33:17 <andythenorth> web GS maker :P
21:33:21 <andythenorth> oof vuln maker
21:47:19 *** tokai has joined #openttd
21:47:19 *** ChanServ sets mode: +v tokai
21:52:32 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
21:54:15 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
22:19:17 *** tokai|noir has joined #openttd
22:19:17 *** ChanServ sets mode: +v tokai|noir
22:26:05 *** tokai has quit IRC (Ping timeout: 480 seconds)
22:26:23 *** andythenorth has quit IRC (Quit: andythenorth)
23:10:26 *** nielsm has quit IRC (Ping timeout: 480 seconds)
23:14:03 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:42:57 *** tokai has joined #openttd
23:42:57 *** ChanServ sets mode: +v tokai
23:49:39 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
23:52:52 *** Progman has quit IRC (Remote host closed the connection)