Log for #openttd on 11th June 2019:
Times are UTC Toggle Colours
00:00:38  *** Samu has quit IRC
00:09:13  *** Thedarkb has quit IRC
00:26:56  *** HerzogDeXtEr has quit IRC
01:27:00  *** Flygon has joined #openttd
02:22:20  *** debdog has joined #openttd
02:25:43  *** D-HUND has quit IRC
02:44:29  *** glx has quit IRC
03:03:31  *** Gustavo6046 has quit IRC
04:21:41  *** snail_UES_ has quit IRC
05:00:30  *** Compu has joined #openttd
05:19:20  *** Speedy` has joined #openttd
06:23:27  *** nielsm has joined #openttd
06:35:55  *** andythenorth has joined #openttd
06:58:50  *** tycoondemon has quit IRC
07:25:37  <andythenorth> moin
07:30:49  *** andythenorth has quit IRC
07:55:22  *** Flygon_ has joined #openttd
07:56:21  *** Supercheese has quit IRC
08:01:09  *** Flygon has quit IRC
08:05:22  *** goodger has quit IRC
08:08:10  *** goodger has joined #openttd
08:33:24  *** cHawk has joined #openttd
09:32:27  *** somerandom has joined #openttd
09:33:17  <somerandom> hi all... i'm trying to generate larger then 4096*4096 maps but i cant find the correct setting in the source code. help please?
09:34:57  <nielsm> first consider the explosive complexity by doubling the number of tiles even more times and how it will impact the performance (which is already bad on large maps)
09:36:22  <nielsm> I think there may also be some places in the code that assume that a tile index fits within 20 bits or 24 bits which may break in unexpected ways if you increase it
09:37:22  <somerandom> yeah well... could i please at least try? please?
09:38:15  <nielsm> map_type.h
09:38:32  <somerandom> seriously, i have a dual socket xeon motherboard here with 96 gigabytes of ram
09:38:42  <nielsm> nobody cares about your number of CPUs
09:39:07  <nielsm> ottd is single-threaded and cannot be multithreaded due to the core structure of the simulation
09:39:30  <somerandom> aaaaw, there it is. previusly i tried genworld_gui.cpp with no luck
09:41:50  <nielsm> also look for game_creation.map_x and .map_y in table/settings.ini
09:42:11  <nielsm> though you probably don't need to change anything there
09:47:16  <somerandom> it breaks down here: assert_compile(lengthof(feedbacks) == 2 * MAX_MAP_SIZE_BITS - 2 * MIN_MAP_SIZE_BITS + 1);
09:47:57  <nielsm> yeah figure out what that "feedbacks" thing is and if it's something you can increase
09:49:05  <somerandom> i think i can manage that
09:51:51  <nielsm> thing is, all actions in OTTD are based around commands (which are also what is transmitted on the network protocol), and a command has just two 32 bit fields which are often bitstuffed
09:52:18  <nielsm> it also has a third 32 bit field for the target tile of the command, but some commands require two tile indexes, and if the second tile index is in a bitstuffed field
09:52:36  <nielsm> there may not be enough space in that field to expand the effective size of a tileindex
09:54:35  *** arikover has joined #openttd
09:57:16  <somerandom> second issue. land can be purchased only one tile at a time, while for example bulldozing can be done on larger areas.
09:57:42  <nielsm> I believe that's intentional to limit certain types of griefing
09:59:35  <somerandom> but... is there an easy way to implement the same function for purchasing land?
09:59:47  <LordAro> yes, by writing it
10:00:02  <somerandom> so its not only a copy-paste affair then?
10:00:09  <LordAro> almost certainly not
10:00:17  <LordAro> OTTD is a complex program
10:00:34  <somerandom> i have some experience with c/c++ but not at this level
10:00:47  <LordAro> perfect opportunity to learn :)
10:01:19  <LordAro> any "fix" for land purchasing would involve the same limiting backoff factor that bulldozing has, except much more harshly
10:01:32  <LordAro> and even then it might get rejected
10:09:09  <somerandom> but seriously purchasing land tile by tile has been a pain for me since i started playing the original transport tycoon in the 90's
10:10:33  <LordAro> the issue is that it's a stupidly easy tool to abuse
10:11:07  <LordAro> and we don't really want to introduce differing behaviour between singleplayer & multiplayer
10:11:17  <somerandom> aaaaw ok
10:11:43  <LordAro> if you can come up with some solution to it, then great :)
10:11:57  <LordAro> but no one here has come up with anything in the last 15 years
10:22:12  <somerandom> what about tor support? say i'd want to run a multiplayer server as a tor hidden service?
10:24:39  <nielsm> can't that be done with a virtual loopback adapter the game listens on?
10:25:42  <LordAro> i'm not hugely familiar with tor, but i can't imagine that there's anything specific that OTTD needs to support
10:28:47  <somerandom> alright, 8192*8192 maps work with the original land generator. terra genesis says "map generation aborted... ... no suitable town locations". it appears it generates a whole lot of water
10:31:40  <nielsm> try in scenario editor instead, than you can get the terrain generated without towns and industries placed
10:31:47  <nielsm> see if it does something wrong
10:34:08  <LordAro> istr seeing a 8192x8192 patch in the past
10:34:20  <LordAro> i imagine it was dropped as "utterly impractical"
10:34:29  <somerandom> really?
10:34:37  <LordAro> let's be honest, 4096 is stupid big already
10:35:10  <somerandom> in my experience its the upper limit for what can be regarded as practical
10:38:07  <LordAro> yeah, a Bilbo patch
10:38:22  <LordAro> think this was mostly what got included in the game way back when
10:39:01  <somerandom> the scenario editor can generate flat land for 8k*8k maps but not truly random terrain
10:40:23  <somerandom> not a brilliant idea after all
10:41:56  <somerandom> you've been really helpful so far... can you now please tell me the file where the code for purchasing land is?
10:42:39  <nielsm> multiple files
10:42:54  <nielsm> at least one _cmd.cpp and one _gui.cpp
10:44:38  <somerandom> terraform_gui.cpp?
10:44:45  <LordAro> i start by finding a string referencing the thing i want to find, then repeatedly search through the code until i find something relevant
10:44:58  <somerandom> i simply use grep
10:46:46  <LordAro> of course
11:01:36  <somerandom> do you have any documentation on the source code available at all?
11:02:57  <nielsm>
11:03:00  <nielsm> doxygen
11:03:20  <nielsm> not everything seems to be indexed and it's not always useful, but it's there
11:04:08  <LordAro> pretty sure that's not been updated in a year either
11:04:16  <LordAro> it never got set up properly
11:04:46  *** Samu has joined #openttd
11:09:51  <Samu> wow what happened to the forum?
11:10:49  <nakki> what do you mean?
11:11:33  <Samu>
11:11:43  <FLHerne> somerandom: If you're just hacking it for your own use, you can always just feed it a heightmap?
11:12:25  <FLHerne> Samu:
11:18:37  <Samu> oh, i see
11:38:49  *** arikover has quit IRC
11:56:59  *** andythenorth has joined #openttd
12:36:47  *** snail_UES_ has joined #openttd
12:55:10  *** snail_UES_ has quit IRC
13:04:53  *** techmagus has quit IRC
13:05:51  *** techmagus has joined #openttd
13:29:37  <somerandom> aaaaaaaaaw you people use a glfsr for a pseudorandom number generation. shame on you. shame!
13:30:01  <somerandom> its patended unless i'm mistaking
13:30:40  <somerandom> overall its rather lousy to implement in software. i'm certain there are better alternatives
13:33:25  <somerandom> i might be the closest thing you have to a cryptographer. i might be able to come up with something else if you don't mind
13:34:09  <somerandom> but seriously... glfsr?
13:34:34  <somerandom> we were taught they are obsolete these days
13:39:23  *** tokai|noir has joined #openttd
13:39:23  *** ChanServ sets mode: +v tokai|noir
13:40:46  <Heiki> perhaps that’s why OpenTTD is seldom used for cryptography
13:41:33  <nielsm> yeah there's nothing that needs to be secure, it just needs to be unpredictable to the player
13:41:56  <nielsm> (and if someone wants to TAS the game and abuse the RNG they're welcome)
13:42:05  <LordAro> i for one, do all my banking with OTTD
13:42:13  <LordAro> -,
13:42:59  <nielsm> the only argument I can think of for replacing the RNG would be a significant performance improvement in the game loop
13:43:07  <somerandom> and it also needs to be efficient. galois/fibonacci lfsr's are not efficient by todays standard. can i make a serious effort to improve your pseudorandom number generator?
13:43:59  <LordAro> s/glfsr/std::mt19937/ ?
13:44:07  <LordAro> it's not exactly a bottleneck
13:44:28  <nielsm> sure, as long as it will produce the same sequence on any machine a PR is welcome
13:44:41  <nielsm> but you probably need to demonstrate an actual performance improvement
13:44:58  <nielsm> (that is measured in more than microseconds per frame)
13:45:20  <LordAro> (or be significantly less code)
13:46:22  *** tokai has quit IRC
13:47:15  <somerandom> actually glfsr is less then ideal because it has a lot of numbers just sitting around doing very much nothing. i don't know about performance but it's more a question of memory.
13:47:58  <somerandom> i'm thinking more of elliptic curves.
13:49:51  <LordAro> neither rolling our own crypto or requiring openssl are particularly desirable
13:52:08  <somerandom> your current implementation... what does it use as seed?
13:54:19  <nielsm> the value stored in the savegame or received from the network server
13:55:06  <nielsm> the purpose of the RNG in the game is to provide a reproducible a sequence of numbers that will be the same on any client simulating the game world from the same initial state, given the same sequence of input
13:55:43  <somerandom> yes, that is the definition of a pseudorandom number generator
13:56:03  <somerandom> is the lfsr used for generating the world at the beginning of every game?
13:56:03  <nielsm> you keep talking about this like it's a question of security
14:00:22  <andythenorth> he mentioned patents first, to be fair :)
14:00:24  <somerandom> well... i'm a mathematician and cryptographer writing my masters thesis. i associate lfsr's with security, but openttd is obviously not a security software. what i'm saying is your current rng could probably be done better
14:00:58  <andythenorth> most things in ottd can
14:01:00  <andythenorth> :)
14:01:19  <somerandom> actually i'm under the impression glfsr is patented but i'm not sure. didn't find anything by googling once
14:06:06  <Corns[m]> q: what function(s) do i use to check if a tile is a plain water tile? e.g. it's a river or ocean tile with no occupying tiles (such as locks, docks)
14:07:20  <nielsm> Corns[m]: in the C++ code, or in AI, or where?
14:08:27  <nielsm> in C++, this header defines what you need:
14:10:17  <somerandom> i ran out of ram experimenting. clearly 32k*32k is too much for my laptop
14:10:26  <somerandom> need to reboot. we will have to continue this later.
14:10:28  *** somerandom has quit IRC
14:10:58  <Corns[m]> nielsm: in C++
14:11:14  <Corns[m]> oh yeah i'm looking at it right now HAHA
14:11:14  <Corns[m]> thank you :)
14:11:28  <Corns[m]> buoys don't affect the tile class, do they?
14:11:39  <Corns[m]> also what constitutes a WATER_TILE_COAST tile?
14:11:39  <nielsm> yes they do
14:11:50  <nielsm> buoys are station tiles
14:12:13  <nielsm> WATER_TILE_COAST are the "beach" tiles, the slopes down to ocean level
14:12:23  * andythenorth makes Hog
14:12:48  <Corns[m]> oh i see - does that include the diagonal cost tiles? i.e. the half land/half water tiles
14:13:16  <nielsm> I think so, not sure
14:13:33  <Corns[m]> i guess i can always test - thank you :)
14:21:32  <Corns[m]> yup buoys fail the IsWaterTile() function
14:23:47  *** andythenorth has quit IRC
14:24:31  <Corns[m]> wait so how would i check if a tile has a buoy on it?
14:26:04  <Corns[m]> answer: IsBuoyTile()
14:48:46  *** andythenorth has joined #openttd
15:07:30  *** sla_ro|master has joined #openttd
15:52:22  *** someguy has joined #openttd
15:52:27  <someguy> hi again
15:53:14  <someguy> is the glfsr used for generating the world at the start of every game?
15:59:26  <LordAro> i imagine you can work that out as well as anyone else
16:01:57  *** HerzogDeXtEr has joined #openttd
16:02:30  <someguy> that's it. in the near future i'll start some serious effort to replace it for you.
16:11:01  *** Gustavo6046 has joined #openttd
16:11:51  <LordAro> someguy: :)
16:13:36  <someguy> seriously. it's not only for you. i too benefit from doing so. something like this easily helps me in my masters thesis and even toward a ph.d
16:32:45  *** tycoondemon has joined #openttd
16:36:11  *** supermop_work has joined #openttd
16:44:10  *** Flygon_ has quit IRC
17:09:59  *** Wolf01 has joined #openttd
17:24:02  *** cHawk has quit IRC
17:41:30  <someguy> anyway, as i experimented, 32k*32k maps could technically work with enough ram. 64k*64k give a segmentation fault.
17:43:57  <dwfreed> if k is 1024, 64k * 64k would give you a number larger than could be represented in a 32 bit unsigned integer, unless the first tile is 0
17:44:15  <dwfreed> so if somebody used signed int, it would overflow
17:47:52  <LordAro> wouldn't necessarily segfault though :p
17:51:05  *** gelignite has joined #openttd
17:55:57  *** Progman has joined #openttd
17:57:00  <dwfreed> LordAro: it would give a tile count of -1
17:57:38  *** Gumle2 has joined #openttd
17:58:21  <FLHerne> someguy: Frankly, I don't see the point in trying to permit larger maps; even the current ones are too large for gameplay purposes
17:59:23  <FLHerne> Even with 15 active players, 4k^2 is enough for every company to essentially ignore all the others
17:59:54  <FLHerne> And of course for SP it's too large for anyone to really interact with more than a tiny fraction of it
18:00:15  <FLHerne> (no, dragging rails in straight lines directly over hills doesn't count... :-/)
18:01:23  <andythenorth> some people just want MOAR
18:01:32  * andythenorth would never ask for MOAR in newgrf :P
18:01:36  <andythenorth> ever never
18:01:40  <FLHerne> The map just turns into a featureless repeating pattern of towns, with stuff scrawled on it arbitrarily
18:01:51  <milek7_> even ignoring gameplay sense, it is just too slow
18:01:56  <FLHerne> (the default mapgen doesn't help)
18:02:49  <FLHerne> 512^2, or even 1024^2, can be divided into distinctive areas with recognisable features
18:03:25  *** tokai has joined #openttd
18:03:25  *** ChanServ sets mode: +v tokai
18:10:06  *** tokai|noir has quit IRC
18:34:43  <andythenorth> hmm
18:34:53  <andythenorth> what DID I do to make articulated trucks in Hog
18:35:02  <andythenorth> something about vehicles shorter than sprites
18:35:06  <andythenorth> and shifting offsets around :P
18:36:21  <someguy> there is a chance i remember incorrectly. either flfsr/glfsr or the geffe generator is patented. i'll have to check that out tomorrow
18:47:09  *** Thedarkb has joined #openttd
19:01:18  *** cHawk has joined #openttd
19:12:03  *** Gumle2 has quit IRC
19:21:01  <supermop_work> andythenorth: whatever i did was clunky
19:21:09  <supermop_work> but i think I followed you
19:24:12  *** glx has joined #openttd
19:24:12  *** ChanServ sets mode: +v glx
19:30:36  *** Gumle2 has joined #openttd
20:07:29  <andythenorth> hmm time to add some feldbahn eh
20:14:14  *** gelignite has quit IRC
20:31:05  <andythenorth> peter1138 did you finish all Doom mods yet?
20:32:43  <LordAro> !seen peter1138
20:32:49  <LordAro> @seen peter1138
20:32:49  <DorpsGek> LordAro: peter1138 was last seen in #openttd 3 days, 9 hours, 25 minutes, and 25 seconds ago: <peter1138> titties are better now
20:32:55  <LordAro> hmm.
20:33:07  <LordAro> didn't realise it had been quite so long
20:36:01  *** arikover has joined #openttd
21:07:27  *** HerzogDeXtEr has quit IRC
21:09:27  *** cHawk has quit IRC
21:10:26  *** andythenorth has left #openttd
21:15:10  *** sla_ro|master has quit IRC
21:21:09  *** tycoondemon has quit IRC
21:23:41  *** rocky11384497 has quit IRC
21:24:02  *** rocky11384497 has joined #openttd
21:30:40  *** Wolf01 has quit IRC
21:31:00  *** arikover has quit IRC
21:33:11  *** Progman has quit IRC
21:33:33  *** Arveen has quit IRC
22:00:13  *** tycoondemon has joined #openttd
22:02:37  <peter1138> All Doom mods? No...
22:02:49  <LordAro> he's back!
22:02:57  <peter1138> I was at the pub.
22:03:04  <LordAro> for 3 days?!
22:03:09  <peter1138> Y... no.
22:38:17  *** k-man has quit IRC
22:44:20  *** k-man has joined #openttd
22:53:03  *** nielsm has quit IRC
23:32:42  *** Gumle2 has quit IRC
23:34:48  *** Thedarkb has quit IRC
23:55:21  *** Thedarkb has joined #openttd
23:57:55  *** chomwitt has joined #openttd

Powered by YARRSTE version: svn-trunk