Config
Log for #openttd on 3rd October 2016:
Times are UTC Toggle Colours
00:25:39  *** Progman has quit IRC
00:33:02  *** gelignite has quit IRC
00:43:52  *** tokai|noir has joined #openttd
00:43:52  *** ChanServ sets mode: +v tokai|noir
00:50:42  *** tokai has quit IRC
01:41:20  *** Snail has joined #openttd
02:08:52  *** glx has quit IRC
03:11:53  *** Snail has quit IRC
04:51:13  *** keoz has joined #openttd
06:14:59  *** sla_ro|master has joined #openttd
06:16:12  *** keoz has quit IRC
06:47:27  *** keoz has joined #openttd
07:00:45  *** Progman has joined #openttd
07:47:48  *** Biolunar has joined #openttd
08:22:25  *** sla_ro|master has quit IRC
08:23:29  *** keoz has quit IRC
09:14:45  *** Wolf01 has joined #openttd
09:15:51  <Wolf01> o/
09:25:38  *** frosch123 has joined #openttd
09:28:56  *** umgeher has quit IRC
09:30:15  *** umgeher has joined #openttd
09:41:46  *** Arveen has joined #openttd
10:14:14  *** gelignite has joined #openttd
11:08:23  *** Samu has joined #openttd
11:14:53  <Samu> hello all
11:18:49  <Samu> question about multi-threading openttd: is it possible for each individual AI to have his own thread?
11:22:16  <Samu> treat an AI instance as a client that joins a multiplayer game - it has to download the map and has his own "openttd" environment?
11:25:36  <Samu> because currently, 15 AIs all share the same 1-thread
11:44:34  <planetmaker> samu: each AI *has* its own thread
11:44:59  <Samu> oh, well then i dunno what's slowing them down to 1-core usage
11:46:41  <Samu> openttd is barely above 12.5% cpu
11:46:45  <Samu> even with 15 ais
11:47:22  <planetmaker> they're not granted unlimited CPU. Their computation time is controlled by openttd
11:50:45  <Samu> and with 240 companies patch, same thing occurs, 12.5% cpu t.t
11:53:53  <Wolf01> Samu, it's like a card game, every player must wait its turn and has limited time to play a move
11:57:07  <Samu> hmm I see
11:58:40  <Wolf01> So if you have 240 players, every player must wait 239 others so do its move again
12:03:03  <Samu> what would be an easy way to speed multiple ais?
12:03:51  <Samu> async AIs?
12:05:34  <Samu> wish something could be done about this
12:08:03  <Samu> "AI-as-a-multiplayer-client"
12:09:24  <Samu> they would be able to play asynchronous
12:37:38  *** andythenorth has joined #openttd
12:37:40  *** andythenorth has left #openttd
12:38:00  <peter1138> with their own full state of the game
12:39:53  <Wolf01> frosch123, are you here?
12:41:05  <Eddi|zuHause> you still did not understand the topic...
12:42:52  <Wolf01> It's for coordination, if he doesn't have time I'll do something else
12:42:52  <peter1138> hmm?
12:43:59  <frosch123> i am here :)
12:44:13  *** Snail has joined #openttd
12:45:14  <Wolf01> Ok, then how should I proceed with the patch? Should I wait for a proper grf or just duplicate almost all what I've done?
12:45:26  <frosch123> the grf is fine
12:45:48  <frosch123> next thing is, we need some RoadSubType enum or so
12:46:05  <Wolf01> I already did that yesterday evening
12:46:20  <Wolf01> I'm going to change the usages of the RoadType
12:47:52  <frosch123> next, GetRailTypeByLabel and AllocateRailType need a RoadType parameter, so that they can allocate a subtype correctly
13:00:35  *** Snail has quit IRC
13:03:25  <Wolf01> 	for (int i = 0; i < numinfo; i++) {
13:03:25  <Wolf01> 		RoadType rt = _cur.grffile->roadtype_map[id + i][?what_here?];
13:04:12  <Wolf01> RoadTypeByte roadtype_map[ROADTYPE_END][ROADSUBTYPE_END]; <-
13:08:00  <frosch123> _cur.grffile->roadtype_map[feature == NF_ROADTYPE ? ROADTYPE_ROAD : ROADTYPE_TRAM][id + i]
13:08:25  <frosch123> s/NF/GSF/
13:10:55  *** Gja has joined #openttd
13:13:08  <Wolf01> Uhm, I should change all handlers for that
13:13:33  <Wolf01> ChangeInfoResult cir = handler[feature](engine, numinfo, prop, buf); <-
13:13:48  <Wolf01> Or duplicate the handler
13:14:14  <Wolf01> With a wrapper
13:15:56  <frosch123> imho remove the handler[]
13:16:07  <frosch123> just switch-case as in ReserveChangeInfo
13:16:55  <Wolf01> That's the handler loop which loops through all the reserve change info of the various features
13:18:19  <frosch123> https://paste.openttdcoop.org/p0cx02dud <- i mean like that
13:18:27  <frosch123> or are we talking about something else?
13:19:22  <frosch123> i don't see a point in "static const VCI_Handler handler[]". same can be done with a switch
13:19:26  <frosch123> it's only used once
13:20:47  <Wolf01> It's also in FeatureChangeInfo()
13:21:04  <frosch123> it's only in FeatureChangeInfo, is it?
13:21:52  <Wolf01> No, there are FeatureChangeInfo and ReserveChangeInfo which both call RoadTypeReserveChnageInfo
13:22:12  <frosch123> yes, but ReserveChangeInfo already has a switch
13:22:19  <frosch123> so you can just add the RoadType parameter
13:22:47  <Wolf01> Yes, I'm doing that, but FeatureChangeInfo uses a loop instead of a switch
13:23:08  <frosch123> loop?
13:23:26  <Wolf01> while (numprops-- && buf->HasData()) {
13:23:26  <Wolf01> 		uint8 prop = buf->ReadByte();
13:23:26  <Wolf01> 		ChangeInfoResult cir = handler[feature](engine, numinfo, prop, buf);
13:23:26  <Wolf01> 		if (HandleChangeInfoResult("FeatureChangeInfo", cir, feature, prop)) return;
13:23:26  <Wolf01> 	}
13:23:30  <frosch123> it uses the array of function pointers, which is just a fancy way to writing a switch
13:23:59  <frosch123> ChangeInfoResult cir = handler[feature](engine, numinfo, prop, buf); <- so that line becomes a switch
13:24:03  <frosch123> instead of using handler[]
13:24:07  <Wolf01> I don't know if that's because they need to be in order
13:24:30  <frosch123> the same loop is in ReserveChangeInfo btw
13:26:53  *** Biolunar has quit IRC
13:30:46  <Wolf01> 	uint8 *roadtypes = AllocaM(uint8, idcount); <- how do I change this?
13:31:17  <Wolf01> Oh, it's internal, no need to change
13:31:46  <frosch123> yep, only a local variable
13:38:09  *** HerzogDeXtEr has joined #openttd
13:39:02  *** supermop has joined #openttd
13:40:32  <Wolf01> Bah, I wanted to pass RoadType as optional parameter but I need to overload instead
13:43:06  <supermop> yo
13:43:26  <Wolf01> https://paste.openttdcoop.org/pw40ohj1e did this, could work?
13:44:49  *** HerzogDeXtEr1 has quit IRC
13:44:56  <frosch123> why so complicated?
13:45:22  <frosch123> why not pass the RoadType directly from ReserveChangeInfo?
13:46:11  <Wolf01> To keep it uniform with RoadTypeChangeInfo
13:46:58  <Wolf01> And to avoid calling it with wrong roadtype
13:47:23  <Wolf01> For example trying to allocate a tram with roads
13:51:04  <argoneus> good afternoon train friends
13:51:27  <sim-al2> hi
13:53:33  <Samu> hi
13:58:11  *** Alberth has joined #openttd
13:58:12  *** ChanServ sets mode: +o Alberth
13:58:24  <Alberth> moi
13:58:26  <Alberth> +n
13:58:31  <Wolf01> o/
14:03:35  <Wolf01> The sorting of roadtypes is a bit... I don't know how to handle it :P
14:04:24  <Wolf01> It uses GetRoadTypeInfo(), which now needs a base road type to get info for the subtype
14:09:39  <Milek7_> ouch
14:09:42  <Alberth> you also with actual road types I guess, can't you use those?
14:09:54  <Milek7_> UpdateWidgetSize is used inside Window constructor?
14:09:55  <Alberth> +sort
14:10:57  <Wolf01> What do you mean Alberth?
14:11:41  <Alberth> Milek7_: sounds a bit low-level, constructor usually handles the tree as a whole, but I have forgotten where UpdateWidgetSize exactly fits in the picture
14:13:10  <Alberth> Wolf01: probably mostly that I don't understand your reasoning :p    If you sort roadtypes, you have actual roadtypes, to get subtype information about?
14:13:29  <Milek7_> yes, constructor calls InitNested
14:13:58  <Alberth> Wolf01:  which contradicts your conclusion, so somewhere there is a hitch
14:14:27  <Wolf01> No, I don't have the actual roadtype, only the subtype, and since they are just numbers I'm not able to get the info from the right subtype
14:15:12  <Alberth> Milek7_: ah, right. Yes, it traverses bottom-up to get size information from the leafs to the root of the window, and then top-down to propagate position+size back to the leafs
14:15:44  <Wolf01> I have _roadtypes[][] = {{1,2,3,4}, {1,2,3,4}}, the function arguments are "1 and 2", which ones?
14:16:56  <Alberth> aside that the name should perhaps be  _road_subtypes, sorry, no idea
14:17:19  <Wolf01> I could also have 2 variables instead of a multi dimensional array, but it does not change that the compare function needs the base RoadType
14:17:41  <Milek7_> bit misleading, it isn't obvious that when UpdateWidgetSize is called constructor didn't complete ;p
14:22:14  <Alberth> trying to construct a window in a base class?
14:23:10  <Milek7_> no, i just wanted to access scrollbar in UpdateWidgetSize
14:23:23  <Milek7_> and GetScrollbar was at end of constructor
14:24:24  <Milek7_> had to split InitNested to CreateNestedTree and FinishInitNested with GetScrollbar in between
14:24:30  <Alberth> Wolf01: or you need a combined (base road-type,  sub road-type) pair or so
14:24:52  <Wolf01> I think that too
14:25:00  <Wolf01> Maybe an offset in the enum?
14:25:32  <Wolf01> ROADSUBTYPE_START = 0, TRAMSUBTYPE_START = 16?
14:26:56  <Wolf01> Or just do "SUBTYPE_BEGIN + rt * 16" in loops
14:27:20  <Alberth> make a function to compose and extract the numbers
14:28:00  <Alberth> can do that to/from an enum if you like
14:28:21  <Alberth> I think we have something with a combined number for vehicle windows
14:29:25  <Alberth> vehiclelist.h:31:struct VehicleListIdentifier {    <-- I think this one
14:34:21  *** Samu has quit IRC
14:39:23  <Wolf01> Pack()/Unpack() I bet
14:41:07  <Alberth> like like a safe bet :)
14:50:07  *** JacobD88 has joined #openttd
14:50:28  <Wolf01> I think I'm doing too many things at once
14:51:03  <Alberth> yeah, first type all "q", then all "w", then all "e", etc
14:53:40  <Wolf01> 	return this->basetype << ROADSUBTYPE_END | this->subtype; <- is this right?
14:53:54  <Wolf01> For the Pack() method
14:54:25  <Alberth> needs parentheses around the <<
14:54:51  <Alberth> and constant name is a bit weird, but it looks like the right idea
14:55:47  <Alberth> assuming you want the subtype in the lower bits, and basetype in the higher bits (doesn't really matter, unless you exploit that eg for sorting or so)
15:01:03  *** keoz has joined #openttd
15:01:37  *** debdog has joined #openttd
15:03:46  <Wolf01> https://paste.openttdcoop.org/pcgfb4o2f looks good?
15:04:59  *** Samu has joined #openttd
15:05:28  <Samu> conversion from 'unsigned long' to 'int' requires a narrowing conversion	openttd	D:\OpenTTD\trunk\src\economy.cpp	96
15:05:49  <Samu> english plz
15:06:40  <Alberth> unsigned long has more data bits than an int, so it you put the former in the latter, some bits may fall off
15:06:42  <Samu> 2560000000 is this number too big ?
15:08:34  <Alberth> it's hex    0x98968000   8 characters, so that's ok, but biggest is 0x7FFFFFFF
15:09:18  <Alberth> 0x9....  represents a negative value in an int
15:10:01  *** keoz has quit IRC
15:10:09  <Alberth> so the compiler uses unsigned value, but obviously that won't fit in a signed integer of the same size
15:10:59  <Wolf01> Samu https://en.wikipedia.org/wiki/Integer_(computer_science)
15:13:48  <Samu> interesting, i indirectly came into my reported bug
15:14:38  <Samu> https://bugs.openttd.org/task/6498
15:14:42  <Samu> int64?
15:19:10  <Alberth> that would work for your number
15:19:40  <Alberth> but it's really long
15:21:16  <Samu> what's the biggest amount of money a company can store?
15:22:27  <Samu> typedef OverflowSafeInt64 Money;
15:23:18  <Alberth> MAX_INT64  or INT_MAX64,  I always forget which one it is
15:24:16  <Samu> typedef OverflowSafeInt<int64, INT64_MAX, INT64_MIN> OverflowSafeInt64;
15:25:38  <Samu> #define INT64_MAX        9223372036854775807i64
15:26:53  <Samu> 7FFFFFFFFFFFFFFF
15:26:57  <Samu> ok i see
15:27:32  <Samu> i wonder what would happen once a company gets this much in the bank
15:27:55  <Milek7_> 64bits is "really long"?
15:28:09  <Milek7_> it is one register on most modern architectures
15:28:10  <Alberth> compared to 32 bits? yep :)
15:29:14  <Samu> do you have an inflation calculator?
15:30:08  <Samu> what would be 2 560 000 000 with an inflation ratio of 4% over 100 years
15:31:24  *** Arveen has quit IRC
15:33:53  <Milek7_> http://i.imgur.com/CBgItci.png
15:34:14  <Alberth> Samu: amount = 256.... ; for year in range(100):  amount = amount + amount * 0.04
15:34:43  <Wolf01> Alberth, so now I could pass the RoadTypeIdentifier and use Extract If I just need the base RoadType? (or ::Unpack() if I need all)
15:36:37  <Alberth> Wolf01: no idea what VehicleListIdentifier does in detail, so "Extract" and "Unpack" have no meaning to me, but I would guess you can
15:38:36  <Wolf01> TBH I should pack also the sort order, maybe if has catenary... maybe all
15:38:41  <Samu> 170 years is when inflation stops, interesting
15:40:52  <Alberth> Wolf01:  doesn't the type itself have that information already?
15:40:59  <Wolf01> No
15:41:07  <Alberth> :o
15:41:29  <Wolf01> I need to do GetRoadTypeInfo(RoadType) to have all the informations
15:41:30  <Alberth> I clearly have no understanding of "type" in road types, then
15:41:34  <Wolf01> And that was the problem
15:42:26  <Wolf01> Eh, in vanilla OTTD is easy... you have 2 types so you can just check if 0 or 1, all the other is hardcoded
15:42:31  <Alberth> I wouldn't store redundant information in the packed integer, it can only cause trouble
15:42:58  <Alberth> yeah, always a problem when you make a non-trivial extension :)
15:43:25  <Wolf01> Now I only need to change every single _roadtype array around in the code
15:43:26  <Alberth> they never prepared for the general case that you're making :p
15:48:10  <Wolf01> But I still think I need to do 2 different sorting functions, one for roadtypes and one for tramtypes
16:09:31  *** Mazur has quit IRC
16:10:24  <Milek7_> Samu: http://milek7.pl/more_companies_v4.zip
16:16:46  *** Mazur has joined #openttd
16:17:50  <Wolf01> I think I didn't understand how to use the RoadTypeIdentifier
16:28:09  <Samu> >	openttd.exe!`dynamic initializer for '_score_info''() Line 94	C++
16:28:15  <Samu> dynamic initializer?
16:28:50  *** keoz has joined #openttd
16:30:07  <Samu> ty milek
16:30:41  <Samu> the _score_info is set before the main menu is even reached?
16:30:53  <Samu> t.t
16:32:14  <Samu> rip
16:32:38  <Samu> was trying to scale the performance rating based on map size
16:33:27  <Samu> and wanted to account inflation into it
16:33:39  <Samu> but now... I dunno
16:35:04  <Milek7_> why?
16:36:49  <Milek7_> remove const from it
16:37:08  <Milek7_> and set it to other values somewhere in map loading
16:41:28  <Samu> inlfation happens every month
16:41:39  <Samu> can't be on map loading
16:43:25  <Milek7_> then set it every motnth
16:43:29  <Milek7_> i think it should work
16:59:11  *** glx has joined #openttd
16:59:11  *** ChanServ sets mode: +v glx
17:05:03  <Samu> generating 4096x4096 and 240 ais map
17:05:05  <Samu> keks
17:05:26  <Samu> also trying 250k ops so i can burn my house
17:05:32  <Samu> :(
17:06:06  <Samu> @calc 250000 * 240
17:06:06  <DorpsGek> Samu: 60000000
17:06:20  <Samu> heh...
17:06:33  <Samu> @calc 250000 * 15
17:06:33  <DorpsGek> Samu: 3750000
17:08:00  <Samu> i better create a dedicated server, I can barely move the mouse
17:14:54  <Samu> unserviceable
17:15:05  <Samu> this is too darn impossible
17:15:21  <Samu> 250k ops
17:18:07  <Milek7_> what are you trying to achieve? :)
17:18:52  <Samu> a tick is advancing every 4 seconds
17:19:07  <Samu> and we're still on 7th january
17:21:16  <Samu> this would need a supercomputer as a server
17:21:24  <Samu> and even then, i doubt it
17:24:26  <Samu> ticks are taking 7 seconds now
17:24:31  <Samu> still on 7th january
17:25:00  <Samu> ok, enough of that
17:25:09  <Samu> going back to 5k ops
17:25:12  <Samu> brb
17:27:05  <Alberth> Milek7_: he runs lots of AI games on the server, and spams the channel with years of the servers every couple of hours, with complaints on how slow it all is :)
17:30:10  *** Kurimus has joined #openttd
17:30:53  *** Flygon_ has joined #openttd
17:34:07  *** ParanoidPrincess has joined #openttd
17:34:22  *** ParanoidPrincess is now known as Etherische_Fluister
17:37:52  *** Flygon has quit IRC
17:47:18  <Samu> :)
17:47:39  <Samu> i like his patch
17:57:01  *** andythenorth has joined #openttd
17:57:28  <Alberth> o/
17:57:51  <Samu> 10 AIs died unexpectedly
17:59:10  <Samu> @calc 5000 * 240
17:59:11  <DorpsGek> Samu: 1200000
17:59:55  <andythenorth> lo
18:25:12  <supermop> yo
18:25:18  <supermop> no good shoes out there
18:25:31  <supermop> underwhelmed by mens fashion this season
18:25:53  <supermop> and everyone is still wearing stan smiths after like 2 years
18:26:10  <supermop> going to just start wearing a suit every day to no think about it
18:26:25  <andythenorth> supermop: can’t share your pain
18:26:30  <andythenorth> shoes I have sorted
18:26:38  <andythenorth> nailed on
18:28:04  <supermop> all my tretorn sneakers are falling apart
18:28:17  <supermop> cant walk on wet sidewalks as ill get my sock wet
18:28:55  <supermop> and they all really smack of 2009 - but whatever is the look now is stupid
18:29:34  <Wolf01> andythenorth, then share my pain, this subtypes thing is discouraging
18:29:51  <andythenorth> supermop: nike pre-montreal, always classic
18:29:56  <andythenorth> dates from about 1972
18:30:03  <andythenorth> Wolf01: what is pain?
18:30:17  <Wolf01> Errors everywhere
18:30:25  <supermop> andythenorth: nikes dont fit me, so i wear addidas or puma usually
18:31:10  <andythenorth> supermop: ok, can’t be helped :D
18:31:10  <supermop> tretorns being owned by puma
18:31:20  <supermop> but shit quality apparently
18:31:22  <supermop> damn swedes
18:32:42  <supermop> need ferragamo but architecture doesn't pay the wage for the style it expects
18:32:59  <supermop> did you guys finish the SV game?
18:33:01  *** sla_ro|master has joined #openttd
18:35:06  <Alberth> :O did we have one?
18:40:28  <andythenorth> no and yes
18:40:29  <andythenorth> in order
18:42:21  <Alberth> I was thinking about a new freight challenge, small long map, and a big city across the map where you cannot tunnel under
18:42:21  <Alberth> factories at either side of the city
18:43:41  *** supermop has quit IRC
18:44:54  *** supermop has joined #openttd
18:45:51  *** keoz has quit IRC
18:47:13  <andythenorth> interesting
18:47:19  <andythenorth> ships round the edge :P
18:47:20  <andythenorth> planes :P
18:49:50  <supermop> ?
18:55:50  <Wolf01> https://1drv.ms/u/s!AgUFeOGLNNfVhdJb5qXQXZwkjHmBgA patch, compiles but I get asserts on GetRoadTypeInfo(), I need somebody smarter than me to check what I have done
18:56:07  <Wolf01> (patch against my dev branch)
18:58:18  <Alberth> andy: tramz and RVs :)
19:15:32  *** frosch123 has quit IRC
19:15:39  <andythenorth> Wolf01: I looked at the patch, but eh
19:15:42  <andythenorth> out of my depth there
19:16:20  <Wolf01> It's even out om my capabilities
19:16:25  <Wolf01> *of
19:17:08  <Wolf01> I just put there things in a way to not trigger syntax and compile errors :D
19:19:36  <Wolf01> Meanwhile I tried to keep an apparent feel of "it works"
19:22:48  *** sla_ro|master has quit IRC
19:40:01  *** goblin has joined #openttd
19:40:06  <goblin> hello :-)
19:41:49  <Samu> @calc 256-7
19:41:49  <DorpsGek> Samu: 249
19:43:06  <goblin> the second example (with mail bags) at https://wiki.openttd.org/Game_mechanics#Delivery_payment_rates shows 3520 pounds, however using the formula at https://wiki.openttd.org/Cargo_income gives 4550*100*100*235/2^21 = 5098.58 (I used t = 40)... How comes the difference is so big?
19:50:24  *** Webster has joined #openttd
19:50:50  <Alberth> it's a wiki, people write anything, sometimes it holds, sometimes it doesn't, or only partly
19:50:55  <goblin> :-)
19:51:00  <goblin> righty
19:51:13  <Milek7_> Samu: huh, do you want even more companies?
19:51:35  <Samu> :o
19:51:53  <Samu> it's a weird number 249
19:52:49  <Alberth> not sure why you bother calculating payments, you get too much money anyway, who cares how much exactly
19:53:25  <Milek7_> not for vactrains :)
19:54:09  <goblin> Alberth, because I just created a very very long route across my entire map, and delivering valuables gives me less money than delivering goods across 3/4ths of the map, and I'm wondering why
19:54:54  <Samu> the new version of AIAI is a damn cheater
19:55:00  <Samu> station spreading...
20:00:08  <andythenorth> valid tactic ;)
20:02:30  <andythenorth> Wolf01: tonight I have nothing to offer on NRT :P
20:02:32  <andythenorth> sorry
20:02:37  <andythenorth> full Monday
20:03:10  <Wolf01> NP
20:07:54  <goblin> so I'm kinda wondering what's the optimum distance to transport cargo for
20:08:21  <goblin> I guess it's also a function of train speed
20:10:06  <Alberth> yes, and speed of loading
20:10:46  <goblin> yees, valuables are produced much more slowly than goods
20:11:01  <goblin> should I perhaps shorten the train length for valuables to get them loaded faster?
20:11:03  <Alberth> ie transit days start counting when they get on the train
20:11:36  <goblin> that's what I was wondering as well, couldn't find that on the wiki :-)
20:15:05  <Alberth> I use a terribly simple rule, as long as it's not negative, it's ok :)
20:16:15  <goblin> so you only optimize flow?
20:16:15  <Alberth> I get money faster than I can spend it, how much faster isn't that relevant
20:16:59  <Alberth> yep, I like building networks transporting lots of cargoes
20:17:26  <Alberth> typically sharing tracks, under servicing and breakdowns
20:17:42  <Alberth> causing major havoc if you're not careful
20:18:53  <goblin> ah, the breakdowns. Last time I played, someone said to disable them entirely because they break the flow and there's nothing you can do to alleviate that. Is that still the case? I.e. is it possible for trains to pick a different path if there's a broken train in front of them?
20:19:16  <Alberth> they do avoid each other yes
20:19:49  <Alberth> breakdowns effectively make your network have less capacity
20:20:13  <Alberth> you need more room around a train so it can break down for a while without total disruption
20:20:38  <Alberth> so you need to expand to more tracks earlier
20:20:58  <goblin> hmm, ok, sounds interesting
20:21:13  <Alberth> they also make reliability and age a useful notion
20:21:20  <goblin> so a lot of lanes and a lot of lane switching options
20:21:28  <goblin> yeah, I always like them
20:21:33  <goblin> breakdowns
20:21:45  <goblin> just wasn't sure how to plan for them, but maybe it's different these days :-)
20:21:50  <Alberth> not much switching options, in my experience
20:22:09  <Alberth> otherwise they constantly switch track which also reduces throughput
20:22:21  <goblin> hm
20:22:47  <goblin> but then if one breaks down, it'll block possibly very many other trains behind it
20:22:58  <Samu> i wonder how would a GS handle computations for 240 companies
20:23:01  <Alberth> then you have too many trains on that track
20:23:44  <goblin> well, it's a mainline... so it's meant to carry a lot
20:23:47  <Alberth> with high enough reliability, it's not a disaster to have a broken train for a while
20:24:42  <Alberth> you need a more distributed approach :)
20:24:57  <goblin> oh.
20:25:20  <Alberth> you can't just dump a zillion trains onto one track and it runs
20:25:53  <goblin> well, the coop guys do it like that I think
20:25:55  <Alberth> the concept of "too full" arrives a lot earlier
20:26:24  <Alberth> yes they do
20:26:49  <Alberth> they "cheat"  :p
20:26:56  <goblin> aah. :-D
20:27:14  <Alberth> although at their scale it makes sense to not get disruptions in the flow
20:27:37  <Alberth> but it's a matter of wht you like to play
20:28:10  <Alberth> some people do precise time tabling, etc. breakdowns make that impossible
20:28:47  <Alberth> others just want to have a massive transport over one big line, breakdown also make that impossible
20:29:05  <goblin> yeah, exactly
20:29:12  <Alberth> I like to find out how to transport stuff with breakdowns
20:29:31  <Alberth> or transport all cargo all over the map, using cargo-dist
20:29:52  <goblin> I was thinking how to play with breakdowns, but still have high-throughput lines
20:30:04  <goblin> i.e. how to make trains not switch lanes constantly, but only if there's something broken in front
20:30:05  <Alberth> it's a challenge
20:30:41  <Alberth> I think it should be allowed to change as it wants, but the other trains should not get into trouble for it
20:30:58  <Alberth> I haven't yet figured out how to do that
20:32:17  <goblin> I know of a way
20:32:50  <goblin> expose the signal changes via a scripting API and have the crowd think up a solution ;-)
20:33:03  <Alberth> :D
20:34:04  <Alberth> tbh, not knowing the answer is much more fun
20:35:07  <Alberth> I spent 4 years or so figuring out how to distribute all cargoes over all industries with cargodist
20:35:19  <Alberth> once I had the solution, all fun was gone
20:36:22  <Alberth> although there are a few things I can still try
20:36:28  <fonsinchen> so, what is the solution? I never figured that one out ...
20:36:39  * goblin reads up about that cargodist
20:38:06  <Alberth> easy, you transport cargo from source industry to destination industries, or some other way where you visit more than single source+destination
20:38:40  <goblin> ah yes
20:38:42  <Alberth> cargo-dist will do the rest in distributing cargoo over the routes that you provide
20:39:11  <goblin> the other problem that was always nagging me is that why on earth would a power station pay k for coal from the other end of the map when they can have it much cheaper from a local mine
20:39:12  <Alberth> and you can do that for every single cargo on a separate network
20:39:41  <Alberth> goblin: not all coal is equal :p
20:39:45  <goblin> ;-)
20:40:08  <Alberth> but you're projecting real life ideas into the game, which generally doesn't work
20:40:12  <goblin> yeah
20:40:23  <goblin> no I thought maybe this cargodist thingy makes it more reasonable
20:40:42  <goblin> seeing as passengers want to go to a specific place, for instance
20:40:51  <goblin> maybe the coal would only want to go to specific power stations too ;-)
20:41:07  <Alberth> only partly, pax still stay in your network
20:41:20  <Alberth> they don't want to go to another town
20:41:25  *** JacobD88 has quit IRC
20:42:04  <Alberth> ie if you make point-to-point connections only, cargodist doesn't do anything
20:42:20  *** FLHerne has joined #openttd
20:42:56  <Alberth> where each point is connected to 1 other point only
20:43:04  <goblin> nodnod
20:43:28  <Alberth> for that you need cargodest :)
20:43:40  <Alberth> which we also had as patch for a while
20:45:22  <Samu> TownPool::MAX_SIZE = 64000
20:45:33  <Samu> hmm max number of towns is 64000? must test
20:47:28  <Alberth> fonsinchen:  http://devs.openttd.org/~alberth/Fruntstoke Common Transport, 2072-03-05.sav
20:53:23  <Samu> wow it really is generating 64000 towns
20:53:27  <Samu> hmm :)
20:54:03  <FLHerne> That sounds like too many
20:54:31  <FLHerne> Who invented the NFO spec for RV speeds?
20:54:34  <FLHerne> WHY?
20:55:43  <sim-al2> Reading the wiki page on vehicle speed is fun
20:55:53  <sim-al2> like how the units are km-ish
20:56:13  <FLHerne> I'd assume "bodging after the fact", except both properties claim to be introduced in the same version
20:56:15  <Alberth> FLHerne: probably early in ttdpatch development, so very original game compatible
20:57:01  <andythenorth> bye
20:57:01  *** andythenorth has left #openttd
20:58:13  <Samu> the map generator doesn't scale that well
20:58:27  <Samu> but... whatever
20:58:38  <Samu> 64k towns is an absurd amount either way
20:58:56  *** V453000 has left #openttd
20:59:05  *** V453000 has joined #openttd
20:59:27  <Samu> 64k easily fit on a 4kx4k map, let's try a smaller map
21:00:40  <Samu> or maybe i'm being mislead
21:00:47  <Samu> i'd like to count the total
21:02:17  *** Alberth has left #openttd
21:08:04  * fonsinchen checks it out
21:16:47  <fonsinchen> nice. I was expecting more trains though. It seems to be easier for cargo than for pax and mail. I always lose patience when trying to cram more tracks into growing cities.
21:22:23  <goblin> is it my imagination, or is there something preventing the existence of oil wells after a certain date?
21:23:28  <Samu> there is
21:24:12  <Samu> they won't spawn from 1960 i think, not sure
21:24:17  <Eddi|zuHause> yes
21:24:18  <Samu> maybe even less
21:24:39  <goblin> thanks! /me grumbles
21:24:40  <Eddi|zuHause> they get phased out so you need to service oil rigs instead
21:25:20  <goblin> are there any other industries with that behaviour?
21:25:30  <Eddi|zuHause> no
21:25:41  <Eddi|zuHause> also, this only applies to the temperate climate
21:25:41  * goblin curses his luck
21:25:51  <FLHerne> Some FIRS ones, but only secondaries
21:25:55  <goblin> yeah, I'm on temperate
21:26:06  <FLHerne> So at least the ones you're using don't vanish
21:26:55  <Eddi|zuHause> that's not true at all
21:27:29  *** keoz has joined #openttd
21:27:47  <Eddi|zuHause> well, let's say "it's complicated"
21:30:14  <Samu> ah, the 4kx4k map did not generate 64000 towns, it generated 24009
21:30:17  <FLHerne> Don't vanish unless you serve them badly and use non-default parameters?
21:30:41  <FLHerne> Samu: Might have run out of town names
21:31:03  <Samu> or out of space
21:31:10  <Samu> it's english names
21:31:27  <Samu> town names English (original)
21:31:34  <Samu> how many names does that allow?
21:33:45  *** cinch has joined #openttd
21:36:51  *** Kurimus_ has joined #openttd
21:37:31  <FLHerne> I tried to estimate it and got about 2m
21:37:41  <FLHerne> Might be wrong
21:40:23  <Samu> 2 million? wow that's huge
21:40:32  <Samu> so i ran out of space
21:41:06  *** Kurimus has quit IRC
21:42:41  *** Kurimus_ has quit IRC
21:42:55  *** Kurimus has joined #openttd
21:59:51  *** FLHerne_ has joined #openttd
21:59:57  *** FLHerne has quit IRC
22:00:13  *** Progman has quit IRC
22:00:31  <Samu> how much is Random() & 7
22:00:47  <Samu> what is this Random() doing here :(
22:05:16  <Samu> 		Random returned	4292697756	unsigned int
22:05:35  <Samu> @calc 4292697756 & 7
22:05:35  <DorpsGek> Samu: Error: Something in there wasn't a valid number.
22:07:45  <Samu> it's 4
22:08:22  <Samu> 46+4 = 50
22:08:29  <Samu> and now scale it by map size
22:09:37  <FLHerne_> Samu: '& 7' means 'take the lower three bits'
22:09:46  <FLHerne_> So, random number from 0 to 7
22:10:29  <Samu> nice, 46 + 7 = 53
22:10:41  <Samu> scaling 53 to map size, must find
22:12:05  <Samu> want to discover the highest value of "high" number of towns in 4096x4096 map
22:13:26  <Samu> 		ScaleByMapSize returned	13568	unsigned int
22:13:34  <Samu> got it, thx FLHerne_
22:14:21  *** FLHerne_ has quit IRC
22:31:15  <Samu> 15000 seems like a good number
22:37:47  *** Kurimus_ has joined #openttd
22:37:59  *** Biolunar has joined #openttd
22:40:34  <Samu> 3392
22:40:42  <Samu> probably not, grr
22:41:19  *** Kurimus has quit IRC
22:42:29  *** keoz has quit IRC
22:48:04  *** Kurimus_ has quit IRC
22:49:44  <Samu> ok, 20000 is the better ratio
22:50:05  <Samu> 4096x4096 is 4 times bigger than 2048x2048
22:50:24  *** gelignite has quit IRC
22:50:44  *** Samu has quit IRC
22:50:51  *** Samu has joined #openttd
22:58:17  <goodger> to be pedantic it's only three times bigger
23:02:50  *** supermop__ has joined #openttd
23:09:23  *** supermop has quit IRC
23:09:44  <Samu> i can't manually set a value over 5000
23:10:40  <Samu> @calc (4096*4096)/(2048*2048)
23:10:40  <DorpsGek> Samu: 4
23:10:45  <Samu> no, it's 4
23:10:53  <Samu> @calc 5000*4
23:10:53  <DorpsGek> Samu: 20000
23:12:46  <Samu> my main concern now is to find out if all these town name generators can create 20k names
23:15:57  <Samu> i think i need a super flat map to really create all 20k towns
23:17:25  <Samu> 19995 towns generated
23:17:53  <Wolf01> 'night
23:17:56  *** Wolf01 has quit IRC
23:27:37  <Samu> Milek7_: I'm getting weird errors in the dedicated server with AIs "dbg: [script] Next() is invalid as Begin() is never called"
23:27:59  *** Biolunar has quit IRC
23:28:08  <Samu> need to check if it's generated by the AI or some other type of error from openttd
23:30:27  <Samu> D:\OpenTTD\trunk\src\script\api\script_list.cpp(474):		DEBUG(script, 0, "Next() is invalid as Begin() is never called");
23:31:21  <Samu> who uses this script_list thing
23:38:15  <Samu> there's not enough Austrian town names t.t
23:38:50  <Samu> there's about 50xx
23:38:53  <Samu> oh well
23:44:23  <Samu> i'm nearly brute forcing the generation of austrian town names
23:45:21  <Samu> can't go past 5410
23:46:00  *** HerzogDeXtEr has quit IRC
23:49:19  <Samu> actually can't go past 5409
23:49:30  <Samu> it's attempting to create 5410th austrian town
23:52:13  <Samu> ok, next is...
23:52:25  <Samu> catalan
23:55:03  <Samu> 13726 :(

Powered by YARRSTE version: svn-trunk