<?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>Doolwind&#039;s Game Coding Blog &#187; Uncategorized</title>
	<atom:link href="http://www.doolwind.com/blog/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.doolwind.com/blog</link>
	<description>Pragmatic Thoughts On Game Development</description>
	<lastBuildDate>Sun, 08 Jan 2012 08:15:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Test Driven Game Development Experiences</title>
		<link>http://www.doolwind.com/blog/test-driven-game-development-experiences/</link>
		<comments>http://www.doolwind.com/blog/test-driven-game-development-experiences/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 10:32:08 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=568</guid>
		<description><![CDATA[We&#8217;ve just wrapped up our first game that employs full Test Driven Development (TDD) practices. I&#8217;ll share my experiences, good and bad, now that we&#8217;re completely finished the first version of the project. I&#8217;ve spoken previously about Test Driven Game Development (TDGD) but a lot of that was theoretical so today I&#8217;d like to give some more concrete [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/blog/TestDrivenGameDevelopment.jpg"><img class="alignright" title="Test Driven Game Development" src="http://www.doolwind.com/images/blog/TestDrivenGameDevelopment.jpg" alt="" width="289" height="109" /></a>We&#8217;ve just wrapped up our first game that employs full Test Driven Development (TDD) practices. I&#8217;ll share my experiences, good and bad, now that we&#8217;re completely finished the first version of the project. I&#8217;ve spoken <a href="http://www.doolwind.com/blog/test-driven-game-development/">previously</a> about Test Driven Game Development (TDGD) but a lot of that was theoretical so today I&#8217;d like to give some more concrete thoughts on how TDGD helped with the creation of <a href="http://www.battlegroupgame.com">Battle Group</a>.</p>
<p><span id="more-568"></span></p>
<p><strong>Test Driven Game Development?</strong></p>
<p>The idea behind Test Driven Game Development is writing automated Unit Tests to confirm the correctness of your production code. Unit tests can be written to test all areas of a game from gameplay to rendering engines and anything in between. As I stated previously, there are three main goals from TDGD:</p>
<ol>
<li><strong>Find out when code breaks</strong>. If you make a code change that breaks something that was previously working (and is tested) you will know about it immediately.</li>
<li><strong>Forces modular code</strong>.  For code to be &#8220;unit testable&#8221; it must be modular with clear boundaries and &#8220;separation of concerns&#8221; between various systems.</li>
<li><strong>Allows you to “find the fun”</strong>.  Once you’re guaranteed that certain requirements are met, you’re free to experiment with gameplay to make it more enjoyable without breaking the game.  This also extends to giving designers more freedom when scripting.  Encouraging experimentation by designers without programmer intervention is invaluable.</li>
</ol>
<p><strong>How We Did It</strong></p>
<p>In general the development of new gameplay features followed these steps:</p>
<ol>
<li>Design the unit test for the new feature, testing the outward interface seen by the rest of the system</li>
<li>Implement the feature as quickly as possible, cutting corners as needed so the feature is playable in the quickest time possible</li>
<li>The team tests the feature, makes sure it&#8217;s working and fun and we make iterative improvements to it</li>
<li>Once happy with the feature I then refactor the code to clean up any shortcuts and make it the optimal solution</li>
</ol>
<p>This system worked extremely well and lead to a high development velocity both for the creation of new features and maintenance/update of existing features.</p>
<p><strong>Gameplay Testing</strong></p>
<p>All of the unit tests created for Battle Group were testing gameplay code as this is the most complex area of our game. Unity does the heavy lifting for most of the technology based systems (eg rendering, input) freeing us to have ~90% of the code in the project related directly to gameplay. The main motivation for this testing was to allow us to rapidly develop features and experiment with existing code without breaking existing systems. For the most part, this motivation was met throughout the lifetime of the project. While the gameplay stayed fairly constant throughout the 4 month development cycle, there were a couple of major changes we made and the unit tests were invaluable during these changes.</p>
<p>Battle Group started out (as most games do) as a game design document. We then prototyped the game, tweaked the design document and began working on the alpha build. This design document was translated into unit tests. While I (the programmer) was responsible for this, I plan in the future for our game designer to begin to take over the role of writing gameplay specific unit tests. As the project progresses, the artifacts of its design move from a static design document/wiki to an active, maintained set of unit tests. As design changes requests came in from the team I would focus my time on updating the unit tests to match the new design.</p>
<p><strong>What About Prototyping?</strong></p>
<p>We did not create these unit tests during the prototyping stage (about a week&#8217;s work) as this was a throwaway prototype and unit tests would have slowed us down without much real value. One of the negatives related to TDGD is the reduction in velocity while making fairly major changes to the codebase. This is often the case while prototyping and therefore I strongly urge against TDGD during the prototyping phase of your development, particularly throw away prototypes.</p>
<p>The prototyping phase is a great opportunity to start fleshing out the design of your testing suite however. As you work on the core features of the game you can see where the bulk of the coding effort is likely to go and also which areas are most susceptible to change throughout the life of the project. A good example of this was the blast radius and velocity of the weapons used in Battle Group. Small changes to this had a major impact on the feel, flow and accessibility of the game. For this reason I made sure that this was both easy to change and robust in the changes I made. As velocities increased the distance traveled per frame became quite large. Coupled with this was the low physics frame rate on older mobile devices and it was crucial that we had repeatable behavior at varying frame rates and data values. As I had already planned to implement TDGD post-prototype I was mindful of these areas of code and made a mental note to test these areas first and thoroughly.</p>
<p><strong>Code Coverage</strong></p>
<p><strong></strong>Whenever I discuss TDD with someone in or outside the game development industry, there&#8217;s often a heated discussion about code coverage. Code coverage is the percentage of production code that is &#8220;covered&#8221; by unit tests. There are purists that claim you&#8217;re not really doing true TDD without 100% code coverage and there are others who say some arbitrary percentage is enough. My stance is that the game/code itself should determine the code coverage you should aim for. Sometimes certain tests are causing more trouble than good (eg changing a few lines of code requires 10 times more lines of unit testing code to be updated). Either the tests need a rethink in the way they are implemented or it&#8217;s best just to remove them.</p>
<p>I didn&#8217;t &#8220;watch the clock&#8221; when it came to code coverage on Battle Group. My main focus was to get the best value from my limited resources (as the sole programmer on the team). During prototyping and throughout development I noted which areas of code were critical or breaking often and made sure to get the highest code coverage possible on them. There is certainly a point of diminishing returns when it comes to code coverage which differs between projects and between systems within a project.</p>
<p><strong>Test First Development</strong></p>
<p>I opted for a &#8220;Test First&#8221; development style where I would create my unit test and then implement the feature being tested. This allowed me to design exactly how I thought the code should be used rather than writing the solution to the problem. I found this was invaluable to keeping a clear separation of concerns and made sure everything was as modular as possible. By thinking about the outward interface of the functionality first, it helped me get in a mindset of creating exactly what I wanted. When solving an interesting and complex problem it&#8217;s easy to lose site of the original reason for the code&#8217;s existence. Test first development focuses your efforts where they are needed most, on defining and then implementing the functionality of a piece of code as seen by the rest of the system.</p>
<p><strong>NCrunch</strong></p>
<p>One tool that was released during the development of Battle Group was <a href="http://www.ncrunch.net/">NCrunch</a>. This tool will completely change the way you unit test. I won&#8217;t go into too much detail as it&#8217;s a little off topic, but I strongly recommend you grab it and experiment with how it works. The whole system can be summed up in two points:</p>
<ol>
<li>Unit test code has real-time inline green/red lights to indicate whether it is currently passing. Tests are continually running in the background to keep this constantly up to date</li>
<li>Production code has a similar green/red light system showing how many unit tests covering this code pass and fail (or if there are no tests at all)</li>
</ol>
<div><strong>Conclusion</strong></div>
<div>Overall I was really happy with the way our TDGD turned out on Battle Group and I definitely plan on adopting it again for future projects. My development velocity increased overall while being slightly slower at the point of implementation of a new feature.</div>
<div>Have you used TDD on game projects? Do you have any experiences you can share? Or do you think this is all a load of crap and I should get off my soapbox and get back to coding the game instead of the unit tests?</div>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/test-driven-game-development-experiences/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Where Is Virtual Reality?</title>
		<link>http://www.doolwind.com/blog/where-is-virtual-reality/</link>
		<comments>http://www.doolwind.com/blog/where-is-virtual-reality/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 23:51:35 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Virtual Reality]]></category>
		<category><![CDATA[VR]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=392</guid>
		<description><![CDATA[Have you ever used Virtual Reality?  Whether the big cumbersome headsets in the early 90’s or the sleeker more refined technology of today, chances are you’ve encountered virtual reality in your travels.  It was touted as the “next big thing” in computers and was expected to be in every home but it never eventuated.  Today [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/blog/virtual_reality.jpg"><img class="alignright" title="Virtual Reality" src="http://www.doolwind.com/images/blog/virtual_reality.jpg" alt="" width="168" height="126" /></a>Have you ever used Virtual Reality?  Whether the big cumbersome headsets in the early 90’s or the sleeker more refined technology of today, chances are you’ve encountered virtual reality in your travels.  It was touted as the “next big thing” in computers and was expected to be in every home but it never eventuated.  Today I’m going to discuss what virtual reality means for gamers and game developers.</p>
<p><span id="more-392"></span></p>
<p><strong>Introduction</strong></p>
<p>I first used virtual reality in 1995 while visiting SegaWorld in London.  They had a ride you sat in, donned a virtual reality headset and furiously pressed buttons to win or lose a battle (along with 20 or so other people).  I was so excited to finally get to use virtual reality that I took a wrong turn getting on the ride and fell off into the hydraulics.  I’m not sure if it was the amazing 3D, head tracking or loss of blood from my injuries but I had an awakening experience.  I knew that in the future, we’d all be playing games using virtual reality, and the world would be a better place.  Unfortunately, this never happened, but is it too late?</p>
<p><strong>Should it be the “Next Big Thing”?</strong></p>
<p>VR has a number of key features that make it the obvious path for game development in the future:</p>
<ul>
<li><strong>Full 3D Immersion</strong> – rather      than looking at the game world sitting on a monitor that’s sitting in your      room you are actually in the world.       Even 2D games take up your entire peripheral vision making them      immersive.</li>
<li><strong>True 3D (for free)</strong> –      Having two images allows a true stereoscopic display of the 3D world</li>
<li><strong>Head tracking</strong> – Most VR      headsets have built in head tracking which adds to the immersion.  Now you can look at the pre-pubescent      kid in counter strike before he headshots you.</li>
<li><strong>Look cool</strong> – Why wear nerdy      3D glasses when you can look like this:</li>
</ul>
<p style="text-align: center;"><a href="http://www.doolwind.com/images/blog/virtual_reality_helmet.jpg"><img class="aligncenter" title="Virtual Reality Helmet" src="http://www.doolwind.com/images/blog/virtual_reality_helmet.jpg" alt="" width="281" height="201" /></a></p>
<p>It’s best suited to the following games:</p>
<ul>
<li>Flight Sims</li>
<li>First-Person Shooters</li>
<li>Racing Games</li>
<li>Sport Games</li>
</ul>
<p>VR also opens up the possibility of relaxation and full emersion games that aren’t possible with regular monitors.  This might sound a little hippie like, but I can see some great opportunities in games for children in hospitals and rehabilitation from injuries.</p>
<p>In my eyes, these benefits make it the ideal candidate for game development in the future.  The current bout of <a href="http://edition.cnn.com/2010/SHOWBIZ/Movies/01/11/avatar.movie.blues/">depression</a> leading from the immersion experienced in the “Avatar” movie is proof that even 3D movies are enough to have a greater impact on people (and that some people are fairly weak).</p>
<p>3D movies bring up an interesting stepping stone towards VR.  Monitors are now available with high enough refresh rates that 3D glasses can be used to present a 3D image on the screen at 50Hz.  This might be an easier sell now that 3D movies are becoming more mainstream.  I find it interesting that some people are happy to accept 3D movies as the “next big thing” while dismissing virtual reality as a thing of the past, despite the fact it has much greater qualities.<strong></strong></p>
<p><strong>So why hasn’t Virtual Reality taken off?</strong></p>
<p>There are a few main reasons why Virtual Reality is still not in the mainstream of gaming:</p>
<ul>
<li><strong>Price</strong> – With the <a href="https://e-store.emagin.com/miva/merchant.mvc?Screen=PROD&amp;Store_Code=E&amp;Product_Code=Z3V&amp;Category_Code=">average      headset</a> coming in at $1,500USD, this is a lot for an 800&#215;600      display by anyone’s standards.       While it is comparable to some larger end monitors it’s still too      high for the average gamer.  If the      price of headsets can come down below $750USD and resolutions can be at      least 1024&#215;768 I expect a much larger uptake.  That’s certainly the sweet spot for      price and resolution for me.</li>
<li><strong>Vertigo/Eye Strain</strong> – Some people      have issues focussing on the screens in the virtual reality headset and      others suffer from eye strain.  Most      people should get used to this over time however it might simply mean some      people never adopt the technology</li>
<li><strong>Lack of interest</strong> – People just      got bored with the idea.  For so      long we kept hearing about how VR was going to change the world and it      never did.  A great example of this is the fact that searches for “Virtual Reality” are <a href="http://www.google.com/insights/search/#q=virtual%20reality&amp;cmpt=q">down 80%</a> since 2004!</li>
</ul>
<p><strong>Any other crazy thoughts?</strong></p>
<p>What would a blog post from me be without a reference to Microsoft?  The ultimate way for virtual reality to take off is for Microsoft to develop the headsets.  They make awesome peripherals, have the money to back it and have the console to go along with it.  Having both Xbox and PC support virtual reality would be better for gamers, game developers and give Microsoft more of an edge over the competition.</p>
<p><strong>What do you think?</strong></p>
<p>Have you used Virtual Reality before?  Did you like it?  How much would you be willing to pay and what resolution do you think should be the minimum supported?  Many people I’ve spoken to about Virtual Reality think it’s dead, what do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/where-is-virtual-reality/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Building A Strong Indie Game Development Team</title>
		<link>http://www.doolwind.com/blog/building-a-strong-indie-game-development-team/</link>
		<comments>http://www.doolwind.com/blog/building-a-strong-indie-game-development-team/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 10:06:51 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Indie]]></category>
		<category><![CDATA[Indie Game Development]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=286</guid>
		<description><![CDATA[Are you looking to set up an independent game development team?  You’ll need a team that covers all areas of game development including programming, art, design, sound, project management and business.  You need to pick the right people that can work together for months or even years.  Below are some tips for putting the right [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/blog/idsoftware.jpg"><img class="alignright" title="Id Software" src="http://www.doolwind.com/images/blog/idsoftware.jpg" alt="" width="195" height="116" /></a>Are you looking to set up an independent game development team?  You’ll need a team that covers all areas of game development including programming, art, design, sound, project management and business.  You need to pick the right people that can work together for months or even years.  Below are some tips for putting the right team together to increase your chances of success.</p>
<p><span id="more-286"></span></p>
<p><strong><span style="text-decoration: underline;">Roles</span></strong><strong></strong></p>
<p>Game development involves a number of common roles as well as some overlooked ones.  Individual team members can handle multiple roles on smaller teams and some roles can be shared by more than one person.</p>
<p><strong>Programming</strong></p>
<p>Programming on an independent team is about more than just game development.  The programming department will be responsible for tools and website development.  They will also have to handle the creation of the installer.</p>
<p><strong>Design</strong></p>
<p>Design is one of the great areas it pays to share ownership.  The designer has the final say on decisions and is the go to if people are unsure.  They also maintain the game design document to unify the team.  A wiki is a great way to collaborate on the design document.</p>
<p><strong>Art</strong></p>
<p>The art department is responsible for not just game art but also creation of marketing material and web design.  Artists need to work closely with the programmers to make sure technical requirements are met and to drive the requirements for tools.  They also need to collaborate with design to make sure the look and feel of the game is met.</p>
<p><strong>Sound</strong></p>
<p>Often overlooked, sound is vitally important to give atmosphere to the game.  Sound should not be left to the last minute as it will feel disconnected and won’t add as much to the game.  The programmers should build the infrastructure for the sound early to allow experimentation.</p>
<p><strong>Project Management</strong></p>
<p>Project managers are responsible for the velocity of the team (how much they are achieving each milestone).  They need to be aware of when team members are falling behind and make sure everyone is performing their duties.  Visibility is the key to making sure everyone on the team is aware of their current goals and deadlines.</p>
<p><strong>QA</strong></p>
<p>Without QA the game will be unplayable.  QA is another area that is good to share across the whole team.  The team should be playing the game constantly and fixing bugs as they go.  It is preferable to have non-programmers doing QA as it is easy for them to overlook issues in their own code.  Sharing the games with friends and having a beta-testing period is a great way to share the load.</p>
<p><strong>Business</strong></p>
<p>Without someone managing the business side of game development, you may as well be making the game just for fun.  One team member needs to be responsible for making sure the game will be profitable.  The entire team needs to be mindful of the fact they are making a game for profit, not just fun.  Business includes marketing, sales, business plan writing and possibly seeking funding.  The team needs a business plan covering:</p>
<ul>
<li><strong>Marketing Strategy</strong> – How will people find out about your game?  How will you sell the game and how much will it cost?</li>
<li><strong>Cash flow Summary</strong> – What are the expenses of the team and how will you afford to keep the business running?</li>
<li><strong>Economic Assessment</strong> – How much do you expect to make from the game, based on similar games</li>
</ul>
<p><strong><span style="text-decoration: underline;">Co-Location</span></strong></p>
<p>If possible, the entire team should work together in the one building.  This lets the team quickly test ideas, keep each other motivated, play-test the game together and watch each other play.  Renting an office is expensive and it’s important to keep costs as low as possible.  Get creative, work together on laptops in a coffee shop, move in together, or work in each other garages or basements.</p>
<p><strong><span style="text-decoration: underline;">Workloads</span></strong></p>
<p>Depending on the situation each team member may have differing hours they can devote to the project.  Each team member’s level of commitment should be discussed and decided up front.  The closer these levels can be the better.  Having a large imbalance in working hours can lead to resentment and hostility between team members.  Some ways of evening out imbalances include:</p>
<ul>
<li>Larger share/profit ownership</li>
<li>More creative control over project</li>
</ul>
<p><strong><span style="text-decoration: underline;">Personalities</span></strong></p>
<p><span class="pullquote pqRight">Personality trumps ability on indie teams</span>.  As with most high-intelligence professions, game developers often have strong personalities.  While these personalities might be annoying at a large game studio, it can be the death of a small indie team.  Each developer needs to put the game and the team ahead of their own agenda.  When possible a team should be formed with people that have worked together previously.</p>
<p><strong><span style="text-decoration: underline;">Conflict</span></strong></p>
<p>Every team has conflict.  Conflict can be minimized having a unified goal.  The best option is to have someone in a position of power to settle disputes.  This person must be trusted by everyone not to push their own agenda.  Some solutions to solving conflict in your team:</p>
<ul>
<li><strong>Talk it through</strong> – Open, continuous conversation is the best way to solve problems</li>
<li><strong>Compromise</strong> – The larger the team, the harder it is to keep everyone happy.  Compromise is a necessity.  Ultimately the team is in it together and need to compromise to solve disputes.</li>
<li><strong>Give everyone a voice – </strong>Voting is a great way to solve disputes.  The team must agree that a voting mechanism will be used and respected up front.<strong></strong></li>
</ul>
<p><strong><span style="text-decoration: underline;">Outsourcing vs In-house</span></strong></p>
<p>Many Indie companies have little money, necessitating all work is done in-house.  Outsourcing gives a reliable quality for a fixed price.  Some areas worth outsourcing include:</p>
<ul>
<li><strong>Game Engines</strong> – shared by the whole team, they can save a lot of development time</li>
<li><strong>Sound Libraries</strong> – can be used as building blocks to create sounds for the game</li>
<li><strong>Art</strong> – Art is often the critical path in development.  Outsourcing may save time and money</li>
</ul>
<p><strong><span style="text-decoration: underline;">Conclusion</span></strong></p>
<p>This should set you up on the path to creating a solid team for your next indie game project.  What are your experiences with building a team?  Where have you succeeded and failed? Do you have any recommendations for others who are building their team?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/building-a-strong-indie-game-development-team/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Would Steam Points Work?</title>
		<link>http://www.doolwind.com/blog/would-steam-points-work/</link>
		<comments>http://www.doolwind.com/blog/would-steam-points-work/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 02:05:12 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Modern Warfare 2]]></category>
		<category><![CDATA[osmos]]></category>
		<category><![CDATA[steam]]></category>
		<category><![CDATA[steam points]]></category>
		<category><![CDATA[Valve]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=254</guid>
		<description><![CDATA[Steam&#8217;s having great success at the moment, with 40% market share making it the #1 platform for online game distribution.  They&#8217;ve expanded from in-house games to publishing titles of all shapes and sizes (from Modern Warfare 2 to Osmos).  I&#8217;ve always thought they were missing something, Steam Points.  Steam Points would be to Steam as Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/blog/steampoints.jpg"><img class="alignright" title="Steam Points" src="http://www.doolwind.com/images/blog/steampoints.jpg" alt="" width="251" height="82" /></a>Steam&#8217;s having great success at the moment, with 40% market share making it the #1 platform for online game distribution.  They&#8217;ve expanded from in-house games to publishing titles of all shapes and sizes (from <a href="http://modernwarfare2.infinityward.com/games.php">Modern Warfare 2</a> to <a href="http://www.hemispheregames.com/osmos/">Osmos</a>).  I&#8217;ve always thought they were missing something, Steam Points.  Steam Points would be to Steam as Microsoft Points are to Xbox.  This entry discusses why this would be a valuable addition for Valve, developers, gamers and even retailers.</p>
<p><span id="more-254"></span></p>
<p><strong>Features</strong></p>
<p>Steam Points could be used to buy games, Downloadable Content and even in-game assets (through micro-transactions).  They open up the option of gift cards rather than buying a specific game for someone.  This would be perfect leading up to Christmas as non-game savvy friends and family could buy gift cards rather than guessing and thinking &#8220;Diaper Dash&#8221; is something you&#8217;d enjoy.</p>
<p>All payment would still go through PayPal keeping the security burden on them.  Keeping payment with PayPal also stops Valve from watering down their focus by becoming a merchant facility.  It will simply give gamers more options with how they buy their games.</p>
<p><strong>Advantages for Valve</strong></p>
<ul>
<li>Create new revenue sources &#8211; gift cards and      micro-transactions</li>
<li>Encourage micro-transactions within games,      increasing revenue</li>
<li>Bringing more developers and gamers to their      platform</li>
<li>Another differentiator to their competitors      (not that they really need one)</li>
</ul>
<p><strong>Advantages for Developers</strong></p>
<ul>
<li>A new revenue source</li>
<li>Revenue during the life-time of the game rather      than only at the point of sale</li>
<li>Reduce barriers for customers as the initial      cost of the game can be lower</li>
<li>Micro-transactions allow more styles of games      to be developed</li>
</ul>
<p><strong>Advantages for Gamers</strong></p>
<ul>
<li>Using a trust company for purchasing      points.  Valve isn&#8217;t going bust any      time soon</li>
<li>Initial cost of games will be lower, increasing the      number of games a player can afford</li>
<li>More options for how players want to play (pay      for convenience)</li>
<li>Can purchase points at a retailer removing the      need for a credit card</li>
<li>Unifies the currency leading to less confusion for the international market</li>
</ul>
<p><strong>Advantages for Retailers</strong></p>
<ul>
<li>Gives them a simple avenue into online      distribution</li>
<li>Can sell cards in their shops and make a cut of      online sales</li>
<li>Game retailers may resist however it&#8217;s similar      to &#8220;iTunes credit&#8221; which most music shops now sell</li>
</ul>
<p><strong> Conclusion</strong></p>
<p>Whether you love or hate Steam, it&#8217;s here to stay.  I see a lot of great opportunity for Valve in the future and Steam Points are a great way to begin their move forward.  Some people I&#8217;ve discussed this with are against the idea as they already see Valve as having a monopoly over online distribution.  What do you think?  Would you be happy to start spending Steam Points to buy your games and make micro-transaction?  Should other platforms like Impulse use this system to differentiate themselves?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/would-steam-points-work/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>IWNET: Facts, Verdict and Solution</title>
		<link>http://www.doolwind.com/blog/iwnet-facts-verdict-and-solution/</link>
		<comments>http://www.doolwind.com/blog/iwnet-facts-verdict-and-solution/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 21:36:45 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Infinity Ward]]></category>
		<category><![CDATA[Modern Warfare 2]]></category>
		<category><![CDATA[Multiplayer]]></category>
		<category><![CDATA[Petition]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=233</guid>
		<description><![CDATA[Infinity Ward (IW), creator of the Call of Duty/Modern Warfare series are about to release Modern Warfare 2 (MW2).  By now, you would have heard about their completely new multiplayer setup and the 160K+ petition for dedicated servers.  In a podcast on bashandslash.com they interviewed Rob Bowling the community manager at Infinity Ward.  I&#8217;ve gone through [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.doolwind.com/images/blog/modernwarfare2.jpg"><img class="alignright" title="Modern Warfare 2" src="http://www.doolwind.com/images/blog/modernwarfare2.jpg" alt="" width="197" height="111" /></a></strong><a href="http://www.infinityward.com">Infinity Ward</a> (IW), creator of the Call of Duty/Modern Warfare series are about to release <a href="http://modernwarfare2.infinityward.com">Modern Warfare 2</a> (MW2).  By now, you would have heard about their completely new multiplayer setup and the 160K+ <a href="http://www.petitiononline.com/dedis4mw/petition.html">petition</a> for dedicated servers.  In a <a href="http://www.ustream.tv/recorded/2369799">podcast</a> on bashandslash.com they interviewed Rob Bowling the community manager at Infinity Ward.  I&#8217;ve gone through their chat with a fine toothcomb and picked out the facts.  If you don&#8217;t have time to listen to the chat (over 2 hours) then the following notes should give you the facts as they currently stand.  I&#8217;ll then give my opinion on this decision along with a solution.</p>
<p><span id="more-233"></span></p>
<p><strong>Facts</strong></p>
<ul>
<li>IWNET &#8211; matchmaking for PC      users just like consoles and L4D</li>
<li>Helps you play against      people your own rank</li>
<li>Will replace in-game      browser &#8211; no other option</li>
<li>No dedicated server or      server list</li>
<li>Rely entirely on IWNet for      matchmaking and finding games</li>
<li>Still has private match &#8211;      customize game and invite people to server</li>
<li>Can&#8217;t put it up on      dedicated servers you rent</li>
<li>IWNET currently focussed      on matchmaking only &#8211; big plans for its future</li>
<li>Games running off users PC      &#8211; along with consumer grade internet</li>
<li>Everything will go through      IWNET</li>
<li>Matchmaking NOT through      steam</li>
<li>IWNET runs in conjunction      with steam</li>
<li>No more PunkBuster, using      VAC for anti-cheating</li>
<li>IW want to improve Multiplayer game      on PC and make it easier for everyone</li>
<li>Clan matches will use      private games</li>
<li>Complete control over who      can come in, including kicking and banning</li>
<li>Changes how IW is able to      update and support the PC version</li>
<li>Allows more control and      structure</li>
<li>Good from development      perspective</li>
<li>Can change all features of      game without having to find server or run a server</li>
<li>Helps reduce piracy, but      this was not a driving force for creating IWNET</li>
<li>All made in-house, working      on it for a while</li>
<li>Will listen to feedback      and make changes in the future</li>
</ul>
<p><strong>Verdict</strong></p>
<p>This is great for casual gamers and not so great for hardcore gamers.  The biggest sticking point for most people is the lack of a dedicated server.  There are two major issues from this:</p>
<ol>
<li><strong>Less Customization.</strong> Clan      matches, and many players, love their customizations.  Without dedicated servers, the extent to      which gamers and server admins can mod/tweak the game is greatly reduced.</li>
<li><strong>Lower Performance.</strong> Dedicated      servers have a lot of CPU power, and more importantly, high throughput and      low latency internet connections.  Consumer      grade internet connections (particularly here in Australia) can&#8217;t compete      with the connections of most dedicated servers.  This will result in a lower user      experience and limits on player counts.</li>
</ol>
<p>The biggest boon for casual gamers is the ease in finding a game and playing against players your their  rank.  This is great for &#8220;first-timers&#8221;.  It&#8217;s easier for them to join a game and they should be playing against other low ranked gamers.</p>
<p>This is the core reason I think IW have invested so much time and money into IWNET.  Multiplayer games are by their very nature viral.  If a gamer purchases MW2 and sits through the singleplayer game, there&#8217;s a chance they will tell their friends what they are playing.  However if that same gamer is converted to a mulitplayer gamer, they will actively encourage their friends to buy the game and join them.  The more gamers IW can convert to multiplayer, the larger their sales.</p>
<p><strong>Solution</strong></p>
<p>The podcast was fairly light on technical details, however I saw a solution that would keep the 160K+ petition signers happy, without ruining the player experience for first-timers.  Rob mentioned a number of times that clan matches, and &#8220;custom matches&#8221; can be set up through private games.  The simple solution is to allow these private matches to point themselves at a dedicated server.  This would likely take some further engineering time, however it would be a fairly small investment compared to the mammoth task of implementing IWNET.  This would allow full customization on the server side and would be an &#8220;opt-in&#8221; situation.  This keeps the user experience clean, while allowing full customization for hardcore players.</p>
<p><strong>Conclusion</strong></p>
<p>This is the second large petition in the games industry this year.  Have you signed either the IWNET or L4D2 petition?  What are your thoughts on IWNET and where do you see PC multiplayer gaming moving in the future?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/iwnet-facts-verdict-and-solution/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>What Platform Should You Develop Your Next Game For?</title>
		<link>http://www.doolwind.com/blog/what-platform-should-you-develop-your-next-game-for/</link>
		<comments>http://www.doolwind.com/blog/what-platform-should-you-develop-your-next-game-for/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 22:16:00 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Valve]]></category>
		<category><![CDATA[Xbox 360]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=225</guid>
		<description><![CDATA[I&#8217;ve been talking with a number of Indie game developer friends about what platform they should develop their next game for.  There are a number of great platforms available to game developers and this choice of platform is critical to the success of your game.  Many people have a game idea, but aren&#8217;t sure what [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/blog/platforms.jpg"><img class="alignright" title="Game Platforms" src="http://www.doolwind.com/images/blog/platforms.jpg" alt="" width="114" height="111" /></a>I&#8217;ve been talking with a number of Indie game developer friends about what platform they should develop their next game for.  There are a number of great platforms available to game developers and this choice of platform is critical to the success of your game.  Many people have a game idea, but aren&#8217;t sure what platform is best for them, this article will help you in making that decision.</p>
<p><span id="more-225"></span></p>
<p><strong>So, Which Platform!?</strong></p>
<p>The short answer is, it depends.  There&#8217;s no silver bullet when it comes to platforms.  Each has its strengths and weaknesses and the choice depends on the game you are creating.  I have a set of questions below, move the sliders to represent your situation and see the recommendation for platforms.  The further to the right the platform, the better it fits with your situation.  If there&#8217;s a platform I&#8217;m missing you&#8217;d like added, please add a comment.</p>
<p><iframe src="http://www.doolwind.com/blog/platform/platform.html" width="100%" height="850" frameborder="0"></p>
<p>Your browser does not support iframes.</p>
<p></iframe></p>
<p><strong>The Platforms</strong></p>
<p>Now that you have your recommended platforms, I&#8217;ll give some more info on my thoughts on developer for each platform.</p>
<p><strong>iPhone</strong></p>
<p>The iPhone market is saturated with games and is getting worse every month.  It seems nearly every indie game developer I know is making an iPhone game.  My biggest recommendation is to make something small that stands out.  The sales are very top heavy which means you&#8217;ll either make nothing or massive sales.  The biggest issue is that the only real way to get in front of people is to be in the top 50 applications which is extremely difficult due to the market saturation.</p>
<p>The other gotcha is the requirement for both a Mac and learning Objective-C.  There are a number of great engines out there (eg <a href="http://unity3d.com/">Unity</a>) which I&#8217;d recommend using to speed up development.</p>
<p><strong>Console</strong></p>
<p>Unless you have funding, full version console games are almost impossible for an Indie to develop for.  It&#8217;s really hard to get your game accepted by a console manufacturer (Microsoft, Sony, etc) and the certification process can be a nightmare.</p>
<p><strong>PC</strong></p>
<p>PC development is the most open and an easy to break into.  There are many distribution methods (Steam, Impulse, self-publishing) to suit your games needs.  Piracy is one of the biggest threats to your game and building a game that takes piracy into account is a good step forward.  Something as simple as requiring users to login to a central server can help reduce piracy.</p>
<p><strong>Web-Based</strong></p>
<p>Web based games are the best place to get started, particularly if you just want to get a game &#8220;under your belt&#8221;.  It&#8217;s a great way of reaching a wide audience quickly, however don&#8217;t expect too much in either money or respect.  Web-based games are one of the hardest ways to make money from games (at this stage) and tends to have one of the most immature communities of all platforms.  <a href="http://lostgarden.com/2009/07/flash-love-letter-2009-part-1.html">Lost Garden</a> has a great set of articles that discusses generating real money for web-based (primarily flash) games.</p>
<p><strong>XBox Live Arcade</strong></p>
<p>XBLA games are like a cut-down version of a console release.  It&#8217;s much easier to get accepted and get through certification.  There are also less rewards/potential for your game compared to a full version console game.  As the name suggests, XBLA is perfect for smaller &#8220;arcade&#8221; style games.</p>
<p><strong>Multiple Platforms</strong></p>
<p>One recommendation I would make is to start small.  Look at developing a smaller version (or prototype) of your game on one of the low-end platforms (flash or iPhone) to gauge the response to your game.  If it&#8217;s successful, then put the extra time and money into developing a larger version of your game on a higher-end platform.  John Carmack has stated his belief in developing for low-end platforms first.  This helps you focus on the core fun of a game, rather than flashy graphics or other &#8220;next-gen&#8221; features that don&#8217;t necessarily make the game better.</p>
<p><strong>Conclusion</strong></p>
<p>You should now have a better idea of what platform to develop your next game for.  If there&#8217;s a platform I haven&#8217;t discussed that you &#8216;d like to hear about, leave a comment and I&#8217;ll add it to the list.  The important thing to remember is that no platform is perfect.  They each have their own strengths and weaknesses and it&#8217;s critical that you chose the platform that best fits with your game.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/what-platform-should-you-develop-your-next-game-for/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Unified Game Development Scripting Language</title>
		<link>http://www.doolwind.com/blog/unified-game-development-scripting-language/</link>
		<comments>http://www.doolwind.com/blog/unified-game-development-scripting-language/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 23:55:13 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Game Engine]]></category>
		<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Scripting Language]]></category>
		<category><![CDATA[Unreal]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=194</guid>
		<description><![CDATA[What is the best scripting language for game development?  Every different game engine has its own scripting language making for a difficult choice.  Game programmers have a unified language in C++ however game designers are left with whatever language their engine supports.  I propose a unified scripting language that all engines/platforms can share. Problem When [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/blog/scriptinglanguages.jpg"><img class="alignright" title="Scripting Languages" src="http://www.doolwind.com/images/blog/scriptinglanguages.jpg" alt="" width="86" height="75" /></a>What is the best scripting language for game development?  Every different game engine has its own scripting language making for a difficult choice.  Game programmers have a unified language in C++ however game designers are left with whatever language their engine supports.  I propose a unified scripting language that all engines/platforms can share.</p>
<p><span id="more-194"></span></p>
<p><strong>Problem</strong></p>
<p>When you chose an engine or platform to develop for, you’re locking yourself into its scripting language.  This has the following core problems:</p>
<ul>
<li><strong>Difficult cross platform development</strong>.  Cross platform development is hard      enough without the worry of porting gameplay code.  Gameplay code should not be platform      specific, and therefore there is no reason to have a different language      per platform/engine.</li>
<li><strong>Immature languages</strong>.       With each company re-inventing the wheel when they implement a new      language designers are left with immature languages.</li>
<li><strong>Too many languages</strong>.       Designers must learn a new language whenever they develop for a new      engine/platform.  This increases      development time and reduces fluency in a language.  A designer cannot be free to fully      express themselves until they are fluent in the language they describe      their gameplay in.</li>
</ul>
<p><strong>Solution</strong></p>
<p>The solution to these problems is to have a unified scripting language shared by all engines/platforms.  Written specifically for game development it would take the best of current scripting languages.  The games industry as a whole would “own” the language allowing it to evolve with the needs of the industry as each new generation of hardware is released.</p>
<p><strong>Advantages</strong></p>
<p>There are a number of key advantages for moving towards a unified scripting language.</p>
<ul>
<li><strong>Single gameplay codebase</strong>.       Gameplay doesn’t change dramatically between similar platforms      (e.g. 360 and PS3 or flash and iPhone).       A unified language would allow a single codebase to kept across      multiple platforms helping with porting and maintenance.</li>
<li><strong>Specific to game development needs</strong>.  A language created specifically for game      development could cater to the needs of the industry.</li>
<li><strong>Single language for designers to use.</strong> Small nuances in existing languages can      create major issues for non-programmer designers.  A single unified language reduces these      problems and makes the learning path for students clearer.</li>
<li><strong>Less Wheel Re-Invention</strong>.       An open-source unified scripting language would allow anyone to      submit changes to the language to improve it, rather than re-inventing a      whole new language.</li>
<li><strong>Unified Toolset</strong>.  A      unified set of tools could sit on top of a unified scripting language.<strong></strong></li>
</ul>
<p><strong>Genre Specific</strong></p>
<p>The core language will hold the basic building blocks for all games.  In the future, small libraries can be built by studios or the community for each specific genre.  For example a library of functions common to most FPS or RTS games could be created and shared between developers.   A unified scripting language makes this sharing possible and encourages people to develop well thought out, robust libraries they can reuse from engine to engine.  It also serves to soften the blow for designers when changing engines as their common set of functions will move across with them.</p>
<p><strong>How</strong></p>
<p>There are two main options for the creation of a new unified scripting language:</p>
<ul>
<li><strong>Large studio forks their current language</strong>.  For example Epic could open up Unreal      Script and give out the source code for its implementation (let&#8217;s call it      OpenUnrealScript).</li>
<li><strong>Community Driven</strong>.  A      simple codeplex/google code project with a couple of leaders and a team of      developers would allow for rapid development, while meeting the needs of      multiple teams.  Early adopters      would drive the initial feature-set and help to drive its development.<strong></strong></li>
</ul>
<p><strong>Conclusion</strong></p>
<p>My dream is to see the next generation of consoles and other platforms (PC, iPhone, Flash) all supporting a unified language.  I&#8217;m interested in people&#8217;s thoughts on this idea and candidates for which language to use.  It&#8217;s less about language features and just agreeing on a core language everyone can use to develop games and bring all developers onto the same page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/unified-game-development-scripting-language/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

