<?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>BakedOn Entertainment - Online Multiplayer Games &#187; Ghostees</title>
	<atom:link href="http://www.bakedon.com/tag/ghostees/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bakedon.com</link>
	<description></description>
	<lastBuildDate>Wed, 29 Dec 2010 17:47:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ghostees: Unity3D GUI and Facebook Integration</title>
		<link>http://www.bakedon.com/2010/02/ghostees-unity3d-gui-and-facebook-integration/</link>
		<comments>http://www.bakedon.com/2010/02/ghostees-unity3d-gui-and-facebook-integration/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 03:28:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Ghostees]]></category>
		<category><![CDATA[unity3d]]></category>

		<guid isPermaLink="false">http://www.bakedon.com/?p=78</guid>
		<description><![CDATA[I&#8217;ve spent the last couple of days working with Unity3D&#8217;s GUI system. Here is a screenshot of the character creation screen. I&#8217;ve also been adding Facebook integration.  So far the integration solutions for Unity3D that I&#8217;ve found so far have had huge security holes so I&#8217;ve had to come up with something myself. Not to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent the last couple of days working with Unity3D&#8217;s GUI system. Here is a screenshot of the character creation screen.</p>
<p>I&#8217;ve also been adding Facebook integration.  So far the integration solutions for Unity3D that I&#8217;ve found so far have had huge security holes so I&#8217;ve had to come up with something myself. Not to say it doesn&#8217;t have holes either but at least I tried to keep people from hacking the app <img src='http://www.bakedon.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-78"></span></p>
<p style="text-align: center;"><a href="http://www.bakedon.com/wp-content/uploads/2010/02/2010-02-27-Ghostees-create.png"><img class="size-full wp-image-77 aligncenter" title="2010-02-27-Ghostees-create" src="http://www.bakedon.com/wp-content/uploads/2010/02/2010-02-27-Ghostees-create.png" alt="Early Ghostees Character Create Sreenshot" width="483" height="487" /></a></p>
<p>What I&#8217;ve done is use the .NET Facebook API. I validate the Facebook user and look up their details in SimpleDB and put it all together in a class.  I serialize the class, RSA encrypt the bits salt and sign the data.  I send this as a cookie that gets picked up in the Facebook page and forwarded to Unity3D through JavaScript.</p>
<p>Unity3D takes this blob of data when establishing communication with the UDP server.  The server can then validate the signature, decrypt the data and viola.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bakedon.com/2010/02/ghostees-unity3d-gui-and-facebook-integration/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ghostees: Load Testing The Server</title>
		<link>http://www.bakedon.com/2010/01/ghostees-load-testing-the-server/</link>
		<comments>http://www.bakedon.com/2010/01/ghostees-load-testing-the-server/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 21:01:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Ghostees]]></category>
		<category><![CDATA[MMORPG]]></category>
		<category><![CDATA[unity3d]]></category>

		<guid isPermaLink="false">http://www.bakedon.com/?p=68</guid>
		<description><![CDATA[I created this video while I was testing the connection load of the server. Each capsule you see is an automated connection moving randomly through the world. Since then I have changed them to actual character animations which looks way cooler but I haven&#8217;t taken time to record a video. The server culls down how [...]]]></description>
			<content:encoded><![CDATA[<p>I created this video while I was testing the connection load of the server.  Each capsule you see is an automated connection moving randomly through the world. Since then I have changed them to actual character animations which looks way cooler but I haven&#8217;t taken time to record a video.</p>
<p><span id="more-68"></span>The server culls down how many entities the game client will see so not to overload it.  On the server I have masks that are used to categorize and prioritize what needs to be seen on any client.  Click the video to head on over to youtube.com and watch it in HD.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="292" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/kCp2-nfibzY&amp;hl=en_US&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="292" src="http://www.youtube.com/v/kCp2-nfibzY&amp;hl=en_US&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><!--more-->As of this writing, I&#8217;ve had the server up to 400 concurrent connections @ 50% cpu but in the next build I think I can double that performance.  There are many optimizations I know I can do at this point. Load has a lot to do with the number of entities that can see each other at any one time which corresponds to the number of messages I need to generate.</p>
<p>The chart below is with 95 connected entities that can all literally see each other.</p>
<p><a href="http://www.bakedon.com/wp-content/uploads/2010/01/load-with-95-npc-connections.jpg"><img class="alignnone size-medium wp-image-72" title="Server load with 95 npc connections" src="http://www.bakedon.com/wp-content/uploads/2010/01/load-with-95-npc-connections-279x300.jpg" alt="" width="279" height="300" /></a></p>
<p>As it is in that video, every entity can see every other entity within a vision radius. To achieve the 400 connections, I reduced the vision radius of NPCs and left the larger radius for actual players. This is where the masking comes in.  NPCs don&#8217;t really care about a lot of entities.  They may not care about any entities of their same race for instance.  They may only care about players or perhaps even entities of a race they are at war with.  The mask is simply a set of flags that determine who they care about seeing.  Combine this with an appropriate vision radius.  For instance, NPC&#8217;s don&#8217;t have to see as far as players. They only need to see as far as their maximum aggro radius.  On the other hand, players need to see further so that characters don&#8217;t magically warp in.</p>
<p>World design also plays a part in controlling this.  If you can see a great distance in front of you at any one time, you could potentially see a lot of entities.  Have a look carefully at the design of Orgimmar or Iron Forge in World of Warcraft.  Also think about how dungeon instances are designed. These areas are designed either to manage a high density of players or to keep game latency down to a minimum by carefully managing your visual distance.  This will keep both the client and server snappy.</p>
<p>If you have other ideas for managing this, I&#8217;d love to hear them. Please post a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bakedon.com/2010/01/ghostees-load-testing-the-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ghostees: Server Technology</title>
		<link>http://www.bakedon.com/2008/07/ghostees-server-technology/</link>
		<comments>http://www.bakedon.com/2008/07/ghostees-server-technology/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 06:07:09 +0000</pubDate>
		<dc:creator>Tricky</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Ghostees]]></category>
		<category><![CDATA[Ghostees server technology]]></category>
		<category><![CDATA[MMORPG]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.bakedon.com/?p=31</guid>
		<description><![CDATA[Ghostees is not just an RPG, it is a proof of concept of the server platform. The server platform is designed so that we can develop additional MMORPG-style games and leverage all that back end technology as much as possible. The server technology is interesting. Our background is primarily in high performance serverdevelopment. We wanted [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Ghostees: Flash MMORPG Virtual World" href="http://www.ghostees.com" target="_blank">Ghostees</a> is not just an RPG, it is a proof of concept of the server platform. The server platform is designed so that we can develop additional MMORPG-style games and leverage all that back end technology as much as possible.<span id="more-31"></span></p>
<p>The server technology is interesting. Our background is primarily in <a title="Second largest DNS server on the planet" href="http://royal.pingdom.com/?p=125" target="_blank">high performance server</a>development. We wanted a design that could scale to support a very large number of players. Who doesn&#8217;t? Server-side tasks are logically divided into services and architected so that they can run and live independently on remote hardware. This way we can distribute the load based on capacities any particular service can handle.</p>
<p>Servers are auto discoverable and communicate with each other efficiently over <a title="UDP Reference" href="http://en.wikipedia.org/wiki/User_Datagram_Protocol" target="_blank">UDP</a>. This is a huge benefit. As servers come on and offline, we don&#8217;t need to do any reconfiguring of dependent servers. They are designed to locate the appropriate service by dropping a service discovery packet on the network. All servers that provide that service respond with server information and current server load. This way the seeking server can choose among servers with more available capacity.</p>
<blockquote><p>Servers are auto discoverable and communicate with each other efficiently over UDP</p></blockquote>
<p>For instance we have a combat service. All it does is create and maintain a combat encounter for a set of entities (players and NPCs). A <a title="Ghostees: Flash MMORPG Virtual World" href="http://www.ghostees.com" target="_blank">Ghostees</a>player initiating combat will cause the player&#8217;s gateway server to request a combat encounter instance on an available combat server. Other players and NPCs can join a combat encounter even if they are <strong>not </strong>on the same gateway.</p>
<p>A gateway is the server a player&#8217;s browser communicates directly with. It takes care of the core <a title="RTMP Reference" href="http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol" target="_blank">RTMP</a> / <a title="AMF Reference" href="http://en.wikipedia.org/wiki/Action_Message_Format" target="_blank">AMF</a>stuff that Flash communicates with natively. It is also responsible for persisting player information to the database and also for facilitating access to the other servers in the system. It does not do chat, movement, routing or even quests or NPC AI. Those are all different services potentially running elsewhere.</p>
<p style="text-align: center;"><a title="Ghostees: Flash MMORPG Virtual World" href="http://www.ghostees.com" target="_blank"><img class="size-medium wp-image-34 aligncenter" title="Ghostees Flash MMORPG Logo" src="http://www.bakedon.com/wp-content/uploads/2008/07/ghostees_logo_color.jpg" alt="Ghostees Flash MMORPG Logo" width="256" height="128" /></a></p>
<p>A zone server is responsible for simply tracking the entrance/exit and movement of entities. When an entity enters a zone (player or NPC), the zone broadcasts to all connected gateways that they need to subscribe to this new entity. It also sends messages back to the connecting player information about the zone, such as graphic asset information, music, collision layers and other existing entities.</p>
<blockquote><p>To a zone server, an NPC looks just like any other player.</p></blockquote>
<p>On each simulation step the zone server updates the positions of entities it knows about. When a player or NPC requests a route to a new destination, the zone server facilitates the route calculation, obstacle avoidance and potential zone transfers. Once the route is calculated it is sent to the requesting entity. This overrides any predicted route done by the client.  It&#8217;s pretty cool actually!</p>
<p>NPC AI runs on their own gateway server. To a zone server, an NPC looks just like any other player. NPCs can be scripted to request routes and respond to player interactions among other things just like a player.</p>
<p>I think your getting the idea by now. We&#8217;re really enjoying working with this design. It&#8217;s quite flexible and powerful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bakedon.com/2008/07/ghostees-server-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ghostees Writer&#8217;s Log: Background</title>
		<link>http://www.bakedon.com/2008/07/ghostees-writers-log-background/</link>
		<comments>http://www.bakedon.com/2008/07/ghostees-writers-log-background/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 02:24:38 +0000</pubDate>
		<dc:creator>thePuck</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Ghostees]]></category>
		<category><![CDATA[halloween]]></category>
		<category><![CDATA[MMORPG]]></category>
		<category><![CDATA[monster]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[pc]]></category>

		<guid isPermaLink="false">http://www.bakedon.com/?p=30</guid>
		<description><![CDATA[Preview of the background lore for upcoming massively multiplayer online roleplaying game Ghostees!]]></description>
			<content:encoded><![CDATA[<p><strong>Greetings and Salutations!</strong></p>
<p>Hiya, cats and kittens! I am the writer and class designer for <a href="http://www.ghostees.com/">Ghostees!</a>, our upcoming MMORPG, and I just wanted to start out saying hello and that I hope you will enjoy Ghostees. We&#8217;re very excited to bring you this new game, and our developers are hard at work to bring you the very best gaming experience possible.</p>
<p>Today we are going to cover some of the background lore of the game, covering the Otherwhere and its connection to the human realm.</p>
<p><strong><span id="more-30"></span>Otherwhere</strong></p>
<p>The Otherwhere is a world that coexists with the normal human world, intersecting it at certain places and times but otherwise only perceivable through its influence. In the Otherwhere the dreams, fantasies, and beliefs of the human world are given form and life. As to whether they are given their existence from our dreams, or our dreams are caused by their existence&#8230;no one knows.</p>
<p><strong>The Seasonal Realms<br />
</strong></p>
<p>For some unknown reason, the cycle of existence of the human world and the Otherwhere are linked. Our seasons are linked to specific regions in the Otherwhere, and as our world goes through its changes the Otherwhere comes into and out of alignment with us. The alignments are closest at certain times, and these times have been traditionally called &#8220;holidays&#8221; by the humans barely aware of their origins. In the modern era we have forgotten their meaning, but the Seasonal Realms of the Otherwhere are still there, affecting us.</p>
<p><strong>The Aisling</strong></p>
<p>The Aisling, or &#8220;Dreams&#8221;, are the natives of the Otherwhere. They each express a theme or archetype called an Essence that defines the way they look, the personalities they have, and their abilities.</p>
<p><strong>Essences</strong></p>
<p>These are the living manifestations of our fascinations and stereotypes that have arisen over the course of human existence. We birth them from our minds, and they change as we change, but it is not a one-way street. Our worlds are interwoven, and if their nature changes, so too do our dreams, hopes, and fears. As they live or die, succeed or fail, so too does that realm of our imaginations.</p>
<p><strong>The Autumn Realm</strong></p>
<p>In the 21st Century world, human understanding of the Otherwhere and its seasonal influence has faded, only to be replaced by more &#8220;rational&#8221; explanations for the holidays. Where once the night of October 31 was a festival that acknowledge the power of death and the coming winter, it came to be a night of monsters, ghouls, pranks, and ghosts. The Autumn Realm followed suit and came to manifest as Halloween, with Aisling as old as dreaming itself remade as vampires, mummies, and witches.</p>
<p><strong>Next Time</strong>:</p>
<p>Next time I will give you a sneak peak into the realm-spanning war between the Technocrat&#8217;s Great Plan and Grim Jack&#8217;s misfit crew of monsters, the Terata. Stay tuned!</p>
<div class="zemanta-pixie"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/7a502d5f-2dd3-4bb7-949a-3dd7ce4e6d0d/"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=7a502d5f-2dd3-4bb7-949a-3dd7ce4e6d0d" alt="Zemanta Pixie" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bakedon.com/2008/07/ghostees-writers-log-background/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

