<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.bvestation.com/index.php?action=history&amp;feed=atom&amp;title=Multiplayer</id>
		<title>Multiplayer - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.bvestation.com/index.php?action=history&amp;feed=atom&amp;title=Multiplayer"/>
		<link rel="alternate" type="text/html" href="https://wiki.bvestation.com/index.php?title=Multiplayer&amp;action=history"/>
		<updated>2026-06-15T08:17:01Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://wiki.bvestation.com/index.php?title=Multiplayer&amp;diff=62&amp;oldid=prev</id>
		<title>Kevin at 00:40, 7 February 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.bvestation.com/index.php?title=Multiplayer&amp;diff=62&amp;oldid=prev"/>
				<updated>2015-02-07T00:40:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 00:40, 7 February 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;OpenBVE Multiplayer Extension was written by [[User:Kevin | ipaclansite]], and adds a multiplayer feature to the game.&amp;#160; The program is open source &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(with a license download source to view), &lt;/del&gt;and can be freely downloaded at BVEStation.&amp;#160; The Multiplayer Extension works by taking control of the game's pretrain and AI feature.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;OpenBVE Multiplayer Extension was written by [[User:Kevin | ipaclansite]], and adds a multiplayer feature to the game.&amp;#160; The program is open source and can be freely downloaded at BVEStation &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and/or github&lt;/ins&gt;.&amp;#160; The Multiplayer Extension works by taking control of the game's pretrain and AI feature.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==History==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==History==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;With the lack of multiplayer train simulators in the market at the time, and the Open Source nature of OpenBVE, there was an interest in a multiplayer feature for OpenBVE.&amp;#160; It first started out as an April Fools joke on BVEStation, with OpenBVE's option menu showing a new option for multiplayer.&amp;#160; It was also requested on the official OpenBVE Forums (no longer online) as a permanent feature for OpenBVE, but was ultimately rejected by michelle, the former head developer of OpenBVE.&amp;#160; ipaclansite would decide to add the multiplayer feature himself &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;as suggested by michelle, and due to the open source nature of OpenBVE&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;With the lack of multiplayer train simulators in the market at the time, and the Open Source nature of OpenBVE, there was an interest in a multiplayer feature for OpenBVE.&amp;#160; It first started out as an April Fools joke on BVEStation, with OpenBVE's option menu showing a new option for multiplayer.&amp;#160; It was also requested on the official OpenBVE Forums (no longer online) as a permanent feature for OpenBVE, but was ultimately rejected by michelle, the former head developer of OpenBVE.&amp;#160; ipaclansite would decide to add the multiplayer feature himself.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Versions==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Versions==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Currently there are two versions written for the game, the original version and a current version, both are internally similar, but rely on a different server model.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Currently there are two versions written for the game, the original version and a current version, both are internally similar, but rely on a different server model.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Original===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Original &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Version&lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The original version of OpenBVE Multiplayer Classic was written by taking snippet code from a chat program.&amp;#160; OpenBVE would capture the distance information of the train ahead of the player from the server and would &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;force the pretrain/AI train to move into &lt;/del&gt;that &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;position&lt;/del&gt;.&amp;#160; This would &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;only allow &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;player &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;view a single instance of another player&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The original version of OpenBVE Multiplayer Classic was written by taking snippet code from a chat program.&amp;#160; OpenBVE would capture the distance information of the train ahead of the player from the server and would &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;provide this information for all users.&amp;#160; There was also a psuedo-signalling system, &lt;/ins&gt;that &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;was external, with a separate form&lt;/ins&gt;.&amp;#160; This &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;version &lt;/ins&gt;would &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;eventually have limited support for actually utilizing &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pretrain &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;display other users&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The original version was very buggy due to the use of code snippet taken from another website, and was built mainly as a proof of concept only.&amp;#160; This version allows players to connect to a single route on a single individual server.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The original version was very buggy due to the use of code snippet taken from another website, and was built mainly as a proof of concept only.&amp;#160; This version allows players to connect to a single route on a single individual server.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Current&lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Second Version&lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The current version of OpenBVE Multiplayer Codename Newtown was written using a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;MySQL &lt;/del&gt;database, which acts as the server.&amp;#160; OpenBVE would capture the distance information from a specific table in a MySQL database, and would force the pretrain/AI train to move into this specified position.&amp;#160; Like the original version, this only allowed the player to view a single instance of the player ahead of them.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The current version of OpenBVE Multiplayer Codename Newtown was written using a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;centralized &lt;/ins&gt;database &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;system&lt;/ins&gt;, which acts as the server.&amp;#160; OpenBVE would capture the distance information from a specific table in a MySQL database, and would force the pretrain/AI train to move into this specified position.&amp;#160; Like the original version, this only allowed the player to view a single instance of the player ahead of them.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This version is more stable, due to the large amount of newly written code.&amp;#160; This version also allows for clients to connect to a single central server, with multiple routes, and allows for MMO elements.&amp;#160; A mapping system, and a signaling system was also written to supplement this multiplayer version, largely feasible due to the use of a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;MySQL &lt;/del&gt;database.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This version is more stable, due to the large amount of newly written code.&amp;#160; This version also allows for clients to connect to a single central server, with multiple routes, and allows for MMO elements.&amp;#160; A mapping system, and a signaling system was also written to supplement this multiplayer version, largely feasible due to the use of a database &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;system&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This version unfortunately suffers from limited uptime of the server, and requires multiple users connected at once in order to get a good experience.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This version unfortunately suffers from limited uptime of the server, and requires multiple users connected at once in order to get a good experience.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Planned&lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;A planned future version would take the original &lt;/del&gt;version, and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;re-write it &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;create &lt;/del&gt;a more stable server/client model.&amp;#160; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Due to the low activity of the current &lt;/del&gt;version, a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;server will allow users &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;play together at a specific time&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;with everyone communicating at &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;same time&lt;/del&gt;.&amp;#160; This &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;future &lt;/del&gt;version &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;would &lt;/del&gt;also &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;take into account multiple train instances&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;instead of simply the train ahead of the player&lt;/del&gt;.&amp;#160; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;There &lt;/del&gt;is &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;no known release date&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;or development of this version at this time&lt;/del&gt;, and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;is only &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;plan on paper&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Current&lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This &lt;/ins&gt;version &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;was completely&lt;/ins&gt;, and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;rewritten, &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;provide &lt;/ins&gt;a more stable server/client model.&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This &lt;/ins&gt;version &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;is available for download on github along with the source code.&amp;#160; [https://github.com/kev5873/openbvemultiplayer]&amp;#160; The server was written in Python&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;which simply acts as &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;TCP Server.&amp;#160; The client code is embedded loosely within OpenBVE.&amp;#160; It too utilizes the pretrain &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;display other users&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;which allows for &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in-game signaling system to be used with it&lt;/ins&gt;.&amp;#160; This version also &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;only supports single line routes&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;as this is a BVE limitation, and not a multiplayer one&lt;/ins&gt;.&amp;#160; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Ordering &lt;/ins&gt;is &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;also important&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in that users should connect in order&lt;/ins&gt;, and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;on &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;delay so that their trains do not overlap or jump each other&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Other Versions==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Other Versions==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kevin</name></author>	</entry>

	<entry>
		<id>https://wiki.bvestation.com/index.php?title=Multiplayer&amp;diff=57&amp;oldid=prev</id>
		<title>Kevin: Created page with &quot; OpenBVE Multiplayer Extension was written by  ipaclansite, and adds a multiplayer feature to the game.  The program is open source (with a license download so...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.bvestation.com/index.php?title=Multiplayer&amp;diff=57&amp;oldid=prev"/>
				<updated>2015-02-07T00:28:24Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot; OpenBVE Multiplayer Extension was written by &lt;a href=&quot;/index.php?title=User:Kevin&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Kevin (page does not exist)&quot;&gt; ipaclansite&lt;/a&gt;, and adds a multiplayer feature to the game.  The program is open source (with a license download so...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
OpenBVE Multiplayer Extension was written by [[User:Kevin | ipaclansite]], and adds a multiplayer feature to the game.  The program is open source (with a license download source to view), and can be freely downloaded at BVEStation.  The Multiplayer Extension works by taking control of the game's pretrain and AI feature.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
With the lack of multiplayer train simulators in the market at the time, and the Open Source nature of OpenBVE, there was an interest in a multiplayer feature for OpenBVE.  It first started out as an April Fools joke on BVEStation, with OpenBVE's option menu showing a new option for multiplayer.  It was also requested on the official OpenBVE Forums (no longer online) as a permanent feature for OpenBVE, but was ultimately rejected by michelle, the former head developer of OpenBVE.  ipaclansite would decide to add the multiplayer feature himself as suggested by michelle, and due to the open source nature of OpenBVE.&lt;br /&gt;
==Versions==&lt;br /&gt;
Currently there are two versions written for the game, the original version and a current version, both are internally similar, but rely on a different server model.&lt;br /&gt;
===Original===&lt;br /&gt;
The original version of OpenBVE Multiplayer Classic was written by taking snippet code from a chat program.  OpenBVE would capture the distance information of the train ahead of the player from the server and would force the pretrain/AI train to move into that position.  This would only allow the player to view a single instance of another player.&lt;br /&gt;
&lt;br /&gt;
The original version was very buggy due to the use of code snippet taken from another website, and was built mainly as a proof of concept only.  This version allows players to connect to a single route on a single individual server.&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
The current version of OpenBVE Multiplayer Codename Newtown was written using a MySQL database, which acts as the server.  OpenBVE would capture the distance information from a specific table in a MySQL database, and would force the pretrain/AI train to move into this specified position.  Like the original version, this only allowed the player to view a single instance of the player ahead of them.&lt;br /&gt;
&lt;br /&gt;
This version is more stable, due to the large amount of newly written code.  This version also allows for clients to connect to a single central server, with multiple routes, and allows for MMO elements.  A mapping system, and a signaling system was also written to supplement this multiplayer version, largely feasible due to the use of a MySQL database.&lt;br /&gt;
&lt;br /&gt;
This version unfortunately suffers from limited uptime of the server, and requires multiple users connected at once in order to get a good experience.&lt;br /&gt;
===Planned===&lt;br /&gt;
A planned future version would take the original version, and re-write it to create a more stable server/client model.  Due to the low activity of the current version, a server will allow users to play together at a specific time, with everyone communicating at the same time.  This future version would also take into account multiple train instances, instead of simply the train ahead of the player.  There is no known release date, or development of this version at this time, and is only a plan on paper.&lt;br /&gt;
&lt;br /&gt;
==Other Versions==&lt;br /&gt;
Boss of Games wrote a fork of the original OpenBVE Multiplayer, adding a signaling system to that version based on the client/server model.  His version was never released to the BVE community.&lt;br /&gt;
&lt;br /&gt;
A European version of a multiplayer OpenBVE was created, it was suggested that it connected teamspeak into the game, as opposed to it being an actual multiplayer game.  Not much is known about this version.&lt;br /&gt;
&lt;br /&gt;
==Pseudo-Multiplayer==&lt;br /&gt;
Traditionally multiplayer is done through the use of BVEStation's Chatroom, players would simply broadcast their position after every few stops.&lt;br /&gt;
&lt;br /&gt;
In the past, traditional multiplayer makes use of BVEStation's Teamspeak Server, as players speak to broadcast their positions, this form is the most popular form of pseudo-multiplayer to date, due to its ease of use.  Users do not appear to want to use a physical multiplayer system, as it is either too complicated, unstable or incompatible or too limited for their needs, and will resort to this method.&lt;br /&gt;
&lt;br /&gt;
Because BVEStation no longer runs a Teamspeak Server, other communities have sought to replace this service, and run their own multiplayer events.&lt;/div&gt;</summary>
		<author><name>Kevin</name></author>	</entry>

	</feed>