<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>#openttdcoop &#187; Wiki</title>
	<atom:link href="http://blog.openttdcoop.org/category/wiki/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.openttdcoop.org</link>
	<description>The #openttdcoop and OpenTTD Blog</description>
	<lastBuildDate>Thu, 26 Aug 2010 19:06:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Advanced Building Revue 06: Hubs</title>
		<link>http://blog.openttdcoop.org/2010/07/10/advanced-building-revue-06-hubs/</link>
		<comments>http://blog.openttdcoop.org/2010/07/10/advanced-building-revue-06-hubs/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 15:29:58 +0000</pubDate>
		<dc:creator>V453000</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=631</guid>
		<description><![CDATA[The fun, the creativity, the high league, the madness, the spaghetti, the mess, the weirdness, the braindisruptors. What else is so typical for our superior gaming style? Building hubs. In this article I am going to go into hub logics and techniques, examining some possibilities how a hub can be made. This article should help [...]]]></description>
			<content:encoded><![CDATA[<p>The fun, the creativity, the high league, the madness, the spaghetti, the mess, the weirdness, the braindisruptors. What else is so typical for our superior gaming style? Building hubs. In this article I am going to go into hub logics and techniques, examining some possibilities how a hub can be made. This article should help one realize what to think about and what to consider when building a hub. Note: This article expects you have proper building style as your blood group.</p>
<p><a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_intro.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_intro.png" alt="Hubs" width="500" height="334" /></a></p>
<p><span id="more-631"></span></p>
<h3>Introduction</h3>
<p>Hubs are one of the most key thing in any OpenTTD game that isn&#8217;t just point-to-point but is actually meant to be fun. Everyone built hubs, everyone had trouble building them, but everyone solved these problems a bit differently. In the very beginnings, a common thought process is “hub &#8230; well hub has to be 4way!”&#8230;</p>
<p>If you look at public server games for example 01 and 186, I believe you will notice that something has changed. In the early times, we built 4way hubs. Although we do not use this anymore, I will point out a few interesting things about these. Look at the very structure of the 4way hub – you basically can&#8217;t unify it! Each line often goes quite differently based on how the builder&#8217;s style is, sometimes using roundabouts, whirpools, just mess and rarely the whole hub gets reversed. The point behind this is, that 3way hubs look basically all like “an ultimate 3way”.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_3way.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_3way.png" alt="Hubs" width="500" height="337" /></a><br />
From there one could say “Well, what changed from that time when you still build the same design?” This is because long time ago, we focused on hub design. Now we focus on details, components, mechanisms, from which the hubs consist – which basically means: We care about proper building. Now if we return back to the beginning of this paragraph, we can see that using both “caring about design” and “caring about proper building” are just too much and the 4way hubs are becoming too large today <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . A very nice example gives MZG04 and PSG 173 – Pile transport, where we tried to re-play an old game and you can see how large a normal 4way hub becomes there&#8230; but of course they work better with proper build style <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p><a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_173Mark1.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_173Mark1.png" alt="Hubs" width="500" height="277" /></a><br />
This is for me the ultimate 4way hub. Built by nobody else than Mark himself, see how the tracks swap in directions. This makes “the sweet-spot” much easier and compact to build. (More about sweet-spot further down in the article.) The only downside of this styled hub is that it gets huge with wider lines because of more complex balancers you usually want to use <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> . Although in this form, it is a true masterpiece.</p>
<h3>Hubs as puzzle</h3>
<p>Because hub designs are nicely shown on <a href="http://wiki.openttd.org/Junction" onclick="pageTracker._trackPageview('/outgoing/wiki.openttd.org/Junction?referer=');">OpenTTD wiki</a> (from which we use only the “ultimate 3way”), I will focus only on the segments of hubs – mergers, splits, uses of tunnels and bridges, and some minor design issues such as the sweet-spot. As an example-vault I will be using one of my savegames, this time a special game-for-article. Downloadable right <a href="http://blog.openttdcoop.org/files/blog/V453000/Caterpillar Racer.sav">here</a> <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . (r20080)</p>
<h3>Sweet-Spot</h3>
<p>The hardest part of every hubs is where trains turn left. It is just like when you are driving a car, when you turn left, you cross everyone else. This is particularly evil in 4way hubs, but let&#8217;s put these aside. In a 3way hub you still need to solve this spot somehow. I highly recommend beginning the building of a hub with this spot &#8211; the centre of the hub, or at least make a planning how will it look. That way you reduce the possibility of &#8220;forgetting a connection&#8221; &#8230; which often results in some connections around all of the hub and so on. In the few following images I will show how you can solve this, with some commentary <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<h5>Out of the Hub</h5>
<p>With this style one first gets outside the hub and solves the issues somewhere later. This is quite comfortable when you want to let the ML clear. (like when you do not want to tunnel it anyhow) Then you just swap the tracks when in safe position. This technique is very friendly for usage.<br />
Demonstrated by Intexon in psg 173, BBH 02. (note that the hill disables sooner swap, otherwise it could have been smaller <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_173bbh02.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_173bbh02.png" alt="Hubs" width="500" height="332" /></a></p>
<h5>Solve Inside</h5>
<p>Here we can see how Jondisti just makes the line A and then crosses it with B. This saves you space behind the hub, while sacrificing some inside.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_173bbh14.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_173bbh14.png" alt="Hubs" width="500" height="332" /></a></p>
<h5>Clash Together!</h5>
<p>This is a style where you just go one over another, using bridges and tunnels. Great way especially if you can make it all close together and keep compact, because the 3 levels of track atop of each other are like +50% than normal tunnel over track in terms of tracks-per-tile. (if you want to bother with numbers, note that with 3level it is 200% &#8211; 100% from the one track and 50% from tunnel and bridge, because they are doubled therefore have half value <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  but that isn&#8217;t important, just save space <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) A nice example of this can be found in psg 186, MSH 03. Note how the hub is basically mergers-only.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_186msh03.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_186msh03.png" alt="Hubs" width="500" height="277" /></a></p>
<h3>Splits</h3>
<p>Usually the part which is easiest. You just split lines from each direction. In this case, you can play with the actual order – if you split outer line first or outer, or both lines inside. Another decision-time comes when you bridge/tunnel the ML, or the split line.</p>
<h4>Bridge vs. Tunnel</h4>
<p>How old this conflict is? Like ancient and eternal … in splits it is probably most significant. As seen in the image below, you can save a lot of space with bridges made like this. Also, it is highly friendly with presignals which are just best unless you want to prio the bridges <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_split.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_split.png" alt="Hubs" width="300" height="174" /></a><br />
The basic rule of splits is “just use anything to get those lines away”.</p>
<h3>Mergers</h3>
<p>Something like a mirror-difference from splits. The hardest, most key thing mostly defining how the hub will actually look. (if you plan to build a good one) This paragraph will focus on systematic styles of mergers, not entirely the technique how they are built … because that would be just endless topic. <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The point is that basically any merger could work&#8230; the question is if you are lucky enough and the traffic goes just like you wanted. This leads to considering absolute balancing as an ideal case, but in many games, some &#8220;less&#8221; balanced mergers are just fine.</p>
<h4>Not balancing “merge”</h4>
<p>Balancing … why do we need balancing when this works? Note that if this ever worked, then it is ONLY a matter of luck that trains come from the right lines. If one relies on merging “outer with outer” and “inner with inner” or anyhow similarly like being smart and joining “outer with inner” and “inner with “outer: etc., it still is not balanced, thus relies on luck where trains come from. The greatest fail comes when you get to high amount of lines and you try to swap the lines where trains come just based on where you feel traffic demands it. Now end about such “mergers” and let&#8217;s get to something more serious <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<h4>Fully Prioritized Merge</h4>
<p>As a Full priority I take such prio that gives absolute way – therefore preventing any slowdowns on ML by the joining trains.<br />
This basically means that an amount of lines join others, giving them absolute prority. A style of joins typical for SLHs where we just want the SL trains give way to the ML ones. Although some people use these things also on BBHs and MSHs. Note that I am not saying it is a mistake! All matters on how you do it, the situation you are in, and so on.</p>
<h4>Fully Prioritized Merge joining all lines</h4>
<p>This is common for SLHs. One line joins all others. Typically looks like this. (for any amount of ML lines, just multiply/expand the design – also, when expanding you should toy with the waiting bays so it performs best) Here goes an example&#8230; joining only 2 lines.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_1to2.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_1to2.png" alt="Hubs" width="300" height="128" /></a></p>
<h5>Multi-to-multi-line join style</h5>
<p>This implies that you want to give all joining lines an access to all of the joined lines. This is practically doable only with 2line join if we are talking about any reasonably simple and compact merger. Again, there are many techniques how to do this, but one note to be highlighted is: care about signals, making sensitive gaps is really needed in order to reach maximum throughput.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_msh01merge.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_msh01merge.png" alt="Hubs" width="300" height="127" /></a></p>
<h4>Fully Prioritized Merge joining some lines</h4>
<p>This is often used when more lines join more lines. Typical examples in PZ05. The only “not ideal” thing is that again, it doesn&#8217;t balance completely, but well … you want to balance 4-&gt;8? <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_PZ05.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_PZ05.png" alt="Hubs" width="500" height="277" /></a></p>
<h4>Half Prioritized Merge</h4>
<p>This merging style would mean for me that I am merging two equally important lines. We have some priorities in order to make them choose lines better, but we do not have full priorities because it could make trains be stuck in them for too long.<br />
This is typical for All-to-all balancers.<br />
Here we can see a very smart solution by Mark. Using a prio that would be normally considered broken, because only one of these tunnels is prioritized.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_173Mark2.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_173Mark2.png" alt="Hubs" width="300" height="139" /></a></p>
<h4>All-to-all Merge</h4>
<p>There have been quite a few forms of a merger that allows all entering lines all possible exits. These mergers are easy to build because they have quite a systematic look, they are pretty simple and they fit all forms, from 4-&gt;2 to X-&gt;Y. You can use this design with some priorities or without them. Under heavier loads the trains that join later can have trouble with joining if there are some priorities. Note the PF traps behind the merger. This makes balancing a bit better because it reduces train preferences of one or other line.(I do not want to say the PF traps are needed, they only are a good thing to be considered.)<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_A2A.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_A2A.png" alt="Hubs" width="300" height="199" /></a></p>
<h3>Hub Composition</h3>
<p>Although we still use similar things to “ultimate 3way”, there still are some techniques and styles, how to save space and keep throughput. Most of these things is smart usage of tunnels and bridges, and well … creatively pulling hub parts together by knowing which parts you are going to use (this also involves for example expecting high priorities, thus saving space for them) and working with terrain.</p>
<h4>Bridge &amp; Tunnel abuse</h4>
<p>A super-powerful move while building hubs is using 3level tracks correctly (tunnel – rail – bridge). In general, bridges are good because they are more compact, but on the other hand, can not go under anything. On the other hand tunnels are harder to place, more space-demanding, but are able to go under for example a power plant or signal transmitter wall in the middle of your hub.</p>
<h5>Multi-levels</h5>
<p>In my example game I used only tunnels to make it a bit harder, so the demonstration of what to do is more significant and easier to replicate when you have both bridges and tunnels available, therefore I think more educational <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . (Note: tunnels still can go under each other if you have them in different levels! It only is much harder than bridge over tunnel. Theoretically, you could make Nlevel thanks to Ntunnel-tunnel-rail-bridge … but that would in most cases result in too large tunnels … anyways, it is also a possibility to be considered.)<br />
Here come some examples of dealing with 3levels&#8230; BBH02 is particularly interesting because it does not keep the lines going the same direction together.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_slh01.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_slh01.png" alt="Hubs" width="300" height="196" /></a><br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_slh06.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_slh06.png" alt="Hubs" width="300" height="199" /></a><br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_bbh02.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_bbh02.png" alt="Hubs" width="300" height="208" /></a></p>
<h5>Directional Tunnels</h5>
<p>This is quite a classic technique how to keep hub systematic and clean. Because you decide you will bridge the straight line still and still, you save some space in the other direction. This is usually done by “making parts” of hub and bringing them close together, resulting in each part having it&#8217;s tunnel.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_slh04.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_slh04.png" alt="Hubs" width="300" height="199" /></a></p>
<h5>Joining bridges together</h5>
<p>The art of this style (also applies for other styles) where casual hub differs from a masterpiece, often is the ability to merge some “parts” together, making them for example both on one tunnel. This can for example save a lot of space. The basic point is you try to use as long tunnels as possible, and stuff there as much things as possible. This can be positively influenced by higher TL, because you can use even longer tunnels. The problem is – curves eat the space back.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_msh03.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_msh03.png" alt="Hubs" width="300" height="199" /></a></p>
<h3>Hub Operation</h3>
<p>The most important thing is how the actual hub works. This is usually only influenced by the mergers. Since I have already noted some kinds of mergers and what situation they fit, I will not repeat it again and I will just show some interesting usages. (these are just examples to show what I mean, I can&#8217;t possibly show everything)</p>
<h4>Merger Logics</h4>
<p>This is a hub that leads mainly to the goods drop. ML is from A to B, C is the goods exit. What I want to show here is not just usage of mergers by type of hub or how it fits the landscape, but also how they work. See that while trains coming from the goods drop give priority on the A and B joins to the ML, while they merge equally on merge C. Definitely a good point to consider – think how is the hub actually be used.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_bbh04.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_bbh04.png" alt="Hubs" width="300" height="199" /></a></p>
<h4>Shifters and hubs</h4>
<p>SML hubs are never very popular because they are just huge, so I will ignore these. I rather want to mention an idea I came up with … that is “simplification” of balancing. In MSH 01, I have built a balancer where trains from A have one track prioritized and one giving way (B). Of course entering the balancer from the way where you got to choose and give way to others is uncomfortable. Therefore we can shift trains (C) from that line to the “already joined” one. This is especially useful with badly accelerating trains because trains join the line without stopping. I used it only for LL_RR hub, but it could be used even in larger scales, having for example LLLL_RRRR coming from each side, you could shift and ignore those tracks in further balancing, making the mergers smaller and simplier. (note that I tried to place the shifters inside hubs, therefore adding no more space, but stuffing them there <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/V453000/hubs_msh01shift.png"><img class="aligncenter" title="Hubs" src="http://blog.openttdcoop.org/files/blog/V453000/hubs_msh01shift.png" alt="Hubs" width="300" height="199" /></a></p>
<h3>Conclusion</h3>
<p>If I try to conclude what I have just said, then it is: Building a hub is considering possibilities, pulling the right strings, sacrificing the space on one side for more space somewhere else. Build hubs not “as always” but know what you want from the hub, know what do you expect from it, consider under what circumstances you are, consider how big will it be, think about it&#8217;s components and try to mix them together for maximum compactness. Usually the point you want to reach is &#8220;have as frequent rails as possible in the hub&#8221; &#8211; using all of the footprint the hub takes <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . All I have written is just a theory but still, most of building is practice, so this guide will not be enough itself <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Build and develop your own style! <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  If you put it all together, you can make a compact, complex and often a great hub that works just great. Now what are you waiting for, go bake someone&#8217;s brain off!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/07/10/advanced-building-revue-06-hubs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Building Revue 01</title>
		<link>http://blog.openttdcoop.org/2010/03/09/611/</link>
		<comments>http://blog.openttdcoop.org/2010/03/09/611/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 01:21:01 +0000</pubDate>
		<dc:creator>V453000</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=611</guid>
		<description><![CDATA[As we all know, we are a community based on cooperation. This also means that we must understand each other and see what each thing is supposed to do. I would like to talk about reading other’s ideas because of two basic reasons. The first is correcting stuff. Why do we have to use signs [...]]]></description>
			<content:encoded><![CDATA[<p>As we all know, we are a community based on cooperation. This also means that we must <strong>understand each other</strong> and see what each thing is supposed to do. I would like to talk about reading other’s ideas because of two basic reasons. The first is correcting stuff. Why do we have to use signs “on purpose” and why do some stations fail even though they are copied from the working ones? And what does that mean in general?</p>
<p><a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/archive/7/72/20100309104953!AlpineGetaway01.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/archive/7/72/20100309104953_AlpineGetaway01.png?referer=');"><img class="aligncenter" title="Sign Spam" src="http://wiki.openttdcoop.org/images/archive/7/72/20100309104953!AlpineGetaway01.png" alt="Sign Spam" width="400" height="294" /></a><br />
<span id="more-611"></span><br />
Sign spam in PSG 160 where this station was shown for the first time. ((<em>See that many signs have DO NOT, WHO REMOVED? And so on&#8230; I would like to get rid of some of these <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ))</em></p>
<p>In not only the last several PSGs we encounter one element – <strong>difference</strong>. Of course everyone of us is different and thinks in different ways. This can mostly be seen on spots with many signs like: Shouldn’t here be PBS? Shouldn’t here be presignals? Shouldn’t here be &lt;whatever&gt;? The solution often differs, but for example in case of presignals x PBS it often influences at least positioning, often PBS things are a tile shorter than presignals. I am talking about the fact that quite often people ask or just straight <strong>modify other’s work without thinking </strong>about it and not trying to get <strong>the idea</strong> that is behind it and why it is built as it is. Sure, we are cooperators and we should talk about things but we don&#8217;t have to talk about everything a million times.</p>
<p>The result of this article is NOT that I would like to unify our minds to make sheep of us, neither to start making some conventions. No. The thing why I write this is that I want to ask you what would you say if I started blogging some kind of <strong>occasional revue</strong> where would be noted some interesting things built around our servers, with some notes from authors and some shown possibilities with clarifications and FAQ. That way people could learn faster, and of course it would prevent some errors and needless questions. <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  <strong>What is your opinion?</strong></p>
<p>Here follows a taster version, as episode number 1:</p>
<h3><strong>Advanced Building Revue 01: The conditional overflow</strong></h3>
<p>This is the first part of this series. There also will be notes in italics, which are related to the article above.</p>
<p>In the latest several PSGs we had the possibility to see V453000’s pickup station with <strong>conditional overflow</strong>. In this Advanced Building Revue part we will take a look into that.</p>
<p>The purpose of this station is to have an overflow which doesn’t affect trains under normal circumstances. (normal circumstances = there is enough supplies or empty platforms for the incoming train, therefore no train needs to wait). The whole construction is fairly easy:</p>
<p><a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/a/a6/ConditionalOverflow01.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/a/a6/ConditionalOverflow01.png?referer=');"><img class="aligncenter" title="Sign Spam" src="http://wiki.openttdcoop.org/images/a/a6/ConditionalOverflow01.png" alt="Sign Spam" width="400" height="294" /></a></p>
<p>Here we can see the most basic form of this design. It is <strong>TL3, 10 platforms per line</strong>. Let’s get to building.</p>
<p>The most important thing is – as almost always – signaling. The train just passes by around the <strong>twoway signals</strong> if they are red (if a train is already waiting there). This way they try each of these and only in case there <strong>is no one green, it will be sent to the overflow</strong>.</p>
<p>The penalty and PF trap are in some cases optional as the depot is a penalty itself and trains *should* find the path to the station even that way. <strong>Both the penalty and the PF trap are highly recommended </strong>to be built though, making 100% sure it will work properly.</p>
<p>Also an essential thing is using a <strong>timer</strong> at the depot join. This makes the train regulation more powerful, because trains that overflow can not get that easily back to the network, so if there is more than needed trains, they are quickly put into the overflow depot but then the overflow &#8220;tries&#8221; slowly how many can be sent back to the network.</p>
<p>Why that many platforms? It isn’t absolutely needed but we want to make the station able to work as a <strong>completely ordinary station</strong> without overflow unless the overflow is <strong>needed</strong>. Which is basically the point of being conditional.</p>
<p>Also don&#8217;t forget about <strong>appropriate waiting spaces</strong> behind the twoway signals! They can be longer but definitely not shorter than 1x TL.</p>
<h4>Known Modifications</h4>
<h5>Platform number</h5>
<p>The first very vital modification is to reduce number of platforms – mainly in case there is <strong>not enough space</strong>. It truly is possible to reduce the number of stations. (don’t ask how exactly as it depends on situation – trains, wagons) One is sure: if we reduce number of platforms, we stress the overflow more. <strong>This can result in a slow/jam in the overflow if stressed too much!</strong></p>
<h5>Ro-ro or terminus</h5>
<p>Another very important and often used modification is that this station can be made in <strong>both ro-ro and terminus variants</strong>. The ro-ro just bridges the overflow track, merges and just goes away wherever needed.</p>
<h4>Frequently Asked Questions</h4>
<p><strong>Q: Why overflow?</strong><br />
A: The delivery of raw materials <strong>fluctuates</strong>, trains come at least a bit in waves, the production of the secondary <strong>changes</strong>. In order to regulate the amount of trains that pickup the products is very nice to use the overflow because it <strong>prevents any jams</strong> that could even cause some ML congestions.</p>
<p><strong>Q: Why not presignals?</strong><br />
A: Because we want the trains to <strong>just pass around</strong> the normal signals, therefore we do not need the signals to be connected to those in from of them and interact with each other. It would actually waste most of the mechanism.</p>
<p><strong>Q: Why timer?</strong><br />
A: The timer is not needed if the priority of the depot join is long enough but it is a <strong>very nice tool</strong> how to make trains stay in the overflow longer when they happen to overflow, so they stack in the depot if there is just too much of them. The settings of the actual delay of the timer has to be <strong>adjusted with situation</strong>.</p>
<p><strong>Q: Why the PF trap?</strong><br />
A: To ensure that the trains would not stay waiting in front of one of the twoway signals, meaning that it can not find a path through the overflow. <strong>PF trap is making sure it works.</strong> A penalty is essential to be used in that path to make sure trains try to go into the real station first before they consider going to the overflow.</p>
<h4>My opinion</h4>
<p>This station is a very <strong>effective</strong> overflow-styled design and I really like it used for pickup stations. In my opinion it is best for basically any TL, if there is enough space but note that lower TLs have less trouble with the slow at depots which can either require doubling of depot with higher TLs or it could mean that it is <strong>better used with lower TL</strong>. All in all pretty solid thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/03/09/611/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fail-Safe Joiners, Priorities and the Cyclotron example</title>
		<link>http://blog.openttdcoop.org/2010/01/13/fail-safe-joiners-priorities-and-the-cyclotron-example/</link>
		<comments>http://blog.openttdcoop.org/2010/01/13/fail-safe-joiners-priorities-and-the-cyclotron-example/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 00:05:16 +0000</pubDate>
		<dc:creator>Osai</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Fail-Safe Joiner]]></category>
		<category><![CDATA[SML]]></category>
		<category><![CDATA[Trick]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=598</guid>
		<description><![CDATA[Some days ago I stumbled upon openttd wikis page about Railyway Designs and I saw the Cyclotron created by Pitt2. Those high speed injectors are not too new and we experimented with them a lot. Though we don&#8217;t use them in most cases, because they are difficult to build, depending on the properties of trains [...]]]></description>
			<content:encoded><![CDATA[<p>Some days ago I stumbled upon openttd wikis page about <a href="http://wiki.openttd.org/Railway_Designs" onclick="pageTracker._trackPageview('/outgoing/wiki.openttd.org/Railway_Designs?referer=');">Railyway Designs</a> and I saw the Cyclotron created by <a href="http://wiki.openttd.org/User:Pitt2" onclick="pageTracker._trackPageview('/outgoing/wiki.openttd.org/User_Pitt2?referer=');">Pitt2</a>. Those high speed injectors are not too new and we experimented with them a lot. Though we don&#8217;t use them in most cases, because they are difficult to build, depending on the properties of trains and such. Its just too much work for too less effect and pre-accelerated joiners are the better choice. Though I had a look at the construction and checked how it worked. A little footnote about a fixed bug made me curious, but then I understood that it fixes the issue which occurs if a train wants to join another track but in the same moment the signal turns red and the train stops blocking a complete line. Therefor we have the overtaking lanes in most <a href="http://wiki.openttdcoop.org/Shift_Mainlines" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/Shift_Mainlines?referer=');">SML</a> constructions. We all like cool words for cool constructions, here they are. Fail-safe Joiners:<br />
<img src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/failsafe_joiner.png" width="580" height="317" alt="" title="" /></p>
<h3>How it works</h3>
<p><span id="more-598"></span><br />
The functionality is as simple as genius. The joining train has influence on the priority line by adding OR logic. The exit-signal of the joining trains track turns green again after a train made a decision. If in the meantime a train on the mainline blocked the entrance it stays green, because the OR logic determines it (the joining train unblocks itself, because the exit-signal turns green). If a train is already on the mainline, both signals are red at the point the joining train has to make the decision and won&#8217;t join.<br />
Well, if you didn&#8217;t understand anything its either my english or you should read it again. Though pictures say more then 1k words. Here we go:</p>
<h4>Situation 0</h4>
<p>This is a very basic situation, a train is on outer line and wants to go the the waypoint. No trains are coming on the mainline.<br />
<a class="image-link" rel="shadowbox[Fail-Safe Joiner];width=912;height=464;" title="Fail-Safe Joiner - Situation 0" href="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/fail-safe_joiner_situation_0.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/thumb_fail-safe_joiner_situation_0.png" width="580" height="295" alt="Fail-Safe Joiner - Situation 0" title="Fail-Safe Joiner - Situation 0"  /></a><br class="clear" /></p>
<h4>Situation 1</h4>
<p>The train entered the block with the exit signal and it turns red.<br />
<a class="image-link" rel="shadowbox[Fail-Safe Joiner];width=912;height=464;" title="Fail-Safe Joiner - Situation 1" href="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/fail-safe_joiner_situation_1.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/thumb_fail-safe_joiner_situation_1.png" width="580" height="295" alt="Fail-Safe Joiner - Situation 1" title="Fail-Safe Joiner - Situation 1"  /></a><br class="clear" /></p>
<h4>Situation 2</h4>
<p>The length of the track from the exit signal block to the joining block is exactly as long as one train (TL). If you have trains of different sizes on one track you either use the TL sorter first or you have a neat idea. <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a class="image-link" rel="shadowbox[Fail-Safe Joiner];width=912;height=464;" title="Fail-Safe Joiner - Situation 2" href="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/fail-safe_joiner_situation_2.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/thumb_fail-safe_joiner_situation_2.png" width="580" height="295" alt="Fail-Safe Joiner - Situation 2" title="Fail-Safe Joiner - Situation 2"  /></a><br class="clear" /></p>
<h4>Situation 3</h4>
<p>The train choses, the correct track. This isn&#8217;t too interesting because there isn&#8217;t a train on the ML. Though you might have notice that the exit signal turned green again right before the train passes the entrance signal.<br />
<a class="image-link" rel="shadowbox[Fail-Safe Joiner];width=912;height=464;" title="Fail-Safe Joiner - Situation 3" href="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/fail-safe_joiner_situation_3.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/thumb_fail-safe_joiner_situation_3.png" width="580" height="295" alt="Fail-Safe Joiner - Situation 3" title="Fail-Safe Joiner - Situation 3"  /></a><br class="clear" /></p>
<h4>Situation 4</h4>
<p>Now we have the same situation as before, but a train is coming on the ML. The train on the sideline already decided to join the ML.<br />
<a class="image-link" rel="shadowbox[Fail-Safe Joiner];width=912;height=464;" title="Fail-Safe Joiner - Situation 4" href="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/fail-safe_joiner_situation_4.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/thumb_fail-safe_joiner_situation_4.png" width="580" height="295" alt="Fail-Safe Joiner - Situation 4" title="Fail-Safe Joiner - Situation 4"  /></a><br class="clear" /></p>
<h4>Situation 5</h4>
<p>The train on the ML now activated the priority line and the entrance signal turned red. This is a bad situation, because the train on the SL wants to join now. and the other train is far away, joining isn&#8217;t a problem.<br />
<a class="image-link" rel="shadowbox[Fail-Safe Joiner];width=912;height=464;" title="Fail-Safe Joiner - Situation 5" href="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/fail-safe_joiner_situation_5.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/thumb_fail-safe_joiner_situation_5.png" width="580" height="295" alt="Fail-Safe Joiner - Situation 5" title="Fail-Safe Joiner - Situation 5"  /></a><br class="clear" /></p>
<h4>Situation 6</h4>
<p>Luckily in the same moment the exit signal turns green again and therefor also the entrance signal, the train on the SL can join.<br />
<a class="image-link" rel="shadowbox[Fail-Safe Joiner];width=912;height=464;" title="Fail-Safe Joiner - Situation 6" href="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/fail-safe_joiner_situation_6.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/thumb_fail-safe_joiner_situation_6.png" width="580" height="295" alt="Fail-Safe Joiner - Situation 6" title="Fail-Safe Joiner - Situation 6"  /></a><br class="clear" /></p>
<p>I really love this behaviour and you can replace joiners with &#8220;overtaking space&#8221; with this system. You can probably reduce the size of SML layouts we see nowadays and the good old 1&lt;2 join or even more might become attractive again.</p>
<h3>Quadruple Full-Featured Cyclotron</h3>
<p>And what I wanted to show you, I modified Pitt2&#8242;s Cyclotron, it comes now with 4 entrance possibilities which increases the chance of a join drastically. And for high-speed trains the additional way shouldn&#8217;t be a problem.<br />
<a class="image-link" rel="shadowbox;options={handleOversize:'drag'};width=1562;height=907;" title="Quadruple Full-Featured Cyclotron" href="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/quadruple_full_featured_cyclotron.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/fail_safe_joiners/thumb_quadruple_full_featured_cyclotron.png" width="580" height="336" alt="Quadruple Full-Featured Cyclotron" title="Quadruple Full-Featured Cyclotron"  /></a><br class="clear" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/01/13/fail-safe-joiners-priorities-and-the-cyclotron-example/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Big hubs in a nutshell &#8211; finding a universal hub design</title>
		<link>http://blog.openttdcoop.org/2009/05/31/big-hubs-in-a-nutshell-finding-a-universal-hub-design/</link>
		<comments>http://blog.openttdcoop.org/2009/05/31/big-hubs-in-a-nutshell-finding-a-universal-hub-design/#comments</comments>
		<pubDate>Sun, 31 May 2009 11:53:36 +0000</pubDate>
		<dc:creator>davil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[OpenTTD]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Clean building]]></category>
		<category><![CDATA[Hubs]]></category>
		<category><![CDATA[Load balancing]]></category>
		<category><![CDATA[Proper building]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=555</guid>
		<description><![CDATA[Recently I started playing a game on my own, featuring some LL-RR main network. When I had to build my first ever 4-way hub for double tracks, I first took a look at the Junctionary just to find out that all hubs were designed quite different and hardly any of them follow all necessary rules [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I started playing a game on my own, featuring some LL-RR main network. When I had to build my first ever 4-way hub for double tracks, I first took a look at the <a href="http://www.openttdcoop.org/wiki/Junctionary" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/Junctionary?referer=');">Junctionary</a> just to find out that all hubs were designed quite different and hardly any of them follow all necessary rules (curve length, double bridges/tunnels, merge after split). I then started wondering if there&#8217;s a universal way of thinking about hubs.<br />
<span id="more-555"></span><br />
There are only a few rules to follow when designing a hub with n ways:</p>
<ul>
<li>Every line that goes in goes out n-1 times (n times if you allow turning around)</li>
<li>Merge after split &#8211; <strong>merge as late as possible</strong></li>
</ul>
<p>In addition there are a few OpenTTD-specific building rules:</p>
<ul>
<li>Curve length must be considered for all curves</li>
<li>Bridges and tunnels must be doubled for flow</li>
<li>When doubling bridges and tunnels make sure the lengths are the same (&#8220;syncing&#8221;)</li>
</ul>
<p>There is nothing magical about these rules. But once you start building, you&#8217;ll find out that most of them are hard to obey, especially because usually there are lots and lots of crossings in a hub. Furthermore all those hubs tend to become unmaintainable, leading to jammed connections that nobody knows how to solve. So is there a way to get rid of the crossings and get a more clean design?<br />
<a class="image-link" rel="shadowbox;width=600;height=600;" title="4-way hub schema" href="http://blog.openttdcoop.org/files/pictures/davil/4-way%20hub%20schema.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/davil/thumb_4-way%20hub%20schema.png" width="250" height="250" alt="4-way hub schema" /></a><br class="clear" /><br />
Let&#8217;s take a look at the image above: it shows a 4-way single-line hub following the general rules (without the building-specific ones): every line that goes in goes out n-1 times. Merging occurs right after the hub, allowing for easy balancing or whatever you desire.</p>
<p>The magic of this design is that it is really easy to understand and it is extensible. You can use this to build a 6-way or even an 8-way hub &#8211; it just makes the hub bigger, but not more complex!<br />
<a class="image-link" rel="shadowbox;width=800;height=600;" title="6-way hub schema" href="http://blog.openttdcoop.org/files/pictures/davil/6-way%20hub%20schema.png"><img src="http://blog.openttdcoop.org/files/pictures/davil/thumb_6-way%20hub%20schema.png" width="250" height="187" alt="6-way hub schema" /></a><br class="clear" /><br />
This image shows the same technique applied on a 6-way hub. You can see that there is no difference to the 4-way hub but a bigger number of lines going around.<br />
The building principle is as simple as it can get: inject an incoming line to the innermost ring and lead out all lines in parallel when building an exit. The outermost line leaves the ring completely when it has reached the n-1<sup>st</sup> exit.</p>
<h3>Casting this into real rails</h3>
<p>To test my theory I&#8217;ve designed 4&#215;1 hubs and 4&#215;2 hubs without signals but with doubled bridges and a curve length of 8.<br />
<a class="image-link" rel="shadowbox;width=2052;height=1139;" title="general 4-way hub" href="http://blog.openttdcoop.org/files/pictures/davil/4-way%20hub%20default.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/davil/thumb_4-way%20hub%20default.png" width="250" height="138" alt="general 4-way hub" /></a><br class="clear" /><br />
The image above shows a single line 4-way hub using the given schema. Of course there&#8217;s room for improvement, e.g. saving space by bypassing the first exit and thus saving a row of bridges:<br />
<a class="image-link" rel="shadowbox;width=2321;height=1342;" title="compact 4-way hub" href="http://blog.openttdcoop.org/files/pictures/davil/4-way%20hub%20compact.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/davil/thumb_4-way%20hub%20compact.png" width="250" height="144" alt="compact 4-way hub" /></a><br class="clear" /><br />
I left out the merging in my design, to show that any kind of merging (just connecting the lines or building load-balancers) can be applied separately for each exit.</p>
<p>The usual #openttdcoop hub is at least for mainlines of 2 tracks. So of course I had to build 4&#215;2 hubs too:<br />
<a class="image-link" rel="shadowbox;width=2684;height=1392;" title="general 4x2 hub" href="http://blog.openttdcoop.org/files/pictures/davil/4x2-way%20hub%20default.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/davil/thumb_4x2-way%20hub%20default.png" width="250" height="129" alt="general 4x2 hub" /></a><br class="clear" /><br />
As you can see inserting 2 tracks at once is absolutely the same as inserting 1 track. Taking the tracks out just requires more rows of bridges. Of course there&#8217;s also an optimized version of this hub:<br />
<a class="image-link" rel="shadowbox;width=2140;height=1128;" title="compact 4x2 hub" href="http://blog.openttdcoop.org/files/pictures/davil/4x2-way%20hub%20compact.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/davil/thumb_4x2-way%20hub%20compact.png" width="250" height="131" alt="compact 4x2 hub" /></a><br class="clear" /></p>
<h3>Summary</h3>
<p>The given hub design is quite similar to the roundabout hubs frequently used by inexperienced players (or if the network load is not too high), but without the merge-before-split disadvantage. I decided to name the hub design <strong>spiral hub</strong> (because the lines move 1 step outward at each exit).</p>
<p><strong>Advantages:</strong></p>
<ul>
<li>Easy to understand, easy to build and maintain</li>
<li>Extensible</li>
<li>Can be used for any sensible amount of tracks and entries/exits</li>
<li>No jamming inside the hub if merger/load balancer is far enough outside</li>
<li>Never ever merge before split</li>
<li>Allows for easy exit-specific load balancing</li>
<li>Quite compact regarding the used area (you can build them around mountains, towns, lakes, &#8230;)</li>
<li>Can be used with mixed mainlines (e.g. rails + maglev)</li>
<li>Can be built to allow turning around (just take out the lines one exit later)</li>
<li>Fits anywhere where you can put some parallel lines with long curves</li>
</ul>
<p><strong>Disadvantages:</strong></p>
<ul>
<li>Quite a big overall footprint</li>
<li>Longer travel distances than e.g. for straight east-west lines</li>
</ul>
<p>After building a few of these hubs I think the general way of designing them should be as follows:</p>
<ul>
<li>Build the hub according to the general schema</li>
<li>Optimize it to use shortcuts where you really need them to improve performance</li>
</ul>
<p>As long as the general schema is not broken, the hub will always work as expected.</p>
<p>I&#8217;m looking forward to testing this design in one of the oncoming Public Server games. Comments are welcome!<br />
Have fun!</p>
<p>davil</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/05/31/big-hubs-in-a-nutshell-finding-a-universal-hub-design/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Various degrees of terraforming</title>
		<link>http://blog.openttdcoop.org/2009/05/27/various-degrees-of-terraforming/</link>
		<comments>http://blog.openttdcoop.org/2009/05/27/various-degrees-of-terraforming/#comments</comments>
		<pubDate>Wed, 27 May 2009 13:29:18 +0000</pubDate>
		<dc:creator>tneo</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Weekly Review]]></category>
		<category><![CDATA[Wiki]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=552</guid>
		<description><![CDATA[In almost every game that is being played on one of our servers there is a terraforming, TF for short, rule in place. However it is up to debate on what is considered to be low, medium or high terraforming. Via this blog I want to give you some insights in the various types of [...]]]></description>
			<content:encoded><![CDATA[<p>In almost every game that is being played on one of our servers there is a terraforming, TF for short, rule in place. However it is up to debate on what is considered to be low, medium or high terraforming. Via this blog I want to give you some insights in the various types of terraforming that we use.<br />
<span id="more-552"></span><br />
<strong>Low terraforming</strong></p>
<p>When in a game is chosen for low terraforming, then this implies that you have to work with the terrain as much as possible. The image below shows an example.<br />
<a class="image-link" rel="shadowbox;width=1009;height=599;" title="Low terraforming" href="http://blog.openttdcoop.org/files/pictures/TF_low.png"><img class="center" src="http://blog.openttdcoop.org/files/pictures/thumb_TF_low.png" width="250" height="148" alt="Low terraforming"   /></a><br class="clear" /></p>
<p>The way the network looks is more important then the overall speed of trains or network throughput in general. Instead of flattening the sides of the mountain, bridges are constructed to keep tracks as level as possible. This type is often chosen in eye-candy games and is recommended to keep in mind during any game.</p>
<p><strong>Medium terraforming</strong></p>
<p>The most used terraforming style and also the most unclear one in ways of what exactly is medium. With medium terraforming you don&#8217;t flatten mountains to suit your building needs, but you terraform those tiles that are needed to obtain fluent networks that will not slow down trains.<br />
<a class="image-link" rel="shadowbox;width=749;height=756;" title="Medium terraforming" href="http://blog.openttdcoop.org/files/pictures/TF_med.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/thumb_TF_med.png" width="247" height="250" alt="Medium terraforming" title="Medium terraforming"  /></a><br class="clear" /></p>
<p>In the above image several tiles have been lifted or lowered to have a fluent rail road.</p>
<p><a class="image-link" rel="shadowbox;width=851;height=737;" title="Medium/ low terraforming" href="http://blog.openttdcoop.org/files/pictures/TF_med-low.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/thumb_TF_med-low.png" width="250" height="216" alt="Medium/ low terraforming" title="Medium/ low terraforming"  /></a><br class="clear" /></p>
<p>For the exit of the station several tiles have been raised so that trains travel at the same height and can easily merge on the outgoing tracks.</p>
<p><strong>High terraforming</strong></p>
<p>By far the most easy rule that is around. Also known as &#8220;free terraforming&#8221; and it allows you to terraform to your needs or pleasure. So you are free to flatten that mountain in order to build your station or network.</p>
<p><a class="image-link" rel="shadowbox;width=1050;height=476;" title="High or free terraforming" href="http://blog.openttdcoop.org/files/pictures/TF_high.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/thumb_TF_high.png" width="250" height="113" alt="High or free terraforming" title="High or free terraforming"  /></a><br class="clear" /></p>
<p><strong>&#8220;Coop style&#8221;</strong></p>
<p>Not really to be a terraforming rule, though it distinguishes itself that for mainline tracks steps are created to climb a mountain. We don&#8217;t go around or make a steep climb, but we make steps so that trains have to climb only a single tile at once. Every step should be around 4-5 tiles long before the next rise comes. The rest of the landscape is left untouched as much as possible.</p>
<p><a class="image-link" rel="shadowbox;width=969;height=574;" title="Coop style terraforming" href="http://blog.openttdcoop.org/files/pictures/TF_coop.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/thumb_TF_coop.png" width="250" height="148" alt="Coop style terraforming" title="Coop style terraforming"  /></a><br class="clear" /></p>
<p><strong>Conclusion</strong></p>
<p>So now you have a general picture of the different terraforming styles we use on our servers. Remember it is not a rule cut out in stone, but a rough guideline to terraforming. </p>
<p>More info: <a href="http://www.openttdcoop.org/wiki/Terraforming" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/Terraforming?referer=');">Wiki: Terraforming</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/05/27/various-degrees-of-terraforming/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>About Curve Lengths</title>
		<link>http://blog.openttdcoop.org/2009/05/13/about-curve-lengths/</link>
		<comments>http://blog.openttdcoop.org/2009/05/13/about-curve-lengths/#comments</comments>
		<pubDate>Wed, 13 May 2009 14:08:16 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[OpenTTD]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=548</guid>
		<description><![CDATA[Every game we have the same discussion about what Curve Length (CL) to use to allow trains to maintain their maximum speed while still keeping corners as tight as possible. After some experimenting and looking through the source code I came up with some formula that can be used to determine the minimum CL. The [...]]]></description>
			<content:encoded><![CDATA[<p>Every game we have the same discussion about what Curve Length (CL) to use to allow trains to maintain their maximum speed while still keeping corners as tight as possible. After some experimenting and looking through the source code I came up with some formula that can be used to determine the minimum CL. The graph below shows the maximum speeds for different railtype, further in the article I will explain where these values come from.</p>
<p><a class="image-link" rel="shadowbox;width=910;height=662;" title="" href="http://blog.openttdcoop.org/files/pictures/curve_speeds.PNG"><img class="left" src="http://blog.openttdcoop.org/files/pictures/thumb_curve_speeds.PNG" width="250" height="181" alt="" title=""  /></a><br class="clear" /></p>
<p><span id="more-548"></span></p>
<p>Unlike what seems te be the case there are only two variables which make up the maximum speed of a train to pass through a curve: Curve Length and Railtype. The train&#8217;s maximum speed and TL are irrelevant. A single 45 degree turn doesn&#8217;t slow a train down unless followed by a second one before the entire train has passed the first. The formula for calculating a normal rail curve&#8217;s maximum speed is as follows:</p>
<p><strong>Max. Speed in km/h = 232 &#8211; (13-CL)^2</strong></p>
<p>Interesting fact is that the source code considers what we call a half diagonal tile as an entire tile. We would call the leftmost picture a CL5 (or 4.5) curve and the upper a CL9 curve, while they&#8217;re both considered 9 tile curves by the formula, meaning they allow for the same maximim speed. So when using the formula you should count the half tiles as full tiles. As shown in the picture below.</p>
<p><a class="image-link" rel="shadowbox;width=1280;height=968;" title="" href="http://blog.openttdcoop.org/files/pictures/Soggygate%20Transport%2C%209th%20Jan%202055.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/thumb_Soggygate%20Transport%2C%209th%20Jan%202055.png" width="250" height="189" alt="" title=""  /></a><br class="clear" /></p>
<p>Different rail types use the same formula but get the following bonus compared to normal rail:</p>
<p>Electrified rail: no bonus<br />
Monorail: +50% bonus<br />
Maglev: +100% bonus</p>
<p>On top of that, some trainsets have tilting trains, which get another 20% bonus.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/05/13/about-curve-lengths/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Optimization of Logic &#8211; Logic Gates [Part II]</title>
		<link>http://blog.openttdcoop.org/2009/01/18/optimization-of-logic-logic-gates-part-ii/</link>
		<comments>http://blog.openttdcoop.org/2009/01/18/optimization-of-logic-logic-gates-part-ii/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 23:31:29 +0000</pubDate>
		<dc:creator>Osai</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[OpenTTD]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Logic Gate]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=503</guid>
		<description><![CDATA[Almost half a year ago I blogged about Logic Gates and already the headline promised that this story is not over yet. Now, I was finally able to concentrate my thoughts about logic gates again and was able to optimize the gates again. As I pointed out earlier the reaction time is too long and [...]]]></description>
			<content:encoded><![CDATA[<p>Almost <a href="http://blog.openttdcoop.org/2008/06/17/the-insane-led-counter-logic-gates-part-1/">half a year ago I blogged about Logic Gates</a> and already the headline promised that this story is not over yet. Now, I was finally able to concentrate my thoughts about logic gates again and was able to optimize the gates again. As I pointed out earlier the reaction time is too long and gates are reacting too sluggish. The slow processing made the gates only interesting in places which don&#8217;t need to be fast. For example the timing of injection. But when it comes to mainlines, sidelines, station entries and many other fancy coop-ish constructions they were more an impediment.<br />
<strong><a href="http://blog.openttdcoop.org/files/osai/logic_train.grf">Download Logic Train NewGRF</a></strong></p>
<p>I hope, this&#8217;ll change now, because these new constructions require only one train without any wagons and are extremely small in comparison with the old gates and the once I see nowadays in our games.<br />
<span id="more-503"></span></p>
<h3>The Logic Train</h3>
<p>Especially for faster gates Ammler created a NewGrf for me which replaces MagLev &#8220;Lev3 Pegasus&#8221; with a &#8220;Logic Train&#8221;. This trains has a max. speed of 65,918km/h and 65,535hp. In fact insanely fast and accelerating from zero to max speed instantly. The optimized gates also function with normal trains but are not as fast as with the Logic Train and sometimes the evil chooser problem occurs. This somehow doesn&#8217;t happen with the Logic Trains, but don&#8217;t ask me why. Of course you can download the grf file I used. You&#8217;ll need it. As far as I know it is also planned to add a NewGrf file to the #openttdcoop NewGrf Package with certain restrictions. In fact, you are not allowed to add wagons to the train. Lets see if that&#8217;s possible.</p>
<h3>The Not Gate</h3>
<p><img src="http://blog.openttdcoop.org/files/pictures/logic_gates/logic_gates_pt2_not_gate.png" width="400" height="400" alt="New Not Gate" title="New Not Gate" /><br />
My new NOT-Gate creation has a size of 3&#215;4 tiles. That&#8217;s only three tiles bigger than the smallest circle in which a train can drive. The reaction time is close to zero. The gate requires a <em>logic train</em> and a waypoint. The train needs the waypoint in the order list, otherwise it&#8217;ll not work as intended. As you can see the train has to make a choice. The problem we have in normal games, that the signal turns red in the moment the train wants to enter doesn&#8217;t occur. I don&#8217;t know why, but it just never happened to me, even in long-time tests.</p>
<p>In this video you can see a comparison to other gate types. The important gates has the Waypoint &#8220;C&#8221;. At the output comparison you can see its the fastest and always showing the opposite of the entering signal.<br />
<a href="/videos/comparison_not_gates.mp4">Optimization of Logic &#8211; Logic Gates [Part II]</a></p>
<h3>The Or Gate</h3>
<p><img src="http://blog.openttdcoop.org/files/pictures/logic_gates/logic_gates_pt2_or_gate.png" width="400" height="372" alt="The New OR-Gate" title="The New OR-Gate" /><br />
The OR-Gate requires the same things as the NOT-Gate. One <em>logic train</em>, a waypoint and an entrance in the order list. The reaction time is close to zero seconds too, you can see how it works in another video I created.</p>
<p><a href="/videos/or_gate_in_action.mp4">Optimization of Logic &#8211; Logic Gates [Part II]</a></p>
<h3>Conclusion</h3>
<p>I hope to see some awesome constructions of all the fans of <a href="http://en.wikipedia.org/wiki/Arithmetic_Logic_Unit" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Arithmetic_Logic_Unit?referer=');">ALUs</a> and logic construction. Since these gates are much smaller and react very fast the possibilities are almost inexhaustible. If you have an awesome construction, post it here, upload it to our wiki or send an email to info [at] openttdcoop.org. I am awaiting your creations.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/01/18/optimization-of-logic-logic-gates-part-ii/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Merge with trunk of NoAI branch</title>
		<link>http://blog.openttdcoop.org/2009/01/14/merge-with-trunk-of-noai-branch/</link>
		<comments>http://blog.openttdcoop.org/2009/01/14/merge-with-trunk-of-noai-branch/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 13:06:18 +0000</pubDate>
		<dc:creator>planetmaker</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Coopetition]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Member Zone]]></category>
		<category><![CDATA[OpenTTD]]></category>
		<category><![CDATA[Wiki]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=498</guid>
		<description><![CDATA[Fellow coopers, great news, another big step forward in OpenTTD development: the new framework for computer players has been merged from the NoAI branch into trunk. So, from now on, there&#8217;s no need anymore to complain about those stupid AI which OpenTTD had up until now &#8211; everyone may programme his or her own AI [...]]]></description>
			<content:encoded><![CDATA[<p>Fellow coopers,</p>
<p>great news, another big step forward in OpenTTD development: the new framework for computer players has been merged from the NoAI branch into trunk. So, from now on, there&#8217;s no need anymore to complain about those stupid AI which <a href="http://www.openttd.org" onclick="pageTracker._trackPageview('/outgoing/www.openttd.org?referer=');">OpenTTD</a> had up until now &#8211; everyone may <a href="http://noai.openttd.org/docs/" onclick="pageTracker._trackPageview('/outgoing/noai.openttd.org/docs/?referer=');">programme his or her own AI</a> with as much intelligence as desired. Like many people did as documented in the <a href="http://www.tt-forums.net/viewforum.php?f=65" onclick="pageTracker._trackPageview('/outgoing/www.tt-forums.net/viewforum.php?f=65&amp;referer=');">NoAI subforums</a>. Check out the threads there for different AIs.<br />
<img src="http://blog.openttdcoop.org/files/pictures/coopAI_company_value.png" width="577" height="240" alt="" title="" /><br />
<strong>Company chart from our first coop game against a few AIs</strong><span id="more-498"></span><br />
I got curious when the number and frequency of commits started to increase significantly that afternoon, starting with r15000:</p>
<blockquote><p>[11:48] &lt;cia -1&gt; OpenTTD: truebrain * r15000 /branches/noai/src/ (ai/ai.hpp saveload/ai_sl.cpp): [NoAI] -Fix (r14984): forgot to rename @file too</p>
<p>[14:51] &lt;cia -1&gt; OpenTTD: truebrain * r15001 /branches/noai/src/ai/ai_core.cpp: [NoAI] -Fix: make NoAI network safe again</p></blockquote>
<p>hmm&#8230; making it network safe again? Let&#8217;s see&#8230;<br />
a number of other commits followed, also and especially in th NoAI branch. Then then finally what seemed to become more and more inevitable:</p>
<blockquote><p>[18:12]	&lt;cia -1&gt;	OpenTTD: truebrain * r15027 /trunk/ (311 files in 30 dirs): (log message trimmed)<br />
[18:12] &lt;cia -1&gt; OpenTTD: -Merge: tomatos and bananas left to be, here is NoAI for all to see.<br />
[18:12] &lt;cia -1&gt; OpenTTD: NoAI is an API (a framework) to build your own AIs in. See:<br />
[18:12] &lt;cia -1&gt; OpenTTD: http://wiki.openttd.org/wiki/index.php/AI:Main_Page<br />
[18:12] &lt;cia -1&gt; OpenTTD: With many thanks to:<br />
[18:12] &lt;cia -1&gt; OpenTTD: &#8211; glx and Rubidium for their syncing, feedback and hard work<br />
[18:12] &lt;cia -1&gt; OpenTTD: &#8211; Yexo for his feedback, patches, and AIs which tested the system very deep<br />
[18:12] &lt;cia -1&gt; OpenTTD: &#8211; Morloth for his feedback and patches<br />
[18:12] &lt;cia -1&gt; OpenTTD: &#8211; TJIP for hosting a challenge which kept NoAI on track<br />
[18:12] &lt;cia -1&gt; OpenTTD: &#8211; All AI authors for testing our AI API, and all other people who helped in one way or another<br />
[18:12] &lt;cia -1&gt; OpenTTD: -Remove: all old AIs and their cheats/hacks </p></blockquote>
<p>I can only support this: many thanks to all who made this big step in the history of OpenTTD possible. Great job, guys!</p>
<p>So now let&#8217;s look forward to maybe an occasional <a href="http://www.openttdcoop.org/wiki/Coopetition" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/Coopetition?referer=');">coopetition</a> game of us coopers against the best of AIs &#8211; it will definitely require a slightly different approach than in our usual games w/o any competition <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  as we <a href="http://blog.openttdcoop.org/2008/07/20/openttdcoop-vs-ai/">tried out some time ago</a> in a match against <a href="http://www.tt-forums.net/viewtopic.php?f=65&#038;t=38057" onclick="pageTracker._trackPageview('/outgoing/www.tt-forums.net/viewtopic.php?f=65_038_t=38057&amp;referer=');">AdmiralAI</a>.</p>
<p>PS: Maybe there&#8217;re some further nice fruit in the basket in the not so distant future:</p>
<blockquote><p>[13:09]	&lt;TrueBrain&gt;	and &#8216;extra&#8217; package, which contains AIs, grfs, &#8230;<br />
[13:10]	&lt;TrueBrain&gt;	of course the &#8216;game&#8217; package should contain the tram grf, and at least a few AIs (which should be in SVN too)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/01/14/merge-with-trunk-of-noai-branch/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Even or odd: the perfect join</title>
		<link>http://blog.openttdcoop.org/2009/01/02/even-or-odd-perfect-join/</link>
		<comments>http://blog.openttdcoop.org/2009/01/02/even-or-odd-perfect-join/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 20:12:32 +0000</pubDate>
		<dc:creator>valhallasw</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=484</guid>
		<description><![CDATA[Back in February, Tim blogged about the differences between even and odd train lengths. This post posed it was better to use odd train length because they use less space when queuing. To see what happens in a dynamic, i.e. moving, situation, I have built a test track which does a full speed join. It [...]]]></description>
			<content:encoded><![CDATA[<p><a class="image-link" rel="shadowbox;width=476;height=291;" href="http://blog.openttdcoop.org/files/blog/2009/01/the-perfect-join.png"><img src="http://blog.openttdcoop.org/files/blog/2009/01/the-perfect-join.png" alt="the-perfect-join" title="the-perfect-join" width="300" height="183" class="alignnone size-medium wp-image-488" /></a><br class="clear" /></p>
<p>Back in February, Tim blogged about <a href="http://blog.openttdcoop.org/2008/02/07/even-or-odd-about-tilelengths/">the differences between even and odd train lengths</a>. This post posed it was better to use odd train length because they use less space when queuing.</p>
<p>To see what happens in a dynamic, i.e. moving, situation, I have built a test track which does a full speed join. It tries to get three trains as close to each other as possible, to see what the minimum distance between trains is. On another test track, I tested what the distance between trains from standstill is.<br />
<span id="more-484"></span></p>
<p>With the full speed join, the expected behaviour would be to have two tiles distance between the trains, no matter what length we use. For the standstill experiment, the expected behaviour is a positive relationship between the length of the train and the distance (a longer train is heavier and thus will have a larger following distance).</p>
<p>However, we are not interested in the large scale effects, but in the quantum effects: compare it to the queuing trains in Tims post: there is a linear relationship between train length and the amount of signal blocks used, but, <i>because signal blocks go in sets of two tiles</i>, even-length trains use relatively much space.</p>
<h4>From standstill</h4>
<p>First of all, I have tested the train following distance when starting from standstill for the <a href="http://wiki.openttd.org/wiki/index.php/Kirby_Paul_Tank" onclick="pageTracker._trackPageview('/outgoing/wiki.openttd.org/wiki/index.php/Kirby_Paul_Tank?referer=');">Kirby Paul Tank</a>, <a href="http://wiki.openttd.org/wiki/index.php/SH_%2230%22" onclick="pageTracker._trackPageview('/outgoing/wiki.openttd.org/wiki/index.php/SH_2230_22?referer=');">SH &#8217;30&#8242;</a> and <a href="http://wiki.openttd.org/wiki/index.php/Lev4_%27Chimaera%27" onclick="pageTracker._trackPageview('/outgoing/wiki.openttd.org/wiki/index.php/Lev4_27Chimaera_27?referer=');">Lev4</a>. By queuing trains with different lengths &#8211; 3, 4, 5, 6 and 6 tl &#8211; next to each other and starting them at the same time, comparison suddenly becomes easy. As distance, I have used the number of tiles, in halves, between trains, measured just before the following train reserves the next tile.</p>
<h5>Kirby Paul Tank</h5>
<p>The Kirby Paul Tank, with it&#8217;s 223kW and 64km/h max. speed, is the slowest locomotive in the game. Although we never use this train, it&#8217;s good to have multiple speeds as comparison.</p>
<p><a class="image-link" title="Kirby Paul Tank running distance" rel="shadowbox;width=1024;height=712;" href="http://www.openttdcoop.org/wiki/images/0/05/Kirby_Paul_running_distance.png" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/images/0/05/Kirby_Paul_running_distance.png?referer=');"><img class="left" title="Self-Regulating Network Teaser" src="http://www.openttdcoop.org/wiki/images/thumb/0/05/Kirby_Paul_running_distance.png/400px-Kirby_Paul_running_distance.png" alt="Kirby Paul Tank running distance" width="400" height="278" /></a><br class="clear" /></p>
<p>The leftmost lane has 7tl trains, the rightmost lane has 3tl trains. The distances between the trains is </p>
<p><b>tl 3:</b> 4.5 tiles (1.5 tiles/tl)<br />
<b>tl 4:</b> 5.0 tiles (1.3 tiles/tl)<br />
<b>tl 5:</b> 5.5 tiles (1.1 tiles/tl)<br />
<b>tl 6:</b> 6.0 tiles (1.0 tiles/tl)<br />
<b>tl 7:</b> 6.5 tiles (0.9 tiles/tl)</p>
<p>This shows a very linear relationship: d=0.5*tl+3. The used rail efficiency is calculated with e=d/tl = 0.5+3/tl. This means an infinite train length will still have half its length in distance between the trains.</p>
<h5>SH &#8217;30&#8242;</h5>
<p>The SH &#8217;30&#8242; is the first, and slowest, electric locomotive to become available. Compared to the Kirby Paul Tank it&#8217;s of course very powerful: 2682kW and a 160km/h max speed.</p>
<p><a class="image-link" title="SH40 running distance" rel="shadowbox;width=1024;height=712;" href="http://www.openttdcoop.org/wiki/images/d/d2/SH40_running_distance.png" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/images/d/d2/SH40_running_distance.png?referer=');"><img class="left" title="Self-Regulating Network Teaser" src="http://www.openttdcoop.org/wiki/images/thumb/d/d2/SH40_running_distance.png/400px-SH40_running_distance.png" alt="SH40 running distance" width="400" height="278" /></a><br class="clear" /></p>
<p>However, the SH &#8217;30&#8242; shows exactly the same results as the Kirby Paul Tank!</p>
<p><small><a href="http://blog.openttdcoop.org/files/blog/2009/01/sh30-kirby-start-test.sav">savegame for both SH30 and Kirby Paul Tank</a></small></p>
<h5>Lev4</h5>
<p>The Lev4 is the fastest locomotive in the game. With almost 15MW of power from the dual engines, it reaches a staggering 643 km/h. Does this yield any different results?</p>
<p><a class="image-link" title="Lev4 running distance" rel="shadowbox;width=1024;height=712;" href="http://www.openttdcoop.org/wiki/images/c/c7/Lev4_running_distance.png" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/images/c/c7/Lev4_running_distance.png?referer=');"><img class="left" title="Self-Regulating Network Teaser" src="http://www.openttdcoop.org/wiki/images/thumb/c/c7/Lev4_running_distance.png/400px-Lev4_running_distance.png" alt="Lev4 running distance" width="400" height="278" /></a><br class="clear" /></p>
<p>The lev4 yields some interesting results: </p>
<p><b>tl 3:</b> 7.7 tiles (2.6 tiles/tl)<br />
<b>tl 4:</b> 7 tiles (1.8 tiles/tl)<br />
<b>tl 5:</b> 8.8 tiles (1.8 tiles/tl)<br />
<b>tl 6:</b> 8.6 tiles (1.4 tiles/tl)<br />
<b>tl 7:</b> 10 tiles (1.4 tiles/tl)</p>
<p>Take a moment to let this be processed. The distance gets shorter from tl3 to tl4 <i>and</i> from tl5 to tl6! And this is not just on a single occasion; these numbers are the average over three measurements. What is even more interesting are the track efficiency numbers: they show that, from a running start, even length trains use the track <i>much</i> more efficient than the just-shorter odd train, and as efficient as the just-longer odd train.<br />
<small><a href="http://blog.openttdcoop.org/files/blog/2009/01/lev4-start-test.sav">Lev4 savegame</a></small></p>
<h4>High-speed join</h4>
<p>Of course, this does not tell the entire story. We try to have our network running, so the distances from standstill are not the most important: we want to have a running network, not a network just recovering from a jam. To test this, I have built a high-speed joiner, which tries to join three trains as closely as possible. This joiner is followed by a straight track and a full-speed 180 degree curve. The track was signalled using 2-tile auto signalling, which means we notice the effects of the bad signalling in corners.</p>
<p>For this measurement, I have used a slightly different system. I have measured the distance between the starting positions, subtracted the train length and averaged this over the two follow-up trains, as one of them joins from a secondary track (i.e. it has a slightly longer path).</p>
<p>The full join is considered a success if both the straight track and the 180 degree turn are completed without any slowdowns.</p>
<h5>SH &#8217;30&#8242;</h5>
<p>Tests with the SH &#8217;30&#8242; yielded these results:</p>
<p><b>tl 1: </b> 4 tiles (4 t/tl)<br />
<b>tl 2: </b> 4.5 tiles (2.3 t/tl)<br />
<b>tl 3: </b> 5 tiles (1.7 t/tl)<br />
<b>tl 4: </b> 5.5 tiles (1.4 t/tl)<br />
<b>tl 5: </b> 6 tiles (1.2 t/tl)<br />
<b>tl 6: </b> 6 tiles (1 t/tl)<br />
<b>tl 7: </b> 6 tiles (0.9 t/tl)</p>
<p>This is the minimum distance between trains. The results show quantum effects for trains shorter than 5 tiles: longer trains all have the same distance in between, which is what you would expect.</p>
<h5>lev4</h5>
<p>The maglev tests yielded the following results:</p>
<p><b>tl 1:</b> 4.5 tiles (4.5 t/tl)<br />
<b>tl 2:</b> 4 tiles (2 t/tl)<br />
<b>tl 3:</b> 5 tiles (1.6 t/tl)<br />
<b>tl 4:</b> 5.5 tiles (1.4 t/tl)<br />
<b>tl 5:</b> 6.5 tiles (1.3 t/tl)<br />
<b>tl 6:</b> 6.5 tiles (1.1 t/tl)<br />
<b>tl 7:</b> 6.5 tiles (0.9 t/tl)</p>
<p>Which is pretty much the same result.<br />
<small><a href="http://blog.openttdcoop.org/files/blog/2009/01/fast-join-test.sav">SH30 &#038; Lev4 savegame</a></small></p>
<h4>Conclusion</h4>
<p>Both the standstill and the fast join results show there is no reason to prefer odd train length in a running situation. Although even length trains take more space while standing still, this should <i>not</i> be a reason to choose even length trains over odd length trains: although the queue is slightly longer, the situation after trains start running again is even better than with even train lengths. Besides, queued trains are exceptional: we try to keep trains <i>running</i>.</p>
<p>For tightly spaced trains the oddness of train length is not important either. There are some quantization effects with small trains, but even length trains show no disadvantages compared to odd length trains.</p>
<p>For both situations, it is obvious using longer trains is more efficient. My calculation does not take locomotives into consideration: a tl3 lev4 carries 4 times as much cargo as a tl2 train (4 wagons instead of 2). To take this into account, the efficiency should be calculated with e=t/(tl-0.5*#loc) instead of e=t/tl. This will show an additional penalty for shorter trains.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/01/02/even-or-odd-perfect-join/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The magic of SRNW (Self-Regulating Networks)</title>
		<link>http://blog.openttdcoop.org/2008/12/15/the-magic-of-srnw-self-regulating-networks/</link>
		<comments>http://blog.openttdcoop.org/2008/12/15/the-magic-of-srnw-self-regulating-networks/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 17:00:22 +0000</pubDate>
		<dc:creator>Osai</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[SRNW]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=477</guid>
		<description><![CDATA[As you might have seen a guide about self-regulating SBahn was recently added to our Wiki. As #openttdcoop thinks large, we took it a step further and created a complete Self-Regulating Network (SRNW) in our current PublicServerGame (#121). You should definitely check the guide first, to get a better idea of what this article is [...]]]></description>
			<content:encoded><![CDATA[<p>As you might have seen <a href="http://www.openttdcoop.org/wiki/Self-regulating_SBahn" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/Self-regulating_SBahn?referer=');">a guide about self-regulating SBahn</a> was recently added to our Wiki. As #openttdcoop thinks large, we took it a step further and created a complete Self-Regulating Network (SRNW) in our current PublicServerGame (#121). You should definitely check the guide first, to get a better idea of what this article is about.<br />
Though the key points stay the same and I&#8217;ll explain them to give you an overview how the network works.<br />
<a class="image-link" title="Self-Regulating Network Teaser" rel="shadowbox;width=1442;height=1442;" href="http://blog.openttdcoop.org/files/pictures/srnw_map_overview.png"><img class="left" title="Self-Regulating Network Teaser" src="http://blog.openttdcoop.org/files/pictures/thumb_srnw_map_overview.png" alt="Self-Regulating Network Teaser" width="400" height="400" /></a><br class="clear" /><br />
<span id="more-477"></span></p>
<h3>Stations &amp; Trains</h3>
<p>First of all you should know that we currently only transport two cargo types in this game (grain [G] and livestock [LV]). Every cargo type needs a dedicated platform at a each station. And of course every train transports only one cargo type. Mixing would be totally useless because we can&#8217;t set a Full Load Order for our trains because we don&#8217;t know at which station they are going to load or if they even will load anything. Every station platform needs a complex system with so called &#8216;Dummy Trains&#8217; behind the station. To keep it simple: these trains do the Full Load and give a track free if they did a full load, unload again the real trains join and can do a full load. Clever huh <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Subnets are Sidelines</h3>
<p>To organise the system we created sub-networks to which a train belongs. Every subnet has its own injection-system and stations as required. The PSG#121 uses a 512&#215;512 map and we divided this map into 12 parts respectively subnets like a clock has. We don&#8217;t use the word subnet in practice, instead we call these Subnets Sidelines to keep the terminology easy and conform to our other games. Each Sideline is connected to a mainline via a SLH. The main network uses the <a href="http://www.openttdcoop.org/wiki/SML" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/SML?referer=');">SML technique</a> to handle an insane amount of trains. We didn&#8217;t built a ring or something, instead we have four mainlines and four big factory drops (again we divided the map into four sections).</p>
<h3>Orders &amp; Injection</h3>
<p>Every train belongs to a specific sideline and can transport one cargo type ([G] and [LV] in psg#121). There is no real load order, instead the train will just stop at the first station and load or, if all stations are in use, go to the depot and wait until there is a need for an <a href="http://www.openttdcoop.org/wiki/Self-regulating_SBahn#Injection" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/Self-regulating_SBahn_Injection?referer=');">injection</a>.<br />
<a class="image-link" rel="shadowbox;width=386;height=100;" href="http://blog.openttdcoop.org/files/pictures/srnw_orders.png"><img src="http://blog.openttdcoop.org/files/pictures/srnw_orders.png" alt="" width="386" height="100" /></a></p>
<p>The injection is a quite interesting topic and I think a lot of experimenting is still needed. We currently use many different systems which belong to two classes: <strong>Steady-Injection Systems</strong> which inject a train after constant time period (e.g. 10 days) and <strong>On-Demand Injection Systems</strong> which inject a train if there is a free track at a platform. If I recall correctly I also saw a mixture which constantly injects trains and on demand. Analysing injection systems would fill another article and I will not do that now. <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>The 100,000 target</h3>
<p>The goal of psg#121 is to transport enough grain and livestock to produce 100,000 crates of goods per month. To achieve this we need stations which don&#8217;t have only one platform per cargo type. Why? Imagine a farm producing more than 2000 grain or livestock per month, you can&#8217;t transport this using a single platform. Mark, ODM and me tested this and found some solutions. The main problem was that if there are multiple dummy trains per cargo type one dummy train could load the cargo which is unloaded by a second one. Avoiding this is only possible if all trains load and unload at the same time. The conclusion is that trains only unload when all trains are loaded, a bit of signalling or logic gates did the trick.</p>
<h3>The Mess</h3>
<p>Mark and I built &#8216;The Mess&#8217; yesterday, which is a station with 3 platforms per cargo-type and of course a connection to the on-demand injection system. Because of the size a Sideline of another subnet is just tunneled underneath the station. It took us more than one hour to build this area (including fixing bugs and testing) and it is just a crazy piece of  art.<br />
<a class="image-link" title="The Mess" rel="shadowbox;width=1800;height=1002;" href="http://blog.openttdcoop.org/files/pictures/the_mess_overview.png"><img class="left" title="The Mess" src="http://blog.openttdcoop.org/files/pictures/thumb_the_mess_overview.png" alt="The Mess" width="400" height="223" /></a><br class="clear" /></p>
<p><a class="image-link" title="The Mess with explanation" rel="shadowbox;width=1823;height=1004;" href="http://blog.openttdcoop.org/files/pictures/the_mess_detailed.png"><img class="left" title="The Mess with explanation" src="http://blog.openttdcoop.org/files/pictures/thumb_the_mess_detailed.png" alt="The Mess with explanation" width="400" height="220" /></a><br class="clear" /></p>
<h3>The Future</h3>
<p>The possibilities using this technique seem to be endless, this is just the beginning. It should be possible to have several SRNWs within a large one for example. Let&#8217;s keep developing this concept and let dynamic networks guide trains to wherever they&#8217;re needed.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2008/12/15/the-magic-of-srnw-self-regulating-networks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
