<?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: Patching the Game (Part III)</title>
	<atom:link href="http://cogs.innocence.com/2009/04/patching-the-game-part-iii/feed/" rel="self" type="application/rss+xml" />
	<link>http://cogs.innocence.com/2009/04/patching-the-game-part-iii/</link>
	<description>On the operation of massively multiplayer online games.</description>
	<lastBuildDate>Thu, 26 May 2011 20:53:29 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: Game Retail Store » GameSetLinks: Gaming Stances For Victory!</title>
		<link>http://cogs.innocence.com/2009/04/patching-the-game-part-iii/comment-page-1/#comment-118</link>
		<dc:creator>Game Retail Store » GameSetLinks: Gaming Stances For Victory!</dc:creator>
		<pubDate>Tue, 28 Apr 2009 07:46:39 +0000</pubDate>
		<guid isPermaLink="false">http://cogs.innocence.com/?p=99#comment-118</guid>
		<description>[...] Patching the Game (Part III) @ Imaginary Cogs A multi-part series on actually hosting MMOs in data centers - v.interesting. (Via Zen Of Design.) [...]</description>
		<content:encoded><![CDATA[<p>[...] Patching the Game (Part III) @ Imaginary Cogs A multi-part series on actually hosting MMOs in data centers &#8211; v.interesting. (Via Zen Of Design.) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian 'Psychochild' Green</title>
		<link>http://cogs.innocence.com/2009/04/patching-the-game-part-iii/comment-page-1/#comment-114</link>
		<dc:creator>Brian 'Psychochild' Green</dc:creator>
		<pubDate>Mon, 27 Apr 2009 03:39:19 +0000</pubDate>
		<guid isPermaLink="false">http://cogs.innocence.com/?p=99#comment-114</guid>
		<description>This was an interesting series of articles.

&lt;i&gt;Meridian 59&lt;/i&gt;, being older, had a very simple system.  On the server side, the gameplay code is in byte-compiled files generated from script.  We updated the source on a build server, built the game, then let QA pound on it as appropriate.  When it came time to patch the server, we dropped the new files into a &quot;patch&quot; directory and the game loaded up the new files automatically.  It also changed the in-game representation of the objects as well during the update.

On the client side, we put all the files into an archive and then put them on an FTP server.  The client automatically grabs the files and replaces them.  We don&#039;t have binary packed files on the client end, except for a special format for our sprites.

One thing I&#039;ve been thinking about lately is just keeping it simple.  M59 isn&#039;t super-pretty, but the back end is pretty solid.  It can hold servers with several hundred people on hardware that&#039;s going on 10 years now.  You don&#039;t get &quot;massive&quot; shards, but the upside is that a team of 2-3 people could update the game and patch without many problems.  Focusing on the &quot;indie&quot; side of things, this is valuable as well.

Some thoughts.</description>
		<content:encoded><![CDATA[<p>This was an interesting series of articles.</p>
<p><i>Meridian 59</i>, being older, had a very simple system.  On the server side, the gameplay code is in byte-compiled files generated from script.  We updated the source on a build server, built the game, then let QA pound on it as appropriate.  When it came time to patch the server, we dropped the new files into a &#8220;patch&#8221; directory and the game loaded up the new files automatically.  It also changed the in-game representation of the objects as well during the update.</p>
<p>On the client side, we put all the files into an archive and then put them on an FTP server.  The client automatically grabs the files and replaces them.  We don&#8217;t have binary packed files on the client end, except for a special format for our sprites.</p>
<p>One thing I&#8217;ve been thinking about lately is just keeping it simple.  M59 isn&#8217;t super-pretty, but the back end is pretty solid.  It can hold servers with several hundred people on hardware that&#8217;s going on 10 years now.  You don&#8217;t get &#8220;massive&#8221; shards, but the upside is that a team of 2-3 people could update the game and patch without many problems.  Focusing on the &#8220;indie&#8221; side of things, this is valuable as well.</p>
<p>Some thoughts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eolirin</title>
		<link>http://cogs.innocence.com/2009/04/patching-the-game-part-iii/comment-page-1/#comment-110</link>
		<dc:creator>Eolirin</dc:creator>
		<pubDate>Sun, 26 Apr 2009 08:41:16 +0000</pubDate>
		<guid isPermaLink="false">http://cogs.innocence.com/?p=99#comment-110</guid>
		<description>Have you looked at how Guild Wars handles patches? It seems like it would have to do most of things you&#039;ve mentioned, at least in a general sense. The servers don&#039;t come down for patches for instance, just a client message to reboot for an update, and new zones that the client hasn&#039;t seen before are downloaded and then run without a client restart.</description>
		<content:encoded><![CDATA[<p>Have you looked at how Guild Wars handles patches? It seems like it would have to do most of things you&#8217;ve mentioned, at least in a general sense. The servers don&#8217;t come down for patches for instance, just a client message to reboot for an update, and new zones that the client hasn&#8217;t seen before are downloaded and then run without a client restart.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryant</title>
		<link>http://cogs.innocence.com/2009/04/patching-the-game-part-iii/comment-page-1/#comment-71</link>
		<dc:creator>Bryant</dc:creator>
		<pubDate>Fri, 10 Apr 2009 19:55:35 +0000</pubDate>
		<guid isPermaLink="false">http://cogs.innocence.com/?p=99#comment-71</guid>
		<description>That&#039;s a good point. Come to think of it, I remember Islandia&#039;s connection manager back in the days of file descriptor limits. You&#039;d need to cluster the connection manager for obvious reasons, but that&#039;s not too bad.

Login servers could be connection managers or they could just handle the initial connection and authentication, then pass the client off to the destination server -- Turbine&#039;s login servers work more like that. Either way you have the same effect you&#039;re describing.</description>
		<content:encoded><![CDATA[<p>That&#8217;s a good point. Come to think of it, I remember Islandia&#8217;s connection manager back in the days of file descriptor limits. You&#8217;d need to cluster the connection manager for obvious reasons, but that&#8217;s not too bad.</p>
<p>Login servers could be connection managers or they could just handle the initial connection and authentication, then pass the client off to the destination server &#8212; Turbine&#8217;s login servers work more like that. Either way you have the same effect you&#8217;re describing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg</title>
		<link>http://cogs.innocence.com/2009/04/patching-the-game-part-iii/comment-page-1/#comment-70</link>
		<dc:creator>Greg</dc:creator>
		<pubDate>Fri, 10 Apr 2009 19:21:37 +0000</pubDate>
		<guid isPermaLink="false">http://cogs.innocence.com/?p=99#comment-70</guid>
		<description>You can avoid the need for a connection handoff protocol by using a connection manager.  A process on receives many client connections, handles the authentication step, and then communicates with the game server over a single pipe.

At higher scales, the connection manager can be on separate hardware, allowing game servers to be rebooted without breaking client connections.  You need some kind of handoff between the connection manager and the game server, but not on the client.

I think World of Warcraft may do this; sometimes the &quot;login servers&quot; are hosed while people who have current connections to the game are just fine.  I don&#039;t know if it has anything to do with hot-patching capability; they may just not want to be messing around with multiple client TCP connections in their game server code.</description>
		<content:encoded><![CDATA[<p>You can avoid the need for a connection handoff protocol by using a connection manager.  A process on receives many client connections, handles the authentication step, and then communicates with the game server over a single pipe.</p>
<p>At higher scales, the connection manager can be on separate hardware, allowing game servers to be rebooted without breaking client connections.  You need some kind of handoff between the connection manager and the game server, but not on the client.</p>
<p>I think World of Warcraft may do this; sometimes the &#8220;login servers&#8221; are hosed while people who have current connections to the game are just fine.  I don&#8217;t know if it has anything to do with hot-patching capability; they may just not want to be messing around with multiple client TCP connections in their game server code.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

