Back to Home / #openttd / 2017 / 09 / Prev Day | Next Day
#openttd IRC Logs for 2017-09-13

---Logopened Wed Sep 13 00:00:55 2017
00:17-!-sla_ro|master [] has joined #openttd
00:17-!-sla_ro|master is "slamaster" on @#sla #openttd #love
00:42-!-efess [] has joined #openttd
00:42-!-efess is "afsd" on #openttdcoop #openttd #/r/openttd
01:20-!-sla_ro|master [] has quit []
02:33-!-andythenorth [] has joined #openttd
02:33-!-andythenorth is "andythenorth" on #openttd
02:39-!-Flygon__ [] has joined #openttd
02:39-!-Flygon__ is "Flygon" on #openttd
02:45-!-Flygon_ [] has quit [Ping timeout: 480 seconds]
03:06-!-Cubey [] has quit [Ping timeout: 480 seconds]
03:27-!-andythenorth [] has quit [Quit: andythenorth]
03:57-!-andythenorth [] has joined #openttd
03:57-!-andythenorth is "andythenorth" on #openttd
03:58-!-gelignite [] has joined #openttd
03:58-!-gelignite is "gelignite" on #openttd #openttdcoop.devzone
04:08-!-andythenorth [] has quit [Quit: andythenorth]
04:30-!-debdog [] has quit [Quit: No Ping reply in 180 seconds.]
04:33-!-debdog [~debdog@2a02:8070:4182:a200:7a24:afff:fe8a:d04d] has joined #openttd
04:33-!-debdog is "Wowbagger" on #openttd
05:17-!-Progman [] has joined #openttd
05:17-!-Progman is "Peter Henschel" on #openttdcoop #openttd
05:23-!-Arveen2 [] has quit [Quit: I like trains]
05:25-!-Hiddenfunstuff [] has joined #openttd
05:25-!-Hiddenfunstuff is "Geth" on #openttd #/r/openttd #openttdcoop
05:36-!-Lejving [] has joined #openttd
05:36-!-Lejving is "realname" on @#openttdcoop.pz #openttdcoop.stable #openttdcoop @#mashinky #factoriocoop #/r/openttd #openttd
06:31-!-HerzogDeXtEr [] has joined #openttd
06:31-!-HerzogDeXtEr is "purple" on #openttd
07:32-!-Wolf01 [] has joined #openttd
07:32-!-Wolf01 is "Wolf01" on #openttd
07:39-!-sla_ro|master [] has joined #openttd
07:39-!-sla_ro|master is "slamaster" on @#sla #openttd #love
08:10<Wolf01>Mmmh VS constantly loses the Win10SDK
08:10<__ln__>it wants to tell you something
08:11-!-Arveen [] has joined #openttd
08:11-!-Arveen is "realname" on #openttd #openttdcoop
08:11<Wolf01>I would like to tell it something
08:15<Wolf01>I install the old sdk (used by the vs2015), it works, compiles etc, I open a 2017 feature, it installs the new SDK, old sdk disappear, ok, upgrade the app for the new sdk... no it doesn't like it
08:18<Wolf01>If I want to use it with vs2017 I need to drop support for anything older than creators update
08:28<Wolf01>And meanwile they released another 3GB of updates, so I have to waste another day updating the shit
08:29<milek7_>what are "2017 features"?
08:30<Wolf01>Something used by the IDE itself
08:32<Wolf01>I need to open a new tool window, it asks for SDK 15063, ok, you already had it, the installer just "install" it in 0.5 nanoseconds, reopen the solution "impossible to load the project, it requires the SDK 10586"...
08:33<milek7_>i use v141 sdk with vs2017 on win7
08:34<Wolf01>Yes, that's what I want to do, but the project keeps asking for the 10586 even if I change it to 15063
08:36<Wolf01>And since I'm developing an UWP app, I have double SDK, so I think the Win10 one and the Mobile one are misaligned and keep upgrading and downgrading the other one
08:45-!-chembot141 [] has joined #openttd
08:45-!-chembot141 is "OFTC WebIRC Client" on #openttd
08:47-!-andythenorth [~andytheno@] has joined #openttd
08:47-!-andythenorth is "andythenorth" on #openttd
08:47<chembot141>whats up
08:48<andythenorth>Wolf01: o/
08:50-!-blocage [] has joined #openttd
08:50-!-blocage is "Benoit Gschwind" on #openttd #gcc
08:52<andythenorth>Wolf01: played any OpenTTD? o_O
08:53-!-chembot141 [] has quit [Remote host closed the connection]
08:54<Wolf01>Yes, about 20 minutes
08:55<Wolf01>Lol, the best part is that all the 3 SDK are currently installed
08:57<Wolf01>10586, 14393 and 15063... and even the old 10240 which I don't even use, but every time I modify the installation of VS2017 it tries to reinstall all that stuff
09:21-!-tokai [] has quit [Read error: Connection reset by peer]
09:21-!-tokai [] has joined #openttd
09:21-!-tokai is "Christian Rosentreter" on #openttd
09:21-!-mode/#openttd [+v tokai] by ChanServ
09:29-!-HerzogDeXtEr [] has quit [Read error: Connection reset by peer]
09:31-!-HerzogDeXtEr [] has joined #openttd
09:31-!-HerzogDeXtEr is "purple" on #openttd
09:37<andythenorth>lo supermop_
09:45-!-Lejving [] has quit [Read error: Connection reset by peer]
09:45-!-Lejving [] has joined #openttd
09:45-!-Lejving is "realname" on #openttd #/r/openttd #factoriocoop @#mashinky #openttdcoop #openttdcoop.stable @#openttdcoop.pz
09:49-!-sim-al2 [] has quit [Ping timeout: 480 seconds]
09:53<Wolf01>So... "," is a string, but ',' is a char... nice to know
09:53<Eddi|zuHause>in C(++)? yes
09:54<Wolf01>I figured it out because .Split(",") threw an error
09:55<Wolf01>Now, I need to remember how to debug async methids
09:55<Wolf01>*methods also
09:55-!-Lejving [] has quit [Read error: Connection reset by peer]
09:56-!-Lejving [] has joined #openttd
09:56-!-Lejving is "realname" on #openttd #/r/openttd #factoriocoop @#mashinky #openttdcoop #openttdcoop.stable @#openttdcoop.pz
09:58<Wolf01>Ok, I need to break before the async and then step into
10:03<Wolf01> ehe
10:05<Eddi|zuHause>oh, new xkcd phone
10:06<Wolf01>I just see it on the app I'm working on... a feed reader for webcomics
10:08<Wolf01>The front camera in the center of the screen is wonderful
10:08<Eddi|zuHause>a feed reader for webcomics? sounds like nobody ever implemented that before ever
10:08<Wolf01>I'm implementing my own for my needs
10:09<Wolf01>Also for my wallet
10:10<Wolf01>I need to introduce the categories now
10:10-!-andythenorth [~andytheno@] has quit [Quit: andythenorth]
10:11-!-andythenorth [~andytheno@] has joined #openttd
10:11-!-andythenorth is "andythenorth" on #openttd
10:13<Wolf01> ok, nice, it supports everything but IRC
10:18<Wolf01>There's a custom service web wrapper, maybe could be used to access the webchat... I bet adding custom services requires to pay for the full version
10:19-!-gelignite [] has quit [Read error: Connection reset by peer]
10:19-!-gelignite [] has joined #openttd
10:19-!-gelignite is "gelignite" on #openttdcoop.devzone #openttd
10:21-!-Wolf01Clatter [] has joined #openttd
10:21-!-Wolf01Clatter is "OFTC WebIRC Client" on #openttd
10:22<Wolf01Clatter>It seem to work.. but I could just use the site... and avoid that nasty ads bar...
10:23-!-Wolf01Clatter [] has left #openttd []
10:35-!-Alberth [] has joined #openttd
10:35-!-mode/#openttd [+o Alberth] by ChanServ
10:35-!-Alberth is "purple" on @#openttd
10:56-!-sla_ro|master [] has quit []
11:03-!-LongyanG [] has quit [Ping timeout: 480 seconds]
11:04<Eddi|zuHause>a while ago i was looking into connecting with telepathy to the steam messenger, but i didn't get it to work
11:07-!-LongyanG [] has joined #openttd
11:07-!-LongyanG is "long yang" on #debian-mentors #ceph #tor #debian
11:08-!-Wormnest [] has joined #openttd
11:08-!-Wormnest is "Wormnest" on #openttd
11:13-!-Flygon__ [] has quit [Read error: Connection reset by peer]
11:23<@Alberth>quite non-trivial problem thus
11:26-!-blocage [] has quit [Quit: Leaving]
11:32<Eddi|zuHause>i think it didn't find the plugin
11:32<Eddi|zuHause>and i didn't really understood the program enough to figure it out
11:40<@Alberth>:o that telepathy
11:44-!-Gja [] has joined #openttd
11:44-!-Gja is "Martin" on #bcache #openttd
11:58-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
12:00-!-TheMask96 [] has joined #openttd
12:00-!-TheMask96 is "Martijn Zweistra" on @#altcontrol #openttd #openttd.notice
12:12-!-Cubey [] has joined #openttd
12:12-!-Cubey is "Jaybar" on #openttd
12:14-!-Gja [] has quit [Quit: Going offline, see ya! (]
12:20-!-debdog [~debdog@2a02:8070:4182:a200:7a24:afff:fe8a:d04d] has quit [Quit: No Ping reply in 180 seconds.]
12:21-!-ToBeFree [] has joined #openttd
12:21-!-ToBeFree is "ToBeFree" on #debian #openttd @#freiwuppertal #https-everywhere #oolite-dev #oolite-ger #oolite #tor #linux
12:26-!-debdog [~debdog@2a02:8070:4182:a200:7a24:afff:fe8a:d04d] has joined #openttd
12:26-!-debdog is "Wowbagger" on #openttd
12:31<Wolf01>So I now saved the categories for the feeds I subscribed, it would be cool to also use them and not just show "Yet another lego blog - In category: LEGO" "Yet another webcomic - In category: webcomic"
12:31-!-sla_ro|master [] has joined #openttd
12:31-!-sla_ro|master is "slamaster" on @#sla #openttd #love
12:32<Wolf01>I think I'll replace the pivot
12:35<Wolf01>Meh... I need to group them
12:36<Wolf01>Group, get only the latest N for each subscription, order by date
12:36<Wolf01>A long LINQ query
12:45-!-debdog [~debdog@2a02:8070:4182:a200:7a24:afff:fe8a:d04d] has quit [Quit: No Ping reply in 180 seconds.]
12:52-!-debdog [~debdog@2a02:8070:4182:a200:7a24:afff:fe8a:d04d] has joined #openttd
12:52-!-debdog is "Wowbagger" on #openttd
12:55-!-glx [] has joined #openttd
12:55-!-mode/#openttd [+v glx] by ChanServ
12:55-!-glx is "Loïc GUILLOUX" on +#openttd
12:56<Eddi|zuHause>that's just a simple sql statement?
12:57<Wolf01>Yes, but I'm not using SQL
13:05-!-andythenorth [~andytheno@] has left #openttd []
13:24-!-frosch123 [] has joined #openttd
13:24-!-frosch123 is "frosch" on #openttdcoop.devzone #openttd
13:38-!-debdog [~debdog@2a02:8070:4182:a200:7a24:afff:fe8a:d04d] has quit [Quit: No Ping reply in 180 seconds.]
13:46-!-debdog [~debdog@2a02:8070:4182:a200:7a24:afff:fe8a:d04d] has joined #openttd
13:46-!-debdog is "Wowbagger" on #openttd
13:47<_dp_>looks like some kind of bug in curvature calculation
13:50<Wolf01>Yes, the train exited the first bend, but also went up by 1 level
13:51<_dp_>it's same on flat land
13:53<_dp_>`-. seems to somehow affect curvature even though it has turns in different directions
13:53<_dp_>but it doesn't count as curvature = 1, more like -1 to curvature
13:53<_dp_>basically, something is broken :p
13:55<_dp_>and it also works differently in different directions
13:56<_dp_>going backwards it slows down to 111 on middle section already
14:02-!-andythenorth [] has joined #openttd
14:02-!-andythenorth is "andythenorth" on #openttd
14:19<andythenorth>any new FS? o_O
14:23<_dp_>will be soon :p
14:25<andythenorth>1 in 1 out policy :P
14:31-!-ToBeFree [] has quit [Quit: Connection closed for inactivity]
14:35-!-ToBeFree [] has joined #openttd
14:35-!-ToBeFree is "ToBeFree" on #openttd @#freiwuppertal #https-everywhere #oolite-dev #oolite-ger #oolite #tor #linux
14:35<frosch123>_dp_: the algorithm is based on average curvature
14:36<frosch123>when the curve at the end is dropped, to overall curve gets a lot shorter but only maginally less curvy
14:36<frosch123>check train_cmd.cpp:369
14:37<frosch123>"sum" is the number of wagons from first to last curve
14:37<frosch123>"numcurve" is the number of curves
14:37<frosch123>so, not a bug, the algorithm is intended like that
14:41<_dp_>frosch123, yeah, I noticed averaging mentioned in wiki, but that still doesn't explain everything
14:41<_dp_>also tbh that averaging looks very silly to me, why not just use minimum?
14:42<frosch123>minimum would always be the same
14:42<_dp_>as long as train stays on the curve
14:43<_dp_>and yeah, same for every curve of same size, which seems much more clear to me
14:43<frosch123>well, all "realistic" stuff has that problem :p
14:43<frosch123>people come up with a set of curves, and always find a case where it behave weird
14:43<_dp_>that doesn't even look any realistic to me
14:46*andythenorth played a game
14:46<andythenorth>it was fun
14:47<frosch123>.devzone says you were horsing around
14:52<andythenorth>and FIRS
14:52<andythenorth>Horse is falling in a hole
14:52<andythenorth>I have about 27 different mail wagons
14:52<andythenorth>so you can always make integer length express trains :|
14:53<andythenorth>clearly silly
14:59<_dp_>hm, so trains with smaller wagons travel faster on curves...
15:00<frosch123>no idea whether that was intended or whether the algorithm was composed before short wagons
15:01<frosch123>_dp_: also those multi-articulared vehicles travel faster
15:02<andythenorth>how can I exploit this? o_O ^
15:03<_dp_>frosch123, xD
15:03<frosch123>i guess the shorten-vehicles stuff was not intended, since it also circumvents the 90 degree (2x45) test
15:05<_dp_>90 check should still be fine, as there has to be 90 diff somewhere in train
15:05<_dp_>regardless of parts length
15:05<frosch123>there are two 90 cases
15:06<andythenorth>supermop_: I have trains called Roarer, Screamer, Wizzo
15:06<andythenorth>Shredder or Growler for a medium freight loco?
15:06<frosch123>one for real 90, one for 2x45
15:06<andythenorth>both are RL names :P
15:06<_dp_>frosch123, ah, 2x45 yes, that's broken
15:11<Eddi|zuHause>i feel like we discussed that before, but in the end nobody felt the need to actually change anything, and everybody just shrugged and moved on
15:13<_dp_>looks easily fixable to me
15:14<_dp_>as long as everyone is fine with completely changing the logic))
15:14<frosch123>i am fine with fixing the wagon vs. length thing
15:14<frosch123>but changing the average with something else will result in other cases which are not "as realistic as hoped"
15:15<Eddi|zuHause>there was also a thing with speed on diagonals
15:15<_dp_>dunno about realisting but it definitely won't be as dumb :p
15:15<Eddi|zuHause>and a problem where short trains don't have the same curve limits as long trains
15:16<_dp_>train slowing down after exiting the turn, how is that even realistic :p
15:16<frosch123>Eddi|zuHause: long trains have advantages
15:16<_dp_>Eddi|zuHause, is it rly a problem? I always though of it as a feature
15:17<frosch123>Eddi|zuHause: if you train is 100 tiles long and there is a curve in the front and in the back, 100 straight tiles will average out almost everything
15:17<_dp_>hardly realistic, yes, but still nice imo
15:18<Eddi|zuHause>frosch123: but a train shorter than 100 tiles will have no limit at all, since it's only on one curve
15:18<frosch123>yep, it's always wrong
15:18<frosch123>for each cruve length you likely find a weird train
15:19<_dp_>I'd say 1) sum wagon lengths 2) take minimum instead of average
15:19<Eddi|zuHause>i think my suggestion worked like this: a train reserves a "braking distance" ahead, and the speed limit is calculated on the reservation, instead of the train
15:19<_dp_>3) screw realism :p
15:20<_dp_>Eddi|zuHause, how does that apply to curves, it can still reserve as much as it wants
15:20<Eddi|zuHause>("braking distance" depends on current speed, and possibly some other train properties)
15:21<_dp_>that's the way to do realistic breaking, yes
15:21<_dp_>will still run in other issues though in openttd case
15:21-!-Alberth [] has left #openttd []
15:21<_dp_>like sudden rail removal :p
15:22<Eddi|zuHause>disallow removal if a reservation is active ("train in the way")
15:22<_dp_>Eddi|zuHause, what about sudden signal change?
15:23<_dp_>well, I guess signals should treat reservation as part of the train
15:23<Eddi|zuHause>signal behavior also needs to take the reservation into account
15:24<Eddi|zuHause>well, path signals already do, and block signals should treat a reservation the same way as a train in the block
15:26<_dp_>and what signal should show for reservation, red or green?
15:26<_dp_>both are confusing af
15:27<Eddi|zuHause>signal with reservation shows green (like current path signals)
15:28<Eddi|zuHause>this solves several problems, like trains needing an "emergency brake" because the signal suddenly turned red
15:28<_dp_>path signals are arledy confusing af :p
15:29<_dp_>and they don't show green, they just blink green
15:29<Eddi|zuHause>that will also be "solved", because the reservation is done earlier, they show green for longer
15:30<_dp_>why are they red by default btw?
15:31<Eddi|zuHause>because that was easier to implement, instead of looking for a train waiting for a free path to know when to show red
15:32<Eddi|zuHause>and it would be silly to have a train wait in front of a green signal
15:33<_dp_>turn red if train failed to reserve track
15:34<Eddi|zuHause>yes, but the signal doesn't know about any trains
15:34<Eddi|zuHause>so making signal state depend on train state is non-trivial
15:34<_dp_>trains know about signal, they can switch it
15:34<_dp_>totally unrealistic, I know xD
15:35<Eddi|zuHause>signals default to red is actually very realistic, because signalling tends to err on the "safe" side
15:36<Eddi|zuHause>just with real networks, the "reservation" is far longer ahead
15:39<_dp_>btw, I also though about realistic breaking some time ago. pretty much same reservation thing, even calculated some formulas for that reservation "head" movement
15:39<_dp_>unrelated to openttd though
15:41<_dp_>also has nothing to do with curve speed limits :p
15:41<_dp_>or rather speed limit calculation, because calculating the effect of that speed limit on reservation "movement" is another tricky question
15:42<_dp_>hm, and openttd calculating limit by train instead of track definitely doesn't make that easier
15:43<_dp_>since you need limit to calculate reservation and to calculate limit you need train to already be there
15:58<_dp_>what's the official github openttd mirror? it's not even listed on
16:01<frosch123>all current links are on the "community" page
16:01<frosch123>the other stuff is probably from 2004
16:04<_dp_>oh, don't think I ever looked at community page xD
16:05<frosch123>really, it's a popular battle ground for competitive servers
16:05<frosch123>they fight for the best position on the list or something
16:06<frosch123>i think it was btpro vs reddit
16:06<_dp_>well, I'm happy that citymania is even there xD
16:07<_dp_>along with long dead novapolis but whatever
16:09<_dp_>wonder how ST 2 still didn't think of adding separate "competitive servers" section to be first there :p
16:09<ST2>lazyness works in misterious ways :P
16:11<_dp_>ST2, do you even get any visitors from that page?
16:11<_dp_>coz we don't :p
16:11<ST2>no clue
16:15<_dp_>oh, actually, we do, it's just not on a first page
16:15<_dp_>no wonder I never noticed it
16:15<_dp_>but yeah, whole 15 visitors in a year! xD
16:16<ST2>it's a start :P
16:17<frosch123>how much does that increase by putting it first?
16:17<_dp_>dunno, let's try and I'll tell you in a year :p
16:19<_dp_>24 visitors from bananas xD
16:19<frosch123>is bananas linked from anywhere?
16:21<_dp_>there is a link on cm grf on bananas
16:21<frosch123>yes, but i thought the bananas website is itself pretty much hidden
16:22<_dp_>frosch123, well, not as hidden as wiki I guess :p
16:22<_dp_>hm, 15 visitors seems to be the point where all the weirdness starts
16:23<_dp_>liky 15 from, 15 more from
16:23<_dp_>lifehacĸ ...
16:24<_dp_>oh, that's some phishing domain
16:29-!-Biolunar [] has joined #openttd
16:29-!-Biolunar is "Biolunar" on #openttd #suckless
16:30-!-Stimrol [] has joined #openttd
16:30-!-Stimrol is "Stimrol" on #openttd
16:35-!-sim-al2 [] has joined #openttd
16:35-!-sim-al2 is "sim-al2" on #openttd @#/r/openttd
16:41-!-ToBeFree [] has quit [Quit: Connection closed for inactivity]
16:43-!-chomwitt is "chomwitt" on #debian #debian-games
16:43-!-chomwitt [~chomwitt@2a02:587:dc00:2100:900d:7535:965:50f7] has joined #openttd
16:56-!-frosch123 [] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
17:06-!-andythenorth [] has left #openttd []
17:07-!-sla_ro|master [] has quit []
17:11-!-Stimrol [] has quit [Quit: ZNC -]
17:20-!-Stimrol [] has joined #openttd
17:20-!-Stimrol is "Stimrol" on #openttd
17:28-!-chomwitt [~chomwitt@2a02:587:dc00:2100:900d:7535:965:50f7] has quit [Quit: WeeChat 1.0.1]
17:43<Eddi|zuHause>hm, i'm missing something that makes a blue tongue
17:43<Wolf01>Tried with ink?
17:44<Eddi|zuHause>haven't seen any ink around
17:44<supermop_>cut it off maybe?
17:45<Eddi|zuHause>that seems excessive :p
17:45<Wolf01>Rufus is weird, maybe licking something strange
17:45<Eddi|zuHause>not MY tongue :p
17:46<_dp_>debug vehicles are missing wagons :(
17:46<_dp_>need some grf with short wagons
17:47<_dp_>ah, nvm I forgot I can stack locos
17:48-!-chomwitt [~chomwitt@2a02:587:dc00:2100:b8d5:d594:bed4:3a54] has joined #openttd
17:48-!-chomwitt is "chomwitt" on #debian-mentors #oolite #openttd #qemu #debian #debian-games
17:49<_dp_>oh, crap but they have 52 kmh speed
17:52<_dp_>so, does anyone know grf with smth like 4/8 wagons?
17:53<Eddi|zuHause>ukrs? but that probably does not solve your speed limit problems
17:53<_dp_>hm, I'll try it
17:54<_dp_>need 200 kmh though
17:54<Eddi|zuHause>there used to be a setting to disable wagon speed limits
17:58<_dp_>ok, found a way to do 177kmh with ukrs, that should do)
17:58<_dp_>these supersmall wagons look quite silly :)
18:05-!-tokai|noir [] has joined #openttd
18:05-!-tokai|noir is "Christian Rosentreter" on #openttd
18:05-!-mode/#openttd [+v tokai|noir] by ChanServ
18:07<_dp_>hm, how do I enable 90 degree turns? just disabling "forbid" option in settings doesn't seem to work %
18:09<_dp_>ah, apparently I tried to do wrong 90 turn)
18:09<_dp_>never played with that crap on :p
18:12-!-tokai [] has quit [Ping timeout: 480 seconds]
18:14<_dp_>why do debug vehicles not work with urks?
18:14<_dp_>there are debug rvs but no trains
18:14-!-Biolunar [] has quit [Ping timeout: 480 seconds]
18:20<_dp_>curve speeds are horribly broken for non power of 2 length engines
18:21<_dp_>coz number of wagons on curve constantly changes :p
18:23-!-Stimrol [] has quit [Quit: ZNC -]
18:31<Eddi|zuHause>just another reason to completely rip out that code and replace it with something sane
18:32<Eddi|zuHause>... for various optimism levels of "sane"
18:32<_dp_>done :P
18:32<_dp_>slightly more sane xD
18:33<_dp_>still fails on wagons of weird length tho
18:33<Eddi|zuHause>no idea what that does
18:33<_dp_>but that issue comes from calculating limit by train instead of track
18:34-!-Wormnest [] has quit [Quit: Leaving]
18:34<_dp_>does two things I stated earlier. 1) takes min curve instead of avg 2) takes wagon length instead of count
18:35-!-HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
18:35<_dp_>so except for non power of 2 wagons solves all other speed limit issues as far as I can tell
18:36-!-HerzogDeXtEr [~farci@] has joined #openttd
18:36-!-HerzogDeXtEr is "purple" on #openttd
18:38<Eddi|zuHause>i think you can pretty safely switch it to track reservation instead of wagons. trains ("usually") reserve the track under themselves, even without path signals present
18:38<Eddi|zuHause>you may sporadically catch the reservation from another train, though
18:38<_dp_>usually? xD
18:39<_dp_>wait, but with path signals reservation is larger than train, right?
18:39<_dp_>that doesn't really work well for speed limits
18:41<Eddi|zuHause>i think that's an improvement
18:41<Eddi|zuHause>there's no reason why the speed limit should depend on train length
18:41<_dp_>hm, what I could probably do is some math magic to get track length even with weirdly sized wagons
18:42<Eddi|zuHause>trains should have their length cached in the front engine
18:42<_dp_>Eddi|zuHause, with path signals reservation can be arbitrarily big, makes no sense whatsoever to calculate speed limit from it
18:43<Eddi|zuHause>you can limit the path traversal
18:43<_dp_>I think just some rounding will do the trick
18:43<Eddi|zuHause>go back (length of train) tiles, and go forward (length of braking distance) tiles
18:45<Eddi|zuHause>stop whenever that limit is reached, or the reservation ends
18:46<Eddi|zuHause>second step would be to add a useful formula for determining the braking distance
18:47<Eddi|zuHause>third step: extend the reservation when it's shorter than the braking distance, in the movement code
18:48<_dp_>breaking distance is way much harder of a task than fixing curve speed limits
18:48<_dp_>I'm not doing it for sure :p
18:48<Eddi|zuHause>i didn't expect you to
18:49<Eddi|zuHause>just hard code it as 0 or 1 tile or something
18:50<Eddi|zuHause>what i meant to say was: this code should be able to handle a braking distance, should it be added in the future
18:52<_dp_>well, what I did is as able to handle breaking distance as current openttd :p
18:52<Eddi|zuHause>that's not really the goal :p
18:53<_dp_>i don't rly believe in breaking distance ever coming to openttd
18:54<_dp_>can't even imagine how to calculate it with realistic acceleration
18:54<_dp_>it's non-trivial even with simple v=at stuff
18:54<Eddi|zuHause>s=a/2*t^2... really not that difficult :p
18:56<_dp_>exept that you don't have t :p
18:56<_dp_>also acceleration is doable
18:56<Eddi|zuHause>you get t from v=a*t
18:56<_dp_>but what happens for example when train hits speed limit?
18:57<Eddi|zuHause>well, the idea is to use the braking distance as a lookahead, to notice speed limits before you reach the limiting spot
18:58<Eddi|zuHause>then you can pass the limit to the acceleration code, and it will slowly lower speed towards the limit
18:58<_dp_>I think it just moves with 2a on acceleration so you don't need s and t (assuming a of breaking = a of acceleration)
18:58<Eddi|zuHause>without just clamping the speed to the limit
18:58<Eddi|zuHause>like it does currently
18:59<_dp_>Eddi|zuHause, well, anyhow breaking distance should go somewhere past speed limit, stay there for some time as train decelerates and then continue on
19:00-!-Eddi|zuHause [] has quit [Remote host closed the connection]
19:01<_dp_>also it's unclear how breaking distance will sync with train on integer coords without loosing precision
19:01-!-Eddi|zuHause [] has joined #openttd
19:01-!-Eddi|zuHause is "Johannes E. Krause" on #openttd
19:01<Eddi|zuHause>... you broke it
19:02<Eddi|zuHause>i don't know what you mean with your braking distance comment
19:03<_dp_>which one? :)
19:06<Wolf01>Ok, I fixed and broke my app infinite times today, I could netflix and sleep now
19:07<_dp_>in other words you need to somehow calculate when to start decelerating to hit speed limit point with required speed
19:11<Wolf01>You are trying to make trains don't stop from full speed at every red signal because the train ahead is slower?
19:11-!-tycoondemon [] has quit [Ping timeout: 480 seconds]
19:12<_dp_>oh, and anyway calculating speed limit for train instead of track is quite important gameplay thing already
19:12<_dp_>like all coop stuff depends on it
19:12<Eddi|zuHause>pppppppffffftttt :p
19:12<_dp_>Wolf01, yeah, Eddi wants realistic deceleration xD
19:13<Wolf01>TF has is now and I found it really good, trains don't stop anymore and almost match the speed of the train ahead
19:13<Eddi|zuHause>imho, breaking coop habits is the best reason ever for making a patch :p
19:15<Eddi|zuHause>anyway, "<_dp_> Eddi|zuHause, well, anyhow breaking distance should go somewhere past speed limit, stay there for some time as train decelerates and then continue on" <-- this was the last line i got before the disconnect
19:15<Eddi|zuHause>and that one i don't understand
19:15<_dp_><_dp_> in other words you need to somehow calculate when to start decelerating to hit speed limit point with required speed
19:15-!-tycoondemon [] has joined #openttd
19:15-!-tycoondemon is "..." on #openttdcoop.stable #openttdcoop #openttd
19:15-!-HerzogDeXtEr [~farci@] has quit [Ping timeout: 480 seconds]
19:16<Eddi|zuHause>_dp_: i wouldn't really worry about that... just decelerate as soon as you notice the speed limit ahead
19:16<_dp_>Eddi|zuHause, that's kind of silly to go at lower speed than allowed
19:17<_dp_>Eddi|zuHause, besides, I think I already know the answer to that
19:17<Eddi|zuHause>_dp_: in any case, i think that's a feature for later steps of this process
19:17-!-HerzogDeXtEr [] has joined #openttd
19:17-!-HerzogDeXtEr is "purple" on #openttd
19:17<_dp_>Eddi|zuHause, braking point pauses at point where would train stop going from speed limiting point at speed of that limit
19:19<Eddi|zuHause>_dp_: if you are checking reservation ahead of the train, for each step you can calculate the speed it would reach when starting to brake immediately. just check whether that speed is below the speed limit of that point
19:19<_dp_>though it all depends on implementation. when I though about braking points I planned on making them the logical "head" for train and move the real pieces accordingly
19:21-!-HerzogDeXtEr [] has quit []
19:21<_dp_>Eddi|zuHause, that means on every train movement you're going to check whole reservation
19:21<Eddi|zuHause>every train movement, or maybe every tile change
19:22<Eddi|zuHause>but that should be a fairly cheap operation
19:22<Eddi|zuHause>just loop over the already existing reservation
19:23<_dp_>I kind of though train movement is time-critical already
19:23<Eddi|zuHause>that's a dangerous assumption without doing actual profiling
19:24<Eddi|zuHause>but usually pathfinder is the worst offender, and you're not really doing that
19:24<_dp_>well, anyway, you don't need to check reservation. Having stored something like distance before starting braking and dinstance to end braking should be enough
19:25<Eddi|zuHause>caching values is a step further
19:25<_dp_>yeah, but it's always nice to know beforehand that it's possible to cache something there ;)
19:28<Eddi|zuHause>what you probably would need to cache is the "braking curve", i.e. "train has current speed of 100, within 1 tile it can brake to 95, within 2 tiles to 85, within 3 tiles to 70, within 4 tiles to 45, within 5 tiles to 15, within 6 tiles to 0"
19:29<Eddi|zuHause>at least that could work while the train is cruising at constant speed
19:31<Eddi|zuHause>then, at every tile change you can loop the reservation, and if you encounter a speed limit of 80 is within 2 and 3 tiles, you start braking
19:32<Eddi|zuHause>if the speed limit is more than 3 tiles away, you don't care
19:32<_dp_>braking curve seems pointless to me. all you need to know is when to hit brakes and when to release and that can be calculated based on distances and speeds
19:33<Eddi|zuHause>you don't need to know when to release, because you release when you reach the speed limit
19:33<Eddi|zuHause>you already know what the limit is
19:33<_dp_>Eddi|zuHause, kind of true except mb sometimes you don't
19:34<_dp_>as there is another limit
19:35<_dp_>there may be too speed limits ahead of the train and you may need to start braking to second one earlier than to the first (or at the same time)
19:35<_dp_>so when you reach first limit you still need to hold brakes
19:36<Eddi|zuHause>how is that a problem? you loop over the whole braking distance, and brake for the lowest speed limit that didn't meet the "ignore" criterium above
19:36<_dp_>it's not much of a problem, just you don't always "release when you reach the speed limit"
19:37<_dp_>you may do it as release, look ahead and immediately brake again though
19:37<Eddi|zuHause>each speed limit that is not the lowest will automatically be ignored as well
19:37<Eddi|zuHause>there is only one speed limit that you brake for at any given moment
19:37<_dp_>well, yeah, and that what I meant by knowing when to release brakes :p
19:38<Eddi|zuHause>say you have the braking curve above, and there's a speed limit of 80 3 tiles away, you set that as active speed limit. then there's a speed limit of 30 6 tiles away, you ignore that
19:39<_dp_>depends on braking speed, if it's too slow I can't ignore it
19:39<_dp_>or I wouldn't be able to stop from 80 to 30 in 3 tiles
19:39<_dp_>*slow down
19:39<Eddi|zuHause>but you already know the braking speed, that's what you calculated the braking curve from
19:40<_dp_>idk with braking curve mb, it's quite excessive
19:41<_dp_>I was talking of not having braking curev
19:41<Eddi|zuHause>even if you don't calculate the braking curve, it still exists
19:43<Eddi|zuHause>you still get to the same conclusions on when to brake for a speed limit, even if you don't explicitly calculate the curve
19:46-!-Progman [] has quit [Remote host closed the connection]
19:50<_dp_>hm, I changed my mind, calculating when to brake is a bad idea
19:50<Eddi|zuHause>_dp_: what i mean is, if you encounter a speedlimit of X, Y tiles ahead, you calculate whether the train can still meet the speed limit if it started to brake Y-1 tiles away, if not, you set X as the current speed limit and start braking now. if you find a new lower speed limit later, you override the speed limit
19:51<_dp_>in openttd reality what you need to know is for each tick whether you're braking at it or not
19:51<Eddi|zuHause>checking at tile borders should be enough, no need to do it every tick really
19:52<Eddi|zuHause>might need special calculations for half tiles
19:52<_dp_>I think it can move more than one tile per tick actually
19:54<Eddi|zuHause>but it would induce a tile switchover check twice in that case
19:54<Eddi|zuHause>there is certainly a maximum speed
19:55<Eddi|zuHause>there are two train movement steps per tick, and it almost certainly cannot move more than one tile per movement step
19:57<Eddi|zuHause>anyway, if you overshoot, there's always the "emergency brake" mode
19:58<_dp_>there is somewhat realistic deceleration currently btw
19:58<_dp_>but it only works within one tile and has some bugs :)
19:59<Eddi|zuHause>yes, hence the need for a braking distance
19:59<Eddi|zuHause>(also separate braking power property for vehicles)
20:00<_dp_>too much realism :p
20:00<Eddi|zuHause>no such thing :p
20:01<_dp_>I kinda like instabreaks, sometimes it's the only way to stop trains from crashing)
20:02<_dp_>emergency rail removal :)
20:04<Eddi|zuHause>the algorithm above doesn't really remove that
20:04<Eddi|zuHause>only disallowing removing rails with reservation would change that
20:04<_dp_>well, yeah, but you said something about "train in the way" earlier :p
20:05<Eddi|zuHause>but that's completely separate
20:05<Eddi|zuHause>could allow that as a cheat, or something
20:06<Eddi|zuHause>the convert rail tool also would need a check for whether the new speed limit could be met
20:06<Eddi|zuHause>which may be too much work
20:06<Eddi|zuHause>so better to just scratch the whole idea :p
20:10-!-chomwitt [~chomwitt@2a02:587:dc00:2100:b8d5:d594:bed4:3a54] has quit [Quit: WeeChat 1.0.1]
20:11<_dp_>just slowing down asap in case of converting seams reasonable enough
20:11-!-gelignite [] has quit [Quit: I have always found that mercy bears richer fruits than strict justice.]
20:12<_dp_>otherwise you can't even convert underneath a moving traing which is going to be super annoying
20:12-!-FLHerne [] has quit [Ping timeout: 480 seconds]
20:14<_dp_>oh, now I remembered why it was so hard to calculate braking when I though about it
20:14<_dp_>it was supposed to be an event-based system without any ticks
20:15<_dp_>so need to calculate exact times for everything
20:17<_dp_>amazing, I have two trains on one track and they still haven't crashed.
20:17<_dp_>how do people even crash them xD
20:18-!-chomwitt [~chomwitt@2a02:587:dc00:2100:2d5b:1db:5649:15db] has joined #openttd
20:18-!-chomwitt is "chomwitt" on #debian-mentors #oolite #openttd #qemu #debian #debian-games
20:18<_dp_>have an idea for #coop, nsnw - no signal network xD
20:19<Eddi|zuHause>back in the days, brianetta used to run networks like that
20:19<Eddi|zuHause>timed so the trains would reach the sidings at the correct time
20:20<_dp_>ah, timed
20:20<_dp_>mine is osnw then I guess, one (path) signal network)
20:20<Eddi|zuHause>it might not be possible anymore, because trains check paths at station exit
20:21<_dp_>nothing's timed but reservations do the trick
20:22<Eddi|zuHause>well, reservations are meant to be crash-safe (as long as the player doesn't screw with the network)
20:23<_dp_>they are kind of dull though since they reserve complete path and just stop train if they cant
20:23-!-Flygon [] has joined #openttd
20:23-!-Flygon is "Flygon" on #openttd
20:24<_dp_>wonder if there is a way to pack several trains going same way on one track with reservations
20:24<Eddi|zuHause>it's not an automatic moving-block signalling system :p
20:24<_dp_>huh? sound like minecraft
20:25<Eddi|zuHause>not that kind of block :p
20:26<Eddi|zuHause>a signal block is the space between two signals, which only one train may occupy
20:26<_dp_>yeah, I figured already once I got what block are you talking about)
20:26<Eddi|zuHause>a "moving block" is a modern system where a virtual signal moves ahead of the train (braking distance away)
20:27<_dp_>is that some real signaling system?
20:27<Eddi|zuHause>moving block systems allow very fast speeds (because the driver doesn't need to see the signal) and very tight packing of trains
20:28<Eddi|zuHause>ETCS level 2 might be moving block
20:28<_dp_>why does it even need a driver :p
20:29<Eddi|zuHause>that's level 3 :p
20:29<Eddi|zuHause>anyway, you need these computerized signals for speeds > 160km/h
20:30<Eddi|zuHause>so high speed tracks are generally equipped with such a system
20:30<Eddi|zuHause>also, some metro systems use this for the tight packing ability
20:31-!-Hiddenfunstuff [] has quit [Ping timeout: 480 seconds]
20:33<_dp_>japan certainly uses some other tight packing system xD
20:33<Eddi|zuHause>not that kind of packing :p
20:36-!-chomwitt [~chomwitt@2a02:587:dc00:2100:2d5b:1db:5649:15db] has quit [Quit: WeeChat 1.0.1]
20:36-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
20:43-!-chomwitt [~chomwitt@2a02:587:dc00:2100:45e4:18a0:1512:1e05] has joined #openttd
20:43-!-chomwitt is "chomwitt" on #debian-mentors #oolite #openttd #qemu #debian #debian-games
20:47<_dp_>what's the maximum length of a train part, 8/8?
20:50<_dp_>iron horse seems to have longer wagons
20:50-!-chomwitt [~chomwitt@2a02:587:dc00:2100:45e4:18a0:1512:1e05] has quit [Quit: WeeChat 1.0.1]
20:50<Eddi|zuHause>those are articulated vehicles
20:51<Eddi|zuHause>for extra fun, look at CETS
20:53<_dp_>is it on bananas?
20:54<Eddi|zuHause>no, it's not released (or finished, for that matter), but you find it on devzone
20:55<_dp_>all I found is this
20:56<_dp_>ah, should've checked repository, not files)
20:56<_dp_>totally not used to devzone
20:58<_dp_>nah, I give up, too much code :p
21:04<_dp_>how does that even
21:04<Eddi|zuHause>i know, must have been a total crazyperson who came up with that :p
21:04<_dp_>that's some dark sorcery you have there :p
21:06<_dp_>well, whatever it appears to be, as long as for a game everything is < 8/8 it should be fine)
21:09<Eddi|zuHause>yeah, 8 is max length. longer vehicles can only be articulated
21:09<Eddi|zuHause>like, my wagons of length 10 are 3+4+3
21:13<_dp_>just replacing / with rounddivsu seems to have fixed issues with weird wagon lengths
21:20<_dp_>probably not all of them but definitely some
21:59-!-glx [] has quit [Quit: Bye]
23:04-!-DDR [] has quit [Remote host closed the connection]
23:05-!-DDR [] has joined #openttd
23:05-!-DDR is "David" on #openttd
23:05-!-DDR_ [] has joined #openttd
23:05-!-DDR_ is "David" on #openttd
23:06-!-DDR_ [] has quit []
---Logclosed Thu Sep 14 00:00:56 2017