<?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>Entertaining Code &#187; The Games Industry</title>
	<atom:link href="http://www.entertainingcode.com/topics/industry/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.entertainingcode.com</link>
	<description>Coding and the games industry</description>
	<lastBuildDate>Mon, 28 Jun 2010 16:56:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Forced Downgrades</title>
		<link>http://www.entertainingcode.com/archives/forced-downgrades/</link>
		<comments>http://www.entertainingcode.com/archives/forced-downgrades/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 22:05:41 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Piracy]]></category>
		<category><![CDATA[Playstation 3]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=1168</guid>
		<description><![CDATA[A few days ago, Sony announced that it will be removing [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, Sony announced that it will be <a href="http://kotaku.com/5504123/ps3-loses-linux-support">removing its &#8220;Other OS&#8221; feature</a> from Playstation 3 units in its upcoming upgrade. Apparently, this is to stop a hacker who claimed to be able to use a security hole in the feature.</p>
<p>Among the programmers who love the PS3, the decision caused a scream of rage (and pain) that echoed through twitter. Considering the difficulty of programming for the platform as it is different than most other platforms out there, you could think Sony would care about the programmers that want to experiment on it. On a personal level, I don&#8217;t care &#8212; I simply don&#8217;t have the time to tinker with Linux on my PS3.</p>
<p>But if you want to program for a current generation console out there for real, this is your only option. The Xbox 360 with its XNA and software abstractions doesn&#8217;t really do it &#8212; coding a game on XNA is not a feat really with the distance being put between hardware and software. Coding a game on the PS3 in Linux, however, would probably land you a job.</p>
<p>And let&#8217;s face it: with all the bragging about how the PS3 can do things that the Xbox 360 can&#8217;t, Sony really needs programmers who can push it to it, who love the system and will squeeze the last bit of performance out of it. Those programmers are all sad puppies now.</p>
<p><a href="http://www.flickr.com/photos/yum9me/3298908749/"><img class="aligncenter size-medium wp-image-1174" title="Playstation 3" src="http://www.entertainingcode.com/wp-content/uploads/2010/03/ps32-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>The decision is just flat out wrong in so many ways, the most obvious being that of consumer rights. It does not matter how small a percentage of the user base that uses a feature, if you stick it on the package of a product and use it as a selling point, it&#8217;s supposed to be there when I use the product.</p>
<p>You could argue that I&#8217;m not forced  to upgrade, which is bogus since I am forced to upgrade if I wish to keep the functionality of my PS3 intact. Imagine a DVD player that is suddenly &#8220;upgraded&#8221; to not support the remote control anymore. You only have to upgrade if you want to be able to watch new DVDs though, if you settle for your old collection, you can opt out. Oh, and subtitles stop working too. Sorry &#8217;bout that.</p>
<p>The example is absurd, but in all essential parts a direct mapping of what Sony is now doing. <strong>Come tomorrow, you may choose which way to cripple your console &#8212; no Other OS or no new games or PSN. </strong></p>
<p>Laws differ, but I&#8217;m quite sure this sort of act from a company is illegal in Sweden, where I live. Quite possibly it is in several other places around the world&#8230; it would be interesting to find out.</p>
<p>The second interesting thing to mention is how a large international company again fails to recognize the <a href="http://en.wikipedia.org/wiki/Streisand_effect">Streisand effect</a>. I really had no idea some dude had started cracking the system&#8230; nor any interest in it. Now I know, and now care. The Sony decision was quickly met by a promise to fix <a href="http://geohotps3.blogspot.com/2010/03/dont-update.html">an alternate firmware version</a> which could be used without disabling the feature:</p>
<blockquote><p>Hacking isn&#8217;t about getting what you didn&#8217;t pay for, it&#8217;s about making  sure you do get what you did. And this is about more than this  feature right now. It&#8217;s about whether these companies have the right to  take away advertised features from a product you purchased.</p></blockquote>
<p><strong>By doing this, Sony puts a big spotlight on hacking the console, essentially starting an arms race &#8212; one it is virtually guaranteed to lose</strong>. Until now, the homebrew community has had no reason whatsoever to try to crack the PS3. Now they do, and probably will fairly quickly. I think it&#8217;s likely that when it happens, Sony will end up having helped hasten the day when piracy appears on the PS3, in its flailing attempt to prevent it.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2919823884810618";
/* Links */
google_ad_slot = "5892302561";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/forced-downgrades/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Game Developers are Better Than Everyone Else?</title>
		<link>http://www.entertainingcode.com/archives/game-developers-are-better-than-everyone-else/</link>
		<comments>http://www.entertainingcode.com/archives/game-developers-are-better-than-everyone-else/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 14:45:33 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Dead Space 2]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=1148</guid>
		<description><![CDATA[In a post over on gamasutra, Brandon Sheffield argues t [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.gamasutra.com/view/news/27733/Opinion_We_Should_Never_Ask_Fans_To_Design_A_Kill.php">a post over on gamasutra</a>, Brandon Sheffield argues that the Dead Space campaign &#8220;<a href="http://www.facebook.com/deadspace?v=app_4949752878">design a kill</a>&#8221; is a <em>very regressive thing for our industry</em>:</p>
<blockquote><p>I don’t believe we should shy away from violence in games – violence is a  part of life, and can make for very interesting scenarios in games. And  it’s no secret that a large majority of fun video games are based on  conflict, much of which is combative. But I also believe that asking  fans to think <em>as hard as they can</em> about an innovative way to kill  someone is a very regressive thing for our industry.</p>
<p>Just think for a second about what EA is actually asking people to do.  Yes, this is what many of us do every day – there are those of us who  design combat and combat scenarios for a living. But asking fans to do  it is just too much.</p></blockquote>
<p>I&#8217;m not sure what he&#8217;s trying to get at here. There is pretty much two options: either game devs are much better than everyone else, or game devs are horrible people. Neither option seems very reasonable to me.</p>
<p>So why can&#8217;t our fans do what we do all day? Is it because as game developers, we are much better than everyone else, and can thus stand the moral strain of thinking about how to dismember humanoid monstrosities all day, without being irreparably damaged by the ordeal?</p>
<p>Or is it the opposite? Are we damaged people, horribly affected by the thoughts on monstrosity dismemberment, so bad that we should take care to shield others from the horrible things we go through daily to bring the public these sinful products?</p>
<p><strong>Neither option really makes sense. Sheffield argues out of the old moral high ground that game violence would somehow damage people, and should be censored. </strong>We are talking about a rated game, for adults, not a kids game &#8212; so this is not about damaging the fragile world view of children.</p>
<p><strong>Honestly, do you really think that asking someone &#8220;think of ways a fictional character could attack, dismember and kill a monstrous humanoid&#8221; will have any kind of affect of them that playing the game in question wouldn&#8217;t?</strong> That is somehow an idea that using the human imagination could be bad for you.</p>
<p>To me, nothing could be further from the truth. The human imagination is a beautiful thing &#8212; it creates all culture and all our progress.</p>
<p><a href="http://www.flickr.com/photos/gamerscore/2943168278/"><img class="aligncenter size-medium wp-image-1152" title="Dead Space 2" src="http://www.entertainingcode.com/wp-content/uploads/2010/03/deadspace-300x168.jpg" alt="" width="300" height="168" /></a></p>
<p>Get off the &#8220;games are bad for you&#8221; horse. No one on this side of the 1980s would argue that the violence in a movie causes people to go on murderous rampages. Would asking someone to design a kill for a movie be as bad? I somehow doubt it.</p>
<p>What about an even more imaginative media, like books? Books are highly based in the communication of imagination between author and reader. We are asked &#8220;imagine this&#8221;, when we read descriptions of events in a book. But somehow I don&#8217;t think the &#8220;write a gruesome description of a brutal murder&#8221; competition would come under any flack.</p>
<p><strong>There are many things that are wrong with our society, which lead people to do nasty things to others. Taking out your aggressions on characters in a computer game instead of reality is not one of them. Imagining new ways to kill computer game monsters is certainly not one either.</strong></p>
<p>I&#8217;m not much for dismemberment and blood splatter in games myself &#8212; I just don&#8217;t think it adds much. But I&#8217;ll happily let other grown up individuals make their decisions for themselves on what they&#8217;d like to play &#8212; or imagine.</p>
<p>And if you&#8217;re going to argue that games are bad, please do so outright, don&#8217;t try to hide it behind saying that playing games is fine, but thinking about them isn&#8217;t.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2919823884810618";
/* Links */
google_ad_slot = "5892302561";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '409';
var flattr_url = 'http://www.entertainingcode.com';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'Entertaining Code';
var flattr_dsc = 'Coding and the games industry';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/game-developers-are-better-than-everyone-else/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Game Resales and Project $10</title>
		<link>http://www.entertainingcode.com/archives/game-resales-and-project-10/</link>
		<comments>http://www.entertainingcode.com/archives/game-resales-and-project-10/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 04:21:56 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Piracy]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=1078</guid>
		<description><![CDATA[I'm slowly bouncing back from a period of incredibly ha [...]]]></description>
			<content:encoded><![CDATA[<p><em>I&#8217;m slowly bouncing back from a period of incredibly hard work, followed by a complete disconnect and resting period. I should hopefully be back to posting regularly again now that the game has gone gold and we&#8217;re moving on to the next project. I still have some emails in my backlog of things to reply to &#8212; if you&#8217;ve been waiting for an answer, I&#8217;m sorry about the delay.</em></p>
<p>Anyway, retailers have <a href="http://www.gamesindustry.biz/articles/project-ten-dollar-will-alienate-consumers-warns-retail">spoken out</a> against the so called &#8220;Project $10&#8243;, saying it will cause consumer rage:</p>
<blockquote><p>&#8220;The person you&#8217;re pissing off the most is the consumer,&#8221; McCabe told <em><a href="http://gamesindustry.biz/" target="_blank">GamesIndustry.biz</a></em>. &#8220;This affects [them] directly &#8211; they pay the same amount of money and yet the resale value is much reduced. From a retailer&#8217;s point of view, they&#8217;ll just readjust [the price] bearing in mind you have to buy the voucher.&#8221;</p></blockquote>
<p>This is an interesting development. For those who aren&#8217;t familiar with the concept, the $10 project essentially puts a code in the box to unlock additional content online for the game. The code can only be used once, which means that buying the game new has additional value over buying the game used.</p>
<p>Consumers who buy a used copy can still choose to buy the online content, but for a fee (one would imagine $10, considering the name of the &#8220;project&#8221;, but I think it&#8217;s actually $15 for the current titles). It&#8217;s been done with a few recent games including <a href="http://www.amazon.com/gp/product/B001VJ4DHK?ie=UTF8&amp;tag=entercode-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B001VJ4DHK">Mass Effect 2</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=entercode-20&amp;l=as2&amp;o=1&amp;a=B001VJ4DHK" border="0" alt="" width="1" height="1" /> this far (awesome game by the way, I&#8217;ve been having a blast with it), and will be done for future titles, including <a href="http://www.amazon.com/gp/product/B002NIP2SM?ie=UTF8&amp;tag=entercode-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B002NIP2SM">Battlefield: Bad Company 2</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=entercode-20&amp;l=as2&amp;o=1&amp;a=B002NIP2SM" border="0" alt="" width="1" height="1" />.</p>
<blockquote><p>&#8220;EA&#8217;s project $10 move is aiming to stifle pre owned games sales, but what they don&#8217;t factor in is the damage this could have for them in relation to new sales,&#8221; said Day.</p></blockquote>
<p>Wow, what a complete misunderstanding. This has nothing to do with publishers wanting to stop resales &#8212; it&#8217;s simply a business model where publishers can earn some money off of resales.</p>
<p>There are interesting parallels to be drawn for me, between the console and PC markets. Pre-owned games pose much of the same problem on the console market as piracy does on the PC market. The end result of both is the same: people play our games without a single bit of money ending up with the people who made the game. In the worst case, we end up paying a lot of money to keep servers online, while getting no money at all from the sale.</p>
<p>There has been a lot of whining from publishers and developers about both issues. Those of you who know <a href="http://www.entertainingcode.com/archives/the-economics-of-making-your-customers-hate-you/">my stance</a> on <a href="http://www.entertainingcode.com/archives/how-it-all-went-wrong/">piracy</a> should not be very surprised that my stance on pre-owned games is very similar. Whining about it or blaming people for it is not going to help &#8212; yet you cannot deny that the fenomenon in itself is causing major problems for publishers and developers (just as piracy is) &#8212; there is no getting around that.</p>
<p><strong>However, trying to &#8220;clamp down&#8221; on used games sales or piracy is pointless. Piracy is illegal, but unenforcably so which means that it doesn&#8217;t really matter. Resale is simply a business choice. While you might think that it is a bad business choice and that retailers would be better off long-term by staying clear of business practices that will kill their providers, they are making a ton of money short-term. There is no way they wouldn&#8217;t fall for that temptation, and in the end, any business choice that works for them is a valid one. Whining or arguing about it isn&#8217;t going to help.<br />
</strong></p>
<p>This causes an interesting problem for publishers. One way would be to <a href="http://www.entertainingcode.com/archives/new-entertaining-times/">move to direct online sales only</a>, but this excludes large chunks of consumers who can&#8217;t download large games or who aren&#8217;t connected at all. Another version would be to require online activation and to bind the game to a certain console or live/psn account, which simply wouldn&#8217;t be fair to the consumer and would cause a never-ending stream of problems and well-earned gamer hatred.</p>
<p>The middle ground, then, is to sell a full game to people through retail, but to provide extra value with unlockable content to people who buy the product new. It should come as no surprise that retailers dislike this &#8212; it will certainly cut a chunk of profitability out of the resale market. It will lower the value of a game for resale, which means it&#8217;ll be worth less to trade in. Will this annoy some customers? I&#8217;m sure it will.</p>
<p><a href="http://www.tomsguide.com/us/ea-project-ten-dollars-dlc,news-5797.html">Many people</a> seem to be taking this as the publisher wanting to be paid twice, which I think comes back as the default gamer response to anything developers or publishers do to earn money being horrible and bad. It sometimes gets to me to see this kind of attitude with gamers. We can&#8217;t make games as a charity, and making these games on bleeding edge tech is extremely hard work, and <a href="http://www.entertainingcode.com/archives/making-games/">the people</a> in the industry are <a href="http://www.entertainingcode.com/archives/getting-into-games-a-follow-up/">incredibly dedicated</a> to their art.</p>
<p>The other side of things is that buying the game used will be cheaper, creating a much better &#8220;try before you buy&#8221; environment, where you can potentially buy the game used and try it. If you like it, you can buy the DLC that you would&#8217;ve got from the new version. This is sort of a win-win situation for the publisher and the consumer, but of course not that great for retailers.</p>
<p>To publishers, this is the option that provides the best value to consumers while moving to a new business model that allows us to actually start making proper money from games again, which could halt the current trend of studios closing and developers being fired.</p>
<p><strong>I&#8217;m sorry if that takes money out of retailers pockets, but I really do think that the talented people who sweat blood making these games deserve the money more than people who only know how to push people to buy used instead of new.</strong> It may have been a good dream for you, but it was still a dream and now it&#8217;s time to wake up.</p>
<p>And yeah, retailers claiming to stand up for the consumer is nothing new. But just as with <a href="http://www.entertainingcode.com/archives/standing-in-the-way-of-culture/">music labels claiming to speak for artists</a>, they are simply middle men that are slowly losing their value.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2919823884810618";
/* Links */
google_ad_slot = "5892302561";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/game-resales-and-project-10/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>What&#8217;s a Good Final Year Project?</title>
		<link>http://www.entertainingcode.com/archives/whats-a-good-final-year-project/</link>
		<comments>http://www.entertainingcode.com/archives/whats-a-good-final-year-project/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 20:20:43 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Learning]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=861</guid>
		<description><![CDATA[Here's a question from the mailbag, coming from a stude [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a question from the mailbag, coming from a student doing games programming at a university, gearing up for his final-year project:</p>
<blockquote><p>The degree I&#8217;m doing currently has been very much centered around graphical programming, aswell as using various programming languages to bolster our CV&#8217;s I would imagine. We&#8217;ve not really touched on networking, or AI at all. Our main language in graphical programming has been OpenGL too, we&#8217;ve dabbled with DirectX a little, mostly managed directX with XNA.</p>
<p>As a programmer already in the industry, could you give me any advice on the type, and level of project I should aim for, for it to be a suitable demo project to show to prospective employers? It&#8217;s difficult enough as students to find our way into the games industry; if we don&#8217;t know what employers <em>want,</em> or what is considered worthy in the eyes of the employer, it lowers our odds tenfold.</p></blockquote>
<p>In a way, the answer to the question depends on what kind of position you&#8217;re trying for. I&#8217;ll try to answer with regards to as many positions as I know.</p>
<p>For starters, is graphics programming what you want to be doing? If it is, things like what graphics APIs you know become a lot more important. From what I know, most games studios that do windows game development have gravitated towards DirectX. With that in mind, having done a large(ish) project on DirectX could definitely be a plus. If all other things are equal, I&#8217;d definitely go for learning DirectX.</p>
<p>Not having experience with networking or AI isn&#8217;t all that much of an issue, unless you imagine going specifically for a networking or AI programming position (and even then, it&#8217;s more of a bonus than a requirement). One thing is clear however&#8230; if you&#8217;re looking to get into professional development at a large studio, you should be going for C++.</p>
<p>Now if we look past the technical requirements, there are a few things that can be said about such a project in itself. What you get from a good project is a nice entry into your demo reel &#8212; something to show off. This has a few implications, but most importantly something I&#8217;ve touched on before, in <a href="http://www.entertainingcode.com/archives/a-spectacular-failure/">A Spectacular Failure</a>: your project is going to be judged on emotional first impressions, not how technologically advanced it is or how nicely coded it is.</p>
<p>Your number one enemy is over-scoping the project, ending up with something that does lots of things, but does none of them in a great way. Come up with a good core gameplay for the game, and then polish it to a great shine. Fix all those annoying glitches and bugs, make sure everything looks as impressive as possible. It doesn&#8217;t need to be rocket science, as long as it&#8217;s well executed. In the end, what a games studio is looking for is a programmer who knows how to finish projects in a good way.</p>
<p>That doesn&#8217;t mean your project should be Space Invaders, but in general trying for something too big is more of a problem than overdoing something too small.</p>
<p>Finally, as an entry on your demo reel, make sure you make the game available in an easy manner. Have a page with plenty of screen shots, videos and preferably the game itself easily downloadable. Your coding ability will definitely be tested with some form of work sample as you apply to studios, so the code itself being available is less important. Reading code is hard, so <a href="http://www.entertainingcode.com/archives/trying-the-open-source-shortcut/">it&#8217;s unlikely that someone will have time to read yours</a>. However, having a finished game to show off is worth a lot, as is the experience of going through all the phases in finishing a game.</p>
<p>Other posts you may find interesting, relating to getting into the games industry and getting started with games:</p>
<ul>
<li><a href="http://www.entertainingcode.com/archives/getting-into-games-a-follow-up/">Getting Into Games</a></li>
<li><a href="http://www.entertainingcode.com/archives/an-exceptionally-stupid-idea/">An Exceptionally Stupid Idea</a></li>
<li><a href="http://www.entertainingcode.com/archives/lets-make-a-game-engine/">Let&#8217;s Make a Game Engine</a></li>
</ul>
<p></p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '409';
var flattr_url = 'http://www.entertainingcode.com';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'Entertaining Code';
var flattr_dsc = 'Coding and the games industry';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/whats-a-good-final-year-project/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Getting Into Games &#8212; A Follow-up</title>
		<link>http://www.entertainingcode.com/archives/getting-into-games-a-follow-up/</link>
		<comments>http://www.entertainingcode.com/archives/getting-into-games-a-follow-up/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 16:14:12 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=753</guid>
		<description><![CDATA[My post from a week or so ago about the differences bet [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.entertainingcode.com/archives/making-games/">My post from a week or so ago</a> about the differences between working as a software engineer in a games studio and in other places generated a fair number of interesting comments and questions, both here and at various syndication sites. In this post I will try to answer and comment on the most common and interesting ones.</p>
<h3>Working at a Games Studio</h3>
<p>Getting started with something I intentionally left out:</p>
<blockquote><p><em>Low pay. Good luck trying to buy a house.</em></p></blockquote>
<p>There&#8217;s a well known discrepancy between salary in your average programming gig and your average games programming gig. I left it out of the original post because of two factors:</p>
<ol>
<li>The difference is highly overstated. Salary varies much more within each class of work than between the two. While it is true I could probably get more money by switching to another job, the same is true for many others, and the difference wouldn&#8217;t be worth it to me.</li>
<li>It&#8217;s your choice. I expect you to make a well-informed choice on taking <em>any </em>job when it comes to what you get paid. Don&#8217;t just take any job because someone told you you get paid a lot in a certain business &#8212; make sure you get what you&#8217;re worth.</li>
</ol>
<p>A second issue from the same commenter (and several others):</p>
<blockquote><p><em>Yes, you have to come to work on Saturday and Sunday.</em></p></blockquote>
<p>This is an issue in the industry, and I&#8217;ve seen pretty bad cases of it. Since I started coding games, the working conditions have improved by far though &#8212; and this doesn&#8217;t only seem to be my situation but applies to many others I&#8217;ve spoken to at other studios (mainly within EA though &#8212; would be happy to hear the perspective of other people). At the moment, from where I&#8217;m sitting, things are looking pretty good.</p>
<p>I&#8217;m not saying crunches don&#8217;t happen, I&#8217;m just saying they&#8217;re reasonably few, have a good purpose and focused time span, and include a time off compensation after the deadline has been passed.</p>
<p>The most problematic part of this is that it&#8217;s extremely hard to figure out if this applies to any given studio without actually working there or knowing someone who does.</p>
<blockquote><p><em>I wouldn&#8217;t want to be the guy working on the next Madden game</em></p></blockquote>
<p>Well, I actually know <a href="http://twitter.com/ian_cummings">the guy working on the next Madden game</a> and he is incredibly dedicated and seemed to love what he was working with last time I saw him. About the comment, he told me &#8220;Well we don&#8217;t want that guy anyway,&#8221; which is very true &#8212; the reason there is a Madden game every year is because there are lots of people interested in a new Madden game every year, and among that crowd there will certainly be people who are interested enough to want to work on the game.</p>
<p>It&#8217;s funny, because I sometimes hear the exact opposite of this comment at work. &#8220;It&#8217;d be so awesome to work on an iterative title where you just got to improve things and do all those cool changes that we have to cut&#8221;. Working on Madden is a pretty sweet place to be if you love sports games.</p>
<p>People sometimes seem to think that innovation only means new game franchise. There are lots of interesting developments and innovations within franchises, even within a &#8220;plain old sequel&#8221;, and working on one of those titles avoids one of the great drawbacks of the games industry: half the time you&#8217;re semi-panicking because your game engine isn&#8217;t in a shippable state and there&#8217;s a whole game team trying to use it to create a game.</p>
<p>That way, working on Battlefield: Bad Company 2 is nicer than working with the first game: the same chance for innovation, but less problems with others not being able to innovate due to the state of the code.</p>
<h3>Getting started</h3>
<p>A question that keeps popping up is any version on this:</p>
<blockquote><p><em>I’m a frustrated web developer who’s always wanted to make the move into game development, but have yet to find the time to train myself and start shifting my skills over. </em></p>
<p><em>Any tips for someone looking to start out in that direction?</em></p></blockquote>
<p>I&#8217;ve touched on this subject before, in <a href="http://www.entertainingcode.com/archives/an-exceptionally-stupid-idea/">An Exceptionally Stupid Idea</a>, which tells the story of what I did. That post may be best applicable if you&#8217;re still in college, but there is a certain truth to it regardless of where you are. Time is money however, and with anything in life  you&#8217;ll need to do investments&#8230; so seeing where you could free up time is a first step.</p>
<p>What do do with the time once you have it? Well, the games industry is looking for a few things:</p>
<ul>
<li>Skilled programmers</li>
<li>&#8230; who know the language</li>
<li>&#8230; and with some experience of games</li>
</ul>
<p>The third is actually somewhat optional, though most recruiters would never admit that. Becoming a good programmer is a hard topic to cover &#8212; more than half the stuff on this blog is already devoted to that, so I&#8217;m not going to comment further on that one.</p>
<p>Chances are slim you&#8217;ll be coding anything but C++ if you code games, so if you&#8217;re not already very familiar with the language, you should get familiar with it. It&#8217;s often said that good programmers learn new languages quickly, and to a certain extent I agree with this&#8230; but if the problem is complicated enough, you need to be a language expert.</p>
<p>Finally, getting some form of portfolio is good, even if it&#8217;s &#8220;just a side project&#8221;. That could also be a good project to use as practice if you&#8217;re not too familiar with the language. Further, it helps if you&#8217;re a gamer and stay on top of what&#8217;s going on in the industry.</p>
<p>This actually ties into another comment, which was the most compact piece of information:</p>
<blockquote><p><em>C++</em></p></blockquote>
<p>If you dislike C++, turn elsewhere. I personally think it&#8217;s an extremely capable language once you learn to harness it properly. It is dangerous without the safety equipment though, and sadly some of that equipment doesn&#8217;t work with games.</p>
<p>Other languages are starting to appear when it comes to games coding. I&#8217;ve heard examples of LUA, java and C# being used as scripting languages, and of course there&#8217;s <a href="http://en.wikipedia.org/wiki/UnrealScript">UnrealScript</a>. These can be extremely beneficial for iteration times and such, but the grunt of the software is still going to be C++.</p>
<p><strong>Update</strong>: I should also mention another old post of mine about this: <a href="http://www.entertainingcode.com/archives/lets-make-a-game-engine/">Let&#8217;s Make a Game Engine!</a></p>
<h3>Games Programming</h3>
<p>I tried to avoid getting into the details of hardware and the coding that goes with it in the previous post, since I love talking about these sort of things and I didn&#8217;t want it to become a rant but hey, you asked!</p>
<blockquote><p><em>Console hardware (I&#8217;m looking at you, PS3) is made for pretty graphics demos, not simulation. If you work on the AI or physics, be prepared to focus your energy on low level optimisation and cache misses, because your AI code is never going to be any more sophisticated than a state machine.</em></p></blockquote>
<p>Well&#8230; I&#8217;m the lead AI coder on Frostbite, and while there are lots of things to be said about the Frostbite AI, &#8220;no more sophisticated than a state machine&#8221; is not one of them. I agree, some things (especially physics queries) are expensive on the hardware, but that simply means you need to re-think how you do stuff.</p>
<p>SPU code is a vastly different beast from your average code. There are some bad programming habits that can completely destroy your code for SPUs&#8230; and among those bad habits are the ones that would lead you to get stuck on low-level optimizations. Once you learn how it works, there is an incredible amount of power in the PS3. I&#8217;d dare to say it&#8217;s still relatively untapped, and that as time passes we&#8217;ll see more sophisticated uses of it.</p>
<p>The limitations of console hardware is <em>different</em>. That doesn&#8217;t mean you can&#8217;t implement physics or AI, it just means maybe you&#8217;ve got to challenge your assumptions about <em>how</em> you implement physics and AI.</p>
<blockquote><p><em>I guess the Parallelism approaches are a little different in both worlds. I bet you gamedev guys have been working with Data Parallelism for a while (i.e: programming the Playstation2 Vector units. I don’t think life is getting any easier on you guys with all those Cell SPEs to squeeze!).</em></p>
<p><em> In the enterprisey side, task parallelism is an emerging topic with languages like Erlang, Clojure and Haskell offering different abstractions for spreading computations over different hardware threads/cores.</em></p></blockquote>
<p>The vectorization units of the PS2 are a quite limited way to do data-parallel work, so I disagree with you here &#8212; with the SPUs on the PS3, it actually is easier, because it&#8217;s less limited in what you can do with them. Vectorization units and other primitive forms of data-parallelism often work in lockstep, whereas the PS3 actually has a bunch of individual, highly capable although slightly quirky processors.</p>
<p>Games are full of data-parallelisable problems as well. Rendering is the classic example &#8212; the reason GPUs have been such a hot development the last few years is that rendering lends itself so well to parallelism. But there are many other things as well &#8212; the aforementioned AI is ideal in some ways, as it tends to be made up of lots of separate processes for different actors or entities.</p>
<p>Task parallelism is also something that can be utilized to a great degree in games since there are simply so many orthogonal tasks to complete. Update the UI, do physics simulations, calculate character skinning, play audio&#8230; I can&#8217;t go into details on that, but we do a whole lot of it in Frostbite. Sadly, you do end up needing to care about many of the details that using an abstracted language would let you ignore though.</p>
<p>Still, it&#8217;s one of the most exciting aspects of coding for me, since games are one of those applications that can actually use all the power of parallel computers.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/getting-into-games-a-follow-up/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Making Games</title>
		<link>http://www.entertainingcode.com/archives/making-games/</link>
		<comments>http://www.entertainingcode.com/archives/making-games/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 23:55:45 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=722</guid>
		<description><![CDATA[I hear from programmers every now and then who are cons [...]]]></description>
			<content:encoded><![CDATA[<p>I hear from programmers every now and then who are considering trying to get into the games industry. Our projects are strange beasts that are similar to other software projects in some ways, yet vastly different in other ways. Still, if you look at it from outside, most of these differences will be hard to spot.</p>
<p>With this post, I will try to list what I see as the biggest differences between working on a game and working on a different kind of software project. If you have any questions related to it, please post them as comments and I&#8217;ll do a follow-up round.</p>
<h3>The Passion and Dedication</h3>
<p>It sounds like a cliché, but games are made by mostly gamers. In all the teams I&#8217;ve worked with spanning maybe a hundred, there&#8217;s only a few people that aren&#8217;t absolutely passionate about games, and completely dedicated to making kick-ass entertainment.</p>
<p>The enterprise coders I&#8217;ve worked with pretty much fall into two categories: the day job coders who don&#8217;t care much and the hackers that appreciate technical challenges. As you move into games, not only does just about everyone fall into the second category, but nearly everyone is also excited about the games themselves, regardless of the technical challenges involved.</p>
<p>If you&#8217;re looking for a place to work where your colleagues will be really cool, skilled people with a passion, then the games industry is where to look.</p>
<p>On a cynical note related to that, the abuse of this passion and dedication is what has given the games industry something of a bad reputation (and a well deserved one too). My impression is that working conditions have improved quite a lot across the board, even if there are still the occasional horror stories. If I were to give one piece of actual advice, it&#8217;d be to be rather thorough in your background checks on companies.</p>
<h3>Creativity</h3>
<p>Game developers live off creativity. Even the most simple churn-out-sequels factory will attract highly creative people, and studios will tend to cater to creativity to a much higher degree than most other software development companies.</p>
<p>If you&#8217;re highly creative, you will probably find it easy to fit in. My experience is that creative suggestions are almost universally appreciated regardless of source.</p>
<h3>Cross-discipline, Bleeding Edge Development</h3>
<p>Games teams are made up of a number of disciplines that vary depending on what type of game you&#8217;re making, but generally speaking you&#8217;ll at least have Designers, Graphical Artists, Animators, Sound Designers and Programmers. Our projects have Mission Designers, Environment Artists, Effects Designers and other disciplines as well.</p>
<p>In a way, this is no different than many other types projects where some end-users create some of the data for the system, but there is a major difference in the fact that the hardware platforms are either consoles or PCs with specs so high that they don&#8217;t even exist yet. The coders on the team will be creating a game framework, which is then populated with different kinds of content to produce the game.</p>
<p>The problem with this is that they&#8217;re using the software tools you&#8217;re building (like the editor and data processing pipeline) to create the game while you&#8217;re still trying to build the tools, only to run it in a game engine that is also not done yet.</p>
<p>It&#8217;s a bit like trying to produce a business application while part of your team is working on creating the source code editor you must use, and a different part of the team is building your compiler. In some magical way, the components must all mesh together so that not only are the tools done when it&#8217;s time to ship the product, but that content creators have time to do something useful with them as well.</p>
<p>This creates an extra layer of complexity to the projects that I haven&#8217;t seen anywhere else. Inter-discipline dependencies between disciplines that work in very different manners can cause common project management techniques for software development to break down, because most of the team isn&#8217;t developing software.</p>
<h3>Performance Focus and Hardware Platforms</h3>
<p>From a technical point of view, there is a heavy focus on code performance. This creates a different kind of environment, where some modern programming techniques are simply too expensive to use. It also means you tend to get good at optimizations after a while.</p>
<p>The hardware we run on is increasingly becoming paralell. Using all of the power in the PS3, for instance, requires a fairly well developed parallelism, forcing the shift from single-threaded to multi-threaded coding onto game programming long before most applications need to care all that much.</p>
<p>(Note that my view on the state of the industry is rather limited here. DICE is ahead with the Frostbite engine on current console tech, some other engines are hopelessly behind, but it&#8217;s always hard to tell what others have in development.)</p>
<p>The hardware platforms themselves can sometimes be immature and cause problems when you have to jump through hoops to get things working (simple example: graphics driver bugs).</p>
<p>The platforms themselves also impose other restrictions on your code, like the low memory cap of current generation consoles and extreme penalties for cache misses and branching.</p>
<h3>Playing Games at Work (!)</h3>
<p>I couldn&#8217;t leave that out, could I? Yes, we playtest our games at work. They&#8217;re a lot of fun, most of the time, so getting to play awesome games before anyone else is quite a perk. To be completely honest I must admit that there are times when it&#8217;s not much fun at all&#8230; but they are quite uncommon. And hey&#8230; you get to shoot your boss.</p>
<p></p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '409';
var flattr_url = 'http://www.entertainingcode.com';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'Entertaining Code';
var flattr_dsc = 'Coding and the games industry';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/making-games/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A Tour of the Games Studio</title>
		<link>http://www.entertainingcode.com/archives/a-tour-of-the-games-studio/</link>
		<comments>http://www.entertainingcode.com/archives/a-tour-of-the-games-studio/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 17:31:33 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[DICE]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=698</guid>
		<description><![CDATA[There's a hole slew of misconceptions and weird comment [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a hole slew of misconceptions and weird comments that inevitably go around as soon as any large game studio announces a game, or releases a game, or&#8230; well, just about anything else. So with this post, I&#8217;d like to welcome you to a small sightseeing tour of how a games studio works, on the inside.</p>
<p>I hope to give you a chance to see how a games studio works &#8212; maybe it&#8217;ll create better understanding of what it is you&#8217;re saying when you chatter around forums about the latest greatest game from some studio, or maybe it even gives you valuable insight if you&#8217;re looking to get into the games industry.</p>
<h3>The Myth of the A-Team and the B-Team</h3>
<div id="attachment_701" class="wp-caption alignright" style="width: 310px"><a href="http://www.entertainingcode.com/wp-content/uploads/2009/06/dice-entrance.jpg"><img class="size-medium wp-image-701" title="dice-entrance" src="http://www.entertainingcode.com/wp-content/uploads/2009/06/dice-entrance-300x218.jpg" alt="Somewhere in the DICE Office" width="300" height="218" /></a><p class="wp-caption-text">Somewhere in the DICE Office</p></div>
<p>As soon as a game announcement turns up, knowing fanboys will appear on all forums around, claiming grand things like <em>&#8220;Wow, this sure is great. Now we know DICE has the A-team is working on this while the B-team was doing (other title here).&#8221; </em>Substitute with &#8220;good team&#8221; and &#8220;bad team&#8221; or whatever you will.</p>
<p>The reality is not only that there isn&#8217;t any first or second-rate teams, but that the teams themselves don&#8217;t really exist as a concept. People move between teams constantly &#8212; some project doesn&#8217;t need any more audio work now, so the sound designers move over to the next one. Meanwhile, the programmers are fixing the remaining bugs and getting set to ship the game. Most of the artists left the project before that.</p>
<p>That means that there&#8217;s rarely a situation where a team in a large studio makes one title and then immediately goes on to make another one &#8212; more likely the team will split up and head to other projects. Some may jump on to help another project get the final bugs squashed, others may jump on to prototype a new game.</p>
<h3>The Life of a Game Project</h3>
<p>That leads us to the life cycle of a games project, because another misconception is that the team making a game will remain the same group of people all the way through.</p>
<p>A project generally starts out small. A few designers basically start up by spending some time trying to answer the simple question of &#8220;What game do we want to make?&#8221; Sometimes this is more straightforward than other times &#8212; but more often than not it is somewhat complicated and difficult. Even sequels usually start out in a state of &#8220;don&#8217;t really know what this is about&#8221;.</p>
<p>There&#8217;s this nice thought many people have about games as having this brilliant idea first, and then just making the game. This never happens. The project will probably get to some kind of rough concept of what they want to do, what kind of technology platform to use, what setting, and so on&#8230; and then go into pre-production.</p>
<p>The pre-production phase of a project is when the project starts taking on more people. Coders join, artists join, and most probably more designers join. The mission now becomes trying to prototype, test and prove all the different aspects of the game &#8212; figure out the core game mechanics, make art target concept environments, make sure all the tools needed work properly. The goal is usually to build a small section of the game as a proof of concept.</p>
<p>The project has probably been running for at least six months by the time it finishes pre-production and heads into production. It staffs up even more, and sets about building all the levels, missions, features and content needed for the complete game. The amount of time it takes to do this varies wildly depending on the game.</p>
<p>Still, through production concepts are refined. As playtests are done, the developers think of new ways to improve the game, and the new ideas are worked into the concept.</p>
<h3>What You See Is All There Is?</h3>
<p>By the time you hear of a project, it&#8217;ll generally be in production. Conceptual prototyping is relatively cheap, so studios can afford doing concepts for games as a test, and if they don&#8217;t turn out well then cancel the project. This means that at any time, your favourite games studios out there are probably doing cool stuff you have no clue about.</p>
<p>This way of doing things also means most views on the state of a game are somewhat flawed. By the time a game hits beta and you get to see it, it&#8217;s virtually completed and only bug fixing remains. Comments like &#8220;well this is an early beta, they&#8217;ll change lots of stuff&#8221; are quite common and somewhat funny to see &#8212; very few game changes will be done once a game is in beta.</p>
<p>That doesn&#8217;t mean quality doesn&#8217;t increase though &#8212; much of the quality you see in a game comes from the actual fixing of bugs, not the adding of features.</p>
<h3>&#8220;Not that the devs are ever gonna care&#8221;</h3>
<p>Gamers tend to show a pretty large dose of resentment towards game developers. In general, what you see is an announcement met with awe and comments like &#8220;this&#8217;ll be the most awesome ever&#8221;. This attitude then changes over time, until at release, the comments tend to sound more like &#8220;they messed it up&#8221;.</p>
<p>A strange aspect of this is that many gamers seem to be deep into the belief that game devs don&#8217;t care about them, about the games they make, or about anything at all other than earning a quick buck. This is strange because the games industry is not the place to go to make the good money while slacking &#8212; it&#8217;s generally a grind of long hours of dedicated work and not as well paid as other comparable areas (making business apps is definitely much more lucrative for a programmer).</p>
<p>Yet people still do it? Why? Because these people are gamers and love what they do. Maybe somewhere there are big-name execs that don&#8217;t care, but I haven&#8217;t met them yet. I&#8217;ve only met the EA execs who beat half the dev team on Battlefield: Bad Company (though dogtagging your boss is sweet indeed).</p>
<p>That&#8217;s all part of what makes the games industry such a great place to be if you love games &#8212; not only do you get to work with games, you get to work with gamers.</p>
<p>Yet most people seem to think that game developers isolate themselves in a small glass jar somewhere, and start ignoring the internet as soon as their project becomes public. Nearly every forum or blog post about a game has a bitter comment about &#8220;no chance the devs will bother to read this&#8221;.</p>
<p>Guess what &#8212; we do read stuff on the &#8216;net. Not only because we&#8217;re gamers but because we care deeply about making the best game possible. So why don&#8217;t we answer? Well, I think you could imagine what&#8217;d happen. Half the people would call you a liar, and the rest would bombard you with even more. There&#8217;s no way for a game developer to answer questions or opinions on a forum without immediately being subjected to at least twice the amount of new questions or opinions. We&#8217;d simply run out of time.</p>
<p>And well&#8230; at the end of the day, we have games to make.</p>
<p>For my own part, I&#8217;m more connected than most. Toss me a line on <a href="http://twitter.com/slicedlime">twitter</a> if you have a question.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/a-tour-of-the-games-studio/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>A Spectacular Failure</title>
		<link>http://www.entertainingcode.com/archives/a-spectacular-failure/</link>
		<comments>http://www.entertainingcode.com/archives/a-spectacular-failure/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 19:45:12 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=244</guid>
		<description><![CDATA[Back in the day I worked with the startup independent d [...]]]></description>
			<content:encoded><![CDATA[<p>Back in the day I worked with the startup independent developer Limebird Entertainment, we entered into a few game development competitions. You know the kind &#8212; make a game, show it off together with lots of others and then a group of people select the best ones for some prize.</p>
<p>Usually, the competitions themselves were not that exciting, but you know you take what you can get in terms of exposure and if you&#8217;re making a game anyway, then why not enter it into the competition? So we did.</p>
<p>The immediate result of this is that <strong>we now had a deadline</strong>. Deadlines can be incredibly healthy things because they force you to pull together and produce something solid. It doesn&#8217;t matter how many subsystems you have in place or how brilliant they are unless you&#8217;ve got something you can actually <a href="http://www.entertainingcode.com/archives/trying-the-open-source-shortcut/">show off to impress people</a>.</p>
<p>Another thing about deadlines is that you&#8217;re always behind for them. We were no exception here&#8230; I&#8217;ve done some crazy crunching at my current job, but for a single crunch, the one we did on Velox for that competition must be the absolute worst kind of crazy. The setup of the competition that year was that you bring your machine in (unless you liked the ones they had), and you show off the game on a big projector screen.</p>
<p><img class="alignright size-full wp-image-500" title="velox-racer" src="http://www.entertainingcode.com/wp-content/uploads/2009/04/velox-racer.jpg" alt="velox-racer" width="200" height="100" />We worked incredibly long hours the week leading up to that deadline. The game was coming together really well, but we were working ourselves dead. We didn&#8217;t really have all the stuff in that we wanted, however, and the deadline loomed. We worked all through the night to the presentation day, and then finally packed up our demo machine and left for the presentation.</p>
<p>At this time, I&#8217;d been awake and at work on this thing for about 30 hours. I was dead tired, and I&#8217;m sure my colleague wasn&#8217;t much better off. I was running on fumes and Coca-Cola.</p>
<p>Anyway, we set up the game, show off our menu system, host and join a network game and fly around for a bit in the hovercraft. Really high-tech stuff for the kind of level the competition was at, but it was also pretty rough around the edges. A minimap bug led to us having a hard time finding each others, for instance. Also, not having prepared any <em>presentation</em> as such, we sort of played around for a bit and showed off most of what we had in a rather unordered manner.</p>
<p>Then I went home, slept for 4 hours or so, got up, fixed most of our major bugs, and slept for another 10 hours.</p>
<p>The competition? We lost it to a team who&#8217;s game was an un-innovative re-make of an old game and whos engine was basically a Maya file viewer that needed really top-end hardware to even run properly, despite the really simple stuff they were doing.</p>
<p><strong>So just what happened there?</strong></p>
<p><img class="alignright size-full wp-image-505" title="box_e" src="http://www.entertainingcode.com/wp-content/uploads/2009/04/box_e.jpg" alt="box_e" width="200" height="200" />The first thing to take away from this story is hidden in what happened after the demo. I slept for just a few hours, and was so conditioned to working with the game that I went back to it, even though we didn&#8217;t have a deadline anymore. But something had changed &#8212; I wasn&#8217;t dead tired anymore, so my mental clarity was much much better, which meant I could do much more good.</p>
<p>If you ever think about doing an all-nighter to hit a deadline, think again. If you&#8217;re crunching hard for long periods of time, <a href="http://www.igda.org/articles/erobinson_crunch.php">stop to think</a>, because chances are you&#8217;ve crunched so long that you now produce less in 12 hours than you normally would in 8.</p>
<p>The second question is the key to why we lost the competition: Polish and show. We failed to analyse the situation of what our target was, so instead of locking down early and polishing what we had, we forged on adding stuff to our game. If we&#8217;d come to our demo in a better shape with a presentation we&#8217;d practiced for beforehand and a polished game, we might have done a lot better. Now our high-tech stuff just looked bland next to the shiny effects of the winner-to-be (as did many other teams&#8217; high-tech stuff, by the way).</p>
<p>Whenever you&#8217;re up against a deadline and need to show off what you&#8217;re working on, take a few minutes to identify what could give you the maximum impact with the people who&#8217;ll be watching and judging your stuff. <strong>Focus on the right things</strong>.</p>
<p>And have a good night&#8217;s sleep before you go there.</p>
<p></p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '409';
var flattr_url = 'http://www.entertainingcode.com';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'Entertaining Code';
var flattr_dsc = 'Coding and the games industry';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/a-spectacular-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Economics of Making Your Customers Hate You</title>
		<link>http://www.entertainingcode.com/archives/the-economics-of-making-your-customers-hate-you/</link>
		<comments>http://www.entertainingcode.com/archives/the-economics-of-making-your-customers-hate-you/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 09:30:12 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Movies]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Piracy]]></category>
		<category><![CDATA[Society]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=472</guid>
		<description><![CDATA[The spectacular trial and marketing disaster against th [...]]]></description>
			<content:encoded><![CDATA[<p>The spectacular trial and <a href="http://www.entertainingcode.com/archives/a-trial-a-spectacle-a-marketing-disaster/">marketing disaster</a> against the Pirate Bay continued today, with the verdict of the first court (no doubt this will be appealed a few times around).</p>
<p>The three guys from the pirate bay, and their internet co-location and bandwidth provider were <a href="http://torrentfreak.com/the-pirate-bay-trial-the-verdict-090417/">sentenced to one year in prison and a total of 30 million SEK of damages</a> today. Whatever you think about the pirate bay, the sentencing of their internet provider is nothing short of incompetency from the Swedish court.</p>
<p>But let&#8217;s put that aside for a moment.</p>
<p>Let&#8217;s just look at the <strong>costs and benefits</strong>. These guys now have to pay 30M SEK for their sins of building a search engine. Let&#8217;s put that into perspective, shall we? 30M SEK is (with today&#8217;s exchange rate) €2,680,246. Contrast this with the spendings of the industry: 75M Pounds is what the record industry spends each year hunting pirates, apparently (only the record industry&#8230; who knows what the international movie associations&#8217; and games associations&#8217; and writers&#8217; associations are spending&#8230;). With today&#8217;s exchange rate, that&#8217;s €81,466,099.</p>
<p>That means it&#8217;d require 30 such spectacularly unpopular court cases against major file sharing sites won <strong>just to win back the costs spent on hunting pirates</strong>. Really, who is it that thinks this is a good idea?</p>
<p>In other news, if you&#8217;re going to pirate a game, please do it off the &#8216;net and where it wont hurt the companies that tries to support it for the people who buy games. If you <a href="http://www.gamesindustry.biz/articles/demigod-crippled-by-over-100-000-pirates">pirate a game and then try to get support for it</a>, you&#8217;re a real asshole.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/the-economics-of-making-your-customers-hate-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Exceptionally Stupid Idea</title>
		<link>http://www.entertainingcode.com/archives/an-exceptionally-stupid-idea/</link>
		<comments>http://www.entertainingcode.com/archives/an-exceptionally-stupid-idea/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 00:04:37 +0000</pubDate>
		<dc:creator>slicedlime</dc:creator>
				<category><![CDATA[The Games Industry]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.entertainingcode.com/?p=242</guid>
		<description><![CDATA[I've been asked a fair few times how to get into the ga [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been asked a fair few times how to get into the games industry. It&#8217;s one of those job sectors where there&#8217;s tons of people who want to work, but still a shortage of people due to the lack of actually qualified people. Some of this is because there&#8217;s been a lack of education, some because it&#8217;s a somewhat harsh business to be in with a high turnover. Either way, it means there should be openings, if you&#8217;re interested.</p>
<p><strong>So how do you get in?</strong></p>
<p>The answer is very dependent on what you like, and what you do. The lack of education for designers has been solved lately with game design schools popping up like mushrooms all over the place. That creates a new problem though, as some of these schools aren&#8217;t exactly viewed as top notch by game studios. If you choose to go that route, be very careful about what school you pick.</p>
<p>If you&#8217;re a programmer, however, do not go anywhere near specialized &#8220;games&#8221; schools. What you need is a regular Software Engineering / Computer Science college. Don&#8217;t make <strong>the mistake of thinking that game coding is some special form of coding</strong>, that doesn&#8217;t abide by the normal rules of code. When choosing classes, go for anything in connection to games &#8212; graphics courses are common. Take anything they have with low-level programming and hardware. And take at least one programming project course.</p>
<p>Regardless of what education you end up in and what field you&#8217;re in, I have two generic pieces of advice that should apply to just about everyone:</p>
<ol>
<li>Have a side project.</li>
<li>Put your heart into it.</li>
</ol>
<p>I&#8217;m not going to claim this is the only way you can do it &#8212; but <strong>I&#8217;ll offer you a way that&#8217;s very effective</strong> if you&#8217;ve got the energy to stick to it.</p>
<h3>Side Projects</h3>
<p>And by side project, I don&#8217;t mean &#8220;implement space invaders&#8221;, I mean make something about two levels above your own experience and ability, and a lot larger than anything you&#8217;ve ever made before. Get at least one other person on board in the project, and work hard on it, reworking it and <strong>trying to perfect it</strong>.</p>
<p>The point of doing this is not the project itself, though it certainly helps to have a major project to show as a demo when talking about getting that job, <strong>the point is the experience you get while doing it</strong>. There&#8217;s a range of vital skills that nothing in any formal education will teach you, so you better get those skills for yourself.</p>
<p>I teamed up with a classmate and started writing a game engine while I was in college. It turned out to be a project that lasted four years, and that with a bit more luck could have led to something more than just a side project. The experience was invaluable.</p>
<p>Trying to tie your courses and your side project together is also a worthwhile enterprise. We ended up doing a number of home works in several 3d graphics courses in our game engine, and even made a game prototype as a software project course.</p>
<h3>Put Your Heart Into It</h3>
<p>Lots of students seem to go to college more for the college parties than for the college studies. That&#8217;s fine, in a general sense, but if you want to get yourself set to get any highly sought-after job, really, you&#8217;ll want to <strong>do everything you do with a sense of perfection</strong>.</p>
<p>Make it a goal to do well even on the difficult and boring things, and to excel on the interesting things. Take one step further than you really need to, and if things are interesting, keep walking even if it seems silly. Far too many people stop when they&#8217;ve completed an interesting task because that&#8217;s as far as they needed to take it, even though they were interested in the subject and could learn more by just keeping at it.</p>
<p>If I were to describe my method of doing things in college in one word, it&#8217;d be &#8220;Overkill&#8221;.</p>
<h3>An Exceptionally Stupid Idea</h3>
<p>Let me illustrate the above with a story.</p>
<p>In a course on mechanics we were making differential equation solver calculations on a housefly walking across a surface &#8212; calculating how the limbs and body moved while keeping the feet steady. The calculation application we were using was fancy enough to include a 3d visualization of the process. Cool idea, but to someone used to working with 3d graphics engines it was brutally ugly.</p>
<p>So the afternoon on the day before we were due to present it, we got an exceptionally stupid idea: &#8220;Let&#8217;s render this thing to a movie instead &#8212; it&#8217;ll look sweet&#8221;. The presentation was the morning after, we had the Solaris environment on the Sun boxes in the computer rooms to toy with, and my incredibly underpowered PC laptop&#8230; not much to cheer for, when looking for 3d graphics tools on a tight notice &#8212; but we did have <a href="http://www.povray.org/">POVRay</a> on the Solaris boxes.</p>
<p>We looked at the file format of our calculation tool, looked at the povray file format, and set off writing a converter. A number of hours, a break for pizza and lots of fiddling later, we had a converter and something that key-framed each frame into a separate povray source file. By now it was evening and the place was near-empty.</p>
<p>We ray traced the first frame. It took a disheartening amount of time. We had a couple of minutes of video to render, which turns out to be several thousand frames. I don&#8217;t remember the exact numbers now, but at the speed we were going, we&#8217;d be done a few weeks later. Give up, go home time?</p>
<p>Not for us. We had a near-empty room full of Sun workstations, and a way to run remote commands. So we tried to build frames remotely, but had no way to make a direct copy to the computers. Home directories were on a tight quota, which meant we couldn&#8217;t work online.</p>
<p>So we set to work creating a script that set up packages of work, copied them onto the home directory, started a remote job which copied the package to a local temp drive on the remote computer and rendered the frames.</p>
<p>We shipped packages to every free computer in the room, which was basically all of them by that point. Midnight came and went with a frightening speed. Still not good enough. A scan of the computer net confirmed that the rest of the rooms were as empty as the one we were in &#8212; so a list of computers with no-one logged in later we&#8217;d shipped off packages to every available computer on 3 floors, and 100+ computers were happily chugging out frames for our video.</p>
<p>By sunrise the next day we&#8217;ve got thousands of frames of video data spread out across every computer on site. An epic struggle of sending off remote jobs to copy these onto the network home drive started, moving them down onto my laptop as soon as they were online. We managed to get them all copied in time, and set the laptop on encoding them all into a video file.</p>
<p>Encoding videos isn&#8217;t the quickest thing you could do, and on a laptop at the time it was painfully slow. It was still building by the time the class started. Clock&#8217;s ticking, and the progress bar&#8217;s hardly moving&#8230; but our presentation was scheduled for the second of two hours of class, so we let the laptop encode as the first presentations were held.</p>
<p>In total, working all through that night, we managed to get the video together with 15 minutes to spare. And it did indeed look sweet. People went &#8220;ooh&#8221; when they saw it.</p>
<h3>The Point?</h3>
<p>So what was the point of the entire thing? We had been done with the actual assignment before this story even started. We had the idea at about the same time anyone else would have stopped because the assignment was done. It didn&#8217;t give us any academic benefits. <strong>But we learned a lot</strong>. We took on a challenge and grew with beating it.</p>
<p>By the time we were forced to give up the development of our game engine, and I went to work on <a href="http://www.amazon.com/gp/product/B000WS97QI?ie=UTF8&amp;tag=entercode-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WS97QI">Battlefield: Bad Company</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=entercode-20&amp;l=as2&amp;o=1&amp;a=B000WS97QI" border="0" alt="" width="1" height="1" /> for DICE, we&#8217;d already created a fully networked multi-player hovercraft racing game with fully scriptable game modes that had error-correcting network transfer, could automatically send you any maps or game modes you were missing when you joined a server and worked on Windows, Linux, Mac OS X and Solaris.</p>
<p>With that kind of experience and track record, getting a games industry job won&#8217;t be hard, and performing far above everyone&#8217;s expectations will be something that comes naturally.</p>
<script type="text/javascript">
var flattr_wp_ver = '0.9.11';
var flattr_uid = '409';
var flattr_url = 'http://www.entertainingcode.com';
var flattr_lng = 'en_GB';
var flattr_cat = 'text';
var flattr_tag = 'blog,wordpress,rss,feed';
var flattr_btn = 'large';
var flattr_tle = 'Entertaining Code';
var flattr_dsc = 'Coding and the games industry';
</script>
<script src="http://api.flattr.com/button/load.js?v=0.2" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.entertainingcode.com/archives/an-exceptionally-stupid-idea/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
