<?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; Gameplay</title>
	<atom:link href="http://blog.openttdcoop.org/category/gameplay/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.openttdcoop.org</link>
	<description>The #openttdcoop and OpenTTD Blog</description>
	<lastBuildDate>Tue, 27 Jul 2010 17:54:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Building 101: double bridges and you</title>
		<link>http://blog.openttdcoop.org/2010/07/27/building-101-double-bridges-and-you/</link>
		<comments>http://blog.openttdcoop.org/2010/07/27/building-101-double-bridges-and-you/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 16:34:33 +0000</pubDate>
		<dc:creator>XeryusTC</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[Public Server]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=633</guid>
		<description><![CDATA[Introduction
From the very start that you start building networks in OpenTTD you&#8217;ll need to have different tracks crossing each other. When you just start out this will be done by just simple level crossings which aren&#8217;t very efficient (except when using YAPP/PBS), later on you will start using bridges and tunnels to do this so [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
From the very start that you start building networks in OpenTTD you&#8217;ll need to have different tracks crossing each other. When you just start out this will be done by just simple level crossings which aren&#8217;t very efficient (except when using YAPP/PBS), later on you will start using bridges and tunnels to do this so different tracks don&#8217;t influence each other. Because bridges and tunnels don&#8217;t allow signals on/in them you will soon notice that you get slowdowns at them, the common solution is to use two bridges or tunnels for the same line and have their combined capacity compensate for the lack of signals. Unfortunately there are proper ways to do this and wrong ways to do it. Underneath I will discuss these and explain what you should and shouldn&#8217;t do.<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/2010/07/introduction.png"><img class="alignnone size-medium wp-image-634" title="Doubled overview" src="http://blog.openttdcoop.org/files/blog/2010/07/introduction-300x170.png" alt="An overview of the basic double bridges" width="300" height="170" /></a><br />
<span id="more-633"></span><br />
For the rest of the article I will be talking about doubled bridges only, but all of this applies to double tunnels too as there is no difference between them.</p>
<p><a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/2010/07/best.png"><img class="alignleft size-thumbnail wp-image-636" title="Double bridges" src="http://blog.openttdcoop.org/files/blog/2010/07/best-150x150.png" alt="What double bridges should look like" width="150" height="150" /></a><strong>How to double</strong><br />
A doubled bridge should always be as short as is possible so the signal gap is as small as possible and the least amount of disturbance to the trains is caused. Because of this you should also keep your split and join as close to the bridges as possible. This means that right before and after your bridges you have one straight piece of track for your signals and right before/after that you have the split or join. Any extra track counts towards the signal gap and is thus undesirable. Waiting bays in front of the double bridges are of no use and should be avoided. The double bridge is a special case of the normal track and it should be considered as normal track and not as a traffic balancer. I know this sounds counter intuitive but it is what it is and when you look at the history (see the introduction) you&#8217;ll see why.<br />
If you need to cross two lines after each other it is important to note that your double bridges should never influence trains with regards to corner lengths. I don&#8217;t join and re-split tracks when the distance of the join/split is shorter than the train length + 2. If you consider the first screenshot below then it would technically be fine to use it with TL3 or shorter but I personally prefer to do this only for TL1 because the train fits in between the presignal and the signal which marks the end of the double bridges. For TL5 this should not be done as it is slow for one of the paths. Which length you prefer is up to you but if the distance between the join and the split is more than train length + 2 then you should always join in between! If it is not then you should not rejoin and keep two different tracks side by side, note that you should view these lines as bridges with signals and it is prefered not to make any other splits or joins on them. This is shown in the second screenshot below(note that this is a special case as no proper joining and splitting can be inserted here).<br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/2010/07/double-wrong.png"><img class="alignnone size-thumbnail wp-image-638" title="Double bridges and rejoining" src="http://blog.openttdcoop.org/files/blog/2010/07/double-wrong-150x150.png" alt="" width="150" height="150" /></a><a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/2010/07/double.png"><img class="alignnone size-thumbnail wp-image-637" title="Double doubled bridges" src="http://blog.openttdcoop.org/files/blog/2010/07/double-150x150.png" alt="Two double bridges after each other" width="150" height="150" /></a></p>
<p><a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/2010/07/bridge-normal.png"><img class="alignleft size-thumbnail wp-image-635" title="Doubled bridges with normal signals" src="http://blog.openttdcoop.org/files/blog/2010/07/bridge-normal-150x150.png" alt="" width="150" height="150" /></a><strong>The pathfinder way</strong><br />
Since the introduction of YAPF (Yet Another Path Finder) we&#8217;ve had the auto-balancer. This balances trains over two or more tracks depending on the status of the first 10 signals on those tracks. This is very useful for doubled bridges as the occupied bridge has a higher penalty and is less likely to be chosen. Naturally this is the most simple and the easiest solution, it does have a big drawback though. Trains can enter the split while both bridges are occupied and thus wait longer than necessary. In normal traffic this isn&#8217;t much of a problem but at places where the traffic is likely to stop, at a merger for example, or during a jam this can become a big problem. This is why it is preferred never to use this type of bridge doubling.</p>
<p><strong>The presignal/PBS way</strong><br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/2010/07/best.png"><img class="alignright size-thumbnail wp-image-636" title="Double bridges" src="http://blog.openttdcoop.org/files/blog/2010/07/best-150x150.png" alt="What double bridges should look like" width="150" height="150" /></a>This kind of doubling comes naturally if you want to solve the problem with the last one: use pre-signals or PBS to stop trains from entering the splitter when they shouldn&#8217;t. The preferred method here is the pre-signal doubled bridges as the PBS method can lead to pathfinder issues in some very special cases. The main reason to not use PBS is that pre-signals are more controllable and the general use of PBS is discouraged. The only reason why you should ever use PBS is when there is too little space to place all the pre-signals.<br />
When using pre-signals you should always make sure that you use one way signals as they work equally good as two way signals (the reason that there is a difference is outside the scope of this post). You should <em>never</em> have a signal between the exit signal and the bridge as this breaks the entire workings of the pre-signals and the bridges may break horribly. This shouldn&#8217;t even be done if you want waiting bays: double bridges are meant to keep trains running and if you design something that is meant to have a buffer for stopped trains then there is something essentially flawed in your double bridges. For the most ideal situation see the screenshot to the right.</p>
<p><a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/2010/07/split.png"><img src="http://blog.openttdcoop.org/files/blog/2010/07/split-150x150.png" alt="A regular split at the double bridge split" title="Split and double bridges" width="150" height="150" class="alignleft size-thumbnail wp-image-639" /></a><strong>Double bridges and splits</strong><br />
Although it is not entirely wrong it is not encouraged to make a regular split at the same place as the split for the double bridges. The main reason for this is because it leads to a signaling nightmare: should you put pre-signals only for the bridges? But then you block the branch line when both bridges are occupied as the trains get stopped before the split. Should you use regular signals? That leads to the same problem as described before and isn&#8217;t ideal either. The only real solution is to use PBS and rely on that too, but in general the use of PBS is discouraged. Another reason is that double bridges are a special case of normal track and you should view it as normal track in the most situations, except where you mix it with other things like splits and merges. That should never be done! It can lead to loads of different problems and it brings general ugliness to the game.</p>
<p><strong>Double bridges and priorities</strong><br />
<a rel="shadowbox[album]" href="http://blog.openttdcoop.org/files/blog/2010/07/prio.png"><img src="http://blog.openttdcoop.org/files/blog/2010/07/prio-150x150.png" alt="" title="Double bridges and a prio" width="150" height="150" class="alignright size-thumbnail wp-image-640" /></a>Sometimes you need to have a priority while there are also double bridges in the same line, this leads to an essential problem: how do you give priority to what are essentially two seperated lines? A solution has been developed to this and it is quite simple once you understand it. What happens is that you use PBS to split the traffic over the bridges, this has the advantage that to block signals (and thus pre-signals) both the bridges will be considered the same block which is ideal for the prios. What happens next is that you make one of the signals at the end a two way exit or combo signal (A in the picture), this enables the prio over the bridges. Due to the nature of YAPF and our configuration you need to change the other signal to two way too (B in the picture). If you don&#8217;t do this then it can lead to trains stopping at the PBS signal as sometimes the PBS signal can&#8217;t find a way across the bridges. The situation in the image is the most compact and ideal way to combine prios and bridges. There might be different ways to combine them but this is the most simple one.</p>
<p><strong>Double bridges and synchronization</strong><br />
Keeping the network flowing under a high load is the main aspect of #openttdcoop. Due to a fundamental &#8216;flaw&#8217; in OpenTTD trains take longer to cross diagonal track than straight track. This has quite the impact on doubled bridges as explained <a href="http://blog.openttdcoop.org/2007/11/21/the-difference-between-diagonal-and-straight-tiles/">in this blogpost</a>. You will barely notice the impact of this however, the only time you should notice is when are densily packed on the mainlines. That mostly happens when SML is involved or when the trains have very high acceleration. In all other cases it is still important to keep sync but not essential to building. I would advice to keep bridges in sync unless you need to move tracks around too much to keep correct corner lengths. There is nothing more annoying than needing to redesign your hub just because you&#8217;re trying to stick to something which isn&#8217;t going to influence the traffic.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/07/27/building-101-double-bridges-and-you/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<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>Coopetition &#8211; and the Winner is: Yexo</title>
		<link>http://blog.openttdcoop.org/2010/07/05/coopetition-and-the-winner-is-yexo/</link>
		<comments>http://blog.openttdcoop.org/2010/07/05/coopetition-and-the-winner-is-yexo/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 20:28:07 +0000</pubDate>
		<dc:creator>Mucht</dc:creator>
				<category><![CDATA[Coopetition]]></category>
		<category><![CDATA[Gameplay]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=629</guid>
		<description><![CDATA[Hi there,
a long time since I blogged the last time, huh? Well, as I always pointed out, I&#8217;ll always stay in touch with &#8216;coop &#8211; and so I accidentally ran into a coopetition challenge at Sunday 4th!

As many of you may know, there is a cool mod out there named &#8220;Head to Head&#8221; for some [...]]]></description>
			<content:encoded><![CDATA[<p>Hi there,</p>
<p>a long time since I blogged the last time, huh? Well, as I always pointed out, I&#8217;ll always stay in touch with &#8216;coop &#8211; and so I accidentally ran into <strong>a coopetition challenge</strong> at Sunday 4th!</p>
<p><span id="more-629"></span></p>
<p>As many of you may know, there is a cool mod out there named &#8220;Head to Head&#8221; for some reason: it features a map-generation logic which duplicates a landscape in order to offer a fair head2head competition gameplay! The mod is created and maintained by Yexo. Further information is to be found at <a href="http://www.tt-forums.net/viewtopic.php?t=42572" onclick="pageTracker._trackPageview('/outgoing/www.tt-forums.net/viewtopic.php?t=42572&amp;referer=');">the TT-Forums</a>, the binary itself may be obtained at <a href="http://www.openttd.org/en/download-head-to-head" onclick="pageTracker._trackPageview('/outgoing/www.openttd.org/en/download-head-to-head?referer=');">openttd.org</a>. </p>
<p>Well, the game itself turned out to be a disaster to our #openttdcoop members! As <strong><a href="http://wiki.openttdcoop.org/User:Ammler" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/User_Ammler?referer=');">Ammler</a></strong> went bankrupt at the very beginning of the session, <strong><a href="http://wiki.openttdcoop.org/User:Planetmaker" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/User_Planetmaker?referer=');">planetmaker</a></strong> decided to keep the gameplay on a very slow pace and I made several wrong decisions in the first game year, thus giving <strong>Yexo</strong> a good opportunity to outperform all of us! Eventually, we did not even find a plausibly reason to disqualify him so we had to admit his total victory over planet &#8216;coop &#8211; see the screenshot at the bottom for further details <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Finally, I want to thank <strong>Yexo</strong> (although he degraded us ingame) for this great mod and I have to add that I will definitely be around for a new coopetition session in the next days or weeks!</p>
<p><a href="http://blog.openttdcoop.org/files/blog/2010/07/03-01-1995.png"><img src="http://blog.openttdcoop.org/files/blog/2010/07/03-01-1995-300x210.png" alt="" title="Final stats of the coopetition dual of July 4th, 2010." width="300" height="210" class="alignnone size-medium wp-image-630" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/07/05/coopetition-and-the-winner-is-yexo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Train orders</title>
		<link>http://blog.openttdcoop.org/2010/04/14/train-orders/</link>
		<comments>http://blog.openttdcoop.org/2010/04/14/train-orders/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 10:16:23 +0000</pubDate>
		<dc:creator>XeryusTC</dc:creator>
				<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[Public Server]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=619</guid>
		<description><![CDATA[In the last game I&#8217;ve noticed that quite a few stations like the following one.

The toy pickup should only have toys waiting because that is what gets picked up there, but it also has plastic waiting.
What causes this problem? It is caused by trains having incorrect orders, usually only toy trains go to this station [...]]]></description>
			<content:encoded><![CDATA[<p>In the last game I&#8217;ve noticed that quite a few stations like the following one.<br />
<a href="http://blog.openttdcoop.org/files/blog/2010/04/problem.png"><img src="http://blog.openttdcoop.org/files/blog/2010/04/problem.png" alt="" title="Toy pickup" width="259" height="110" class="alignnone size-full wp-image-620" /></a><br />
The toy pickup should only have toys waiting because that is what gets picked up there, but it also has plastic waiting.</p>
<p>What causes this problem? <span id="more-619"></span>It is caused by trains having incorrect orders, usually only toy trains go to this station but when a part of the network gets rebuild or when a hub has missing connections then trains might use other stations to detour and get on their way to their destination. If these detouring trains don&#8217;t have proper orders then they will stop at every intermediate station.<br />
The solution to this is quite simple: just create non-stop orders. You can do this simply via the order window by clicking the non-stop button. This leaves a problem of its own however: you can easily forget this step. Fortunately the OpenTTD devs have made a solution for this: an advanced setting.<br />
<a href="http://blog.openttdcoop.org/files/blog/2010/04/orders.png"><img src="http://blog.openttdcoop.org/files/blog/2010/04/orders-300x258.png" alt="" title="orders" width="300" height="258" class="alignnone size-medium wp-image-621" /></a><br />
When you have this option enabled all orders will be non-stop by default and thus you cannot forget to do it manually. Every #openttdcoop player should have this option enabled at all times, you might even call it a mandatory option. Unfortunately we can&#8217;t force the server to have this option enabled as devs have moved it to the network save option category a long time ago.</p>
<p>While I am writing this post I should also note that all trains should have shared orders at all times if they have the same orders. If you&#8217;re cloning trains then you should keep ctrl pressed while cloning, this will automatically share their orders. You can also share orders by pressing ctrl when you use the go to button on another train. Doing this without holding ctrl will simply copy the orders without sharing it.<br />
Why do we want shared orders? Because they are a lot easier to edit. You can change the orders of an entire group of trains by just changing the orders of one of them, otherwise you would have to do the same for every single train.<br />
If you want to change the orders of a single train in a group of shared orders trains you will have to click the last option in the order list though (the one which says &#8220;&#8211; End of shared orders &#8211;&#8221; and hit delete, this will unshare the orders for this train. This also has the downside of removing the orders from the train though.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/04/14/train-orders/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Logging and statistics</title>
		<link>http://blog.openttdcoop.org/2010/04/11/logging-and-statistics/</link>
		<comments>http://blog.openttdcoop.org/2010/04/11/logging-and-statistics/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 14:01:53 +0000</pubDate>
		<dc:creator>ODM</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[Patches]]></category>
		<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Community News]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=617</guid>
		<description><![CDATA[As most of our players will know, we keep a log of activity on our Public Server. Few however know how it works, what is being stored and what we do with it. That&#8217;s why this blog will explain the basics of our logging functionality and what that means for openttdcoop and its players.


Logging
The rule [...]]]></description>
			<content:encoded><![CDATA[<p>As most of our players will know, we keep a log of activity on our <a href="http://openttdcoop.org/?page=servers&#038;s=ps" onclick="pageTracker._trackPageview('/outgoing/openttdcoop.org/?page=servers_038_s=ps&amp;referer=');">Public Server</a>. Few however know how it works, what is being stored and what we do with it. That&#8217;s why this blog will explain the basics of our logging functionality and what that means for openttdcoop and its players.</p>
<p><a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/2/2b/Logexample.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/2/2b/Logexample.png?referer=');"><img class="aligncenter" title="An example of the contents of a logfile." src="http://wiki.openttdcoop.org/images/2/2b/Logexample.png" alt="Example of a logfile." width="700" /></a></p>
<p><span id="more-617"></span><br />
<strong>Logging</strong></p>
<p>The rule on our servers is you sign your own work. This way we can see who&#8217;s done what. But it&#8217;s not a foolproof system, as players with bad intentions will most likely not sign their destruction, or respond to inquiries of other players. Because of this, admins had to guess who was responsible for such actions, which generally resulted in kicking the player who was the least known. Obviously this is not a fail-safe solution.</p>
<p>To combat this problem our server runs with a custom-written patch. This patch outputs certain game information to a logfile, one file for each game. Firstly it logs information from the server itself. Think of error reports, leaving and joining players, game status and password changes. Secondly it logs all the actions by the players, with their respective price tags and parameters like game tiles. And thirdly all in game chat is also logged. With this information we can accurately determine the culprit, ban him and then reload the game from an autosave to undo any bad changes. This way we are pretty much covered against any sort of in game mishap.</p>
<p><strong>Privacy</strong></p>
<p>Now you could consider me a privacy nut, I&#8217;m apparently one of the few who thinks it&#8217;s important and shouldn&#8217;t be given up so easily as it has been in the previous years. With that in mind I&#8217;d like to highlight the privacy side of this situation to calm the uneasy feeling you might get of the idea of being watched in game.</p>
<p>While we are logging everything that goes on in-game, only members, players that have shown to be trustworthy, get access to the log files. And they are not staring at it all the time either, because frankly, there are better things to do then stare at up to 20 Megabytes of text. The way the log is used is that we browse it with a tool whenever we notice bad behaviour on the server. This tool looks at the last X lines in the log, highlighting actions that could be the bad behaviour we are looking for. Think of the levelling of land, actions with huge price-tags and demolitions. This saves us the work of actually having to search for these things ourselves. Basically, we don&#8217;t look at the building in progress, we only search for abuse when it&#8217;s needed. Last but not least, logs will be deleted after a while. Generally we keep around 5-10 games worth of logs and the rest is discarded.</p>
<p><strong>Statistics</strong></p>
<p>The majority of our playerbase comes with a background in exact sciences, like me. With this in mind, I thought it would be a good idea to generate statistics from our logfiles. Because who doesn&#8217;t like statistics? So more then half a year ago I decided to write a program in Java that parses those log files and generates statistics out of them, like the number of lines typed and money spent. </p>
<p><a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/8/8a/Statsexample.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/8/8a/Statsexample.png?referer=');"><img class="aligncenter" title="An example of generated statistics." src="http://wiki.openttdcoop.org/images/8/8a/Statsexample.png" alt="Generated statistics." /></a></p>
<p>The program is now hosted on our own <a href="http://dev.openttdcoop.org/projects/loganalyzer" onclick="pageTracker._trackPageview('/outgoing/dev.openttdcoop.org/projects/loganalyzer?referer=');">Dev server</a>. After a long time of neglecting it&#8217;s maintenance, a rewrite to compensate in a change of style and the fixing of some bad bugs, the program is finally up-to-date and all logs excluding the current one are processed. The results of this can be found <a href="http://ps.openttdcoop.org/public/stats/" onclick="pageTracker._trackPageview('/outgoing/ps.openttdcoop.org/public/stats/?referer=');">here</a>. And no, this is not useful. But it&#8217;s always interesting to have a look.</p>
<p><strong>Future work</strong></p>
<p>Right now I am working on a system that plots the tile information of actions into an image. Combined with some image processing, it should be possible to build a mini-mini-map, not based on how it looks, but based on how much has changed. This is an example of how such a map could look like:</p>
<p><a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/5/51/Activitymap.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/5/51/Activitymap.png?referer=');"><img class="aligncenter" title="Possible form of the activitymap." src="http://wiki.openttdcoop.org/images/5/51/Activitymap.png" alt="An activitymap." height="300" /></a></p>
<p>I wonder if anyone can guess the game number from that image. But once again, not useful, but probably interesting to see. Besides that there is some work to be done on the usability of the program itself and adapting it for use on other servers as well. If you have any more ideas, comments or suggestions, feel free to post your them in the comments or let me know on IRC.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/04/11/logging-and-statistics/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Advanced Building Revue 02: Splits</title>
		<link>http://blog.openttdcoop.org/2010/03/25/advanced-building-revue-02-splits/</link>
		<comments>http://blog.openttdcoop.org/2010/03/25/advanced-building-revue-02-splits/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 18:56:06 +0000</pubDate>
		<dc:creator>V453000</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[Public Server]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=613</guid>
		<description><![CDATA[We have had many articles about mergers, merging, balancing, packing, and so on because it definitely is one of the most important parts in our every game. This one is about the counterpart. Splitting. In this article I would like to describe most of the types of splits and show the possible usages.


Kinds of splitting
The [...]]]></description>
			<content:encoded><![CDATA[<p>We have had many articles about mergers, merging, balancing, packing, and so on because it definitely is one of the most important parts in our every game. This one is about the counterpart. Splitting. In this article I would like to describe most of the types of splits and show the possible usages.</p>
<p><a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/7/7a/ThaHypnotizer.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/7/7a/ThaHypnotizer.png?referer=');"><img class="aligncenter" title="The Hypno" src="http://wiki.openttdcoop.org/images/7/7a/ThaHypnotizer.png" alt="Madness!" width="400" height="238" /></a></p>
<p><span id="more-613"></span></p>
<h4><strong>Kinds of splitting</strong></h4>
<p>The first and most elementary way how to split trains is by orders. Go to spot 1, go to spot 2, simple, easy, effective. This we use in &#8220;normal&#8221; cases.<br />
<a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/0/03/SPLITS_01_Simple_Split.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/0/03/SPLITS_01_Simple_Split.png?referer=');"><img class="aligncenter" title="Not dumb!" src="http://wiki.openttdcoop.org/images/0/03/SPLITS_01_Simple_Split.png" alt="Not dumb!" width="300" height="188" /></a><br />
But what happens when we want to split some trains somehow conditionally? Just some?</p>
<h4><strong>Split &#8220;if there is space&#8221;</strong></h4>
<p>Based on the power of 2way signals &#8211; this one we use mostly in SRNW where any train goes into the entrance, just if there is free space for it (don&#8217;t forget to make there at least full-TL waiting space).<br />
<a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/8/83/SPLITS_02_2way_Split.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/8/83/SPLITS_02_2way_Split.png?referer=');"><img class="aligncenter" title="Shiney!" src="http://wiki.openttdcoop.org/images/8/83/SPLITS_02_2way_Split.png" alt="Shiney!" width="300" height="132" /></a><br />
Sometimes trains behave extremely dumb and don&#8217;t like the 2ways enough. Then we have to make it forced a bit more. Preferably by closing the other exit. This is the way: NOT-gated waiting bay forces the train to get in if there is no one. This could result in a deadlock at the moment when train is just passing by and suddenly the path closes.<br />
<a rel="http://wiki.openttdcoop.org/images/e/e3/SPLITS_03_FAIL01.png"><img class="aligncenter" title="Awww" src="http://wiki.openttdcoop.org/images/e/e3/SPLITS_03_FAIL01.png" alt="Awww" width="300" height="220" /></a><br />
This can be easily solved by making it fail-safe.<br />
<a rel="http://wiki.openttdcoop.org/images/8/8d/SPLITS_03_NO_FAIL.png"><img class="aligncenter" title="No fail!" src="http://wiki.openttdcoop.org/images/8/8d/SPLITS_03_NO_FAIL.png" alt="No fail!" width="300" height="195" /></a><br />
This still has a critical spot &#8211; if two trains come very close to each other or just jam here, it is possible that the fail-saving mechanism will be overridden. As an insurance there could be added a combination of entry and exit signals, making it absolutely immune to any failure.<br />
<a rel="http://wiki.openttdcoop.org/images/2/2a/SPLITS_03_failsafe_insurance.png"><img class="aligncenter" title="This shall not fail." src="http://wiki.openttdcoop.org/images/2/2a/SPLITS_03_failsafe_insurance.png" alt="This shall not fail." width="180" height="102" /></a></p>
<h4><strong>Splitters &#8220;am I the one?&#8221;</strong></h4>
<p>When there are multiple types of trains on the network/split line, the splitter has to recognize them and pick the right ones. Probably the most reliable kind of this so far is the Train Length splitter/recognizer, letting in only trains of a certain, higher, or lower TLs than a set number. Mark and me already wrote something about these so I will just link you to these:<br />
<a href="http://wiki.openttdcoop.org/User:Mark/VarTL" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/User_Mark/VarTL?referer=');">Mark&#8217;s train length splitters</a><br />
<a href="http://wiki.openttdcoop.org/User:V453000/TLS" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/User_V453000/TLS?referer=');">V453000&#8217;s train length splitters</a></p>
<h4><strong>Splitters &#8220;you go this way, I want that way!&#8221;</strong></h4>
<p>This is the most interesting type of splitters because we have an input of all-the-same trains and we want to split them into X equally loaded parts (or any other ratio).</p>
<h4><strong>Gap splitter</strong></h4>
<p>The probably first, simplest and least effective is a &#8220;gap splitter&#8221;. It is relying on split, if one of the lines is already occupied, halving the maximum possible number of traffic each one of these can get.<br />
<a rel="http://wiki.openttdcoop.org/images/f/fb/SPLITS_04_GapSplit.png"><img class="aligncenter" title="Selfish bastard." src="http://wiki.openttdcoop.org/images/f/fb/SPLITS_04_GapSplit.png" alt="Selfish bastard." width="300" height="171" /></a><br />
As it is just the maximum, it fails when the maximum is not reached &#8211; when two trains come in an inverval, resulting in one of the output to be more stressed than the other one. This is a good split for station entrances, as we only care about the maximum throughput, mostly.<br />
<a rel="http://wiki.openttdcoop.org/images/1/18/SPLITS_04_FAIL.png"><img class="aligncenter" title="Not split!" src="http://wiki.openttdcoop.org/images/1/18/SPLITS_04_FAIL.png" alt="Not split!" width="300" height="173" /></a></p>
<h4><strong>Probability splitter</strong></h4>
<p>Probability splitters are based on a period of time in which they are released to a certain output. This means that a timer-style train goes in some cycle through a number of bays. It&#8217;s position (related with bays) influences which of the splitter output paths is going to be open.<br />
<a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/2/2f/SPLITS_05_Timer.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/2/2f/SPLITS_05_Timer.png?referer=');"><img class="aligncenter" title="50-50" src="http://wiki.openttdcoop.org/images/2/2f/SPLITS_05_Timer.png" alt="50-50" width="300" height="140" /></a><br />
This type of splitter has no problems if trains come in in long intervals but as it is based &#8220;just&#8221; on probability, in many cases it could be not precise enough.</p>
<p>Similarly as the &#8220;is there space?&#8221; this also tends to deadlock when the green just suddenly swaps to red when a train is passing by. This situation isn&#8217;t that serious though, as the blocked train is going to be released in the next cycle when his path is green again. Still, this could result in jams and slowdowns and can be fixed by fail-safe exit signal again.<br />
<a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/a/ad/SPLITS_05_Failsafe_Timer.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/a/ad/SPLITS_05_Failsafe_Timer.png?referer=');"><img class="aligncenter" title="Sign Spam" src="http://wiki.openttdcoop.org/images/a/ad/SPLITS_05_Failsafe_Timer.png" alt="Sign Spam" width="300" height="179" /></a></p>
<h4><strong>Flip-flop</strong></h4>
<p>The best splitter mechanism in terms of precision. The flip-flop can be used to split into two streams, mostly used in ratio 1:1, for which it&#8217;s best.</p>
<p><a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/1/10/SPLITS_06_flipflop.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/1/10/SPLITS_06_flipflop.png?referer=');"><img class="aligncenter" title="Flip-flop" src="http://wiki.openttdcoop.org/images/1/10/SPLITS_06_flipflop.png" alt="flip-flop" width="300" height="164" /></a></p>
<p>As you can see, there is a memory (1) which gets red if a train passes by and stays red for an unlimited period of time unless it is erased. Therefore this path if closed because the entry combo signal into the path looks at the memory status. But hey! The other path is still open! So the next train goes there and locks the other memory. At the same time, the NOT gate erases the first memory and another train can pass into the first path because it&#8217;s memory is now erased.</p>
<p>A very important element for flip-flops is response time of the NOT gates. It has to be able to erase the memory before another train gets there. If we have not fast enough not gates, we have to use longer TL to give it more time or use a different type of splitter.<br />
There are also possible modifications of this mechanism, mainly change of the ratio to 1:2 or more. It simply is just making more memories to one path. See this image from PSG 175.<br />
<a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/9/98/Psg175_flipflop1.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/9/98/Psg175_flipflop1.png?referer=');"><img class="aligncenter" title="Flip-flop 1:2" src="http://wiki.openttdcoop.org/images/9/98/Psg175_flipflop1.png" alt="flip-flop" width="300" height="139" /></a><br />
The flip-flop can also be easily used for 1:1:1 split into three lines. Image is also from PSG 175.<br />
<a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/b/bd/Psg175_flipflop.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/b/bd/Psg175_flipflop.png?referer=');"><img class="aligncenter" title="Flip-flop 1:1:1" src="http://wiki.openttdcoop.org/images/b/bd/Psg175_flipflop.png" alt="flip-flop" width="300" height="210" /></a></p>
<h4><strong>Splitter &#8220;1,2,3 am I the one?&#8221;</strong></h4>
<p>This kind &#8220;counts&#8221; trains and releases every Xth train out to the split output. The rest is kept on the line from which we split. The mechanism is based on a NOT gate which detects any incoming train into the splitter and a cycle bay-based train who changes it&#8217;s position in bays with each train passing through the splitter. When the train reaches a certain bay, it splits the train. A key thing is selection of the bay-cycling train which must pass just to the next bay when one train passes the splitter (with too fast trains it could happen that the cycle train skips bays it should stop in, resulting in inaccuracy). </p>
<p><a rel="shadowbox[album]" href="http://wiki.openttdcoop.org/images/6/60/SPLITS_06_every4th.png" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/6/60/SPLITS_06_every4th.png?referer=');"><img class="aligncenter" title="Split" src="http://wiki.openttdcoop.org/images/6/60/SPLITS_06_every4th.png" alt="Split" width="300" height="158" /></a></p>
<p>In this picture you can see the &#8220;detector NOT gate&#8221; (1) which releases the bay-cycle train (2). There are 4 bays in the cycle, meaning that every 4th train splits to A because the bay-detector NOT gate (3) opens that path and at the same time B is closed (4).</p>
<p>This type of splitter is best used with logic trains for NOT gates as we like to have it as accurate as possible. The hugest advantage of this type is it&#8217;s flexibility. You can make it split in any ratio from 1:3 to 7:86 or whatever your maniacal mind comes up with. I can think of only only a few problems &#8230; the first is &#8211; you have to try which train is best for the bay-cycle train. The second thing is that trains must not jam on this mechanism as it could break it completely. Also important is to put the detector close enough to the split, so no the train that is to be split releases itself (doesn&#8217;t necessarily have to but it is &#8220;safer&#8221;) and at the same time the mechanism must have enough time to react and open the split path.</p>
<h4><strong>Conclusion</strong></h4>
<p>All in all splitters are one big bunch of fun and could be very handy in some situations, especially when SRNW&#8217;ing or just in some other special moments when the dumb trains need an extra guidance. As you might&#8217;ve seen, I mostly use the flip-flop. That is because if I need to split for example 1->6, I just use three flip-flops in a row (1->2 and 2x 1->3), such as The Hypnotizer in PSG 179. I&#8217;m looking forward to more interesting things that could evolve from these basic ones I have talked here about. Thanks for reading and <del datetime="2010-03-25T17:30:10+00:00">don&#8217;t</del> get mad! <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/03/25/advanced-building-revue-02-splits/feed/</wfw:commentRss>
		<slash:comments>1</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>Mixing Balancing and Merging</title>
		<link>http://blog.openttdcoop.org/2010/02/13/mixing-balancing-and-merging/</link>
		<comments>http://blog.openttdcoop.org/2010/02/13/mixing-balancing-and-merging/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 21:52:11 +0000</pubDate>
		<dc:creator>Chris Booth</dc:creator>
				<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[Off-Topic]]></category>
		<category><![CDATA[Roleplay]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=607</guid>
		<description><![CDATA[Over a period of months I have been developing a game which I have been test out network capacity and packing. To do this I boosted some primary industries and connected them directly to the main line. This in itself causes issues, which can jam the main line. To overcome this issue I built very [...]]]></description>
			<content:encoded><![CDATA[<p>Over a period of months I have been developing a game which I have been test out network capacity and packing. To do this I boosted some primary industries and connected them directly to the main line. This in itself causes issues, which can jam the main line. To overcome this issue I built very high capacity stations.</p>
<p>My network ended up with 890 trains that travelled around a ML ring. Since all the primary stations where on the ML the game ended up only having MSH and BBHs. This meant that I have to balance all of the tracks on and off the main loop. The loop was LLL_RRR most of the way around excluding the northern section which was LL_RR and L_R only in some sections.</p>
<p><a class="image-link" rel="shadowbox;width=1920;height=1000;" href="http://blog.openttdcoop.org/files/pictures/Chris Booth/Overnville%20Transport%2C%2026th%20Sep%202309.png"><img src="http://blog.openttdcoop.org/files/pictures/Chris Booth/thumb_Overnville%20Transport%2C%2026th%20Sep%202309.png" alt="" width="400" height="208" /></a><br class="clear" /><br />
<span id="more-607"></span><br />
When I originally built the factory area is was a small 8 platform station with 1 entrance and 1 exit. It evolved into a 16 platform station with 3 entrance and exit lines which are each in turn mixed over the ML in all directions</p>
<p><a class="image-link" rel="shadowbox;width=1440;height=820;" href="http://blog.openttdcoop.org/files/pictures/Chris Booth/Overnville%20Transport%2C%203rd%20Feb%202026.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/Chris Booth/thumb_Overnville%20Transport%2C%203rd%20Feb%202026.png" alt="" width="400" height="227" /></a><br class="clear" /><br />
This image is of the busy LLL_RRR MSH to the factory drop where the main line turns 90 degrees. The factory is serviced by Grain, Livestock and Steel and has a monthly output of around 12,000 crates of goods. With this game I have transported every Cargo type that it is possible to transport. This has resulted in many interesting track combinations and layouts.<br />
<a class="image-link" rel="shadowbox;width=1440;height=820;" href="http://blog.openttdcoop.org/files/pictures/Chris Booth/Overnville%20Transport%2C%2029th%20Mar%202309.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/Chris Booth/thumb_Overnville%20Transport%2C%2029th%20Mar%202309.png" alt="" width="400" height="227" /></a><br class="clear" /></p>
<p>I started the game without a network plan (this is never a good idea). I used a B2B style game, where I used a fix TL of 5 tiles, and a fixed loco (RE 4600) from the 2cc set. This train is very good for passengers and goods as it is very fast, and has a high tractate effort, which means it won’t slow while pulling loads up long grades.</p>
<p><a class="image-link" rel="shadowbox;width=1440;height=820;" href="http://blog.openttdcoop.org/files/pictures/Chris Booth/Overnville%20Transport%2C%2015th%20Jan%202309.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/Chris Booth/thumb_Overnville%20Transport%2C%2015th%20Jan%202309.png" alt="" width="400" height="227" /></a><br class="clear" /></p>
<p>My first line linked the forests of Drefingway-on-sea to the sawmill at Fultborough. When first built this link was L_R only. Over time demand from the forests and other trains on the network meant I had to upgrade the line to LLL_RRR most of the way for this link.</p>
<p>I also dedicated 2 large cities on the map which I transported passengers between and I also dropped all of my goods at these 2 cities. Both cities ended up to have more than 200,000 population and where close to very busy junctions within my network.</p>
<p><a class="image-link" rel="shadowbox;width=1440;height=820;" href="http://blog.openttdcoop.org/files/pictures/Chris Booth/Overnville%20Transport%2C%201st%20Mar%202309.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/Chris Booth/thumb_Overnville%20Transport%2C%201st%20Mar%202309.png" alt="" width="400" height="227" /></a><br class="clear" /></p>
<p>To handle to traffic I made sure each industry had its own area on the map. This meant that I could dictate cargo direction to the drops in order to balance the network. This can be seen in many locations around the map.<br />
If you want to see my full works please download my saved game file: <a href="http://wiki.openttdcoop.org/images/7/78/Blog_Game.sav" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/images/7/78/Blog_Game.sav?referer=');"> Blog Game</a></p>
<p>To run the game you will need openttdcoop GRF pack 7.3, and all other GRFs can be found on bananas. You will also need r18985 or later</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/02/13/mixing-balancing-and-merging/feed/</wfw:commentRss>
		<slash:comments>3</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&#8217;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>7</slash:comments>
		</item>
		<item>
		<title>Efficient stations and tight packed train streams</title>
		<link>http://blog.openttdcoop.org/2009/12/30/efficient-stations-and-tight-packed-train-streams/</link>
		<comments>http://blog.openttdcoop.org/2009/12/30/efficient-stations-and-tight-packed-train-streams/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 15:40:53 +0000</pubDate>
		<dc:creator>Phazorx</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Gameplay]]></category>
		<category><![CDATA[OpenTTD]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=594</guid>
		<description><![CDATA[Article about train packing and associated issues]]></description>
			<content:encoded><![CDATA[<p>This is about efficiency and dealing with OpenTTD quirks, about achieving maximum throughput with minimal line width, about optimization and simple yet effective #openttdcoop style magic&#8230; basically, it&#8217;s about things I like and which make me come back to this game over and over again ;o)</p>
<p><img src="http://blog.openttdcoop.org/files/pictures/Phazorx/packers.PNG" width="573" height="376" alt="" title="Will it make it?" /></p>
<p><span id="more-594"></span><br />
So let&#8217;s talk about stations&#8230; it is basic TTD element&#8230; every player made some&#8230; some designs were fancy and some ugly&#8230; most working (i hope <img src='http://blog.openttdcoop.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Some stations are bigger than others, a network wide dedicated drop or pickup would be an example. For obvious reasons such stations, in terms of number of platforms, are wider (or much wider) than lanes within the network the station is hooked to and that posses two tasks competent engineer should handle. These tasks are designing station entry and exit.<br />
I would like to direct your attention to exit from megastations; First, it is usually a more complex task, since not being able to move trains after they been served &#8211; clogs the station and network itself rather quickly. And, on the other hand, train stream with totally random spacing is hurting network performance due to the fact that more spacing means less trains per lane and a need to upgrade amount of lanes while at same time it also is damaging factor to ability for merging traffic to find gap to get onto the net. And that&#8217;s where new concept comes to play&#8230; it is a network contraption which merges trains in a way which creates more efficient train spacing and hence better train stream.<br />
There has been 2 concepts mentioned on PS games. The are &#8220;compressor&#8221; by Mark and &#8220;packer&#8221; by yours truly. They appear to do similar things but are to be used differently. And usage depends greatly on type of network/station they are attached to.</p>
<p>Compressor acts based on slowing down randomly spaced trains and grouping them together to be released as a pack with minimal intervals inbetween. This is essential for most networks and should be done in case if traffic merges into lanes, because single larger gap instead of many smaller ones means easier entry, but at same time it relies on having available room on the lane it operates on, as in if there are too many trains, stopping them would mean stopping the ML. In station context compressor can and often should be applied to exit from pickup stations, reason being &#8211; trains leaving pickups are often go in waves due to fluctuations of production (and many other factors), thus organizing these waves can be a real saver for busy network with lots of merging traffic. <a href="http://www.openttdcoop.org/files/publicserver_archive/PublicServerGame_131_Final.sav" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/files/publicserver_archive/PublicServerGame_131_Final.sav?referer=');">PSG#131</a> has functional example of Mark&#8217;s compressor on few lanes of ML:<br />
<a class="image-link" rel="shadowbox;width=1750;height=805;" title="Mark's compressor" href="http://blog.openttdcoop.org/files/pictures/Phazorx/compressor.PNG"><img class="left" src="http://blog.openttdcoop.org/files/pictures/Phazorx/thumb_compressor.PNG" width="600" height="276" alt="" title=""  /></a><br class="clear" /></p>
<p>Packer while being pretty much same by design acts a bit different. The goal of packer is absolutely streamline train packing process to extreme, it produces train stream with no gaps as long as station provides enough trains. After such process these lines are literally impossible to merge into, hence applicable usage is very different &#8211; packers should not be used for affecting lanes where trains are supposed to merge often, it will lead to SL bottlenecks once packer kicks into highest gear. That being said, a perfect place and role for a packer is optimizing train stream going from network drop, on network with empty/full track separation, one of best example would be <a href="http://wiki.openttdcoop.org/SRNW" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/SRNW?referer=');">SRNW</a> &#8211; aside from overflow injection, dummy trains don&#8217;t ever join to lanes that go from drop. A working example of such application can be seen in <a href="http://www.openttdcoop.org/files/publicserver_archive/PublicServerGame_170_Final.sav" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/files/publicserver_archive/PublicServerGame_170_Final.sav?referer=');">PSG#170</a>, where a very ugly, but functional version of packer deals with 3 lanes of incoming traffic (badly spaced due to merging) compressing them into 2 tight packed lanes.<br />
After thinking about how tiresome is the process of combining network elements to slow down trains in order to achieve desired merging pattern, I decided to do it simple way and integrate it into station:</p>
<p><a class="image-link" rel="shadowbox;width=1418;height=782;" title="Phazor'x test packer" href="http://blog.openttdcoop.org/files/pictures/Phazorx/packer.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/Phazorx/thumb_packer.png" width="600" height="330" alt="" title=""  /></a><br class="clear" /></p>
<p>There is also a <a href="http://blog.openttdcoop.org/files/blog/phazorx/packer.sav">savegame</a> available with working example of this packer, but due to OpenTTD bugs and tight packed stream hitting the station on the other side of the loop there are some issues with station entry as well as &#8220;<a href="http://bugs.openttd.org/task/1063" onclick="pageTracker._trackPageview('/outgoing/bugs.openttd.org/task/1063?referer=');">FS1063</a>-safe curves&#8221; had to be used in order to maintain gaps between trains. Station size for a single lane is also quite unusual since it has 10 platforms, but that was necessary do demonstrate the efficiency of such device.<br />
Core basis of this packer is spacing station in a way applicable for how trains need to be spaced on ML, essentially for proper function minimal gaps between trains should be 2 signal intervals (2&#215;2=4 tiles for most coop games) and hence 4 tiles between stations give you desired spacing while timed release is powered by a ticker train which run on schedule. This is hardest part &#8211; you actually have to figure out how many ticks trains should wait on station before second batch should be release w/o running into trains from previous set, so some testing is required. The release mechanism is also main design difference from compressor which is &#8220;capacity&#8221; operated with gate logic holding trains in place while pack assembles.</p>
<p>The point i am trying to stress &#8211; in most cases performance of network can be greatly affected by producing more efficient train streams and compressor and packer while being similar by nature should be used with caution since they do produce very different results.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/12/30/efficient-stations-and-tight-packed-train-streams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
