<?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>base0.net &#187; mtgo</title>
	<atom:link href="http://base0.net/tags/mtgo/feed/" rel="self" type="application/rss+xml" />
	<link>http://base0.net</link>
	<description>In Transition</description>
	<lastBuildDate>Wed, 08 Sep 2010 16:15:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Invisible Sharding and MTGO</title>
		<link>http://base0.net/posts/invisible-sharding-and-mtgo/</link>
		<comments>http://base0.net/posts/invisible-sharding-and-mtgo/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Hack]]></category>
		<category><![CDATA[Think]]></category>
		<category><![CDATA[mtgo]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Lately I have been playing a lot of Magic: The Gathering.  While most people who play the game are content to go to a shop and play with paper cards, I'm much more geeky than that, and don't really have the time to go to a game store.  I play on the Magic Online.   I've detailed before how the server architecture of the Magic Online servers is not good - there is a single, monolithic server which is handling most of the game functions which users take part in.]]></description>
			<content:encoded><![CDATA[<p>Lately I have been playing a lot of Magic: The Gathering.  While most people who play the game are content to go to a shop and play with paper cards, I&#8217;m much more geeky than that, and don&#8217;t really have the time to go to a game store.  I play on the Magic Online.   I&#8217;ve detailed before how the server architecture of the Magic Online servers is not good &#8211; there is a single, monolithic server which is handling most of the game functions which users take part in.   Because of this horrible server architecture, Wizards of the Coast decided to make a new version, throwing out the code base that they had before.  While this is not necessarily a good idea, I understand why they did it.</p>
<p>They can solve the problem of their server setup by using the Invisible Sharding method, and they are possibly one of the only games that can do such.  Sharding is when a game server is split into multiple servers, which are separated from each other.  This is why there are many different &#8220;realms&#8221; on World of Warcraft, and many of the other MMORPGs.  Servers can only handle a certain amount of load at once, and splitting all the users across multiple server lets you still have a Massively Multiplayer experience while being infinitely scalable to more users.   It works out pretty well, but it comes with some problems as well.  If I want to join World of Warcraft and play with my friends, I need to know which server to start my character on in order to join with them.  This can cause problems due to the way that social networks are very tightly wound.  If you take you and three levels of friends, you have a very large amount of people.  As a game grows, more people want to play with their friends and that means more people are on the same server.   I heard that recently Blizzard had planned to migrate people from one server to another, which was a major event and then they improved their servers so they cancelled that migration.  In a perfect world, no migration would be needed &#8211; everyone would be on the same server.</p>
<p>MTGO is the perfect world, but they suffer from the problem that the MMORPGs would have if everyone was logged onto the same server now &#8211; they have a server overload.  So how do you solve this problem?  The solution hinges on the good parts of the current architecture:  games are separated from the main server.   The main server can now be separated from the games, and we have a situation which is similar to a distributed consensus problem.  The solution is to reduce the size of the data which needs to be consensus.  There are two ways to do this.  The first is to reduce the overall size of the set by limiting interaction between players &#8211; this is the sharding solution.  The second way to do it is to be more intelligent with the data that you choose to pass between your servers.  MTGO is unique in this respect because there is really a small amount of data which needs to be replicated in order for the system to run smoothly.</p>
<p>Version 3 of the program is launching in less than 2 weeks according to the timer &#8211; here&#8217;s hoping that they got the new architecture right, and we can see many thousands of players on at the same time.</p>
]]></content:encoded>
			<wfw:commentRss>http://base0.net/posts/invisible-sharding-and-mtgo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hey hey hey it&#8217;s magic, you know..</title>
		<link>http://base0.net/posts/hey-hey-hey-it&#039;s-magic--you-know---/</link>
		<comments>http://base0.net/posts/hey-hey-hey-it&#039;s-magic--you-know---/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Hack]]></category>
		<category><![CDATA[Live Journal]]></category>
		<category><![CDATA[Play]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[mtgo]]></category>
		<category><![CDATA[playing]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Life is pretty hectic around here with multiple jobs and consulting gigs, as well as personal research to do.  I find it's pretty much a requirement to have something to go home to and relax and take some time off.  In the past I've used lots of different games in order to accomplish that, but recently one of my labmates reminded me about Magic: The Gathering, the most popular CCG on the planet basically which I used to play a lot.  I went to a local shop and played a draft, which was a lot of fun, but a huge hassle.]]></description>
			<content:encoded><![CDATA[<p>Life is pretty hectic around here with multiple jobs and consulting gigs, as well as personal research to do.  I find it&#8217;s pretty much a requirement to have something to go home to and relax and take some time off.  In the past I&#8217;ve used lots of different games in order to accomplish that, but recently one of my labmates reminded me about Magic: The Gathering, the most popular CCG on the planet basically which I used to play a lot.  I went to a local shop and played a draft, which was a lot of fun, but a huge hassle.   Then I remembered that I still had an account on the online version of the same game.  After some confusion over which email I had used to sign up for the service, I re-logged into the account to find that I still had a few cards left, and the game was pretty much just as I left it two years prior.  Lately I have been playing it and amassing another collection of cards.  Some people are concerned about paying for virtual objects, but I don&#8217;t have such qualms, as I&#8217;ve paid for virtual objects before (ever buy software?) and the fact that my account was still around so long after I had originally used it and with all the same cards intact is quite a good sign.   I also have a small deal going where I am a minor dealer in the game, buying low and selling for slightly less low, making some tickets (the de-facto currency of MTGO) in order to fund my habit.   So far I have made back the money that I initially put into the game and have a bunch more cards.</p>
<p>Soon after I started playing the game again, I discovered that there was a new client and server being developed.  You see, the Magic: The Gathering Online servers have a problem &#8211; they don&#8217;t hold up to pressure very well.  From what I have gleaned from the forums (which the developers actually read and respond sometimes) the architecture currently in use looks like the diagram here.<br />
<!-- s9ymdb:24 --><img class="alignright" style="float: right; border: 0px; padding-left: 5px; padding-right: 5px;" src="/wp-content/uploads/diagrams/mtgoservers.png" alt="" /><br />
Anyone notice a scalability problem?  Would it help to point out that every single client is connected to the &#8220;main&#8221; server, and absolutely everything that doesn&#8217;t involve logging in or gameplay is done through that server?   This includes trading, chatting, and just navigating to other games.  Apparently the previous company who created this server structure didn&#8217;t think it would grow too large, or they were using it as some type of insurance.  Because of this horribleness, the servers crash a lot &#8211; sometimes close to daily.  The developers at Wizards of the Coast have been working on stability lately and the uptimes have improved.   Still, lag is horrendous when using the main server &#8212; at least it doesn&#8217;t affect games.  I&#8217;m glad that they&#8217;re replacing this bad server design with something that is better.  I&#8217;ve been playing in the beta the last few weeks, and the new servers held up to a stress test with a large number of actual users &#8212; around 700-800, depending on who you ask &#8212; and a bunch of bots which were simulating a much larger load than a normal user.  There wasn&#8217;t even a blip on my radar.  It gives me some hope for the future of the game.</p>
]]></content:encoded>
			<wfw:commentRss>http://base0.net/posts/hey-hey-hey-it&#039;s-magic--you-know---/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
