<?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; Public Server</title>
	<atom:link href="http://blog.openttdcoop.org/category/public-server/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>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>Famous Games 2009</title>
		<link>http://blog.openttdcoop.org/2010/01/10/famous-games-2009/</link>
		<comments>http://blog.openttdcoop.org/2010/01/10/famous-games-2009/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 23:29:22 +0000</pubDate>
		<dc:creator>Osai</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Hall of Fame]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=597</guid>
		<description><![CDATA[Hello everybody,
I just checked the Public Server Archive today and recognised we didn&#8217;t add any games of 2009 to our Hall of Fame.
If you have any proposals please leave a comment or use the Voting Page.
I hope we can make out the best games in 2009 soon.
]]></description>
			<content:encoded><![CDATA[<p>Hello everybody,<br />
I just checked the <a href="http://wiki.openttdcoop.org/PublicServer:Archive" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/PublicServer_Archive?referer=');">Public Server Archive</a> today and recognised we didn&#8217;t add any games of 2009 to our <a href="http://wiki.openttdcoop.org/PublicServer:Archive_-_Hall_of_Fame" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/PublicServer_Archive_-_Hall_of_Fame?referer=');">Hall of Fame</a>.<br />
If you have any proposals please leave a comment or use the <a href="http://wiki.openttdcoop.org/PublicServer:Archive_-_Vote_-_HoF" onclick="pageTracker._trackPageview('/outgoing/wiki.openttdcoop.org/PublicServer_Archive_-_Vote_-_HoF?referer=');">Voting Page</a>.</p>
<p>I hope we can make out the best games in 2009 soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2010/01/10/famous-games-2009/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Stochastic Networks</title>
		<link>http://blog.openttdcoop.org/2009/09/06/stochastic-networks/</link>
		<comments>http://blog.openttdcoop.org/2009/09/06/stochastic-networks/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 11:42:40 +0000</pubDate>
		<dc:creator>Combuster</dc:creator>
				<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Logic Gate]]></category>
		<category><![CDATA[NewGrf]]></category>
		<category><![CDATA[OpenTTD]]></category>
		<category><![CDATA[Signalling]]></category>
		<category><![CDATA[Stochastic Network]]></category>
		<category><![CDATA[Trains]]></category>
		<category><![CDATA[Trick]]></category>

		<guid isPermaLink="false">http://openttdcoop.org/?p=574</guid>
		<description><![CDATA[You will probably have seen, or participated, in the last Public server game, which was all about logic. I&#8217;ll try to explain it in a bit.
After recent interests in self-regulating construction, there was an attempt to improve the usability of such designs. We have already seen self-regulating networks, where dummy trains transfer cargo onto ML [...]]]></description>
			<content:encoded><![CDATA[<p>You will probably have seen, or participated, in the last Public server game, which was all about logic. I&#8217;ll try to explain it in a bit.</p>
<p>After recent interests in self-regulating construction, there was an attempt to improve the usability of such designs. We have already seen self-regulating networks, where dummy trains transfer cargo onto ML trains, and recently self-regulating orders where vehicles could potentially go to all stations. What has not yet been done is to apply a form of regulation to point-to-point passenger games.</p>
<p><span id="more-574"></span></p>
<p>The main idea behind the concept is to have trains arbitrarily choose a station to drop their next load. While one could put each possible pair of stations into an order list, you would have to maintain the 240 possible pairs  for 16 stations, making it a big hassle. However, if you force trains in a certain direction by the network, you can keep everything more manageable. So if you can force a certain selection of trains in one direction, you are set.</p>
<div id="attachment_580" class="wp-caption alignnone" style="width: 437px"><a class="image-link" title="The Plan" rel="shadowbox;width=1280;height=968;" href="http://blog.openttdcoop.org/files/blog/2009/09/metropqyq.png"><img class="size-full wp-image-580" title="PSG #157 plan" src="http://blog.openttdcoop.org/files/blog/2009/09/metropqyq.png" alt="The plan for PSG #157" width="427" height="323" /></a><p class="wp-caption-text">The plan for PSG #157</p></div>
<p>In PSG #157, the idea was put to the test. The plan basically consisted of four flattened rings, where trains would be able to change on the shared parts. At three of the hubs, trains would have a choice of turning right or left. Using logic, trains were forced either left or right in turn. The two smaller hubs used flip-flops to do perfectly cut the train flow in half for each outer part. Due to the size of a flip-flop, the central hub was built using a timer. This timer forced all trains to the left for a few seconds, then right for the next few seconds, which again resulted in the stream being effectively cut in half.</p>
<p>Stations would need a much lower ratio &#8211; if they would get a 50/50 share, the chance was very likely that the train would drop the load at the next stop, and the chance of reaching the other end of the network would be minimal. Instead each station was given 1/8th of the traffic, which gave a good distribution without having the trains spending an eternity on the line. Due to traffic being halved, the outer hubs would take 1/4 trains each.</p>
<div id="attachment_580" class="wp-caption alignnone" style="width: 437px"><a class="image-link" title="Main Station Hub 2" rel="shadowbox;width=1280;height=968;" href="http://blog.openttdcoop.org/files/blog/2009/09/Metropolis-16th-Aug-23472.png"><img class="size-full wp-image-577" title="Metropolis, 16th Aug 2347" src="http://blog.openttdcoop.org/files/blog/2009/09/Metropolis-16th-Aug-23472.png" alt="quarterselector" width="427" height="323" /></a><p class="wp-caption-text">Station hub 2, where you can see the 1/4 selector</p></div>
<p>To pick one out of four or eight trains accurately, a mechanism was needed. The most used system consisted of a not gate (the MagLev loops at the top) which would allow the train in the counter (erail loops in the bottom) to move ahead one signal for each train. The loop had 4 signals, and thus four segments. By tapping into one of the segments, we could get a signal for every fourth train. The remaining pair of not gates (MagLev loops in the center) were used to always have one red signal and one green signal, so that trains couldn&#8217;t have second thoughts and still go the wrong way.</p>
<p>You can have a look at the game in the <a title="PSG #157" href="http://openttdcoop.org/wiki/PublicServer:Archive_-_Games_151_-_160#gameid_157" target="_blank" onclick="pageTracker._trackPageview('/outgoing/openttdcoop.org/wiki/PublicServer_Archive_-_Games_151_-_160_gameid_157?referer=');">PublicServer Archive</a></p>
<p>As a special feature, there were new logic trains available. Going at supersonic speeds, they allowed the user to create extremely fast responding logic systems, and made completing the plan a lot easier. You can find them in OpenTTD&#8217;s online content section.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/09/06/stochastic-networks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Self regulating orders (SRO)</title>
		<link>http://blog.openttdcoop.org/2009/07/19/self-regulating-orders-sro/</link>
		<comments>http://blog.openttdcoop.org/2009/07/19/self-regulating-orders-sro/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 00:36:33 +0000</pubDate>
		<dc:creator>planetmaker</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[orders]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=566</guid>
		<description><![CDATA[When it comes to improving station rating, often the focus is on changing or extending the network and tuning the signaling to the needs or adding additional trains to single stations while the orders of trains are often overlooked and plain default orders like &#8220;GoTo A, full load&#8221;, &#8220;GoTo B, unload&#8221; are only given. This [...]]]></description>
			<content:encoded><![CDATA[<p>When it comes to improving station rating, often the focus is on changing or extending the network and tuning the signaling to the needs or adding additional trains to single stations while the orders of trains are often overlooked and plain default orders like &#8220;GoTo A, full load&#8221;, &#8220;GoTo B, unload&#8221; are only given. This article will show a set of more complex orders which offer a solution to comparatively easy network management while it &#8220;only&#8221; requires a usual efficient two-way track layout all the same.</p>
<p>The current <a href="http://www.openttdcoop.org/wiki/PublicServer:Archive_-_Games_151_-_160#gameid_151" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/PublicServer_Archive_-_Games_151_-_160_gameid_151?referer=');">PublicServer game #151</a>, is a multi-region map where different regions are connected by ICE trains (or rather Shinkansens in this case) but the local s-bahn is subject to individual design.<br />
<a class="image-link" rel="shadowbox;width=1280;height=752;" title="region overview" href="http://blog.openttdcoop.org/files/pictures/sro_review/region_overview2.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/sro_review/thumb_region_overview2.png" width="400" height="235" alt="region overview" title="region overview"  /></a><br class="clear" /><br />
<span id="more-566"></span><br />
<strong>Setting:</strong><br />
The growing cities of my region needed a decent and high-capacity s-bahn in order to transfer all the people to the ICE terminal, but on the other hand I like to keep it simple and not create a new set of orders for each single station which needs separately looking after. Also I didn&#8217;t want to build a <a href="http://blog.openttdcoop.org/2009/07/12/asynchronous-srnw-stations/">SRNW</a> due to its higher space consumption and the little space available, having chosen one of the smallest islands around.</p>
<p><strong>Self-regulating orders (SRO)</strong><br />
The solution is in using conditional orders to its full extend. In the example, my main s-bahn line connects four stations (each 8 tracks wide) on a LL_RR line to the ICE terminal (UET Uetani Shinkansen):<br />
<a class="image-link" rel="shadowbox;width=533;height=338;" title="conditional orders of the trains" href="http://blog.openttdcoop.org/files/pictures/sro_review/conditional_orders.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/sro_review/thumb_conditional_orders.png" width="400" height="253" alt="conditional orders of the trains" title="conditional orders of the trains"  /></a><br class="clear" /></p>
<p>Convoluted as they may look, the principle of these orders are simple:<br />
Go to the stations on the tracks in their order A,B,C,D. If the vehicle is more than 90% full, return to the ICE station and subsequently go straight back to the same station without stopping elsewhere. If the vehicle isn&#8217;t full, go to the next station in the sequence. Visiting the same station where the vehicle surpassed 90% load ratio (after dropping the cargo at the drop station), proved the most efficient orders with respect to obtained station rating and the total waiting PAX at the stations.</p>
<p><strong>Ceavats:</strong><br />
A set of these orders may need some time till the trains reach an equilibrium. This might take longer the longer the list of visited stations is. The regulation will fail, if you add way too few vehicles. In this case, the vehicles will always visit the same station, some stations might not get the coverage they need.<br />
Regulation might also fail, if way too many trains (or vehicles) are assigned to such set of orders. Nothing bad happens though, if no congestion occurs &#8211; but efficiency is then very low and cargo will go through all stations; the vehicle number might be limited automatically by giving an additional conditional order that the vehicle goes to a depot, if it is (nearly) empty when leaving the last station in the orders list.</p>
<p><strong>Variations:</strong></p>
<ul>
<li>
This scheme can be varied, e.g. by issuing the orders such that the next station instead of the same is visited, after a vehicle returned to the drop station. The tests showed though, that the average station rating was considerably better when the same station is visited again.</li>
<li>
Another solution could be to always start with station A and only go to B, C etc, when the vehicle isn&#8217;t full. The disadvantage of this approach is that the further stations tend to get less vehicle coverage and thus a worse rating. </li>
<li>
Setting up such string of conditional orders involves many mouse clicks and is really tiresome. In order to ease the pain on the mouse, it&#8217;s certainly possible to lower the amount of conditional orders and only do a jump after each 2nd station or so. The experience in this game showed, though, that this was of limited value and results comparatively poor.
</li>
</ul>
<p><strong>Giving the orders</strong><br />
Orders are always added before the highlighted line in the orders window. For a start it&#8217;s advisable to give simple goto orders to all stations which the vehicle should potentially visit, in the order they should be visited, if all stations only have very little cargo available.</p>
<ul>
<li>Then add an additional order to the drop station.</li>
<li>Add a conditional jump, available in the drop down menu under &#8220;goto&#8221;:<img src="http://blog.openttdcoop.org/files/pictures/sro_review/conditional_orders_selected.png" width="379" height="137" alt="conditional orders selection" title="conditional orders selection" /><br />
The mouse cursor will change and you now need to click onto the order where you want to make the jump to, if the condition is true. </li>
<li>Done that you can actually set the condition:<br />
Select the thing you want the jump depend on:<br />
<img src="http://blog.openttdcoop.org/files/pictures/sro_review/orders_condition_what.png" width="384" height="161" alt="property the jump depends on" title="property the jump depends on" /><br />
Select the value to compare the property to<br />
<a class="image-link" rel="shadowbox;width=449;height=236;" title="enter value" href="http://blog.openttdcoop.org/files/pictures/sro_review/orders_condition_value.png"><img class="left" src="http://blog.openttdcoop.org/files/pictures/sro_review/thumb_orders_condition_value.png" width="400" height="210" alt="enter value" title="enter value"  /></a><br class="clear" /><br />
And set how to compare the property to the entered value:<br />
<img src="http://blog.openttdcoop.org/files/pictures/sro_review/orders_condition_how.png" width="385" height="156" alt="how to compare" title="how to compare" /></li>
</ul>
<p><strong>Summary</strong><br />
These orders are certainly nothing new and they&#8217;ve been used here and there. But they could be taken to the extreme (and then they&#8217;d probably not only be self-regulating orders, but also PITA orders), and the same order list could be given for all vehicles which transport a single cargo. It&#8217;s especially useful, of course, for pax networks where vehicles seldom have full load but the optimum amount of vehicles per station varies.</p>
<p><strong>Acknowledgments</strong><br />
Thanks also to HansNL who kind of made me look into this in more detail and play with the different possibilities of these conditional orders &#8211; and write it up. Thanks also to all other players on this <a href="http://www.openttdcoop.org/wiki/PublicServer:Archive_-_Games_151_-_160#gameid_151" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/PublicServer_Archive_-_Games_151_-_160_gameid_151?referer=');">PSG #151</a> which make this particular game into one of my nicer games again. <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/2009/07/19/self-regulating-orders-sro/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Asynchronous SRNW stations</title>
		<link>http://blog.openttdcoop.org/2009/07/12/asynchronous-srnw-stations/</link>
		<comments>http://blog.openttdcoop.org/2009/07/12/asynchronous-srnw-stations/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 21:17:29 +0000</pubDate>
		<dc:creator>Nickman</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Public Server]]></category>

		<guid isPermaLink="false">http://blog.openttdcoop.org/?p=561</guid>
		<description><![CDATA[In PSG 149 we went with an exclusive SRNW (Self-Regulating NetWork) construction. This technique is a bit strange at first, but has some pretty clever ideas and possibilities. Building a single platform SRNW stations isn’t all that difficult when you get the hang of it. But when it comes to multi-platform stations for high-capacity industries, [...]]]></description>
			<content:encoded><![CDATA[<p>In PSG 149 we went with an exclusive SRNW (Self-Regulating NetWork) construction. This technique is a bit strange at first, but has some pretty clever ideas and possibilities. Building a single platform SRNW stations isn’t all that difficult when you get the hang of it. But when it comes to multi-platform stations for high-capacity industries, things tend to get very complicated and messy because you need to carefully design it to keep the dummy trains from stealing cargo from one another. This will mostly involve complex systems involving logical gates and more.</p>
<p>In the picture below you can see an example of my asynchronous approach which makes for a very simple but high capacity SRNW station:</p>
<p><a href="http://blog.openttdcoop.org/files/blog/2009/07/AsyncSRNW_149.png"><img src="http://blog.openttdcoop.org/files/blog/2009/07/AsyncSRNW_149_thumb.png" alt="Asynchronous SRNW station from PBS 149" /></a><br />
<span id="more-561"></span><br />
<strong>Original stations:</strong><br />
The biggest cause for the complicated stations are the dummy trains. They have to be synchronized to avoid one stealing load from another. To accomplish this synchronization you would need special constructions and this can get quite complicated and messy, certainly with big stations. Another solution for the synchronization problem is to just make the dummy train a multiple of the normal trains’ length. But this is only useful to some extent, as super long trains/stations aren’t all that efficient.</p>
<p><strong>General idea of the asynchronous station</strong><br />
To overcome these issues I tried an alternative, asynchronous approach. The idea is basically to make multiple stations, but put them adjacent to each other.</p>
<p>This way, all the stations get their own cargo from the industry(s) and no train can steal from another. By combining this with X-BT’s idea of “abusing” PBS signals, I was able to make the station very compact. It is possible to put two asynchronous SRNW platforms on a three tile width. You would also need ((2 * TL) + 3) tiles of length (even for a single station this is very little).</p>
<p><a href="http://blog.openttdcoop.org/files/blog/2009/07/Async_SRNW.png"><img style="margin: 0px 0px 10px 10px;" src="http://blog.openttdcoop.org/files/blog/2009/07/Async_SRNW.png" alt="Clean example of a single SRNW platform" width="300" align="right" /></a></p>
<p><strong>Construction</strong><br />
On the image you can see how easy it is to build a station like this. The dummy train only needs two orders to the same station (be sure they are set to the &#8220;Far End&#8221; of the station). It is necessary that you make the dummy station (at least) one tile longer than the TL to make it reverse and go to the other end of the station. By doing this it releases the piece of crossed track, the real train can go in and start loading. Depending on the train length, one tile might be too little, because the loading/unloading times increase when the TL increases).</p>
<p>Two solutions are possible:</p>
<ul>
<li>Make the dummy station longer so it takes more time for the train to start unloading/loading</li>
<li>Use timetables to specify a specific delay for the dummy train when it is unloading</li>
</ul>
<p>Also note that the PBS signal is facing in the opposite direction of the loading dummy train. This way the dummy train will reserve the crossing track and block the real trains from entering the station. Some smart use of PBS is used here, since the only safe spot for the dummy train would be in front of the PBS signal (as it’s facing the wrong way), all the way up to the next signal. This means it is possible to use any length of track after the dummy station, but you have to make sure it can be reserved (90° angles can be disabled and won’t work).</p>
<p><strong>Possible problems</strong><br />
This asynchronous approach is somewhat against normal building rules, as you wouldn&#8217;t normally build separate stations to increase the transporting capacity for industries. As stated in the wiki an industry gives cargo to the two highest rated stations per cycle. It would appear that you can only use this approach for two platforms, given this limitation. In practice it scales well to more platforms, which is caused by the dummy trains. As there is always one train loading (dummy or real), the stations rating will remain “Excellent”. But, there will be small changes in the rating because of the gap when the dummy train is full and the real train enters the station to start the loading. These small fluctuations apparently are enough for the other stations to get cargo as well from the connected industries.</p>
<p>But not all is perfect. When you want to expand the pickup and add a new station to it, it will not start loading (if it is the third or higher station). This is because the rating of the new station will be 0%, so the industries see the new station as obsolete and ignore it. A simple solution is to (temporarily) connect the station to another (unused) industry, or one that only has a single station serving it. This way the rating can increase and the station can start participating in the asynchronous SRNW station group.</p>
<p>To conclude, an example of a synchronized multi-platform SRNW station which also looks pretty clean, created by Mark:<br />
<a href="http://www.openttdcoop.org/wiki/images/6/6c/Srnwstationbig.png" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/images/6/6c/Srnwstationbig.png?referer=');"><img src="http://www.openttdcoop.org/wiki/images/6/6c/Srnwstationbig.png" alt="Multi-platform SRNW station by Mark" width="500px" /></a></p>
<p>More info about SRNW at <a href="http://www.openttdcoop.org/wiki/SRNW" onclick="pageTracker._trackPageview('/outgoing/www.openttdcoop.org/wiki/SRNW?referer=');">the WIKI</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openttdcoop.org/2009/07/12/asynchronous-srnw-stations/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Various degrees of terraforming</title>
		<link>http://blog.openttdcoop.org/2009/05/27/various-degrees-of-terraforming/</link>
		<comments>http://blog.openttdcoop.org/2009/05/27/various-degrees-of-terraforming/#comments</comments>
		<pubDate>Wed, 27 May 2009 13:29:18 +0000</pubDate>
		<dc:creator>tneo</dc:creator>
				<category><![CDATA[Community News]]></category>
		<category><![CDATA[Public Server]]></category>
		<category><![CDATA[Weekly Review]]></category>
		<category><![CDATA[Wiki]]></category>

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