<?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; Personal</title>
	<atom:link href="http://www.doolwind.com/blog/category/personal/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>Working From Home As An Indie</title>
		<link>http://www.doolwind.com/blog/working-from-home-as-an-indie/</link>
		<comments>http://www.doolwind.com/blog/working-from-home-as-an-indie/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 00:55:15 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=537</guid>
		<description><![CDATA[Now that I’m officially a full-time indie game developer, for the first time in my life I am working from home full-time on games. Many of my game developer friends have also started working full-time from home in the past few months, partly because of all the game studios shutting down in our city recently. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/homer_workingfromhome.jpg"><img class="alignright" src="http://www.doolwind.com/images/homer_workingfromhome.jpg" alt="" width="192" height="144" /></a>Now that I’m officially a full-time indie <a href="http://www.flickbuddies.com/">game developer</a>, for the first time in my life I am working from home full-time on games. Many of my game developer friends have also started working full-time from home in the past few months, partly because of all the game studios shutting down in our city recently. Working from home has its own set of unique challenges that aren’t initially obvious. Today’s entry is a list of tips I use to be as productive as I can while striking a good work-life balance.</p>
<p><span id="more-537"></span></p>
<p>The biggest complaint I hear (and face) from working full-time at home is the fact your “always on”. Unlike trudging off to work for 8-12 hours per day where there is a definite line between work and home, the line is blurred. This list is mainly ways I go about emulating that distinct line between working and relaxing.</p>
<p><strong>Kill Switch</strong></p>
<p>The best way I can shift my mind from work to relaxation is what I call a “kill switch”. Some activity that completely resets your brain, clears out everything you’ve been thinking about and lets you get into the relaxation zone (rather than the work “zone”). For me this kill switch is Company of Heroes (CoH). As soon as I finish for the day, I have a game of CoH and everything I was thinking about is blocked out. I put 100% of my concentration into playing the game and come out the other end with a clear head ready to relax for the evening. For other people this kill switch comes in the form of WoW. After a hard day they sit and relax, focussing their mind on Azeroth to help forget the stresses of the day.</p>
<p>Whatever the game or activity the important purpose is to put a barrier between work and “not work”. Many people already have this activity they perform, but don’t consciously do it at the end of the day to form a barrier. It becomes a routine and lets your brain form the habit of switching off after the activity is complete.</p>
<p>As game developers, the bonus of this kill switch being a game is that it forces me to actually play a game (even if it’s just one). One of the most noticeable differences in my life since becoming a game developer is that I play a lot less games. I believe it’s vital for game developers to play games to keep a view on the gaming landscape as it changes from year to year. It’s also important to see our craft from the other side, as a gamer.</p>
<p><strong>Working Area</strong></p>
<p>The second important way of differentiating my time is having a separate area that is used only for work. In the current age, this can be quite difficult as often the computer is the centre of both work and entertainment. By keeping my working area separate from everything else at home there is a definitive area that is my work station. I pretend like I’m “heading to the office” when I walk over to my desk and when I’m here, it’s all business.</p>
<p>I find my iPad is a great way for me to be connected while not “working”. Rather than sitting at my computer surfing the web or sending personal emails, I’ll sit on the couch with my iPad on my lap.</p>
<p>Laptops are also perfect ways of physically relocating to be outside of my work area. If I need a computer for something personal, I’ll take my laptop and sit on the couch. It may seem silly, but this small difference is enough for me to not feel like I’m working.</p>
<p><strong>Set Standard Hours</strong></p>
<p>This is an easy one. I’ve found a lot of Indie friends begin working sporadic hours when they start working from home. While its great fun to stay up until 3am getting that last task finished I’ve found it has a detrimental effect in the long run. I like to get 10 hours of work into a day and so I set myself a start and end time. I begin work around 6am and finish at 4pm. I’ll set my status to “do not disturb” and I’ll work through as solidly as I can. One important key is that if something comes up that interrupts me, I don’t count that time towards my day. So if something takes my attention for an hour, then I at it to the end of the day and finish at 5pm. After a few days of working 6am-7pm I quickly realised the importance of cutting out interruptions.</p>
<p>Whether you want to be as strict as that or not, the key is keeping consistent working hours that are sustainable for a long period. Software development is a marathon, not a sprint and it’s important to schedule your day to fit this. If you find you’re burning out after a few days or weeks then look at adjusting your work hours to better fit the long-haul.</p>
<p><strong>Write Everything Down</strong></p>
<p>“<a href="http://www.amazon.com/gp/product/0142000280?ie=UTF8&amp;tag=doosgamcodblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0142000280">Getting Things Done</a>” is a great book that I’ve spoken about countless times in the past. I recommend it for everyone, particularly those working from home. It helps you to become more productive and sort your life out. The main key I get from this is that I make lists for everything. As soon as I think of something, particularly if it’s outside of “work hours” I write it down, set a reminder in outlook for the next day and don’t think about it again. If I am laying in bed and something pops into my head I’ll add it to my to-do list and then forget about it.</p>
<p><strong>Email Separation</strong></p>
<p>This is another easy one. I like to make sure I can’t get work emails during non-work time. This is easy when working in an office as when you’re away from your desk you usually can’t access your email. It’s important to set up a similar barrier when working from home, much like the physical workspace. I set up different rules on my iPhone so I don’t get push notifications for work emails. If I’m at my desk working it’ll arrive in my inbox but if I’m out for the evening I won’t be distracted by it. There’s nothing worse than getting an email you need to act upon, or that has bad news in it when you’ve finished working for the day. This is particularly important when working with overseas publishers or customers with emails coming in at all hours.</p>
<p><strong>Conclusion</strong></p>
<p>Do you have any other tips for working from home on indie games? Whether working full-time or part-time at home, how do you go about keeping a good work-life balance?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/working-from-home-as-an-indie/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Company of Heroes Online Shutdown: Facts, Verdict and Solution</title>
		<link>http://www.doolwind.com/blog/company-of-heroes-online-shutdown-facts-verdict-and-solution/</link>
		<comments>http://www.doolwind.com/blog/company-of-heroes-online-shutdown-facts-verdict-and-solution/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 07:04:57 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Company of Heories]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Relic]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=534</guid>
		<description><![CDATA[Many people know I think Company of Heroes is the greatest RTS of all time. Today I found out that Company of Heroes Online (CoHO), the free to play spin-off from the CoH series is shutting down.  This made me irrationally sad, considering it&#8217;s &#8220;just a computer game&#8221;. I&#8217;ve been playing CoHO for at least [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/companyofheroesonline.jpg"><img class="alignright" title="Company of Heroes Online" src="http://www.doolwind.com/images/companyofheroesonline.jpg" alt="" width="280" height="107" /></a>Many people know I think Company of Heroes is the <a href="http://www.doolwind.com/blog/why-company-of-heroes-is-the-best-rts-of-all-time/">greatest RTS of all time</a>. Today I found out that Company of Heroes Online (CoHO), the free to play spin-off from the CoH series is shutting down.  This made me irrationally sad, considering it&#8217;s &#8220;just a computer game&#8221;. I&#8217;ve been playing CoHO for at least an hour per day for the past few months and loving it. The main differences between CoH and CoHO are in the MMO style commander that you level up over time to receive new abilities you can use in battle. There is a lot of misinformation around on the internet and after my <a href="http://www.doolwind.com/blog/iwnet-facts-verdict-and-solution/">last successful</a> &#8220;Facts, Verdict, Solution&#8221;, I thought I&#8217;d do one for Company of Heroes Online:</p>
<p><span id="more-534"></span></p>
<p><strong><span style="text-decoration: underline;">Facts</span></strong></p>
<ul>
<li>On the 31st March 2011, CoHO will shut down the beta servers &#8211; <a href="http://www.companyofheroes.com/announcements/company-of-heroes-online-beta-closing-03-31">source</a></li>
<li>After 31st March CoHO will no longer exist, there will be no release after beta.  Relic is no longer working on the product &#8211; <a href="http://www.companyofheroes.com/forums/general-discussion-21/topics/Petition-to-Keep-COHO-ALIVE-please-sign?page=12#post-148670">source</a></li>
<li>Commander data will be lost &#8211; <a href="http://www.companyofheroes.com/forums/general-discussion-21/topics/What-next-Details?page=2#post-148748">source</a></li>
<li>Company of Heroes has generally had equal or more players online &#8211; <a href="http://www.companyofheroes.com/forums/general-discussion-21/topics/A-short-summation-on-the-outbursts-of-some-COHO-users?page=1#post-148759">source</a></li>
<li>It has nothing to do with the death of Brian Wood &#8211; <a href="http://www.companyofheroes.com/forums/community-news-feed/topics/company-of-heroes-online-beta-closing-03-31?page=49#post-148772">source</a></li>
<li>Development will continue on CoH and Relic are still continuing the franchise, without CoHO &#8211; <a href="http://www.companyofheroes.com/forums/community-news-feed/topics/company-of-heroes-online-beta-closing-03-31?page=51#post-148829">source</a></li>
<li>If you registered before February 1 2011 you can get CoH Gold for $4.99 &#8211; <a href="http://www.companyofheroes.com/announcements/company-of-heroes-online-beta-closing-03-31">source</a></li>
<li>The Chinese and Korean versions of CoHO will also be closing &#8211; <a href="http://www.companyofheroes.com/forums/community-news-feed/topics/company-of-heroes-online-beta-closing-03-31?page=25#post-148075">source</a></li>
</ul>
<p><span style="text-decoration: underline;"><strong>Verdict</strong></span></p>
<p>This has come as a surprise to myself and a lot of other people. However, I had just been thinking the other day though that the incentive for me to invest money isn&#8217;t really high enough. I would have happily paid $15/month of in-game items however there was no need as I was able to buy everything I wanted entirely with in-game currency.  The more I played, the more in-game currency I earned. This seems the wrong way around to me as it&#8217;s the people that play a <strong>lot</strong> of CoHO that would be willing to fork out the cash.</p>
<p>It seems that having both CoH and CoHO side-by-side was a watering down of their market. It makes sense that if one has to go then the free to play is the best option. It was obviously not generating enough revenue for them.</p>
<p><strong><span style="text-decoration: underline;">Solution</span></strong></p>
<p>The best solution I can see to the problem is for Company of Heroes 2 to be released. While I have inside information that another of their great titles is getting an expansion, I&#8217;ve been unable to source info on CoH2. This seems like the logical next step for them to take. We&#8217;ve seen it with their Dawn of War franchise with great success. My only hope is they don&#8217;t go too far down the path of simplifying the game as the did with DoWII with <a href="http://www.doolwind.com/blog/is-your-game-underwhelming/">bad consequences</a>.</p>
<p>I&#8217;d also like to see an expansion of CoH set in the modern era. I think this could work really well with the tactical style and upgrade system. I can just imagine driving my ASLAV&#8217;s around and upgrading them with slat armor (anti-RPG protection). It would work well for the current &#8220;war on terror&#8221; with the terrorists having a completely different feel to them and using guerrilla tactics. This would give Relic a 3rd series in using the same core engine and open them up to a lot of new customers. There have been countless numbers of WWII RTS games in the past, however the number of modern day realistic RTS games is a lot lower.</p>
<p><span style="text-decoration: underline;">Conclusion</span></p>
<p>What are your thoughts on Company of Heroes Online closing? Did you play it and are you disappointed as I am?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/company-of-heroes-online-shutdown-facts-verdict-and-solution/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Flick Buddies: Multiplayer action for iPad, iPhone/iPod Touch</title>
		<link>http://www.doolwind.com/blog/flick-buddies-multiplayer-action-for-ipad-iphoneipod-touch/</link>
		<comments>http://www.doolwind.com/blog/flick-buddies-multiplayer-action-for-ipad-iphoneipod-touch/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 05:04:29 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Flick Buddies]]></category>
		<category><![CDATA[Game Engine]]></category>
		<category><![CDATA[Game Programming]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=522</guid>
		<description><![CDATA[For the past three months I&#8217;ve been secretly working on a new project, Flick Buddies. Along with Shauno from Squid Tank we&#8217;ve been busily putting together a multiplayer action game for iPad, iPhone and iPod Touch. The game is built around a simple premise of flicking little characters from your corner into the goal. With [...]]]></description>
			<content:encoded><![CDATA[<p>For the past three months I&#8217;ve been secretly working on a new project, <a href="http://www.flickbuddies.com">Flick Buddies</a>.  Along with Shauno from <a href="http://www.squidtank.com">Squid Tank</a> we&#8217;ve been busily putting together a multiplayer action game for iPad, iPhone and iPod Touch.  The game is built around a simple premise of flicking little characters from your corner into the goal.  With lots of obstacles to dodge and special abilities to help you score while stopping your opponents from scoring.  Flick Buddies supports up to 4 players on a single iPad or iPhone/iPod Touch.</p>
<p><span id="more-522"></span></p>
<p>The game will be available on the app store on the 15th December and we&#8217;ll have more info in the coming days on <a href="http://www.facebook.com/flickbuddies">Facebook</a> and <a href="http://www.twitter.com/flickbuddies">Twitter</a> and our <a href="http://www.flickbuddies.com">site</a>.</p>
<p>Check out our first trailer below and watch this space for updates on the game and behind the scene&#8217;s look into how we created it.</p>
<p style="text-align: center;"><a href="http://www.doolwind.com/images/blog/flickbuddies.jpg"><img class="aligncenter" title="Flick Buddies" src="http://www.doolwind.com/images/blog/flickbuddies.jpg" alt="" width="603" height="137" /></a></p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="378" 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/iP-xvy8prkY&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="620" height="378" src="http://www.youtube.com/v/iP-xvy8prkY&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/flick-buddies-multiplayer-action-for-ipad-iphoneipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opticode &#8211; Brisbane .NET and Silverlight Development</title>
		<link>http://www.doolwind.com/blog/opticode-brisbane-net-and-silverlight-development/</link>
		<comments>http://www.doolwind.com/blog/opticode-brisbane-net-and-silverlight-development/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 08:36:30 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[CIC]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=95</guid>
		<description><![CDATA[So a few months ago I posted about resigning and how I was planning to set up a software development company. It&#8217;s now a little over 6 months later and I thought I&#8217;d give everyone an update on how things are going. Walter and I formed Opticode late last year and have been busy making [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://www.opticode.com.au/"><img class="alignright" style="float: right;" src="http://www.opticode.com.au/Opticode.jpg" alt="" /></a>So a few months ago I posted about resigning and how I was planning to set up a software development company.  It&#8217;s now a little over 6 months later and I thought I&#8217;d give everyone an update on how things are going.  Walter and I formed <a href="http://www.opticode.com.au">Opticode</a> late last year and have been busy making ASP.NET, .NET and Silverlight applications for quite a few clients around Brisbane.  I&#8217;m still doing some game development contract work where I&#8217;m currently helping with the development of a multi-threaded renderer as well as some C# tools development.</p>
<p><span id="more-95"></span></p>
<p>As Opticode expands during the coming months we&#8217;ll be looking to take on a few more programmers so shoot me an <a href="mailto:alistair@opticode.com.au">email</a> if you&#8217;d like to work for an agile company working on some of the latest Microsoft technology.</p>
<p>I&#8217;m still working away on the back story to CIC which has become my spare-time hobby.  I&#8217;ve been asked by quite a few people about CIC&#8217;s status and I&#8217;m happy to report that while the direct development is on hold, the design is always evolving and the game will be released eventually.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/opticode-brisbane-net-and-silverlight-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Java Isn&#039;t The Problem</title>
		<link>http://www.doolwind.com/blog/java-isnt-the-problem/</link>
		<comments>http://www.doolwind.com/blog/java-isnt-the-problem/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 02:05:33 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=94</guid>
		<description><![CDATA[Quite a few people recently have been blaming Java for part of the downfall in current computer science (CS) graduates. While I don&#8217;t particularly like java, I&#8217;d like to go to its defence to say that teaching Java is not the real reason that a lot of CS graduates are no good these days. I [...]]]></description>
			<content:encoded><![CDATA[<p align="left"><img usemap="#Map" src="http://www.doolwind.com/images/blog/comic/comic-06.jpg" border="0" alt="" width="264" height="300" align="right" /><br />
<map id="Map" name="Map">
<area shape="rect" coords="91,260,264,300" href="http://www.squidtank.com"></area>
</map>
<p>Quite a <a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html">few</a> <a href="http://209.85.173.104/search?q=cache:yv_7KunL4u4J:www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html&amp;hl=en&amp;client=firefox-a&amp;gl=au&amp;strip=1">people</a> recently have been blaming Java for part of the downfall in current computer science (CS) graduates.  While I don&#8217;t particularly like java, I&#8217;d like to go to its defence to say that teaching Java is not the real reason that a lot of CS graduates are no good these days.  I know this is a touchy subject for some people so I apologise in advance if I&#8217;ve offended anyone.</p>
<p><span id="more-94"></span></p>
<p><strong>It&#8217;s not about Language</strong></p>
<p>To jump straight into it, the first language that students learn doesn&#8217;t have a lot to do with how good they will end up.  Most of the &#8220;core languages&#8221; (Java, C#, C/C++, VB.NET etc) that you see being taught at universities allow the teaching of the core programming principles:</p>
<ul>
<li>Low Level &#8211; sequence, conditions and loops</li>
</ul>
<ul>
<li>Mid level &#8211; functions, objects and recursion</li>
</ul>
<ul>
<li>Hi Level &#8211; Modular design, design patterns, API creation</li>
</ul>
<ul>
<li>High level optimizations &#8211; orders of complexity and algorithmic optimization</li>
</ul>
<p>These principles cover a large amount of &#8220;learning to program&#8221; and you can teach all of them in any of the languages listed above.  So what things are missing from some of these languages (particularly, Java)?</p>
<ul class="unIndentedList">
<li> Pointers</li>
<li> Low level optimizations</li>
<li> How operations map down to machine code</li>
</ul>
<p>The important point here is that these are a small subset of the skills required to program and they don&#8217;t <strong>require</strong> the first language that is taught to students to be C/C++ (or equivalent).  Teaching these languages early on is definitely required; however they can easily fit outside the scope of the core introduction courses.  The extra bonus from not teaching C/C++ as the first language is that it forces students to learn at least two languages during their first steps into programming and this is a good thing.</p>
<p><strong>So what is the problem with CS graduates?</strong></p>
<p>1.       Lack of Passion</p>
<p>Basically it comes down to the fact that lecturers aren&#8217;t getting students passionate about programming.  One of the key qualities I look for in a great programmer is their love for programming.  I&#8217;ve found that the best way to get passionate about something is for someone to pass their passion on to you.  The best way of doing this is through teaching.  I had this very problem while at university and thankfully during my course I did some Microsoft training where our teacher&#8217;s passion was passed on to me.</p>
<p>It seems that lecturers are confusing fun with enjoyment/passion.  Something doesn&#8217;t need to be fun for people to be passionate about it and trying to make courses &#8220;more fun&#8221; and less boring is not the right approach.  The ability to create something has an almost primal feeling of enjoyment and power.  Lecturers need to tap into this and get students excited and passionate about what they are creating even if it is hard work.</p>
<p>2.       Lack of algorithms and Mathematics</p>
<p>One area that could easily be seen as boring is algorithms and mathematics.  If not taught correctly this can certainly be true.  However these are a core part of learning to program.  The fact that they are language independent proves that Java is not to blame, and that they are more important than mere language choice.  With a solid understanding of algorithms and mathematics, programmers can write good code in almost any language.</p>
<p>If algorithms and mathematics are being dropped because lecturers think they are too boring, they need to find someone that can make them exciting!  To give an example, I was taught matrix math both at high school and at university.  At high school I understood it straight away and had no issues with its use.  At university we spent just as long learning it, however it was so convoluted that it almost confused me into forgetting what I had initially learnt.  The way in which it was taught was both dry and boring, but also counter-intuitive to the average student that doesn&#8217;t have a PHD in mathematics.  Any subject matter can be boring if taught badly, lecturers need to stop blaming the content and start looking at their teaching styles.</p>
<p><strong>Conclusion</strong></p>
<p>So the problem at the moment isn&#8217;t java but instead the courses and those creating them.  I don&#8217;t think it matters what language you teach.  Without creating passion, teaching core algorithms and mathematics students are never going to be good programmers.</p>
<p><script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/java-isnt-the-problem/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Doolwind&#039;s Game Coding Standard</title>
		<link>http://www.doolwind.com/blog/doolwinds-game-coding-standard/</link>
		<comments>http://www.doolwind.com/blog/doolwinds-game-coding-standard/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 22:37:05 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Game Programming]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=93</guid>
		<description><![CDATA[For some time now I&#8217;ve been asked by a few people to write up my thoughts on a coding standard. To me, coding standards are like source control, until you use them you don&#8217;t realise just how awesome they are. Coding standards are a requirement for large software teams, however even if you are working [...]]]></description>
			<content:encoded><![CDATA[<p align="left"><img src="http://www.doolwind.com/images/blog/comic/comic-05.jpg" usemap="#Map" align="right" border="0" height="230" width="300" /><br />
<map name="Map" id="Map">
<area href="http://www.squidtank.com" shape="rect" coords="91,191,300,229" /></map>
<p>For some time now I&#8217;ve been asked by a few people to write up my thoughts on a coding standard.  To me, coding standards are like source control, until you use them you don&#8217;t realise just how awesome they are.  Coding standards are a requirement for large software teams, however even if you are working alone I&#8217;d recommend adopting at least a simple coding standard.Keeping code consistent and readable is helpful when reading other people&#8217;s code as well as when reading your own code weeks or months are it was written.  In effect a coding standard is trading development time for maintainability time.  I&#8217;ve found that the ratio of dev time to maintenance time grows from 1:1 on a small project to something approaching 1:∞ on larger projects.</p>
<p><span id="more-93"></span></p>
<p>I&#8217;d like to formally thank <a href="http://www.somedude.net/gamemonkey/forum/viewtopic.php?f=12&amp;t=377">Greg</a> for showing me the light on a lot of these points.  I&#8217;ve spoken previously about <a href="http://www.doolwind.com/blog/?p=61">pair programming</a> and just generally mixing the experience level of developers to help the younger ones.  I think that these kinds of relationships are invaluable for making great programmer as it&#8217;s something that you just can&#8217;t pick up from textbooks or coding by yourself.</p>
<p>As always, please add your thoughts and complaints.  I think that just talking about these issues is a good step in growing as a software developer, even if everyone doesn&#8217;t always agree.</p>
<h3><strong>General Tips</strong></h3>
<p><strong>1.       </strong><strong>Be consistent</strong></p>
<p>This is the golden rule with coding standards in any language.  Every other rule below is pointless unless there is consistency.  If you completely disagree with all of my points below that&#8217;s fine, so long as you set out a standard, and everyone conforms to it.  The only thing worse than a bad coding standard is not having one or having one that isn&#8217;t followed by everyone.</p>
<p>This can be an issue for some programmers as their ego&#8217;s get in the way however it&#8217;s vitally important that everyone follows the standard otherwise it will quickly turn into bedlam.  This consistency should ideally cross both the programmer boundary and the project boundary.  It will be much harder to have consistency between projects, however if this can be achieved, any programmer within the company can switch projects freely (even if only to assist briefly).  This also increases efficiency on new projects when programmers who haven&#8217;t worked together already have this coding standard in common.</p>
<p><strong>2.       </strong><strong>Get everyone involved</strong></p>
<p>To get the best &#8220;buy-in&#8221; and to reduce friction amongst the team, it&#8217;s important to get everyone involved in the discussions.  I&#8217;d recommend writing up the standard once &#8220;complete&#8221; and passing it around as the first draft.  Giving people plenty of time to comment also gives leaders more ammunition when enforcing the standard.  If people can voice their thoughts on the subject they are more likely to follow the standard in the future.</p>
<p>There is always going to be the inevitable ideological disputes where programmers won&#8217;t be able to come to a conclusion.  There are really two options here:</p>
<blockquote><p>i. Military style: The highest ranked programmer makes a decision, and everyone follows suit.  This may be the only way to solve the most ideological debates but has the side effect of lowering morale.</p></blockquote>
<blockquote><p>ii. Politician style: Both sides put their case forward and the entire team (or key members) vote on which to choose.</p></blockquote>
<h3><strong>Specific Tips</strong></h3>
<p><strong>3.       </strong><strong>Curly braces &#8211; on the next line</strong></p>
<p><code><font color="#0000ff">if</font> (condition)<br />
{<br />
}</code></p>
<p>This is pretty much the standard I&#8217;m seeing everyone use these days.  There are some strange lecturers and Java programmers that keep the brace on the same line, but otherwise most people seem to have unofficially agreed to this.  This has the added advantage of allowing the condition to be commented out quickly (using //)</p>
<p>Negative: It takes up less space having it on the same line.<br />
Response: It makes code far more readable, and white space is free and should be used.</p>
<p><strong>4.       </strong><strong>Always put curly braces in</strong></p>
<p>The main reason for this is that it reduces errors in code such as a macro hiding the fact its multiple statements.  The secondary reason is for maintainability.  If the single statement becomes multiple statements it takes longer to update, and can lead to errors if people miss adding the braces.</p>
<p>Negative: It saves time to leave braces out.<br />
Response: Saving time at the expense of readability is bad.  If all conditions/loops have braces then the source will be far more consistent.</p>
<p>Negative: It takes up less space without braces and more code can fit on the screen.<br />
Response: Fitting more code on screen is not as important as having error free, maintainable code.  As desktop resolutions increase this argument holds even less weight.</p>
<p><strong>5.       </strong><strong>Prefix members and arguments</strong></p>
<p><code><span style="color: #0000ff">class</span> MyClass<br />
{<br />
<span style="color: #0000ff">  int</span> m_myInt;<br />
};</code></p>
<p><code><span style="color: #0000ff">void</span> MyFunction( <span style="color: #0000ff">int</span> a_myParam )<br />
{<br />
}<br />
</code></p>
<p>Firstly, adding these prefixes is NOT Hungarian notation.  Rather than describing the type of a variable adding these prefixes gives context about what the variable is.  This context is the key reason for adding prefixes.  Prefixes make it easier to build a map in your mind of what the code is doing as you can quickly tell what variables are arguments/parameters, which are members and which are simply local variables.  You can also add g_ to globals, however I&#8217;d be advocating the use of globals then J.</p>
<p>If m_ and a_ are too verbose then the alternative is simply appending m and a.</p>
<p><code><span style="color: #0000ff">void</span> MyFunction( <span style="color: #0000ff">int</span> aMyParam )<br />
{<br />
}</code></p>
<p>Personally, I prefer the full prefix (m_) as it makes the code more readable, and it follows the convention of the first character of the variable name being lower case.</p>
<p>Negative: With modern IDE&#8217;s you can mouse over variables to get extra information<br />
Response: Mousing over is slower than simply perusing code.  The information given is usually just the type which doesn&#8217;t give context, it only gives further information.</p>
<p>Negative: It takes too long<br />
Response: Again, readability is more important than saving a few seconds on typing</p>
<p>Negative: Underscore is hard to type<br />
Response: Once you&#8217;ve been using it for a while it becomes quite natural.  Also with tools like visual assist the underscore can automatically be added in for you.</p>
<p><strong>6.       </strong><strong>Put modifiers (* and &amp;) next to variable type rather than variable name</strong></p>
<p><code>MyClass*             myVariable;</code></p>
<p>This point actually goes against what I am seeing most people using in their coding standards at the moment.  It also goes against what I was taught at university (whether that&#8217;s bad or not I don&#8217;t know).  Before you dismiss it though, I recommend you actually sit and think about the alternatives and why you would use them.  The modifier (pointers or reference) is modifying the type of the variable and therefore it should be placed next to the type itself.  The negative to this is one I gave when first taught this, however after thinking about it I realised the error of my ways.</p>
<p>Negative: The modifier should go next to the variable name as it is misleading if you declare multiple variables per line.  In the example below, the first variable is a pointer and the second is not, this is misleading.</p>
<p><code>MyClass*             myPointerVariable, myNonPointerVariable;</code></p>
<p>Response: Declaring multiple variables on one line is really the exception to the rule.  Should you be making a decision about based on the exception or the rule?  If there are any modifiers like this, don&#8217;t declare them on the same line.  The worst issue here is a bit of extra typing and more screen real-estate being used up, neither of which should be an issue.  Having the pointer next to the variable name makes it harder to reader when skimming over code, particularly if there are a number of spaces (or tabs) between the type and name.</p>
<p><strong>7.       </strong><strong>Create const on functions and function arguments where appropriate</strong></p>
<p>Const correctness for variables is a bit like cleaning your teeth.  It&#8217;s annoying to do, but everyone agrees that you should do it.  There are three main benefits:</p>
<blockquote><p>i. More descriptive code.  A quick look at a function tells you whether it changes the state of an object, and whether it changes the state of any variables passed in.</p></blockquote>
<blockquote><p>ii. Faster code.  Giving the compiler more information about constness allows it to optimize your code.</p></blockquote>
<blockquote><p>iii. Less errors.  If a function or argument is const then anyone changing the function will get compile time errors if they do something the function was never intended to do.</p></blockquote>
<p><strong>8.       </strong><strong>Conditions/Loops should have a space after them</strong></p>
<p><code><span style="color: #0000ff">if</span> (myVar)<br />
{<br />
}<br />
</code></p>
<p>This is the most readable way of writing conditional and loop statements I&#8217;ve seen.  I personally recommend this usage, however the main reason for this point is to get you thinking about how it should be done.  If you disagree, that&#8217;s fine, just make sure you remember point #1 and decide how you want your code to look and keep it consistent.</p>
<p><strong>9.       </strong><strong>Camel case variables, capitalize classes and functions and full capitalize constants</strong></p>
<p>I&#8217;ll finish up with an easy one.  Most people agree with this standard but I thought I&#8217;d list it anyone.  The best way to show this is with examples:</p>
<p>Variable:</p>
<p><code><span style="color: #0000ff">int </span>myVariableName;     <span style="color: #339966">// camel case</span><br />
</code><br />
Class and functions:</p>
<p><code><span style="color: #0000ff">class</span> MyClassName {} ; <span style="color: #339966">// camel case with capital first</span><br />
<span style="color: #0000ff">void </span>MyFunctionName();</code></p>
<p>Constants:</p>
<p><code><span style="color: #0000ff">const int</span> MY_CONSTANT_NAME = 5;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/doolwinds-game-coding-standard/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>New Rendering Technique (Light Indexed Deferred Lighting)</title>
		<link>http://www.doolwind.com/blog/new-rendering-technique-light-indexed-deferred-lighting/</link>
		<comments>http://www.doolwind.com/blog/new-rendering-technique-light-indexed-deferred-lighting/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 05:34:27 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Rendering]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=90</guid>
		<description><![CDATA[A good friend of mine Damian Trebilco has just made public his new rendering technique. It takes the best parts of forward and deferred rendering. A paper on the technique as well as a demo showing it off are available at his Google Code page. The demo (shown in the screenshot) renders a scene with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doolwind.com/images/blog/lidr.jpg"><img src="http://www.doolwind.com/images/blog/lidr.jpg" alt="" hspace="10" vspace="10" width="184" height="136" align="right" /></a>A good friend of mine <a href="http://glintercept.nutty.org/links.html">Damian Trebilco</a> has just made public his new rendering technique.  It takes the best parts of forward and deferred rendering.  A paper on the technique as well as a demo showing it off are available at his <a href="http://code.google.com/p/lightindexed-deferredrender/">Google Code</a> page.</p>
<p><span id="more-90"></span></p>
<p>The demo (shown in the screenshot) renders a scene with ~40,000 triangles and 255 lights!  It reaches a staggering 82fps using his LIDR technique compared to 12fps with multi-pass forward rendering.  Using this technique would allow for a far more dynamic environment than we are currently seeing with only a handful of lights in the scene.</p>
<p>This is Damian&#8217;s second amazing achievement, the first being <a href="http://glintercept.nutty.org/index.html">GLIntercept</a>, a program that allows debugging OpenGL calls.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/new-rendering-technique-light-indexed-deferred-lighting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Auran Did Wrong</title>
		<link>http://www.doolwind.com/blog/what-auran-did-wrong/</link>
		<comments>http://www.doolwind.com/blog/what-auran-did-wrong/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 02:59:20 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Auran]]></category>
		<category><![CDATA[Game Programming]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=88</guid>
		<description><![CDATA[Auran Developments went into liquidation late last year. Many of us saw it coming for at least a few months, if not years. Below are my personal thoughts on why Auran went bust. I&#8217;m writing this to try and help other struggling software or game development stduios from ending up in the same way. To [...]]]></description>
			<content:encoded><![CDATA[<p><img usemap="#Map" src="http://www.doolwind.com/images/blog/comic/comic-02.jpg" border="0" alt="" width="300" height="145" align="right" /></p>
<map id="Map" name="Map">
<area shape="rect" coords="138,167,336,221" href="http://www.squidtank.com" />
<area shape="rect" coords="138,120,305,164" href="http://www.squidtank.com" /></map>
<p><span id="more-88"></span></p>
<p>Auran Developments went into liquidation late last year.  Many of us saw it coming for at least a few months, if not years.  Below are my personal thoughts on why Auran went bust.  I&#8217;m writing this to try and help other struggling software or game development stduios from ending up in the same way.</p>
<p>To get the legal stuff out of the way.  When I mention &#8220;Auran&#8221; I&#8217;m talking about <em>Auran Developments</em>.  That is the company who hired me, and the only one I ever really had any interaction with.  <em>Auran Games</em> et al. are still running fine and have nothing to do with the following article.</p>
<h3><strong>Listen</strong></h3>
<p>The first main problem was that <strong>Auran wouldn&#8217;t listen to anyone</strong>.  This was the core problem I see as its tentacles really reached out and touched every part of the company.  I don&#8217;t know how many people would talk to me about how they&#8217;d made a suggestion months or years earlier only to have it ignored and then the exact problem they foresaw coming up.  While it&#8217;s important that people high up are the ones making the decisions to direct the company, they also need to know where their weaknesses are and seek advice from the best people in each field.</p>
<p>When I started at Auran there were a LOT of extremely talented people that had thoughts on the direction the company should take.  Unfortunately, most of their requests were ignored, and the majority of people simply left the company as they could see that the wrong decision was being made.  By listening to people who are skilled in their particular field, they would have been able to keep these skilled people on, further increasing the company&#8217;s chances of success.  The bottom line is that good people have good advice, and not listening has a twofold problem.  The company fails because <strong>they don&#8217;t do the right thing </strong>AND <strong>they lose the good people giving out this advice</strong>.</p>
<h3><strong>Keep Good People</strong></h3>
<p>This leads into the second problem, the number of great employee&#8217;s I saw leaving was astounding.  This also has a snowball effect because <strong>when great, senior, people leave everyone below them wonders if there&#8217;s something they don&#8217;t know about</strong>.  For me, the first sign that something wasn&#8217;t quite right was when one of the star graphics programmers informed Auran he was going to leave if he wasn&#8217;t put on something interesting.  This guy (while never admitting it himself) was basically Carmack 2.0.  He is the kind of person that good companies would give almost anything to have on their team.  However, at Auran, they just let him slip away even after giving them a direct option to resolve the problem.  The other problem was when the three leads (programming, art and QA) all resigned within a couple of weeks of each other.</p>
<h3><strong>Be Transparent </strong></h3>
<p>The other main problem was the <strong>lack of transparency and communication</strong>.  It&#8217;s vital, for any software project that crucial information flows down to &#8220;the trenches&#8221;.  There&#8217;s nothing worse than reading in a magazine or website that the company is in trouble, or that it&#8217;s just received another round of funding from investors.  Many companies have this problem, where you need to be on the grape vine to find out information that directly affects your job and your life.  This was compounded at the end when people were literally sitting around waiting to find out if they were fired or not.</p>
<p>The transparency part comes from sharing the vision and direction of the company with all staff members<strong>.  Most of us had to simply guess what would be happening in the coming months</strong>.  Part of this problem comes from having the wrong people too high up in the chain of command.  As soon as you have less qualified people above more qualified there&#8217;s going to be both conflict and misdirection with the company.</p>
<h3><strong>The B team</strong></h3>
<p>I was part of a second team at Auran (not Fury).  Let&#8217;s call it the &#8220;B Team&#8221;.  This team worked really well together, produced a great product in a short time and was ready to move onto producing more great products.  What&#8217;s the logical step Auran should have taken? Good companies know that <strong>good people are hard to find</strong> (and even harder to replace).  <strong>Good teams though, they are like the holy grail of software development</strong>.  If you have a good team, you do anything you can to hold onto it, foster it and mainly, make a crap load of money from it.</p>
<p><strong>Not so at Auran</strong>.  We were broken up, forced to work on crappy projects that we would rather resign than work on (as was the case in my situation).  A number of people pleaded with Auran to keep us together and to make money from us.  <strong>That&#8217;s all we wanted to do, work together in a great team making money for Auran</strong>.  It seemed this direction was not the same as Auran&#8217;s.</p>
<h3><strong>Don&#8217;t Keep All Your Eggs In One Basket</strong></h3>
<p>The next big issue was focussing on one single product.  I&#8217;m not going to get into whether Fury was a good game or not.  Either way, it is too much to risk an entire company on a single game.  I heard this almost daily from people around the company, but no one would listen.  Generally, when an age old <a href="http://dictionary.reference.com/browse/Don't%20put%20all%20your%20eggs%20in%20one%20basket?r=14">proverb</a> is written about something, it&#8217;s a good sign that you should heed its advice.</p>
<p>The games industry is a hit driven industry which means there&#8217;s a great chance you won&#8217;t succeed off a single product.  Sure, <strong>there&#8217;s a chance you could make it to the big time, but there&#8217;s a far higher chance all your employees could be jobless just before Christmas</strong>.</p>
<h3><strong>Software Development, It&#8217;s Hard!</strong></h3>
<p>Finally it just comes down to software development.  Software Development is really hard.  Personally, I love it; I&#8217;ve found what I want to do for the rest of my life.  I&#8217;ve also come to the conclusion that I&#8217;ll spend the rest of my life trying to do it perfectly, and never succeed.  There&#8217;s no <a href="http://en.wikipedia.org/wiki/No_Silver_Bullet">&#8220;silver bullet&#8221;</a> and you certainly can&#8217;t treat it like running a regular non-tech company.  While software development is relatively young, compared to the other schools of engineering, it&#8217;s also full of great techniques.  <strong>Unfortunately, most of these weren&#8217;t employed at Auran</strong>.  Good games development practices weren&#8217;t employed either.  I&#8217;m a strong believer of making a game fun, then working out how to finish off the &#8220;extra bits&#8221;.</p>
<h3><strong>Conclusion</strong></h3>
<p>So that&#8217;s what I see that Auran did wrong.  I don&#8217;t blame any individual people and I don&#8217;t think that anything can be gained from doing so.  I loved a lot of my time working at Auran; it was the dream company I&#8217;d wanted to work at since Dark Reign came out when I was in high school.  I did a lot of soul searching when I decided to resign, and it made me really depressed to think of what could have been.</p>
<p>If I had to put down one single moment when I knew it was over, it was a lunch time in September sitting in one of the back rooms with Shauno, the artist on my team.  I was flicking through the booklets of Dark Reign with every newspaper clipping relating to it.  I remembered back to when I read those very newspapers/magazines 10 years earlier and what I had dreamed working at Auran would be like.  I compared it to what was happening at the time, and the decision was pretty much made for me.  I&#8217;d like to thank everyone I worked with at Auran, and I hope that others can learn from the mistakes made and we can see the Australian games industry flourish in the coming years.</p>
<p>The picture for this blog was done by <a href="http://www.squidtank.com">Shauno</a> again.  It&#8217;s actually based off the <a href="http://www.doolwind.com/images/blog/farewall.jpg">original picture</a> he drew for my farewell card when I resigned.</p>
<p><script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/what-auran-did-wrong/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Game Development Education: The Dream</title>
		<link>http://www.doolwind.com/blog/game-development-education-the-dream/</link>
		<comments>http://www.doolwind.com/blog/game-development-education-the-dream/#comments</comments>
		<pubDate>Tue, 13 Nov 2007 06:20:24 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[Valve]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=84</guid>
		<description><![CDATA[I have a lot of dreams about what I&#8217;d like to see in the future.  One of the strongest dreams involves game development education.  To put it bluntly, I&#8217;ve been unimpressed by what I&#8217;ve seen so far.  There are a number of courses around but none of them have stood out as being amazingly good.  [...]]]></description>
			<content:encoded><![CDATA[<p align="left"><img src="http://www.doolwind.com/images/blog/valved.jpg" align="right" height="67" width="158" />I have a lot of dreams about what I&#8217;d like to see in the future.  One of the strongest dreams involves game development education.  To put it bluntly, I&#8217;ve been unimpressed by what I&#8217;ve seen so far.  There are a number of courses around but none of them have stood out as being amazingly good.  Quite a few are too young to determine how good they are, but suffice to say, looking through resume&#8217;s of people, there&#8217;s no golden bullet of educational institute that guarantee&#8217;s a certain quality of programmer.  So what does my dream involve, and how is it going to change the way games are made?</p>
<p><span id="more-84"></span></p>
<p><strong>Pie in the Sky</strong></p>
<p>At the most extreme level, the perfect education program would be one attached to a large development studio.  Imagine if Valve had &#8220;Valve Education&#8221; where you could do a 1 year course and learn everything they know about game development.  Developers from live teams could take time off to teach for a while, to mix up their lives and to pass on their knowledge to others.  While it would make quite a bit of money, the key thing here is that the top x% of students could be hired straight into Valve.  Think of it as a 1 year probation period, where the employee PAYS to be there.  If there are things you don&#8217;t like about game programmers in the world at the moment you have the ability to teach them what you want.  Have a subject devoted solely to software practices, and fail any of the kids that aren&#8217;t up to it.</p>
<p><strong>Down to earth</strong></p>
<p>So if you&#8217;re not Gabe, then the above paragraph may be a little out of reach for you.  Don&#8217;t lose hope though, because there&#8217;s room in my dream for a less restrictive model.  The main ingredient for me is to find passionate developer&#8217;s who can also teach other programmers.  Seniors and leads out there should be doing it all the time, and we just have to get them together to start teaching students.  With the average length of service in the games industry being 5 years, there&#8217;s a great opportunity here.  Firstly, it means that it IS worth training up kids as there are a lot of positions that need to be filled by people that don&#8217;t have any real world experience in games.  Secondly, it means that there are a lot of developers burning out and wanting to leave.  Rather than going off and becoming business programmers, why not give them the opportunity to use their precious game dev skills.</p>
<p>What&#8217;s needed here is a bunch of truly experienced developers getting together and teaching kids exactly what they need to know to make games.  In 1-3 years, the kids should be able to pump out a handful of little games, and one big collaborative game at the end.  Heck, you could even sell the large game at the end and give the students a discount on their fees based on how well it sells.</p>
<p><strong>Bureaucracy and Money</strong></p>
<p>The biggest issue I see with current game dev courses is the amount of bureaucracy that&#8217;s involved in setting up the course.  It&#8217;s obviously going to be better to have the course meet requirements for a Bachelor&#8217;s degree or equivalent, but try not to let this ruin the course itself.  From what I&#8217;ve seen in courses there is a lot of irrelevant material taught.  If this HAS to be taught then do it quickly, and get it out of the road.  The key here is teaching kids how to make games, and make them well.  If the course is set up to make money then there&#8217;s a good chance it&#8217;s not going to work.  The main focus here needs to be making good game programmers.  Once you start pumping out awesome programmer&#8217;s I guarantee you their tuition fees will be the smallest part of your income.  You&#8217;ll have people wanting to pay top dollar for your students, people will want to start advertising to your students to use their tech and you could even secure a deal with a certain large video card manufacturer to focus your education on their cards.</p>
<p><strong>Conclusion</strong></p>
<p>There is a massive market for game development education at the moment, a vacuum I see filling very quickly.  I just hope that at least some of the new courses are better than the ones I&#8217;ve already heard about.  So there is my dream.  I&#8217;m a little too poor and busy right now to set this up, so I&#8217;m leaving it for anyone else to try.  Let me know how you do and we can work out the commission I get later. <img src='http://www.doolwind.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/game-development-education-the-dream/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>And Now For A Taste Of Things To Come</title>
		<link>http://www.doolwind.com/blog/and-now-for-a-taste-of-things-to-come/</link>
		<comments>http://www.doolwind.com/blog/and-now-for-a-taste-of-things-to-come/#comments</comments>
		<pubDate>Mon, 05 Nov 2007 05:13:56 +0000</pubDate>
		<dc:creator>Doolwind</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Game Programming]]></category>

		<guid isPermaLink="false">http://www.doolwind.com/blog/?p=83</guid>
		<description><![CDATA[I finally resigned from Auran a couple of weeks ago.  I&#8217;ve wanted to try running my own software development company for a while now and I’ve been asked to write a book based on my programming personality test.  I thought I was going to be contracting at Auran; however it seems they’ve run out of [...]]]></description>
			<content:encoded><![CDATA[<p>I finally resigned from Auran a couple of weeks ago.  I&#8217;ve wanted to try running my own software development company for a while now and I’ve been asked to write a book based on my <a href="http://www.doolwind.com/index.php?page=11">programming personality test</a>.  I <span style="font-weight: bold;">thought </span>I was going to be contracting at Auran; however it seems they’ve run out of money, or projects or something and I’ll now be contracting 3 days per week at the company I used to work with, <a href="http://mvh.com.au/portal/index.php">MVH</a>.  While I’m glad to be leaving Auran, I’m going to miss the team I was working with.  We had a great new game coming up, great people and some awesome tech made by the engine programmer.  It’s a shame that I’ll no longer be working with the team, but unfortunately there are some things I <a href="http://www.ripten.com/2007/10/29/fury-review-pc/">just can’t change</a>.</p>
<p><span id="more-83"></span></p>
<p>As fate would have it, my 4th anniversary for being in the games industry comes up tomorrow.  While I’ll still be working on games tech as a contractor, I’m officially no longer a full-time game programmer.  I’ve now moved into the realm of entrepreneur and business owner.  I’ve also just moved into my new home and am more over moving than I’ve ever been.  I’ve set up a small home office with a few computers, whiteboard etc ready for the business to begin.  I’ll keep you posted with how things go, however I’ll still keep this blog primarily game related.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doolwind.com/blog/and-now-for-a-taste-of-things-to-come/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

