<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>
	Comments on: Belated excuses	</title>
	<atom:link href="https://www.rotates.org/2009/12/23/belated-excuses/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.rotates.org/2009/12/23/belated-excuses/</link>
	<description>The personal blog of developer, photographer and designer Lewis &#039;SEPTiMUS&#039; Lane</description>
	<lastBuildDate>Tue, 11 Dec 2012 23:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>
		By: lewster32		</title>
		<link>https://www.rotates.org/2009/12/23/belated-excuses/comment-page-1/#comment-1061</link>

		<dc:creator><![CDATA[lewster32]]></dc:creator>
		<pubDate>Tue, 11 Dec 2012 23:13:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rotates.org/?p=173#comment-1061</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.rotates.org/2009/12/23/belated-excuses/comment-page-1/#comment-1060&quot;&gt;Charlie Fortune&lt;/a&gt;.

Hi Charlie, yes the project is very much alive, however the server is not yet finished and the specs have changed somewhat. It&#039;s still a RESTful web service built on node.js and when it&#039;s released I&#039;ll upload the API documentation for it.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.rotates.org/2009/12/23/belated-excuses/comment-page-1/#comment-1060">Charlie Fortune</a>.</p>
<p>Hi Charlie, yes the project is very much alive, however the server is not yet finished and the specs have changed somewhat. It&#8217;s still a RESTful web service built on node.js and when it&#8217;s released I&#8217;ll upload the API documentation for it.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Charlie Fortune		</title>
		<link>https://www.rotates.org/2009/12/23/belated-excuses/comment-page-1/#comment-1060</link>

		<dc:creator><![CDATA[Charlie Fortune]]></dc:creator>
		<pubDate>Tue, 11 Dec 2012 16:15:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.rotates.org/?p=173#comment-1060</guid>

					<description><![CDATA[Is this project still alive? I stumbled across it while planning a... service-based multiplayer Chaos remake :) Have you completed the server and is there any api documentation available please?]]></description>
			<content:encoded><![CDATA[<p>Is this project still alive? I stumbled across it while planning a&#8230; service-based multiplayer Chaos remake 🙂 Have you completed the server and is there any api documentation available please?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: SEPTiMUS		</title>
		<link>https://www.rotates.org/2009/12/23/belated-excuses/comment-page-1/#comment-157</link>

		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Fri, 25 Dec 2009 10:16:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.rotates.org/?p=173#comment-157</guid>

					<description><![CDATA[I can see why so many people have given up with Chaos remakes, especially when trying to implement multiplayer - it&#039;s deceptively complex. All of this planning and theorising really does help though. Thanks and merry Christmas Andy!]]></description>
			<content:encoded><![CDATA[<p>I can see why so many people have given up with Chaos remakes, especially when trying to implement multiplayer &#8211; it&#8217;s deceptively complex. All of this planning and theorising really does help though. Thanks and merry Christmas Andy!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Andy		</title>
		<link>https://www.rotates.org/2009/12/23/belated-excuses/comment-page-1/#comment-156</link>

		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Fri, 25 Dec 2009 06:33:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.rotates.org/?p=173#comment-156</guid>

					<description><![CDATA[Yeah, there&#039;s a bit of scope for cheating from dishonest clients if they know the entire state of the board, i.e. which creatures are illusions.]]></description>
			<content:encoded><![CDATA[<p>Yeah, there&#8217;s a bit of scope for cheating from dishonest clients if they know the entire state of the board, i.e. which creatures are illusions.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: SEPTiMUS		</title>
		<link>https://www.rotates.org/2009/12/23/belated-excuses/comment-page-1/#comment-155</link>

		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Thu, 24 Dec 2009 23:40:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.rotates.org/?p=173#comment-155</guid>

					<description><![CDATA[The way I see it working is that a user makes their move - their client &#039;predicts&#039; the outcome of the move from its version of the board (which will in 99.99999999999% of cases be the correct version, unless there&#039;s a bug or the user&#039;s cheating) and shows the move. In the background, the client sends the server its move (if it&#039;s a land move then it sends an array of tiles it passes) and the server verifies the move. If all&#039;s ok, the server responds with the end location of the move and all&#039;s well with the world. If it&#039;s not ok, the move is retracted and the client should then respond by asking for a full refresh of the board from the server (this is open to optimisation)

I&#039;ve also compressed each unit on the board into just a few bytes and combined it with gzip, so the JSON that&#039;s going back and forth will be very compact. Even on a large board, with 8 players and several gooey blobs and magic fires doing their start-of-turn spread phase, there shouldn&#039;t be a lot of data being thrown around.

I may play with other ideas too - such as doing a user&#039;s entire move client-side (using a common seed and index for any rolls) and then submitting it all in one go at the end of the turn. It&#039;s a tad less secure, as an unscrupulous player knowing the seed and index can potentially predict future outcomes of rolls, but it&#039;s a possibility to be explored.]]></description>
			<content:encoded><![CDATA[<p>The way I see it working is that a user makes their move &#8211; their client &#8216;predicts&#8217; the outcome of the move from its version of the board (which will in 99.99999999999% of cases be the correct version, unless there&#8217;s a bug or the user&#8217;s cheating) and shows the move. In the background, the client sends the server its move (if it&#8217;s a land move then it sends an array of tiles it passes) and the server verifies the move. If all&#8217;s ok, the server responds with the end location of the move and all&#8217;s well with the world. If it&#8217;s not ok, the move is retracted and the client should then respond by asking for a full refresh of the board from the server (this is open to optimisation)</p>
<p>I&#8217;ve also compressed each unit on the board into just a few bytes and combined it with gzip, so the JSON that&#8217;s going back and forth will be very compact. Even on a large board, with 8 players and several gooey blobs and magic fires doing their start-of-turn spread phase, there shouldn&#8217;t be a lot of data being thrown around.</p>
<p>I may play with other ideas too &#8211; such as doing a user&#8217;s entire move client-side (using a common seed and index for any rolls) and then submitting it all in one go at the end of the turn. It&#8217;s a tad less secure, as an unscrupulous player knowing the seed and index can potentially predict future outcomes of rolls, but it&#8217;s a possibility to be explored.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Andy		</title>
		<link>https://www.rotates.org/2009/12/23/belated-excuses/comment-page-1/#comment-154</link>

		<dc:creator><![CDATA[Andy]]></dc:creator>
		<pubDate>Thu, 24 Dec 2009 21:29:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.rotates.org/?p=173#comment-154</guid>

					<description><![CDATA[Sounds good, I&#039;d be interested to discover how much game logic would be handed over to the client, for example making a HTTP request every time a creature/wizard moves may suffer from latency problems, so presumably the movement/engaged/manoeuvre rules would be handled by the client and updated server side after a certain amount of moves are chunked and/or completed?]]></description>
			<content:encoded><![CDATA[<p>Sounds good, I&#8217;d be interested to discover how much game logic would be handed over to the client, for example making a HTTP request every time a creature/wizard moves may suffer from latency problems, so presumably the movement/engaged/manoeuvre rules would be handled by the client and updated server side after a certain amount of moves are chunked and/or completed?</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
