<?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>Nazeeh&#039;s Little Corner on the Web</title>
	<atom:link href="http://www.nazspace.com/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nazspace.com/wp</link>
	<description>Game Development Demystified! and other thoughts...</description>
	<lastBuildDate>Mon, 21 Nov 2011 04:39:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>What am I up to these days?</title>
		<link>http://www.nazspace.com/wp/2011/11/20/what-am-i-up-to-these-days/</link>
		<comments>http://www.nazspace.com/wp/2011/11/20/what-am-i-up-to-these-days/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 04:39:05 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2011/11/20/what-am-i-up-to-these-days/</guid>
		<description><![CDATA[Just thought I&#8217;d drop a quick update on what I am up to these days :) First off, not sleeping much thanks to the arrival of my 3rd kid! Got me a second girl! My poor boy will have it hard with two sisters ganging up on him! Work is keeping me very busy as [...]]]></description>
			<content:encoded><![CDATA[<p>Just thought I&#8217;d drop a quick update on what I am up to these days :) First off, not sleeping much thanks to the arrival of my 3rd kid! Got me a second girl! My poor boy will have it hard with two sisters ganging up on him! Work is keeping me <em>very</em> busy as well. Lots going on which I, naturally, can&#8217;t talk about :( </p>
<p>I am also working on my super simple WP7 app which I released a version off a while ago. It&#8217;s an app to view your StarCraft 2 profile and pin it to your screen. It&#8217;s stupid simple. I wrote it in like an hour. So don&#8217;t expect to be impressed! The app is called SC2 Profile and can be downloaded from <a href="http://www.windowsphone.com/en-US/apps/aabd6057-4185-4222-ba19-2428fb1ba07f">here</a>.</p>
<p>As far as gaming is concerned, I am still heavily immersed in <a href="http://www.starcraft2.com/">StarCraft 2</a> (of course). I suck, but still love watching it and playing occasionally. I get friends telling me that I probably should try my hand at <a href="http://de.partypoker.com/">Poker</a> since it shares the essence of StarCraft, but I am not sure I am that interested <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://www.nazspace.com/wp/wp-content/uploads/2011/11/wlEmoticon-winkingsmile.png" /> I also spend a LOT of time in League of Legends! I love that game!</p>
<p>Anyway… just wanted to drop a quick note as proof that I am still breathing <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.nazspace.com/wp/wp-content/uploads/2011/11/wlEmoticon-smile.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2011/11/20/what-am-i-up-to-these-days/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Code at the speed of thought!</title>
		<link>http://www.nazspace.com/wp/2011/08/01/code-at-the-speed-of-thought/</link>
		<comments>http://www.nazspace.com/wp/2011/08/01/code-at-the-speed-of-thought/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 18:48:15 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[General Development]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2011/08/01/code-at-the-speed-of-thought/</guid>
		<description><![CDATA[Coding is a challenging task. It’s what makes it super fun and rewarding though. It is, however, a very focus based task. Once you’re in the zone, you don’t want to be interrupted or taken out of that zone. When I am coding and find myself getting taken out of that “flow”, I tend to [...]]]></description>
			<content:encoded><![CDATA[<p>Coding is a challenging task. It’s what makes it super fun and rewarding though. It is, however, a very focus based task. Once you’re in the zone, you don’t want to be interrupted or taken out of that zone. When I am coding and find myself getting taken out of that “flow”, I tend to find a way to not let that happen again. </p>
<p>One of the things that used to do that to me where finding something in the code quickly. I would be coding something up and need to find a method in a class (not a method I can see now or else I would use F12). I would then go to the source explorer in Visual Studio and start looking for that source file. Then I would hit F3 to search for that class/method I was thinking about. I thought to myself, this is stupid, there has to be a better way. That’s when I set my work aside and started searching the web and came to find this little gem called DPack (<a title="http://www.usysware.com/dpack/" href="http://www.usysware.com/dpack/">http://www.usysware.com/dpack/</a>). </p>
<p>DPack is an addon for Visual Studio 2008/2010 that is awesome. Basically, it add two very useful shortcuts: Alt+U and Alt+M. Alt+U pops up a dialog box that lets you quickly search through your source files by partial string matching. You type, it starts listing files that match so far. Alt+M is a method lookup mode that searches the current source file for any method you want. </p>
<p>The reason I love using this addon is that it doesn’t make me pause and get out of the flow to find something in the code. The project I am working on at the moment is large enough that it takes a few seconds to locate what you want via the source explorer. Using this addon, I jump to where I need to go as fast as my brain is going. I watch other people I work with using the Solution Explorer/F3 method and it kills me. We would be talking about some part of the code and need to jump to another area and the whole conversation is paused until the guy find the part we need. </p>
<p>So the morale of the story here is this: Computers are very good at repeating tasks and finding stuff. So you really should never be wasting time doing that manually. If you ever find yourself doing something over and over, find a way to not have to do that! Don’t just make it a habit of yours and live with it. Shaving a few seconds here and there really does help with your bottom line as far as productivity is concerned! We all want to be done with work early and have enough time to play games after all <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.nazspace.com/wp/wp-content/uploads/2011/08/wlEmoticon-smile.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2011/08/01/code-at-the-speed-of-thought/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Back to blogging&#8211;for realz!</title>
		<link>http://www.nazspace.com/wp/2011/07/12/back-to-bloggingfor-realz/</link>
		<comments>http://www.nazspace.com/wp/2011/07/12/back-to-bloggingfor-realz/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 01:43:34 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2011/07/12/back-to-bloggingfor-realz/</guid>
		<description><![CDATA[So! I am back! No, really! I mean it this time. Well, my intentions are to be back at least. I’ve been away from blogging for quite a while. A few updates are in order! I am no longer on the XNA Game Studio team. I haven’t been ever since we announced Kinect (aka Natal). [...]]]></description>
			<content:encoded><![CDATA[<p>So! I am back! No, really! I mean it this time. Well, my intentions are to be back at least. I’ve been away from blogging for quite a while. A few updates are in order! I am no longer on the XNA Game Studio team. I haven’t been ever since we announced Kinect (aka Natal). I joined that team from the beginning and have been working there ever since. </p>
<p>Kinect has been quite the ride! I loved working on XNA Game Studio from day 1. Kinect was an amazing follow up to that awesome project. Helping to create tech for Kinect was the most fun thing to date for me. It was <em>hard</em> though. Very hard. Lots of late nights, lots of weird problems to have to figure out, etc. I wasn’t even working directly on the skeletal tracking code, but I worked a lot with the gurus that did. It wasn’t easy following what they were talking about sometimes. </p>
<p>I have learned a lot the past few years working on Kinect. So I thought I’d come back to blogging and start writing about everything I enjoy, not only game development. I want to write about:</p>
<ul>
<li>Coding</li>
<li>Games I play </li>
<li>Life</li>
<li>Random stuff </li>
</ul>
<p>So hang tight and let’s see where this goes <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.nazspace.com/wp/wp-content/uploads/2011/07/wlEmoticon-smile.png" /> I am not even sure there’s anyone reading this blog anymore! But if you still are, let me say “thank you old friend!” and if you’re new, stay a while! This place doesn’t suck that bad <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://www.nazspace.com/wp/wp-content/uploads/2011/07/wlEmoticon-winkingsmile.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2011/07/12/back-to-bloggingfor-realz/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Back from the dead! With a link :)</title>
		<link>http://www.nazspace.com/wp/2009/09/03/back-from-the-dead-with-a-link/</link>
		<comments>http://www.nazspace.com/wp/2009/09/03/back-from-the-dead-with-a-link/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 04:01:45 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[Beginner Game Tutorials]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2009/09/03/back-from-the-dead-with-a-link/</guid>
		<description><![CDATA[Yes..yes&#8230;I am still alive. Just that I have been a bit busy with a little project called Natal. But I just ran into this really cool link and I just had to share it:
http://www.gamedev.net/reference/art/features/blender1/
Learn how to make game models with the free 3D modeling package Blender.
Enjoy!
]]></description>
			<content:encoded><![CDATA[<p>Yes..yes&#8230;I am still alive. Just that I have been a bit busy with a little project called Natal. But I just ran into this really cool link and I just had to share it:</p>
<p><a href="http://www.gamedev.net/reference/art/features/blender1/">http://www.gamedev.net/reference/art/features/blender1/</a></p>
<p>Learn how to make game models with the free 3D modeling package Blender.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2009/09/03/back-from-the-dead-with-a-link/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Windows 7 Beta 1 is upon us!</title>
		<link>http://www.nazspace.com/wp/2009/01/09/windows-7-beta-1-is-upon-us/</link>
		<comments>http://www.nazspace.com/wp/2009/01/09/windows-7-beta-1-is-upon-us/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 00:17:47 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2009/01/09/windows-7-beta-1-is-upon-us/</guid>
		<description><![CDATA[Yes ladies and gents. Today I want to talk a bit about my favorite new OS, Windows 7. I am not coming to you as a loyal Microsoft employee trying to sell our newest iteration of Windows. I am here as a dude just excited about a new OS (and I just happen to get [...]]]></description>
			<content:encoded><![CDATA[<p>Yes ladies and gents. Today I want to talk a bit about my favorite new OS, Windows 7. I am not coming to you as a loyal Microsoft employee trying to sell our newest iteration of Windows. I am here as a dude just excited about a new OS (and I just happen to get paid by the company making it – but we’ll ignore that ok?). So why am I excited? </p>
<p>For one, it works. It works really well specially considering it’s a beta. The OS is solid! I am using it at home right now on my machine. I upgraded from Vista x64 and the upgrade went pretty smoothly. It took quite a while, but eventually I was greeted with the new Windows 7 look! Here’s a run down of my initial reaction as I booted it up for the first time:</p>
<p>“hey! look at that! We finally put some graphic at the boot screen above the progress bar! Not sure WHY we didn’t before… but it’s ok. Looks cool”</p>
<p>“Hmm… boots quite a bit faster. Nice work.”</p>
<p>“Whoah! Check out this new Task bar! I got icons on it for the apps I use. I can drag/drop more icons.”</p>
<p>“Ok..that’s neat. I like how when I hover over the active icons (i.e. app running), it has this cool glow on it. Someone is paying attention to some eye candy! Hell…it’s about time! (Yeah… I still quote Starcraft II trailer :/ )”</p>
<p>“!!!! Windows update has what for me??? No way! NO WAY! A pre-release NVIDIA driver for Windows 7? DAMN! it works!” At this point, I near dropped dead from sheer shock. My #1 hair pulling frustration with Vista was Nvidia drivers. To actually have a WORKING driver for the beta blows me away. </p>
<p>The upgrade was awesome! The OS works pretty well and it is <em>snappy</em>! Lots of cool features I have yet to mess with are:</p>
<ul>
<li>Media/document libraries</li>
<li>Home networking features that are supposed to make Windows 7 machines share stuff very easily. That is cool and I really wanted it. </li>
<li>Other UI trickery like dragging windows to edges, etc.</li>
</ul>
<p>Overall, I am quite happy with it. Vista had a rough start and is pretty good now in my opinion. Windows 7 improves on Vista and XP minus the rough start. I truly think people are going to be happy when the install it. Beta 1 should be available sometime in the coming few days to everyone. I’ll make sure to post a link to the download. When I do, get it… just get it. I promise you won’t be disappointed. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2009/01/09/windows-7-beta-1-is-upon-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Year = New Theme!</title>
		<link>http://www.nazspace.com/wp/2009/01/04/new-year-new-theme/</link>
		<comments>http://www.nazspace.com/wp/2009/01/04/new-year-new-theme/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 06:45:07 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/?p=266</guid>
		<description><![CDATA[A bit of a belated &#8220;Happy New Year&#8221; to everyone! I decided to do some maintenance work on my blog that I&#8217;ve been putting off for a while. The visible part is the new theme I got going on here. Next on the list is getting some more content on! I am working on it [...]]]></description>
			<content:encoded><![CDATA[<p>A bit of a belated &#8220;Happy New Year&#8221; to everyone! I decided to do some maintenance work on my blog that I&#8217;ve been putting off for a while. The visible part is the new theme I got going on here. Next on the list is getting some more content on! I am working on it :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2009/01/04/new-year-new-theme/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Off topic: StarCraft II to be a trilogy?</title>
		<link>http://www.nazspace.com/wp/2008/10/13/off-topic-starcraft-ii-to-be-a-trilogy/</link>
		<comments>http://www.nazspace.com/wp/2008/10/13/off-topic-starcraft-ii-to-be-a-trilogy/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 23:41:05 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[General Gaming]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2008/10/13/off-topic-starcraft-ii-to-be-a-trilogy/</guid>
		<description><![CDATA[So… looks like according to Kotaku, StarCraft II is going to be released on 3 parts. I was just wondering what you guys think of that? I am a huge StarCraft fan (who isn’t?!) and am waiting anxiously for that game to ship! I was a bit bumped that they will release it as a [...]]]></description>
			<content:encoded><![CDATA[<p>So… looks like according to <a href="http://kotaku.com/5061980/starcraft-ii-single-player-is-a-trilogy">Kotaku</a>, StarCraft II is going to be released on 3 parts. I was just wondering what you guys think of that? I am a huge StarCraft fan (who isn’t?!) and am waiting anxiously for that game to ship! I was a bit bumped that they will release it as a trilogy, but then I realized that I really don’t play the single player portions of most of the games I buy. So it won’t matter as much. Speaking of RTS games… what do are you guys playing out there? It’s still by far my favorite genre even though I SUCK at them :/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2008/10/13/off-topic-starcraft-ii-to-be-a-trilogy/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Team Interview &#8211; Tom Miller</title>
		<link>http://www.nazspace.com/wp/2008/09/30/team-interview-tom-miller/</link>
		<comments>http://www.nazspace.com/wp/2008/09/30/team-interview-tom-miller/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 18:33:15 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[Team Interviews]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2008/09/30/team-interview-tom-miller/</guid>
		<description><![CDATA[This week I am very excited to bring you a really fun team interview! Tom Miller is one of those people that needs little introductions if you’ve been following the world of Managed Game Development at all. Remember all that stuff about Managed DirectX? That was Tom’s work, he brought that to reality. So I [...]]]></description>
			<content:encoded><![CDATA[<p>This week I am very excited to bring you a really fun team interview! Tom Miller is one of those people that needs little introductions if you’ve been following the world of Managed Game Development at all. Remember all that stuff about Managed DirectX? That was Tom’s work, he brought that to reality. So I asked him to spare some of his time to answer my interview questions, and here’s what he had to say.</p>
<p><strong>Who are you and what do you do at XNA Game Studio?</strong></p>
<p>Well, I’m Tom Miller.&#160; What do I do here?&#160; I suppose you could say I type a lot mainly!&#160; I’ve worked on almost every area of the product at least briefly aside from the Visual Studio integration stuff (that stuff scares me a little).&#160; I’ve developed a good many of the features you as a user have probably dabbled with!&#160; I’ve written a couple of books, sometimes rant on my blog, listen to a lot of music, play a lot of games, and generally don’t have enough time to do all the things I want to do.&#160; I’m trying really hard not to recite Joe Walsh’s Ordinary Average Guy here.&#160; I also considered answering every question here with lyrics from random songs, but that would take entirely too long, and I’m feeling lazy today.</p>
</p>
<p><strong>What did you work on before joining XNA Game Studio?</strong></p>
<p>My tan?&#160; Seriously though, directly before coming here I worked on the DirectX team.&#160; I got hired on that team to write samples for “DirectX for Visual Basic” (dxvb), but shortly after that migrated to actually owning dxvb.&#160; Right after DirectX8.0 shipped I got wind of this new nifty thing called “C#” and had a prototype of “DirectX.NET” up and running and showing it off at GDC within a few weeks.&#160; After a couple major overhauls and a renaming of the project to “Managed DirectX” we shipped DirectX9.0 with the first managed support for DirectX.&#160; Before that I had a wide variety of jobs here working on Visual Basic 6, Office, and various internal projects.&#160; I’ve been in the “games” area for the last 9 years or so, and everything before that is a bit fuzzy. </p>
</p>
<p><strong>How did you join the XNA Game Studio team? Tell the story!</strong></p>
<p>There I was sitting in my office.&#160; The sun was shining outside.&#160; Birds were chirping.&#160; Harps and violins were playing soft music.&#160; I could be misremembering some of this though.&#160; I was approached by the development manager of the XNA Game Studio team with a proposition.&#160; They were wanting to create a managed framework for making games on Windows and Xbox 360 and they wanted to do it fast.&#160; Since I was really the only person in the company with a significant amount of experience in this area (I had already developed the entire Windows version of this framework, written a couple books on the subject, etc), they asked me to come help with this new effort.&#160; Anyone who’s seen the original Managed DirectX, and to be more specific, the “Whidbey Beta” of Managed DirectX that was never released will recognize a lot of features within XNA Game Studio.&#160; We took that experience and enhanced it, made it work on the Xbox 360, and now Zune as well.</p>
</p>
<p><strong>What features did you work on for XNA Game Studio 1.0 and 2.0?</strong></p>
<p>In 1.0 I worked almost exclusively on the “framework” (the portion of the product where the API’s you call talk to the hardware behind the scenes).&#160; I did the original implementation of the entire graphics area, audio, storage, input, and security.&#160; Hmm, actually, I guess that covers every area in our 1.0 release.&#160; Luckily we had people like Shawn, Eli and Ito to come help me fix all the bugs I introduced implementing those features.&#160; In 1.0 I also realized that it was entirely possible to go months without a day off and hardly realize the time had gone by because of how passionate you were about the product.</p>
</p>
<p>In 2.0 I didn’t have nearly as much to do though, so that was a relief!&#160; I focused mainly on what sound like minor graphics improvements, but were in reality a lot more work than they appeared.&#160; Things like fixing render targets to be more consistent, implementing the ability to use multiple render targets on Xbox 360, correctly handling predicated tiling with various render target combinations (I still have nightmares about render targets), and removing the need for the developer to worry about device resets and resolution changes (even though I still see people trying to handle this manually).&#160; I also dabbled in other areas as well, but those were my big tasks.</p>
</p>
<p>In 3.0, I barely worked on the framework at all though!&#160; I did stuff all over in other areas working on features I’m not even sure we have announced yet, but I’m sure you’ll think they’re awesome when you see them.</p>
</p>
<p>Stealing a portion of Shawn’s interview where he considers what portion of code he’s written, which has been executed the most times.&#160; While I probably couldn’t narrow it down, it is impossible to make an XNA Game Studio game without running at least one line of code I’ve written.&#160; I’d probably have to say the creation of the graphics device has probably been executed the most.</p>
</p>
<p><strong>What’s your favorite part of XNA Game Studio, and why?</strong></p>
<p>Seems like a kind of a trick question.&#160; Like asking a parent “Which kid do you love the most?” (the one who cleans up after themselves best), or “Does this make me look fat?” (if you have to ask, then yes).&#160; I could say Graphics, but then I’m pretty sure Audio would stop talking to me (they’re having a bit of a turf war) and we wouldn’t want that to happen now would we?&#160; I love all the features equally!&#160; Except render targets that is, I still have a love/hate relationship with them.</p>
</p>
<p><strong>What is your favorite Xbox game? PC game?</strong></p>
<p>PC game is easy being World of Warcraft.&#160; I’ve spent more time on that than any other game.&#160; Starcraft comes in a close second and Diablo 2 probably third.&#160; I notice a trend here!&#160; Xbox is a bit harder though.&#160; I’ve liked the games such as Guitar Hero and Rock Band.&#160; I liked all the Dance Dance Revolution games.&#160; I liked Condemned and Lost Oddysey.&#160; It’s hard to narrow down just a single game there that I would call my “favorite”.&#160; If you put a gun to my head, probably Portal. (Yes, I know that is on the PC as well, but I played it on Xbox)</p>
</p>
<p><strong>Share some tips and tricks for using XNA Game Studio</strong></p>
<p>Tips and tricks are hard for me actually.&#160; Despite writing so much code that is in the product, I rarely have the free time to actually *use* the product.&#160; Every time I think I’ll have time to sit down and right something using XNA Game Studio, some other feature comes up that needs implementing, or a bug that needs fixing, and I get side tracked again.&#160; So my tips and tricks would have to include actually making time to use the thing!</p>
</p>
<p>Before I joined the team though, I (like so many others) had the dream of being a game developer.&#160; While that dream no longer lurks within me, the thing I discovered while I had it was starting a game is way easier than finishing one.&#160; You start out with a grand idea and start writing code and it is going to be the greatest game ever, and then something happens.&#160; Maybe you don’t have any artistic talent and don’t know anyone who is an artist and your game looks “ugly” and it frustrates you.&#160; Maybe you’re stuck with a particularly hard development concept required for your game.&#160; Something happens that is an obstacle to you and finishing your game and the project slowly fades away before finally dying.&#160; Don’t let this be you.&#160; Your ideas are worth saving!&#160; We have a vibrant community that is growing.&#160; If you’re stuck, ask for help.&#160; Finishing a single game is more rewarding that starting a million different ones.</p>
</p>
<p><strong>Last words?</strong></p>
<p>Years ago when I started “DirectX.NET” one of my goals was to open up game development to the masses.&#160; I wanted to see games being written for home consoles, I wanted to see games being written for computers, I wanted to see games being written for everything by everyone.&#160; A lot of people told me I was crazy and it would never happen.&#160; The performance wasn’t good enough, no one would open up a console for anyone to write games for them, plenty of reasons why it couldn’t happen.&#160; Yet here we are, and it is happening.&#160; It’s been a long time coming, and I for one can’t wait to see where we go next (even if I do already have a pretty good idea).</p>
</p>
<p>Actually, that’s a pretty boring set of last words.&#160; How about something more exciting like dishabiliophobia.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2008/09/30/team-interview-tom-miller/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Understanding Zune Development</title>
		<link>http://www.nazspace.com/wp/2008/09/30/understanding-zune-development/</link>
		<comments>http://www.nazspace.com/wp/2008/09/30/understanding-zune-development/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 18:06:32 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[XNA Game Studio]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2008/09/30/understanding-zune-development/</guid>
		<description><![CDATA[With the upcoming release of XNA Game Studio 3.0 (it is currently in Beta), one of the big features of the release is the ability to write your own games on a Zune device. This is a very exciting prospect for a lot of people as well as the XNA Game Studio dev team. When [...]]]></description>
			<content:encoded><![CDATA[<p>With the upcoming release of XNA Game Studio 3.0 (it is currently in <a href="http://creators.xna.com/en-us/3.0beta_mainpage">Beta</a>), one of the big features of the release is the ability to write your own games on a <a href="http://www.zune.net/">Zune</a> device. This is a very exciting prospect for a lot of people as well as the XNA Game Studio dev team. When we first released Game Studio Express, we didn&#8217;t know what to expect as far as the type and quality of games people would make. I remember sitting in a big room with a Xbox hooked up to a nice TV about to see demos of games from the first <a href="http://www.dreambuildplay.com/main/default.aspx">Dream.Build.Play</a> contest. Boy&#8230; seeing games like Dishwasher and others totally took us by storm! So now that we have Zune as another platform, I want to make sure you guys have as much as you need to blow our minds again! So&#8230; what&#8217;s the deal with developing a game for the Zune?</p>
<h3>Understanding the Device</h3>
<p>The Zune player, while comes in different form factors, has the same capabilities across the board except for the storage size it has. All Zune devices have the following characteristics:</p>
<ul>
<li>A screen resolution of 240&#215;320 pixels. This is regardless of the physical size of the device. The resolution is the same. </li>
<li>An internal storage medium that is either flash or hard drive based. </li>
<li>The biggest size game you can create is 2GB. </li>
<li>The amount of memory available for your game in total is <strong>16MB</strong>. This includes your code in memory, data, textures, sounds, etc. Take away some memory for the XNA Game Framework and you realistically have around 12MB of memory to work with. </li>
</ul>
<p>So what does this mean to you as an aspiring Zune game developer? Well&#8230; the most obvious factor you have to consistently keep in mind is that 16MB of available memory. If you don&#8217;t take that into account and just code away, I guarantee you that your game will run out of memory pretty quickly. </p>
<h3>Memory on the Zune</h3>
<p>As I mentioned above, you have a total of 16MB of memory to work with for your Zune game. If left unchecked, your game will probably run out of memory leaving you quite unhappy. This will manifest itself in one of many ways including Out of Memory Exceptions or Out of Video Memory Exception. You see one of those bad boys, and you know you&#8217;re in trouble. So let&#8217;s see what kind of things can cause this evil to happen!</p>
<p>A common scenario you might find yourself in is if you write a game on Xbox and/or Windows and just directly port it to Zune via the <strong>Convert to Zune</strong> feature of our project system. The game will probably build just fine, you&#8217;ll do some quick fixes to scale your textures down to fit the Zune screen. You&#8217;ll hit F5 and the game will launch on the Zune and things will look nice and happy. You&#8217;ll think that the XNA Game Studio team are a bunch of amazing geniuses to enable something so cool to be so easy. Well&#8230; until your game crashes and you start to call us some really bad names. </p>
<p>So what happened? Is the XNA Game Studio team a bunch of n00bs? In certain games, yes&#8230;they are! But in coding, so not! Here&#8217;s what happened:</p>
<p><strong>Textures..Textures..Textures</strong></p>
<p>Your game, the one you initially created on Windows or Xbox, is probably using some nice, big textures. Windows and Xbox have way..way..waaaaaay more memory than their little brother the Zune. So if you have a texture that is say 512&#215;512 in dimensions in your game, that is would come out to approx 1/2 MB of memory. </p>
<p>To calculate the size of a texture in memory, the formula is:</p>
<p>Texture has no transparency: width x height x 2bytes</p>
<p>Texture has transparency (alpha channel): width x height x 3bytes</p>
<p>So right there, you just ate 1/2 MB of your 16MB of memory. </p>
<p>So right there, that’s your first clue why you ran out of memory. You have to be very careful about the size of the textures you’re loading. And no, scaling the texture in game doesn’t solve that! You have to scale down the actual texture and then build the game. </p>
<blockquote><p><font color="#b0b0b0"><strong>Tip: Keep the sizes of your textures small! If you don’t need transparency, don’t use it. Re-use textures as much as you can. </strong></font></p>
</blockquote>
<p>Another area you can optimize is animations in your game. 2D animations are usually created using sprite sheets (see my <a href="http://www.nazspace.com/wp/2007/12/10/animated-textures/">post</a> on the topic). Since such animations are created using frames of equal size usually, that means you can end up with a pretty big texture just for an animation. To get around that, you might need to approach it a bit differently. Things to consider:</p>
<ol>
<li>Instead of storing all the frames in your animation, start storing only the the parts that actually move and animate them over the static parts. This way your frames don’t have to be of equal size and can drastically reduce the size of your texture strip. </li>
<li>Animations don’t have to be done via texture strips. Borrowing from the 80s style of game development (which makes sense since they had similar restrictions), you can animate stuff by using static textures and compositing them over each other. Check out this <a href="http://www.youtube.com/watch?v=xOCRCEAhluo">video</a> to get an idea of what I am talking about. See how the boss is just a set of textures that are moved around to give the animation? Much smaller in size than animating the boss the usual way. </li>
</ol>
<p>How you create your world is another area you want to focus on. In Windows/Xbox, you can use relatively hefty textures for your backdrops and so forth. Try that on Zune and you’re taking away from your memory budget. Consider using Tile Maps (I just started a <a href="http://www.nazspace.com/wp/2008/09/23/creating-your-world/">post</a> about this) for your world. They use much less memory and encourage reuse of textures. </p>
<p>I was talking to <a href="http://www.nazspace.com/wp/2008/01/30/team-interview-yuichi-ito/">Yuichi Ito</a> about this subject last week, and he actually told me this story of some artist he was working with back in the day. He said the guy knew he had little memory to work with but wanted the game to look good still. So he had to improvise. He started using the same texture he used for trees in the background for the hair on the characters! Just changed the color. No one noticed ;) You’d be surprised how much you can get away with and people won’t notice. </p>
<p>Yet another area you want to look into is particle effects. If you have any in your game, make sure you’re not using a separate texture for every particle color you’re using. Use a master white texture and then use the Tint color argument of SpriteBatch.Draw to color them. </p>
<p><strong>Audio and Music</strong></p>
<p>Audio and music in your game is very much like textures. So they need the same amount of focus from you or else you’ll hit the memory barrier yet again. Audio gets loaded in memory to be played, so the bigger it is, the more memory it will eat up. So use lower quality audio for your Zune games! You can read all about audio in general in <a href="http://www.nazspace.com/wp/2008/02/11/team-interview-eli-tayrien/">Eli’s</a> blog post about it right <a href="http://blogs.msdn.com/etayrien/archive/2008/09/22/audio-input-and-output-formats.aspx">here</a>. </p>
<p>Smaller Audio == more memory for your game! </p>
<p><strong>Under the Hood</strong></p>
<p>XNA Game Studio on the Zune runs using the <a href="http://en.wikipedia.org/wiki/.NET_Compact_Framework">.NET Compact Framework</a> (NetCF). NetCF, while quite similar to its bigger brother on Windows, it’s not quite the same internally. Desktop .NET has a lot more memory and CPU power to work with, while NetCF doesn’t. So certain measures had to be taken to ensure good performance on the target platforms. This means some features are less <em>efficient</em>&#160; than they are on the desktop. So how does this affect us while we create Zune games?</p>
<p>Most of the content you can create on a Zune game has both a Managed object and a native resource attached to it. For instance, a Texture has both a Texture2D object (the managed one) and an underlying Texture resource that is in Zune native land. The managed object references that native resource and wraps it. This way you get the nice looking managed objects without having to worry about the underlying implementation. </p>
<p>So when you actually load a Texture2D object, NetCF sees a small object being loaded, the managed object that represents the Texture. It doesn’t see the huge native resource that is also loaded by that texture object. As far as NetCF is concerned, your Texture2D object is only a few bytes large and therefore is not a priority when it has to do garbage collection. But we know better! If anything, that object better get collected as soon as possible since it’s actually pretty large. NetCF disagrees though :) So you need to lend a helping hand.</p>
<p>When you’re done with textures you were using, you need to either call <strong>Content.Unload </strong>to unload all the content that was previously loaded by your content manager or call Dispose on that texture yourself. You can make this a bit easier on yourself by creating a new instance of <strong>ContentManager </strong>in your code to load specific textures you know you’ll want to get rid off soon. You can have more than one <strong>ContentManager</strong> in your game, it’s totally fine. Same applies to things like Audio and others. </p>
<blockquote><p><font color="#b0b0b0"><strong>Clean up after yourself! Don’t rely on Garbage Collection to do the right thing for you!</strong></font></p>
</blockquote>
<p>Here’s another interesting implementation detail for you to keep in mind. When you load a Texture in memory, ContentManager will load it in system memory first, then copy it to Video memory. Guess what? In Zune, System and Video memory are one of the same! So when you load a Texture that is 1MB in memory size, you are actually using 2MB of memory to finish the operation. The first 1MB though will get garbage collected when more memory is needed. But keep that in mind since if you have 4MB of memory available, you will not be able to load 4 x 1MB textures because of this. You’ll only be able to load 3. </p>
<p><strong>Debugging the Issues</strong></p>
<p>So how do you debug memory issues on the Zune? When we would talk to people about this topic for Xbox 360 development, we usually would just tell people to use performance profiling tools on Windows against a Windows build of the same game. Since Windows and Xbox 360 are relatively close to each other, you can actually spot the issues on Windows using the more advanced tools and can fix them for the Xbox 360. Can’t really do that for the Zune :/ </p>
<p>The Zune is severely dwarfed in power when compared to a PC. So perf issues that affect the Zune probably won’t appear on Windows in any obvious way. Sure, you can try, but I doubt you’ll get much helpful information. But there are tools that can still help you somewhat. We provide the Remote Performance Monitor tool (RPM) that can be used to tell you how much memory you’re using by your game and so forth. </p>
<p>To use RPM, launch it from your Start Menu (Microsoft XNA Game Studio 3.0-&gt;Tools). Get your Zune device hooked up and the game deployed on it (but not running). Then: </p>
<ul>
<li>Click on the Launch application button in the UI: <a href="http://www.nazspace.com/wp/wp-content/uploads/2008/09/image17.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://www.nazspace.com/wp/wp-content/uploads/2008/09/image-thumb16.png" width="140" height="76" /></a> </li>
</ul>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<ul>
<li>Pick your Zune device from the list and then enter the name of the game you deployed: </li>
<li><a href="http://www.nazspace.com/wp/wp-content/uploads/2008/09/image18.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.nazspace.com/wp/wp-content/uploads/2008/09/image-thumb17.png" width="442" height="197" /></a> </li>
<li>Hit the Ok button. Your game should launch on the Zune. </li>
<li>Now we check the GC Heap by clicking on the “GC Heap” button on the toolbar, you’ll see a window similar to this one: </li>
<li><a href="http://www.nazspace.com/wp/wp-content/uploads/2008/09/image19.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.nazspace.com/wp/wp-content/uploads/2008/09/image-thumb18.png" width="466" height="231" /></a> </li>
<li>This already provides you with good information. You can see how many objects your code is running at the moment and the size in KB of all of them. This way you can see which objects are getting too big and might need to get on a diet. </li>
<li>Another area you might want to look at is the JIT section of the main window UI: </li>
<li><a href="http://www.nazspace.com/wp/wp-content/uploads/2008/09/image20.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.nazspace.com/wp/wp-content/uploads/2008/09/image-thumb19.png" width="674" height="104" /></a> </li>
<li>This will tell you how much space your code is taking up in memory. Another data point that might help you realize you may need to reduce the size of your code. Unless you’ve written your game in a very horrible way, I don’t think you’ll have much to optimize here though. </li>
</ul>
<h3>In Conclusion</h3>
<p>Developing games on the Zune is indeed a very exciting thing! We can’t wait till we see the kind of games people will come up with. The experience of developing a game the right way can be quite challenging but also rewarding. So get started on those games and let us know how we can help you out! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2008/09/30/understanding-zune-development/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Ninjas, Pandas and Tennis?!</title>
		<link>http://www.nazspace.com/wp/2008/09/29/ninjas-pandas-and-tennis/</link>
		<comments>http://www.nazspace.com/wp/2008/09/29/ninjas-pandas-and-tennis/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 17:31:26 +0000</pubDate>
		<dc:creator>nazeeh</dc:creator>
				<category><![CDATA[XNA Game Studio]]></category>

		<guid isPermaLink="false">http://www.nazspace.com/wp/2008/09/29/ninjas-pandas-and-tennis/</guid>
		<description><![CDATA[You know… I still remember when I first joined this team back in 2005. Back then, the entire team could fit around one conference table and leave a few chairs open. Most of what we knew was that we were called the “XNA Team”. What are we going to do? Still not sure. We had [...]]]></description>
			<content:encoded><![CDATA[<p>You know… I still remember when I first joined this team back in 2005. Back then, the entire team could fit around one conference table and leave a few chairs open. Most of what we knew was that we were called the “XNA Team”. What are we going to do? Still not sure. We had a lot of things on the table and had to pick the most strategic one. Finally we decided to go after XNA Game Studio. “Let’s open up game development to the masses! Let the beginners/amateurs be able to write their own games!”. Hell…it’s about time (name the reference!). Fast forward to today, and we start seeing games like this one being made with our stuff!</p>
<p>This game is one of the entries for the <a href="http://www.dreambuildplay.com">Dream.Build.Play</a> contest this year. Wow… just wow! Stuff like this truly blows us away and makes coming to work every morning a pleasure! So thank you people! You rock beyond words! I leave you with the awesome trailer for <a href="http://www.battletennis.com/">BattleTennis</a>!</p>
<div style="padding-bottom: 0px; margin: 0px auto; padding-left: 0px; width: 432px; padding-right: 0px; display: block; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:312f789e-6c21-4cd0-bbf4-68d5b0460237" class="wlWriterEditableSmartContent">
<div><embed src="http://images.video.msn.com/flash/soapbox1_1.swf" quality="high" width="432" height="364" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://macromedia.com/go/getflashplayer" flashvars="c=v&#038;v=7cacdd73-c857-4e70-812e-f9a2a76d829f&#038;ifs=true&#038;fr=shared&#038;mkt=en-US&#038;from=writer&#038;mkt=en-US"></embed></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nazspace.com/wp/2008/09/29/ninjas-pandas-and-tennis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

