<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.3" -->
<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/"
	>

<channel>
	<title>Joe Ludwig’s blog</title>
	<link>http://programmerjoe.com</link>
	<description>There is no crying in the red circle</description>
	<pubDate>Tue, 29 Apr 2008 05:33:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<item>
		<title>Getting Feedback</title>
		<link>http://programmerjoe.com/2008/04/28/getting-feedback/</link>
		<comments>http://programmerjoe.com/2008/04/28/getting-feedback/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 05:33:43 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Day Job]]></category>

		<category><![CDATA[Production]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/04/28/getting-feedback/</guid>
		<description><![CDATA[Andy Brice recently posted on getting feedback from software customers. With Pirates, our options are similar but somewhat tweaked.
We host our own forums for our user community to hang out on.  On most MMOs about 10% of the player base actually uses these, and they self-select into a very hard-core and usually unhappy group. [...]]]></description>
			<content:encoded><![CDATA[<p>Andy Brice recently posted on <a href="http://successfulsoftware.net/2008/04/28/getting-customer-feedback/">getting feedback</a> from software customers. With Pirates, our options are similar but somewhat tweaked.</p>
<p>We host our own forums for our user community to hang out on.  On most MMOs about 10% of the player base actually uses these, and they self-select into a very hard-core and usually unhappy group.  We can use the forums to find out what they&#8217;re unhappy about, but they probably don&#8217;t represent the actual player base very well. Still, listening to this segment of our community is important.</p>
<p>Click-cancel surveys are another common option.  When someone goes to your site to cancel their subscription you ask them why they&#8217;ve canceled. SOE isn&#8217;t currently set up to run these, so we don&#8217;t have that data available, but many games do this kind of survey.  This information is useful for finding exit points for players so you can eliminate them.</p>
<p>Recently I&#8217;ve started doing something a little different.  I show up in game with no warning whatsoever and announce that I&#8217;m running an impromptu devchat.  I offer to teleport any players who want to attend to an out of the way spot and then spend an hour or so answering their questions. I&#8217;ve run four of these so far (with one of our designers helping out on all but one of them.)</p>
<p>The biggest difference between what I hear in these impromptu devchats and what I read on the forums is the tone.  The forums are all about this OMG important issue or that OMG important issue.  The devchats have all been players asking about various new stuff that we might add to the game. (The answer is almost always &#8220;That&#8217;s a great idea that we want to implement, but we don&#8217;t know when we&#8217;ll get to it.&#8221;)  I think to get more feedback from players I&#8217;ll need to actually ask <strong>them </strong>some questions.</p>
<p>Maybe I&#8217;ll have to try that in the next one&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/04/28/getting-feedback/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coding Vacations</title>
		<link>http://programmerjoe.com/2008/04/27/coding-vacations/</link>
		<comments>http://programmerjoe.com/2008/04/27/coding-vacations/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 00:09:06 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Engineering]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/04/27/coding-vacations/</guid>
		<description><![CDATA[A couple of weeks ago I took the week&#8217;s vacation from my job as the Producer of Pirates of the Burning Sea to sit at home, in my basement, and write code 12 hours a day for 8 straight days. It was a fantastic experience and I would love to do it again. If you [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I took the week&#8217;s vacation from my job as the Producer of Pirates of the Burning Sea to sit at home, in my basement, and write code 12 hours a day for 8 straight days. It was a <strong>fantastic</strong> experience and I would love to do it again. If you aren&#8217;t a programmer that probably sounds crazy to you.</p>
<p>There are two things that made my coding vacation the awesome, relaxing, productive, and fulfilling experience it was. The first is that there is very little drag on writing code on the first few thousand lines of a project. The second is that I haven&#8217;t had much of a chance to code at Flying Lab in the past year and a half. Well those and the fact that I genuinely enjoy programming.</p>
<p>When you are at the very beginning of a project you have little to no drag on your efforts. There isn&#8217;t a large body of code to keep up and running when you make a new change. Your compile and startup times are incredibly fast. When you have a bug, there are far fewer places it could be. When you&#8217;re used to writing in a million-line code base, this is liberating. It&#8217;s also very productive, which feels great.</p>
<p>As the Pirates project has gone on, I&#8217;ve gradually been moving further from the code.  Way back when it was just me writing all the code (or even just Heidi and me) I had <strong>tons</strong> of coding tasks, but about the time we added the fourth or fifth programmer the amount of time I could devote to coding during daylight hours dropped to almost nothing. Once we signed with SOE, I picked up all of the management duties for the technical side of that relationship, which made it even worse. I wrote a little code here and there, but it was always late in the evening or on the weekend around all my other duties.</p>
<p>If you&#8217;ve been reading my blog for long, it shouldn&#8217;t surprise you that I think coding is fun. Ever since we got the TI 99-4/a for Christmas 1983, programming has been a hobby of mine. When I was deciding what to study in college, I really couldn&#8217;t imagine a major that didn&#8217;t involve tons of programming. It&#8217;s not work, it&#8217;s entertainment.</p>
<p>I assume that every other creative person who truly loves what they do has a similar attitude. I know plenty of artists who draw, sculpt, or paint on the weekends. Many game designers design card or board games that they never expect anyone else to see just for the fun of it. The writers I know can&#8217;t seem to stop writing for local newspapers, online outlets, or former employers. There&#8217;s no reason to think programming would be any different.</p>
<p>And I&#8217;m not alone.  One of my <a href="http://www.brendanwalker.net/blog/">co-workers</a> is just finishing up a coding vacation of his own. He took a week off from programming video games to program a video game. Good for him, I say.  He&#8217;s going to return to work more refreshed and relaxed than if he&#8217;d run off to some tropical island and it won&#8217;t have cost him a dime.  (Ok, maybe not <strong>as</strong> relaxed, but close.)</p>
<p>How about you?  Ever take a vacation to do more of what you already do at the office?</p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/04/27/coding-vacations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Greg McAdoo at Startup School</title>
		<link>http://programmerjoe.com/2008/04/27/greg-mcadoo-at-startup-school/</link>
		<comments>http://programmerjoe.com/2008/04/27/greg-mcadoo-at-startup-school/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 15:39:50 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Off Topic]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/04/27/greg-mcadoo-at-startup-school/</guid>
		<description><![CDATA[This has nothing whatsoever to do with games, but it&#8217;s a great talk on what kinds of startups turn into giant successes. Greg McAdoo is a partner at Sequoia Capital.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://omnisio.com/startupschool08/greg-mcadoo-partner-at-sequoia-capital-talks-at-startup-school-08">This</a> has nothing whatsoever to do with games, but it&#8217;s a great talk on what kinds of startups turn into giant successes. Greg McAdoo is a partner at Sequoia Capital.</p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/04/27/greg-mcadoo-at-startup-school/feed/</wfw:commentRss>
		</item>
		<item>
		<title>An Augmented Reality Primer</title>
		<link>http://programmerjoe.com/2008/04/20/an-augmented-reality-primer/</link>
		<comments>http://programmerjoe.com/2008/04/20/an-augmented-reality-primer/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 23:33:11 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Augmented Reality]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/04/20/an-augmented-reality-primer/</guid>
		<description><![CDATA[Lately I&#8217;ve developed an intense fascination with Augmented Reality (AR). This doesn&#8217;t bode well for my Facebook game, but learning about the current state of AR is taking up quite a lot of my free time. This post is my attempt to distill what I&#8217;ve learned so far.
What is Augmented Reality?
Augmented Reality is the combination [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve developed an intense fascination with Augmented Reality (AR). This doesn&#8217;t bode well for <a href="http://apps.facebook.com/primesuspect">my Facebook game</a>, but learning about the current state of AR is taking up quite a lot of my free time. This post is my attempt to distill what I&#8217;ve learned so far.</p>
<p><strong>What is Augmented Reality?</strong></p>
<p><a href="http://en.wikipedia.org/wiki/Augmented_reality">Augmented Reality</a> is the combination of artificial and natural sensory input in in such a way that the artificial input &#8220;augments&#8221; the natural input.  That&#8217;s the all-encompassing definition anyway; when you hear someone talking about AR they are probably talking about adding computer-generated images to a video feed and showing the result to the user. AR is technically a subset of <a href="http://en.wikipedia.org/wiki/Mixed_reality">Mixed Reality</a> owing to its position on the virtuality continuum (image from Wikipedia):</p>
<p align="center"><img src="http://upload.wikimedia.org/wikipedia/en/d/dc/Virtuality_Continuum_2.jpg" height="59" width="306" /></p>
<p align="left">Augmented Reality has been a subject of countless academic research projects since the mid-1990s, but it hasn&#8217;t really broken through into very many commercial applications. There has been talk of applications in wiring jets at Boeing, enhancing exhibits in museums, and personal navigation, but it&#8217;s not clear that any of those are really being used.  In fact, AR seems to be one of those research projects that people work on while they&#8217;re in grad school and then abandon for more practical pursuits after graduation. The number of people that have been researching AR consistently for the past ten years is very small.</p>
<p align="left">Augmented Reality has obvious crossovers with <a href="http://en.wikipedia.org/wiki/Virtual_reality">Virtual Reality</a>, specifically in display technologies. The most exciting AR applications use similar <a href="http://en.wikipedia.org/wiki/Head_mounted_display">head-mounted displays</a> to those used in Virtual Reality, and gain tremendous benefit from head tracking. Augmented Reality also uses rendered 3D images, but those are hardly the exclusive domain of VR. In terms of rendering both AR and VR are taking their cues from the game industry at this point.</p>
<p align="left"><a href="http://en.wikipedia.org/wiki/Computer_vision">Computer Vision</a> is also mentioned frequently in AR circles. The biggest problem that AR needs to solve to work really well is to accurately determine the position of the viewer. Many AR researchers use Computer Vision techniques to recognize objects in the scene and work backwards from there to determine the position and orientation of the camera.  Much of this research uses markers in the scene itself, including both <a href="http://www.artag.net/">ARTag</a> and the various flavors of AR Toolkit. The markers make object recognition faster and far more reliable. Here is an example of such markers in action (from the ARTag website):</p>
<p align="left">&nbsp;</p>
<p style="text-align: center"><a href="http://www.artag.net/"><img src="http://www.artag.net/magic_mirror_system_mosaic.jpg" height="160" width="339" /></a></p>
<p align="left">ARTag is GPL&#8217;d, so in theory you can download it and start building your own marker-based AR applications. Unfortunately Mark Fiala, the guy in the photo above, is no longer at his university and there seems to be some sort of custody battle going on over who can distribute ARTag. So you can <a href="http://www.amazon.com/Augmented-Reality-Practical-Stephen-Cawood/dp/1934356034">buy his book</a> to learn all about how to use the SDK, but you can&#8217;t actually download the SDK.  (Incidently, I can&#8217;t really recommend that book to an experienced game programmer. It was about 75% Game Programming 101 and had precious few details on how ARTag actually works behind the scenes.)</p>
<p align="left"><strong>Approaches to AR in the Current Research</strong></p>
<p align="left">There are three major approaches to AR in the research I&#8217;ve been able to find.  The first is Magic Lens, where a handheld device of some sort shows the view from its camera with graphics overlayed. The second is Magic Mirror, where a camera is used to show the user an augmented version of himself. I wasn&#8217;t able to find a fancy name for the third approach, so I&#8217;ll call it First Person. In First Person the user&#8217;s view is overlaid with the augmented bits directly.  All three of these approaches have appeared in many papers and research projects over the past ten years.</p>
<p align="left">Magic Lens is the approach that seems to be getting the most traction. Today&#8217;s PDAs are powerful enough to run marker-detection algorithms and rendering engines in real time, and they all have cameras. By far the most interesting of these projects is <a href="http://www.enkin.net/">Enkin</a>, which is a prototype of a device that promises to offer Magic Lens navigation on Google&#8217;s Android. The paper on Enkin&#8217;s site outlines many of the very same problems I&#8217;m considering in my own nascent AR research. Magic Lens neatly side-steps the biggest problem with First-Person AR by using existing PDA screens instead of expensive and inadequate head mounted displays.</p>
<p align="left">Magic Mirror is an approach that doesn&#8217;t seem to be useful for much more than <a href="http://www.youtube.com/results?search_query=artag&amp;search_type=">making YouTube videos</a>. The user&#8217;s own image is going to dominate the screen almost by definition. It could see some use in trying on hairstyles or clothing without actually trying them on, but I don&#8217;t think we&#8217;ll see widespread use of Magic Mirror as an AR display metaphor.</p>
<p align="left">The third major AR approach is First Person.  The user wears some sort of head-mounted display that tracks the motion of their head through inertial systems, computer vision, or (more likely) a combination of both. From what I&#8217;ve been able to find, most AR research using this approach completely obscures the user&#8217;s vision and they see <strong>only</strong> what&#8217;s coming through the video camera mounted to their head. Because everything the user sees is on the display, imperfections in head tracking or poor frame rate can cause serious motion sickness. There are a few head mounted displays that are coming on the market soon that allow graphics to painted in the user&#8217;s field of view without obscuring their natural vision, so those will help.</p>
<p align="left">Of all these approaches, I think First Person is going to win out in the end. Magic Lens is powerful, but suffers from a need to pay close attention to a little two inch screen on your PDA. That isn&#8217;t a big problem in most of the demos, but it precludes using it while driving and eliminates many gaming applications.  If you try to move much while your focus is on your PDA you are eventually going to get yourself run over by a bus. We will probably see a rise in Magic Lens AR over the next five years or so and then see a rather sudden shift to First Person once the display technology catches up.</p>
<p align="left"><strong>How Far Out is Augmented Reality?</strong></p>
<p align="left">Given sufficient infrastructure to improve location detection in mobile devices, we could have mass-market AR now. Setting up transmitters to precisely determine location and orientation works fine in a laboratory environment. However, it&#8217;s unlikely that such infrastructure investment would happen without a strong push from the public, and that&#8217;s not going to happen for such an unproven technology. GPS gives AR devices only a very rough idea of where it is, down to 2m in the best cases. For many applications the accuracy needs to be 1cm or less to avoid horrible jittering. The hot new GPS technology coming out in 2013 will still only be accurate down to one meter.</p>
<p align="left">AR markers are used as a solution for this problem, but they aren&#8217;t practical in the real world either. We aren&#8217;t going to carpet the world with AR markers just so the first few dozen geeks with AR goggles can find their way around without looking at a map. The fact that they can actually show results from their research when they use markers seems to have distracted many AR researches from the need to develop marker-less solutions.</p>
<p align="left">Computer Vision offers an alternative to both markers and fine-grained GPS, and great advances have been made in determining camera position and scene geometry from an arbitrary set of 2D images. These algorithms seem to do a good job of figuring out what they&#8217;re looking at, but it&#8217;s not clear if they&#8217;re running in real time yet.  Unlike AR researchers, Computer Vision researchers don&#8217;t seem to be into whiz-bang demos. If the problem with the current algorithms really is speed, simply waiting for computing power to catch up will likely resolve this issue.</p>
<p align="left">My entirely unscientific gut feel is that we will see early Magic Lens AR applications hit the market in about two years.  Early First Person applications will probably appear around the same time, but won&#8217;t be compelling enough to gain widespread use. About 5 years out I expect to see First Person applications of AR begin to take off thanks to increased mobile computing power and improvements in head-mounted displays. I believe mainstream adoption of AR is about ten years away.</p>
<p align="left">On the other hand, I could be totally wrong and Augmented Reality will turn out to be &#8220;just around the corner&#8221; forever like Artificial Intelligence and Virtual Reality.</p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/04/20/an-augmented-reality-primer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I need a pith helmet</title>
		<link>http://programmerjoe.com/2008/04/01/i-need-a-pith-helmet/</link>
		<comments>http://programmerjoe.com/2008/04/01/i-need-a-pith-helmet/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 17:48:57 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/04/01/i-need-a-pith-helmet/</guid>
		<description><![CDATA[This is what I looked like yesterday:

FLS had a Mustache Month contest in March.   I won the Teddy Roosevelt Memorial Prize.
I&#8217;m back to normal today. My wife is relieved.  
]]></description>
			<content:encoded><![CDATA[<p>This is what I looked like yesterday:</p>
<p><img src="http://lh4.google.com/vonitter/R_JxBRxE6pI/AAAAAAAAH3Y/SB67zLn1CnE/s400/IMG_7012.jpg" height="286" width="400" /></p>
<p>FLS had a Mustache Month contest in March.   I won the Teddy Roosevelt Memorial Prize.</p>
<p>I&#8217;m back to normal today. My wife is relieved.  <img src='http://programmerjoe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/04/01/i-need-a-pith-helmet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Facebook Week - Finale</title>
		<link>http://programmerjoe.com/2008/03/30/facebook-week-finale/</link>
		<comments>http://programmerjoe.com/2008/03/30/facebook-week-finale/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:52:01 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Social Gaming]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/03/30/facebook-week-finale/</guid>
		<description><![CDATA[I didn&#8217;t actually work on the game today, but I did get the turn processor running for real this morning, so I figured I&#8217;d put that link up again:  http://apps.facebook.com/primesuspect
I finished off everything I had on my list for yesterday.  The UI is much improved, but I still don&#8217;t think it&#8217;s quite there [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t actually work on the game today, but I did get the turn processor running for real this morning, so I figured I&#8217;d put that link up again:  <a href="http://apps.facebook.com/primesuspect">http://apps.facebook.com/primesuspect</a></p>
<p>I finished off everything I had on my list for yesterday.  The UI is much improved, but I still don&#8217;t think it&#8217;s quite there yet.  I should probably put the word &#8220;beta&#8221; on it somewhere so people don&#8217;t think I think it&#8217;s finished.</p>
<p>If you do end up trying it out, please drop a comment here and let me know. Any feedback you give me will let me make the game better before I list it in the application directory and send it out to ALL my friends (instead of just the 5 or 6 lucky ones I sent it to yesterday.)</p>
<p>So far I have had about 15 people install the game.  I guess people are seeing it on news feeds and trying it out. The name is apparently good enough to get people to click on it. Hopefully the one uninstall I&#8217;ve had will come back when it&#8217;s finished.</p>
<p>And now I return you to your regular once every week or two posting schedule&#8230; <img src='http://programmerjoe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/03/30/facebook-week-finale/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Facebook Week - Day 8</title>
		<link>http://programmerjoe.com/2008/03/29/facebook-week-day-8/</link>
		<comments>http://programmerjoe.com/2008/03/29/facebook-week-day-8/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 22:33:47 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Social Gaming]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/03/29/facebook-week-day-8/</guid>
		<description><![CDATA[Maybe you didn&#8217;t realize this, but Facebook Week has two weekends, so it&#8217;s actually 9 days long.
I revamped the way the ASP.NET code handles its own URLs and links between pages yesterday so I could get Prime Suspect up and running on the hosting provider.  I never heard back from ReliableSite.net about the URL [...]]]></description>
			<content:encoded><![CDATA[<p>Maybe you didn&#8217;t realize this, but Facebook Week has two weekends, so it&#8217;s actually 9 days long.</p>
<p>I revamped the way the ASP.NET code handles its own URLs and links between pages yesterday so I could get Prime Suspect up and running on the hosting provider.  I never heard back from ReliableSite.net about the URL Rewriting install, so I worked around it.  I assume it will happen on Monday now that I don&#8217;t need it anymore.</p>
<p>The game is live on Facebook at this point.  If you want to check it out, it&#8217;s right <a href="http://apps.facebook.com/primesuspect/">here</a>. I haven&#8217;t set up the turn running daemon to actually <strong>run</strong> yet, so infinite free turns are still available via the &#8220;add turn&#8221; button at the bottom of the page. Add Turn doesn&#8217;t post anything to your profile, but it will give you turns and check victory conditions. Please post any feedback you have here.</p>
<p>Today I hope to:</p>
<ul>
<li>Improve the game UI some more</li>
<li>Fix up the display for games that have already ended</li>
<li>Add &#8220;how to play&#8221; instructions</li>
<li>Get the turn daemon running on a regular basis</li>
<li>Make the mystery list page not suck</li>
<li>Make the mystery join page not suck</li>
</ul>
<p>Of course it&#8217;s the middle of the afternoon as I write this, so some of those things are already done. <img src='http://programmerjoe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/03/29/facebook-week-day-8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Facebook Week - Day 7</title>
		<link>http://programmerjoe.com/2008/03/28/facebook-week-day-7/</link>
		<comments>http://programmerjoe.com/2008/03/28/facebook-week-day-7/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 19:24:21 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Social Gaming]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/03/28/facebook-week-day-7/</guid>
		<description><![CDATA[My murder mystery game has a name!  I&#8217;m calling it &#8220;Prime Suspect&#8221;.  Thanks for the suggestion, Nissa.
I signed up with ReliableSite.net for hosting yesterday, but they don&#8217;t seem to have emailed the &#8220;here&#8217;s how you use our service&#8221; message, so I didn&#8217;t realize they were finished with my order until this morning.  Now I just [...]]]></description>
			<content:encoded><![CDATA[<p>My murder mystery game has a name!  I&#8217;m calling it &#8220;Prime Suspect&#8221;.  Thanks for the suggestion, Nissa.</p>
<p>I signed up with ReliableSite.net for hosting yesterday, but they don&#8217;t seem to have emailed the &#8220;here&#8217;s how you use our service&#8221; message, so I didn&#8217;t realize they were finished with my order until this morning.  Now I just need to wait for the URL rewriting package to be installed so I can get things up and running. ReliableSite is on the east coast, so if they don&#8217;t do it in the next two hours they may not do anything about it until Monday. The servers should be running IE6 or better, so I might just cut out all the rewriting other than the callback URL itself so I can get it up and running.</p>
<p>I sent invitations to a few people yesterday to come check the app out, and <a href="http://www.nilretain.org/mt/">Justin Miller</a> helped me shake out some bugs in the game UI itself. This morning I notice that only two people have actually made the install&#8230; I&#8217;ll have to hassle them some more. <img src='http://programmerjoe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I hooked up profile updating and revamped the game UI yesterday.  I also added support for game names (though they&#8217;re all currently named &#8220;Random Name&#8221;.)  The global turn processor is working now and it updates your profile with the status of all the mysteries you&#8217;re playing.</p>
<p>The biggest change from yesterday was the introduction of networks.  Every Mystery belongs to a network, and you are only shown games from your own network by default.  You can always invite someone from another network to any mystery, but they won&#8217;t find it normally.  The game is also drawing suspects from network affiliations, so you will see other players from your network(s) listed as suspects in the mysteries you&#8217;re playing.  My hope is that this builds a sense of community around the mysteries themselves. Most Facebook games use the friend list for the same purpose&#8230; we&#8217;ll see how networks work out.</p>
<p>Today my goals are:</p>
<ul>
<li>Get the game running on the hosting provider</li>
<li>Push it out in &#8220;beta&#8221; form</li>
<li>Get news feed items generating for accusations and the mysteries getting solved</li>
<li>Generating random names</li>
<li>Further end-game UI revisions</li>
</ul>
<p>Those are in priority order, so if the hosting stuff ends up taking all day I may not get much done.</p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/03/28/facebook-week-day-7/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Facebook Week - Day 6</title>
		<link>http://programmerjoe.com/2008/03/27/facebook-week-day-6/</link>
		<comments>http://programmerjoe.com/2008/03/27/facebook-week-day-6/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 17:53:36 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Social Gaming]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/03/27/facebook-week-day-6/</guid>
		<description><![CDATA[As expected, I didn&#8217;t get much coding time yesterday. I did knock off a couple quick Facebook integration features:

All mystery pages now have a mystery-specific comment section.  This was one tag (with a tiny bit of C# code to generate a unique ID.)
I added a popup dialog that allows you to invite your friends to [...]]]></description>
			<content:encoded><![CDATA[<p>As expected, I didn&#8217;t get much coding time yesterday. I did knock off a couple quick Facebook integration features:</p>
<ul>
<li>All mystery pages now have a mystery-specific comment section.  This was one tag (with a tiny bit of C# code to generate a unique ID.)</li>
<li>I added a popup dialog that allows you to invite your friends to play a specific mystery or to install the game.</li>
<li>The FDT framework required logins before it required adds.  That meant two &#8220;do you want this app to know who you are&#8221; pages for users.  That&#8217;s down to just the standard install page now.</li>
<li>I&#8217;m recording the users&#8217; infinite session keys now so I can post to their profiles and news feeds on a timer (for when turns run.)</li>
</ul>
<p>I emailed a couple of hosting providers that people pointed me out.  One doesn&#8217;t support rewriting on windows. The other (<a href="http://ReliableSite.Net">ReliableSite.net</a>) uses <a href="http://www.codeplex.com/IIRF">Ionics Isapi Rewrite Filter</a> for URL Rewriting. The latest version of IIRF is broken, but the one before that seems to work fine so maybe ReliableSite.net will work for me.</p>
<p>Today I hope to:</p>
<ul>
<li>Sign up with a hosting provider</li>
<li>Get the site up and running on that provider</li>
<li>Get the automatic turn-running code written</li>
<li>Put the hosted game up in a new Facebook app so I can&#8230;</li>
<li>Post the URL here so you can all try it out</li>
</ul>
<p>Most of that depends on figuring out whatever configuration issues come up when I try to run on the new host.  That could be half an hour or twelve hours depending on how many gotchas come up.</p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/03/27/facebook-week-day-6/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Facebook Week - Day 5</title>
		<link>http://programmerjoe.com/2008/03/26/facebook-week-day-5/</link>
		<comments>http://programmerjoe.com/2008/03/26/facebook-week-day-5/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 18:25:22 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
		
		<category><![CDATA[Social Gaming]]></category>

		<guid isPermaLink="false">http://programmerjoe.com/2008/03/26/facebook-week-day-5/</guid>
		<description><![CDATA[Yesterday was the first time someone other than me installed the game.  Thanks for the help, Nissa and Tim!
I have the main game UI up and running now.  I&#8217;m not really happy with how it looks, but it&#8217;s more or less functional. Now I need to get started on all the features that [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday was the first time someone other than me installed the game.  Thanks for the help, Nissa and Tim!</p>
<p>I have the main game UI up and running now.  I&#8217;m not really happy with how it looks, but it&#8217;s more or less functional. Now I need to get started on all the features that are specific to Facebook, as well as the non-game features that surround the game itself. I&#8217;m not sure how much I&#8217;ll actually get done today because of lunch plans and this afternoon&#8217;s <a href="http://iongameconference.com/">ION Game Conference</a> Advisory Board conference call. Those two things kind of chop up the day.</p>
<p>If you&#8217;re using the Facebook Developer&#8217;s Toolkit that Microsoft and Facebook are pushing you already know this:  It throws an exception if somebody with &#8220;Networking&#8221; selected in their &#8220;looking for&#8221; field uses your app. I had to add Networking to an enum and recompile it to fix the problem, so not a big deal, really.</p>
<p>I don&#8217;t expect to get much done today, so I don&#8217;t have a list of the days&#8217; goals. The list of items remaining for the <strong>week</strong> is below. Boy that looks like a lot when you bother to write it all out like that. <img src='http://programmerjoe.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ul>
<li>Find a hosting provider.  I have some recommendations, I just need to look at them now that I know more about my requirements (like ISAPI_Rewrite.)</li>
<li>Network support:
<ul>
<li>Split up the mystery list by network</li>
<li>Add a new mystery automatically if the network doesn&#8217;t have an appropriate one.</li>
<li>Pull the suspect list from the network instead of globally</li>
</ul>
</li>
<li>Leaderboards:
<ul>
<li>Filtered by friend list</li>
<li>Filtered by network</li>
</ul>
</li>
<li>Inviting friends to join a mystery</li>
<li>Track turn history
<ul>
<li>Show player actions</li>
<li>Show turns processing every X hours</li>
</ul>
</li>
<li>Global &#8220;process all mysteries&#8221;code.</li>
<li>Posting news:
<ul>
<li>Starting a game</li>
<li>Finishing a game</li>
<li>Making an accusation</li>
</ul>
</li>
<li>Profile box:
<ul>
<li>Show current mysteries</li>
<li>Show win-lose record</li>
</ul>
</li>
<li>Icon for the profile</li>
<li>Generate names for mysteries
<ul>
<li>Case of the Silver Monkey</li>
<li>Case of the Slippery Banana</li>
<li>etc.</li>
</ul>
</li>
<li>Come up with a name for the game itself</li>
</ul>
<p>I&#8217;m happy to take any suggestions on that last one.  Something involving &#8220;Murder&#8221; and/or &#8220;Mystery&#8221; might be good.  Neither word is well represented in Facebookappland. The only game I can find that&#8217;s roughly similar to what I&#8217;m doing is MO, which hasn&#8217;t been updated in several months (and has 4 daily active users.)</p>
<p>Some names I&#8217;m thinking about:</p>
<ul>
<li>Murder!</li>
<li>Mystery!</li>
<li>Take the Case</li>
<li>Solve the Case</li>
<li>Crack the Case</li>
<li>Case Closed</li>
<li>True Crime</li>
<li>Investigate Your Friends!</li>
<li>Investigation</li>
<li>Alleged</li>
<li>Baseless Allegations</li>
<li>Cops and Robbers</li>
<li>Catch the Killer</li>
<li>Track the Killer</li>
<li>Confidential Informant</li>
<li>Murder Confidential</li>
<li>Police Blotter</li>
<li>Sucker for Mystery</li>
<li>Expose the Killer</li>
<li>Killer</li>
<li>Homicide</li>
<li>Solve the Homicide</li>
<li>Clue (It worked for Scrabulous. <img src='http://programmerjoe.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p>I&#8217;d love to get further brainstorming in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://programmerjoe.com/2008/03/26/facebook-week-day-5/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
