<?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>Game Programming and Design Blog &#187; XNA</title>
	<atom:link href="http://www.ironstarmedia.co.uk/blog/tag/xna/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ironstarmedia.co.uk/blog</link>
	<description>XNA and iPhone Game Programming and Design</description>
	<lastBuildDate>Mon, 06 Sep 2010 14:03:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Free Game Assets 12; User Interface Themes</title>
		<link>http://www.ironstarmedia.co.uk/blog/2010/04/free-game-assets-12-user-interface-themes/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2010/04/free-game-assets-12-user-interface-themes/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 11:45:14 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[Free Game Assets]]></category>
		<category><![CDATA[UI Themes]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=316</guid>
		<description><![CDATA[We&#8217;ve been a little overworked as of late with the horror that is real life, but we&#8217;ve found some time to put together a few more assets for XNA / iPhone / Flash Game Developers. We&#8217;re thinking of starting to have &#8216;themed months&#8217; for our giveaways, as we&#8217;ve come to realise that we&#8217;re just kind [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been a little overworked as of late with the horror that is real life, but we&#8217;ve found some time to put together a few more assets for XNA / iPhone / Flash Game Developers. We&#8217;re thinking of starting to have &#8216;themed months&#8217; for our giveaways, as we&#8217;ve come to realise that we&#8217;re just kind of firing assets out like the randomly generated guns from <a title="Borderlands - The Game" href="http://www.borderlandsthegame.com/index.html" target="_blank">Borderlands</a>.</p>
<p>So, what do we have this week?</p>
<p>We&#8217;ve been trying to put together some more interface graphics to help make your user interfaces more friendly and shiny. We&#8217;ve tried to keep them reasonably generic, so that you can brand them up with your game&#8217;s logo and your own font, but the goal is to give you the chance to get to your first prototype as quickly as possible. The obligatory screenshots follow;</p>
<div id="attachment_317" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2010/04/grunge-preview.jpg"><img class="size-medium wp-image-317" title="Iron Star Media Grunge Theme Preview" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2010/04/grunge-preview-400x225.jpg" alt="Free High Definition Grunge Theme for your XNA Game" width="400" height="225" /></a><p class="wp-caption-text">Free High Definition Grunge Theme for your XNA Game (Click to Enlarge)</p></div>
<div id="attachment_318" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2010/04/victorian-preview.jpg"><img class="size-medium wp-image-318" title="Iron Star Media Victorian Game Theme Preview" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2010/04/victorian-preview-400x225.jpg" alt="High Definition Victorian Theme for your XNA Game" width="400" height="225" /></a><p class="wp-caption-text">High Definition Victorian Theme for your XNA Game (Click to Enlarge)</p></div>
<p>These themes come with a background image (the Victorian Theme has 3 colour variations for the background image), a full screen overlay panel and a half screen overlay panel (for two player games, etc). The panels can easily be scaled down to the desired size if they are too big for what you need them for. Imagery is provided at full 1920&#215;1080p and the full screen overlay should allow for overscan (although, you might want to shrink it an extra 10-15% for the Xbox 360).</p>
<p>Download the themes from our online asset library; <a title="Iron Star Media's Free Grunge Theme" href="http://www.ironstarmedia.co.uk/assets/index.php?path=/ui/themes/grunge/" target="_self">Iron Star Media&#8217;s Grunge Theme</a>, <a title="Iron Star Media's Free Victorian Game Theme" href="http://www.ironstarmedia.co.uk/assets/index.php?path=/ui/themes/victorian/" target="_blank">Iron Star Media&#8217;s Victorian Theme</a></p>
<p>I&#8217;d like to finish with a quick shameless plug&#8230; If you&#8217;ve not already heard the news, our Xbox 360 Shooter <a title="Ikaroids - An Action Packed XBox 360 Arcade Shooter" href="http://marketplace.xbox.com/en-GB/games/media/66acd000-77fe-1000-9115-d80258550398/" target="_blank">Ikaroids</a> has recently been reduced to only 80 Microsoft Points, give it a look!</p>
<p><em>The free game assets on this site are released under the Creative Commons Attribution Licence. This basically means that you can download them, use them in your game(s) and modify them as you like. If you use them in your games, we’d appreciate a small mention somewhere in the credits / on the website (and a free copy of the game would be cool!). Basically, the only thing we don’t want you to do with our assets is sell them as assets to other developers, either individually, or as part of a collection.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2010/04/free-game-assets-12-user-interface-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Game Assets 02; Sprites for Particle Effects</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/12/free-game-assets-02-sprites-for-particle-effects/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/12/free-game-assets-02-sprites-for-particle-effects/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 12:14:49 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[2D Graphics]]></category>
		<category><![CDATA[Free Game Assets]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Free Sprites]]></category>
		<category><![CDATA[Independent Game Development]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=196</guid>
		<description><![CDATA[Another Tuesday and another selection of free assets for our readers to enjoy. While there are countless tutorials on putting together an efficient particle system in a number of programming languages, the core of the particle effects you&#8217;ll enjoy in your game requires sprites. We&#8217;re offering up a selection of sprites that you can use [...]]]></description>
			<content:encoded><![CDATA[<p>Another Tuesday and another selection of free assets for our readers to enjoy. While there are countless tutorials on putting together an efficient particle system in a number of programming languages, the core of the particle effects you&#8217;ll enjoy in your game requires sprites. We&#8217;re offering up a selection of sprites that you can use in your very own particle systems in your XNA (or any other) independent game.</p>
<p><span id="more-196"></span></p>
<p>They say a picture is worth a thousand words, so here&#8217;s are the particle sprites in this pack on a black background;</p>
<div id="attachment_197" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/12/particle-sheet-01.png"><img class="size-full wp-image-197" title="particle-sheet-01" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/12/particle-sheet-01.png" alt="Free particle effect sprites for game developers" width="512" height="512" /></a><p class="wp-caption-text">&nbsp;Free particle effect sprites for game developers</p></div>
<p>The particles all come as 24-bit png&#8217;s and they&#8217;re intended to be used with their colour settings and alpha settings being tweaked as the particle moves about. If you&#8217;d like further information about how they were made &#8211; please don&#8217;t hesitate to get in touch.</p>
<p>If you&#8217;d like to use these in your project &#8211; <a title="Iron Star Media Free Particle Effect Sprites Pack 01" href="http://www.ironstarmedia.co.uk/downloads/particle-sprites/particle-pack-01.zip" target="_blank">Download the Iron Star Media Particle Effect Sprites Pack 01</a>.</p>
<p>As always, if you have any specific requests for what type of assets we should be giving away, just leave a comment below and we&#8217;ll do our best.</p>
<p><em>The free game assets on this site are released under the Creative Commons Attribution Licence. This basically means that you can download them, use them in your game(s) and modify them as you like. If you use them in your games, we&#8217;d appreciate a small mention somewhere in the credits / on the website. Basically, the only thing we don&#8217;t want you to do with our assets is sell them as assets to other developers.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/12/free-game-assets-02-sprites-for-particle-effects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ikaroids; Now Available on the Xbox Live Marketplace!</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/12/ikaroids-now-available-on-the-xbox-live-marketplace/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/12/ikaroids-now-available-on-the-xbox-live-marketplace/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 10:28:01 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[Iron Star Media News]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Ikaroids]]></category>
		<category><![CDATA[Iron Star Media Games]]></category>
		<category><![CDATA[Xbox Live]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=186</guid>
		<description><![CDATA[Our first Xbox Live Indie Games title &#8216;Ikaroids&#8217; is now available on the Xbox Live Marketplace! Ikaroids is an action packed twin-stick arcade style shooter wtih a unique physics and game engine that encourages you to use parts of the scenary in a defensive manner while avoiding devastating collisions with the asteroids. The main campaign [...]]]></description>
			<content:encoded><![CDATA[<p>Our first Xbox Live Indie Games title &#8216;Ikaroids&#8217; is now available on the Xbox Live Marketplace! Ikaroids is an action packed twin-stick arcade style shooter wtih a unique physics and game engine that encourages you to use parts of the scenary in a defensive manner while avoiding devastating collisions with the asteroids. The main campaign features 23 varied missions with a massive variety of bad-guys, bosses and story-twists. When you&#8217;ve mastered all three difficulty levels of the main campaign there are 9 addictive survival stages for you to challenge. If that were not enough,&nbsp;you can play through the game alone&nbsp;or in&nbsp;co-op mode&nbsp;and you can submit your high scores to an online scoreboard using your PC.</p>
<p><img class="aligncenter" title="Ikaroids Screenshot" src="http://www.ironstarmedia.co.uk/games/ikaroids/screenshots/ikaroids-screenshot-03.jpg" alt="" width="600" /></p>
<p>You can download Ikaroids from your Xbox by browsing to Game Marketplace -&gt; Indie Games. There you can list games by title and find Ikaroids for your gaming fun. Alternatively, you can buy Ikaroids from your PC, so that it&#8217;ll simply download and install the next time you turn on your Xbox.&nbsp;<a title="Ikaroids; An action packed arcade game for the Xbox 360" href="http://marketplace.xbox.com/en-GB/games/offers/00000001-0000-4000-8000-000058550398?partner=RSS" target="_blank">Download Ikarois now from the Xbox Live Marketplace</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/12/ikaroids-now-available-on-the-xbox-live-marketplace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Free Music for Independent Game Developers 01</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/12/free-music-for-independent-game-developers-01/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/12/free-music-for-independent-game-developers-01/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 17:15:04 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Free Game Assets]]></category>
		<category><![CDATA[Free Game Music]]></category>
		<category><![CDATA[Idependent Game Development]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=168</guid>
		<description><![CDATA[Here at Iron Star Media Ltd. we still very much learning the ropes when it comes to generating assets for our games. However, we&#8217;re in the fortunate position in that we&#8217;ve had a reasonable amount of experience playing around with Photoshop and Garageband in our spare time.
This post marks the first release of free assets [...]]]></description>
			<content:encoded><![CDATA[<p>Here at Iron Star Media Ltd. we still very much learning the ropes when it comes to generating assets for our games. However, we&#8217;re in the fortunate position in that we&#8217;ve had a reasonable amount of experience playing around with Photoshop and Garageband in our spare time.</p>
<p>This post marks the first release of free assets that we would like to release to the community to help other independent developers who need assets for their games.</p>
<p><span id="more-168"></span>Below you will find a small collection of MP3s that you are free to use in your own game title. All that is required in return is that you credit us somewhere in your release notes. Of course, if you make it rich from a game that uses a selection of our assets, we won&#8217;t mind if you want to donate us a few pennies for our work.</p>
<p>The first assets we would like to release are tracks that never quite made it into our first XNA title &#8211; mostly because the theme just wasn&#8217;t right for our game. We&#8217;re still getting to grips with our music generating software, so we apologise if these tracks aren&#8217;t brilliant, but please bear in mind it&#8217;s the start of something that will just get better and better! We also hope that this starts a trend that of giving away assets that we can try to keep up on a weekly basis.</p>
<p>The tracks that you can download and use in your XNA / iPhone game projects this week are;</p>
<p><a title="Free Menu Music for your Independent Game" href="http://www.ironstarmedia.co.uk/downloads/game-music/menu001.zip" target="_blank">Menu 001</a> &#8211; Some relatively &#8217;spacey&#8217; menu music for a space based game.</p>
<p><a title="Random game music for free use in your XNA game." href="http://www.ironstarmedia.co.uk/downloads/game-music/random001.zip" target="_blank">Random 001</a> &#8211; Some reasonably generic drum-beat game music.</p>
<p><a title="More free random music for your XNA development." href="http://www.ironstarmedia.co.uk/downloads/game-music/random002.zip" target="_blank">Random 002</a> &#8211; A little bit &#8216;folky&#8217;, this might make good tavern or docks music for an RPG!</p>
<p><a title="Some orchestral music that you can download and use in your independent game." href="http://www.ironstarmedia.co.uk/downloads/game-music/orchestral001.zip" target="_blank">Orchestral 001</a> &#8211; This is something a little more epic. I&#8217;m not sure where you would use this, but it might work for some FMV or equivalent!?</p>
<p>I hope that someone out there finds this useful. We&#8217;ll try to bring you another release of free assets (of some random variety) sometime next week!</p>
<p>As always, please leave any comments or thoughts in the boxes below.</p>
<p><strong>Edit.</strong> Please let us know if you have any requests for types of music. We won&#8217;t make it to exact specifications, but if you would like something in a specific genre (e.g. more menu music, or friendly platformer music) that would give me a goal for future tracks. These were just me getting used to the software and I&#8217;d like to develop by making more in-depth (and better) tracks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/12/free-music-for-independent-game-developers-01/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>5 things to avoid in XNA/Indie games</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/11/5-things-to-avoid-in-xnaindie-games/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/11/5-things-to-avoid-in-xnaindie-games/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 15:49:28 +0000</pubDate>
		<dc:creator>Jackson Matthews</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[game development]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=154</guid>
		<description><![CDATA[In this post I’m going to talk about five of the things I have a powerful dislike for in commercial games. Of course, needless to say, this is just my opinion, but these are the things that I’d like to see a lot less of in games in general.

Confusing gameplay
While I’m not a fan of [...]]]></description>
			<content:encoded><![CDATA[<p>In this post I’m going to talk about five of the things I have a powerful dislike for in commercial games. Of course, needless to say, this is just my opinion, but these are the things that I’d like to see a lot less of in games in general.</p>
<p><span id="more-154"></span></p>
<h2>Confusing gameplay</h2>
<p>While I’m not a fan of games that have so shallow a difficulty curve that it’s impossible to move without a dozen prompts explaining which button keeps your character breathing, I at least expect to know what is going on. If I have gone a full few minutes not knowing being able to tell pickups from enemies, and genuinely have no idea what I’m supposed to be doing, then something has gone seriously wrong. Instructions should be included where necessary, and explanatory, non-intrusive tooltips only where needed. I myself find it seriously annoying when popups keep interrupting me to tell me what button is which.</p>
<h2>Cutscenes/excessive narrative/playing as a character</h2>
<p>While this is far less prevalent in Indie games, this is one of my biggest bugbears in games today. It seems that many of them are far more concerned with making a movie than they are a game, and it brings up the cost of production considerably. Besides this, I find it takes me right out of the immersive nature of the game when I’ve been playing it for a while, then suddenly the controls are yanked away and I’m forced to watch as my character does something incredibly dumb just to force the next scene. You start to feel more like you’re helping a character get through his/her movie rather than playing the game yourself. There are exceptions, where the plot is truly exceptional, and actually becomes a reward for completing a section, such as Metal Gear Solid, but by and large, I find the cutscene an interruption to something I was quite enjoying.</p>
<p><img class="aligncenter size-medium wp-image-156" title="doom_3" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/doom_3-400x300.jpg" alt="doom_3" width="400" height="300" /></p>
<p>Prime offender: Too many to mention &#8211; but one that sticks out for me is <em>Doom 3</em>. If ever there was a game that didn’t need to change camera angle to third-person to show your nameless doing absolutely nothing, it was this one. A prime example of breaking tension by removing you from the driving seat.</p>
<h2>Fake difficulty</h2>
<p>This can encompass a variety of things. Sections that are only hard because they require endurance, such as a boss that requires you to hit a certain weak point&#8230; five hundred times over. Levels artificially lengthened by getting you to run across town back and forth performing meaningless errands. Or my personal favorite &#8211; the old ‘take away all your guns’ maneuver, usually done during a cutscene where your character acts like a complete imbecile in order to facilitate this.</p>
<p><img class="aligncenter size-medium wp-image-157" title="prototype-scr-012" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/prototype-scr-012-400x224.jpg" alt="prototype-scr-012" width="400" height="224" /></p>
<p>Prime offender: <em>Prototype</em>. You’ve built up all these amazing powers, right? Lot of fun, right? Well kiss that goodbye, as a bunch of levels take them away for a while. Just to ‘add challenge’. Which is is all well and good, but I was having fun back there!</p>
<h2>Lack of feedback</h2>
<p>If I shoot a guy, I want to see it hit him. I don’t necessarily mean a gout of blood or anything, just a feel that something has impacted. Like there’s a connection between my weapon and him. That’s a tactile reward for performing actions, and in a great game it goes all the way from combat to selecting menu items. Through sound and visual FX, you should be able to ‘feel’ the results of actions, not fire a gun and then see a man fall over in the same way as if I hit him with my crowbar.</p>
<h2>Unrealistic combat</h2>
<p>This is mostly confined to first-person shooters, but I cannot stand it when I have to shoot a man 50 times in the chest with my pistol to finish him off. By the same token, if I get shot, I expect to die. Everyone being able to take a truckload of bullets before finally falling over just removes the sense of urgency and tension in combat. The prospect of sudden death, in my opinion, encourages far more tactical thinking, and is ultimately a lot more fun, as long as the game is balanced for it.</p>
<p>So there you have it, five things I’d like to see a hell of a lot less of in games. But like I say, there’s probably plenty more I could throw in, given the chance. Feel free to have your say on the subject in the comments section!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/11/5-things-to-avoid-in-xnaindie-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sentinel Development Diary 2 / Getting Game on Screen</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/11/sentinel-development-diary-2-getting-game-on-screen/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/11/sentinel-development-diary-2-getting-game-on-screen/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 09:41:59 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[Sentinel Development Diary]]></category>
		<category><![CDATA[Indie Game Development]]></category>
		<category><![CDATA[Sentinel Game]]></category>
		<category><![CDATA[XBLIG]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=139</guid>
		<description><![CDATA[With the overall menus in place and a solid roadmap of the development ahead of us, the second proper session of development on our latest XNA title Sentinel sees the addition of the main game screen and the player entities. I&#8217;m going to talk about some of things that we did on this day, and [...]]]></description>
			<content:encoded><![CDATA[<p>With the overall menus in place and a solid roadmap of the development ahead of us, the second proper session of development on our latest XNA title Sentinel sees the addition of the main game screen and the player entities. I&#8217;m going to talk about some of things that we did on this day, and the differences we made between this game and Ikaroids.</p>
<h2><span id="more-139"></span>Placeholder Graphics</h2>
<p>During the early development stages, Jackson spends more time working on the menu screens and splash screens than the general art work. This may seem like a strange route to take as the game assets and entities are obviously more important. However, we learnt from Ikaroids, that you will often find out part way through development that your sprites are too big, or too small, or the wrong colour palette for example. If your artist has spent 4 hours producing a gorgeous 64&#215;64 pixel player sprite, but you later realise that you need to add a zoom function and you&#8217;ll need the sprite to be 128&#215;128, he might have to start over.</p>
<p>During game development, we make very simple sprites to represent the final sprites. This gives you the opportunity to crank out coding before the hours of required work are spent on graphics, but also let you test out the game mechanics with placeholder sprites.</p>
<p>Figure 1 shows the very first rendering of our game screen. The background was made in 2 minutes using the first slightly appropriate fractal from <a title="Apophysis - Fractal Flame Rendering Software" href="http://www.apophysis.org/" target="_blank">Apophysis</a> &#8211; Fractal Flame rendering software. The planet sprites were made using <a title="GIMP - Gnu Image Manipulation Program" href="http://www.gimp.org/" target="_blank">Gimp</a> with a cloud layer, a colour layer (multiply mode) and a radial gradiant layer (multiply mode). We also made a handful of other sprites for the player pieces, these were appropriately coloured primitive shapes with well defined borders (not shown in the Figure).</p>
<div id="attachment_142" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/dummy-game-screen.jpg"><img class="size-medium wp-image-142" title="Sentinel Dummy Game Screen" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/dummy-game-screen-400x225.jpg" alt="Sentinel - With placeholder graphics" width="400" height="225" /></a><p class="wp-caption-text">Figure 1. Sentinel - With placeholder graphics</p></div>
<h2>First Steps for the Game Screen</h2>
<p>The first step for our main game screen was to build and implement the Entity Manager and the base Entity class. Ikaroids was a classic 2D space game in which the majority of the entities played by the same rules &#8211; at least in terms of physics, collisions etc. In Sentinel there will be vastly different types of entities on screen &#8211; completely static ones, ones that step around a grid at fixed time steps and then ones that obey a set of physics rules. As such, we went for a base entity class that handles the very basic common features of all of these entities (their space on screen, collision detection etc), but then we wrote a number of derived classes &#8211; such as PhysicsEntity and PlayerEntity, which will form the base classes for the rest of our game. In Ikaroids, we also had a single massive list of all of the entities on screen, so that we could iterate through them quickly for collision detection etc. In Sentinel, we know that some functions will only apply to certain types of objects &#8211; so we actually split our entities into 3 lists &#8211; player entities, physics entities, static entities.</p>
<p>I like to code in the basics of the player entity as soon as possible, as it&#8217;s fun to have the player entity darting around the screen &#8211; even if there&#8217;s nothing it can interact yet. There&#8217;s a certain morale boost from seeing your (temporary) player sprite moving around the screen. We currently have a nearly empty EntityManager class that handles all of the entities on the screen, and loops through the entities on the screen to call &#8216;update/draw&#8217; routines as required.</p>
<h2>Conclusion</h2>
<p>So, by the end of the second proper session of coding we had the menus, ScreenManager and InputManager from day one and we&#8217;ve made a pretty good start on the actual GameScreen component of the game. We have a couple of planets on the screen, a couple of controllable player pieces and we even had a physics entity that moves in a straight line and bounces off the edge of the screen (not very inventive, but it sets the ground work!).</p>
<p>We&#8217;re already pleased that we used place-holder graphics, as we&#8217;re not entirely sure about the planet design and theme. We might swap the planets out for more abstract space anomalies and we&#8217;re even considering making them a little smaller on the screen &#8211; as they take up a fairly high proportion of the screen at the moment.</p>
<p>Classes written (well, started&#8230;) today: SentinelGameScreen, Entity, PlayerEntity, BallEntity, EntityManager, GameGrid.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/11/sentinel-development-diary-2-getting-game-on-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Note About Game Difficulty in XNA Games</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/11/a-note-about-game-difficulty-in-xna-games/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/11/a-note-about-game-difficulty-in-xna-games/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 10:16:42 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[Game Difficulty]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=146</guid>
		<description><![CDATA[After the second round of playtesting for Ikaroids, we found that a number of comments were coming back to us stating that the game was rather difficult. Instead of simply dumbing down the game, we added the classic Easy, Medium and Hard difficulty settings to the game. Here&#8217;s some discussion about how we did that, [...]]]></description>
			<content:encoded><![CDATA[<p>After the second round of playtesting for Ikaroids, we found that a number of comments were coming back to us stating that the game was rather difficult. Instead of simply dumbing down the game, we added the classic Easy, Medium and Hard difficulty settings to the game. Here&#8217;s some discussion about how we did that, and how to pre-empt the playtesters comments!</p>
<h2><span id="more-146"></span>Should We Add Difficulty Levels?</h2>
<p>We originally decided against having the option of selecting the difficulty in <a title="Ikaroids - An Xbox 360 Independent Game" href="http://www.ironstarmedia.co.uk/games/ikaroids/">Ikaroids</a>. We figured the campaign would start off easy and progress to hard as you worked through it. What we didn&#8217;t account for, was the fact that we&#8217;d spent 4 months playing it during development when trying to set the levels&#8230;</p>
<p>The game came back from playtest with a number of comments stating that the game was too hard. However, we could blast through most of the levels without getting a game over and didn&#8217;t want to make it considerably easier so that players that are dual-stick shooter fanatics like us didn&#8217;t get bored.</p>
<p>It was clear from this point that adding difficulty settings was the most appropriate resolution to this problem.</p>
<h2>Is it going to be a lot of work?</h2>
<p>How much work it is to add difficulty settings to your game depends on the internal structure of your game. Most games will have a small number of variables that are easy for you to change depending on the difficulty setting that can have a massive effect on gameplay. This is where you should start to look initially.</p>
<p>If your game is a break-out clone, change the speed of the ball. If your game is a golf game, ramp up the chance of having strong winds. In our case, all of our entities are derived from the game base class, so we simply scale the hit points, speed, reaction speed, firing speed and AI targeting range to make them worse for easy mode and better for hard mode. The whole change took less than an hour and has opened the game to beginner players, as well as generating a reason for people to play through the game multiple times.&nbsp;</p>
<p>So, we increased the re-playability of our game, made it easier for beginning players and make an exceptionally hard mode to make a challenge for hard-core gamers. Not bad for an hours work.</p>
<div id="attachment_148" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/1.jpg"><img class="size-medium wp-image-148" title="Ikaroids (XBox 360) Screenshot" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/1-400x224.jpg" alt="A particularly tough moment in Ikaroids (Xbox 360)" width="400" height="224" /></a><p class="wp-caption-text">A particularly tough moment in Ikaroids (Xbox 360)</p></div>
<p><strong>How easy is easy, how hard is hard?</strong></p>
<p>The last challenge is to decide how difficult each setting should be. I have seen a number of games (both XNA and real) where the difference between Easy and Medium is fairly non-existant, and then hard becomes an absolute beast to tackle. Alternatively, some games make Easy so easy that it&#8217;s boring and then normal difficulty becomes the only real way to start the game.</p>
<p>Here at Iron Star Media Ltd, we believe that you should be aiming for the following out of each difficulty setting;</p>
<p><strong>Easy: </strong>Should be easy enough for your mum, sister, girlfriend to pick up and complete the first couple of levels. It might get a bit tough after that, but even someone with little gaming experience should be able to make progress by breaking a sweat. As a developer, you should be able to get through a third of the game in this mode without a challenge, after which, you might lose once or twice &#8211; but generally don&#8217;t find it a problem.</p>
<p><strong>Medium:</strong>&nbsp;On regular difficulty, your game should still be accessible, but it might present a solid challenge to the non-gamers out there. Regular gamers should be able to play through the first couple of levels without much of a challenge, but then they might start dying a couple of times on each level before being able to complete them. All in all &#8211; you should be looking at &#8216;regular gamers&#8217; having to tackle some of your later levels (but not necessarily all of them) a couple of times before progressing.</p>
<p><strong>Hard:</strong>&nbsp;We are firm believers that it&#8217;s important to add a really challenging difficulty mode to every game. On hard difficulty, people that haven&#8217;t played your game before should struggle to get past the first few levels. Even seasoned gamers should struggle on &nbsp;a number of levels and it should be exceptionally tough to get past some levels. However, don&#8217;t make a game tough by making it impossible, or by making boss fights really, really long &#8211; add some extra enemies or give them an edge, but don&#8217;t just draw it out for the sake of it. It should be a real achievement to complete the game on hard, and even as a developer &#8211; you should struggle to do so yourself. Don&#8217;t under-estimate the hardcore gamers, they want a challenge and you&#8217;ve given them the choice of playing it on an easier difficulty if they struggle.</p>
<p>Of course, this is just like, our opinions Dude, so feel free to take it or leave it. However, we can hand on hearts say that this simple addition has added much more variety to Ikaroids and has really helped to please the playtesters!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/11/a-note-about-game-difficulty-in-xna-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Planning Code for Game Development (XNA)</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/11/planning-code-for-game-development-xna/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/11/planning-code-for-game-development-xna/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 23:41:52 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[Game Logic]]></category>
		<category><![CDATA[Main Game Loop]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=115</guid>
		<description><![CDATA[There is nothing more detrimental to quick progress than poor planning. We&#8217;ve all had times when partaking in a project where we get confused and lost, or we&#8217;re coding away without any real purpose. I find this often simply comes down to not really knowing what the final goal of a class, project or function [...]]]></description>
			<content:encoded><![CDATA[<p>There is nothing more detrimental to quick progress than poor planning. We&#8217;ve all had times when partaking in a project where we get confused and lost, or we&#8217;re coding away without any real purpose. I find this often simply comes down to not really knowing what the final goal of a class, project or function really is. If we can sit back, look at an overview and understand just what it is that we&#8217;re aiming for &#8211; a lot of coding becomes plugging in the gaps. I&#8217;m going to show you the general programming overview of Ikaroids to help you plan your project. You may develop your game in a completely different way &#8211; and this way is neither perfect or the definitive way to do it, this is just an example of how we did it to give you some ideas.</p>
<p><span id="more-115"></span></p>
<h2>Game Screen Flowchart</h2>
<p>Once you have your concept down and you have an overview of the main features of your gameplay, I like to do is consider is an overview of the general process that the user go through when playing your game. &nbsp;These are the screens / interfaces that your players will go through when playing your game. While these may seem unimportant, they give you an overview of the game and also set the technical limitations of the game &#8211; do you need a a single player character select screen, or a co-op or even 4 player one? Do you need an option screen for user editable options? What options will they be?</p>
<div id="attachment_125" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/Ikaroids-Flowchart.jpg"><img class="size-medium wp-image-125 " title="Ikaroids Game Screen Flowchart" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/Ikaroids-Flowchart-400x234.jpg" alt="Ikaroids Game Screen Flowchart" width="400" height="234" /></a><p class="wp-caption-text">Figure 1. Ikaroids Game Screen Flowchart</p></div>
<h2>The Main Game Loop</h2>
<p>The majority of the screens in Figure 1 will be stand-alone screens that set configuration parameters or load specific game objects for the &#8216;Main Game Screen&#8217;. The Main Game Screen is where you will spend the majority of your coding time (and asset generation time, of course!) and this will make up the actual game that you&#8217;re producing. Depending on how you are representing these individual screens in your programming (we made each screen a class that plugs into a DrawableGameComponent that acts as a screen manager), you will need to load the level and associated assets in the &#8216;LoadContent&#8217; routine for the screen before the game loop starts.</p>
<p>I&#8217;m assuming that you&#8217;re programming for a console or a similar, linear programming environment (you&#8217;re not running your game through an event driven system, such as with a typical windows UI). In the majority of games, your main game loop will probably look similar to that of Ikaroids;</p>
<div id="attachment_128" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/Ikaroids-Game-Loop.jpg"><img class="size-medium wp-image-128 " title="Ikaroids Game Loop" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/Ikaroids-Game-Loop-400x114.jpg" alt="The Main Game Loop from Ikaroids" width="400" height="114" /></a><p class="wp-caption-text">Figure 2. The Main Game Loop from Ikaroids</p></div>
<p>The main game loop is often similar for the majority of games, although the actual processes taking place at each stage are likely to be very different. In many simple games, there may not be any physics at all, and updating the entities in a game like Tetris is a rather simple affair. It&#8217;s worth writing down a few bullet points about what you need to happen at each of these stages, and this will give you a rough outline of how your game will play and what code and classes you need for the game to function.</p>
<h2>Thinking about Classes and Entities</h2>
<p>Now that you have a general idea of what will be taking place at each step of the main game loop, you can start to think about the code that you will need to make up your game. This can vary massively from game to game, but it&#8217;s always worth trying to ensure that you make every effort to (a) break as much as is reasonably possible into separate classes and (b) separate game logic from the game engine as much as possible. If you adhere to both of these strategies, you will find it much easier to fix and/or replace classes if you need to fix bugs or improve certain parts of the game, and you will also be left with a large number of reusable components that you can use in future projects.</p>
<p>With this in mind, I&#8217;ll give you a short run down of some of the main classes that we built for Ikaroids;</p>
<div id="attachment_130" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/Ikaroids-Classes.JPG"><img class="size-medium wp-image-130  " title="Ikaroids Classes" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/11/Ikaroids-Classes-400x141.jpg" alt="An overview of the main classes in Ikaroids" width="400" height="141" /></a><p class="wp-caption-text">Figure 3. An overview of the main classes in Ikaroids</p></div>
<p>Now, of course, there are a lot more classes that make up Ikaroids. There are about another 50-60 or so that make up all of the separate entities, bosses, weapons, bullets, pickups, AI Packages, etc. However, the majority of those classes are extensions of the Game Logic classes shown in Figure 3. The Reusable classes are actually already in use in a second game project, and where we are using all but one or two of those classes. We&#8217;re also building more resuable classes in the form of a User Interface Kit to make producing user interfaces for the menus quicker and easier.</p>
<p>The Entity class above has a lot going on inside it, and it handles everything that any entity on screen requires. It contains a reference to a sprite (or a collection of sprites), a number of AI Packages, it&#8217;s position, it&#8217;s properties for the Physics Entities, it&#8217;s draw state (is it invisible?) and it&#8217;s game parameters (is it invulnerable? how much health does it have? what does it do when it dies?). There are many virtual functions in this class which are overridden by derivative classes. The EntitityManager stores a massive list of all of the entitities and then iterates through them to update them / draw them / see if they collide etc. As previously stated, this is by no means the best way of doing things, and is far from perfect &#8211; but it gives you a good starting point if you&#8217;re thinking of putting together your own game engine.</p>
<h2>Prototyping</h2>
<p>The last thing I&#8217;m going to talk about is prototype code for your game. Before you leap into coding your game in it&#8217;s final form, it&#8217;s a a good idea to write some prototype for parts of your game. As your classes are now reasonably small and modular, you can whack some code together pretty quickly to make sure it works. This is especially useful to get you thinking about just how something is going to work. Are you going to load your levels from XML files? If so, put together a mock XML file and file reader before leaping in and writing the final version. This allows you to see all of the problems and questions that you&#8217;d not thought of, so that you can answer them before writing your final one. This leaves your code free from hacks and generally cleaner and more reusable.</p>
<p>Prototyping is also useful for testing performance in your code. However, you have to be careful when it comes to performance. One word of advise &#8211; if your prototype is &#8216;good enough&#8217;, don&#8217;t spend all of your time trying to make it perfect and even more optimised. It&#8217;s not worth worrying about wasting &nbsp;a few CPU cycles if your game doesn&#8217;t need it. Drawing a thousand sprites to the screen is no problem at all for XNA on the Xbox 360, and while it might sound like a huge task that will need you to make sure that every bit of garbage is reduce and removed, in reality &#8211; it&#8217;s not a problem. And if your code runs fast enough &#8211; ie. doesn&#8217;t cause any slowdown for the game you want to produce, it&#8217;s not worth the time it will take you to make it work 10% faster. Don&#8217;t write messy code, but don&#8217;t worry about writing the 100% perfect optimal codebase either &#8211; if it works under a stress test of the worst conditions it&#8217;s likely to face, don&#8217;t waste any more time on it &#8211; put that time to better use on other parts of your game!</p>
<h2>Last of all &#8211; be flexible!</h2>
<p>Perhaps the most important thing to remember, is that however much you plan &#8211; you will always want to make changes after you&#8217;ve started coding. Be flexible. If something that you thought sounded great just doesn&#8217;t work in the game, you should remove it. We spent hours coding up a system where time would dilate near a black hole &#8211; but it just didn&#8217;t work as a game mechanic. Above all, it wasn&#8217;t fun &#8211; and so it had to go. This flexibility is key to making a good game, and having a clean code base that you haven&#8217;t hacked up, with a good clear definition of which bits of the engine plug in where, you can easily make these changes along the way, even if it&#8217;s different to your original plan. However, start your game without planning, and these changes will be much more difficult and may even stop you from finishing your game!</p>
<h2>Over to you!</h2>
<p>I&#8217;d love to hear of your own game planning and development experiences. I&#8217;m by no means an expert in the field yet and would love to hear tips and tricks from you or any improvements you might like to suggest to this article. I hope that you found it useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/11/planning-code-for-game-development-xna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sentinel Development Diary 1 / Planning, Concepts and Initial Work</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/10/sentinel-development-diary-1-planning-concepts-and-initial-work/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/10/sentinel-development-diary-1-planning-concepts-and-initial-work/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 09:15:59 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[Sentinel Development Diary]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Development Diary]]></category>
		<category><![CDATA[Sentinel]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=58</guid>
		<description><![CDATA[This is the first proper entry in the Development Diary for our latest XNA Independent Game entitled Sentinel. Iron Star Media consists of two developers; John Wordsworth (@johnwordsworth) &#8211; a programmer and lightweight artist, and Jackson Matthews (@oliacym) &#8211; a heavyweight artist and designer. This series of blog posts will show you how we made [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first proper entry in the Development Diary for our latest XNA Independent Game entitled Sentinel. Iron Star Media consists of two developers; John Wordsworth (<a title="John Wordsworth on Twitter" href="http://www.twitter.com/JohnWordsworth" target="_blank">@johnwordsworth</a>) &#8211; a programmer and lightweight artist, and Jackson Matthews (<a title="Jackson Matthews on Twitter" href="http://www.twitter.com/oliacym" target="_blank">@oliacym</a>) &#8211; a heavyweight artist and designer. This series of blog posts will show you how we made our second game and will hopefully shed some insight into the overall procedures behind game development as well as giving some tips based on the lessons we learnt.&nbsp;</p>
<p>Today we document the first 5 hours of development with some planning, concepts and basic ground work.</p>
<h2><span id="more-58"></span>Planning and Design</h2>
<p>One thing that we learnt from <a title="Ikaroids - Action Packed Shooter for the Xbox 360" href="http://www.ironstarmedia.co.uk/games/ikaroids/" target="_blank">Ikaroids</a> was that you have to put in a sufficient amount of time into the planning and concept stage of a game before sitting down and cranking out code. It might seem like a chore, but spending a day or two thoroughly planning your title (more for a bigger title) will overall reduce the amount of time you spend on the project. When you have a good idea of the data structures you need before you start coding them, you can produce a good first draft of the class in one sitting, and you&#8217;ll have an overall idea of how it&#8217;ll all plug together.</p>
<p>From Ikaroids, we used the software <a href="http://www.xmind.net/" target="_blank">XMind</a> for quickly drafting our concepts into a basic plan.&nbsp;</p>
<div id="attachment_61" class="wp-caption aligncenter" style="width: 410px"><img class="size-medium wp-image-61" title="Ikaroids Overall Plan / Mindmap" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/IkaroidsConcept-400x220.png" alt="A Mind Map from the early development of Ikaroids" width="400" height="220" /><p class="wp-caption-text">A Mind Map from the early development of Ikaroids</p></div>
<p>From here we fleshed out the details of the game in a separate Mind-Map, which listed the the campaign structure, the bad guys that you would face and some information about the pickups and mechanics. After generating a couple of Mind Maps, we fleshed out a sprite list in <a href="http://www.openoffice.org/" target="_blank">Open Office</a> and then started work. We have followed the same steps for <strong><em>Sentinel</em></strong>, except with a keener eye for the details required.</p>
<h2>Concept Artwork</h2>
<p>It&#8217;s handy in the early days to pin down the artistic style of the game by drafting some concept art. This also gives the programmer some set pieces to start working with before the final graphics are ready. For <strong><em>Sentinel</em></strong> we produced a small handful of basic images using our graphics tablet (you don&#8217;t need a massively expensive Wacom for concept art, but veer away from the cheapest of the cheap). Using my Trust TB-7300, which has a superb response and detail level, I produced a few images depicting what the overall gameplay would be like, and the title / menu screens.</p>
<div id="attachment_63" class="wp-caption aligncenter" style="width: 410px"><img class="size-medium wp-image-63" title="Sentinel Concept Title Screen" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/sentinel-concept-title-400x225.jpg" alt="Concept Artwork showing the title screen of Sentinel" width="400" height="225" /><p class="wp-caption-text">Concept Artwork showing the title screen of Sentinel</p></div>
<div id="attachment_64" class="wp-caption aligncenter" style="width: 410px"><img class="size-medium wp-image-64" title="Sentinel Concept of Menu" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/sentinel-concept-menu-400x225.jpg" alt="Concept Artwork for the Menu of Sentinel" width="400" height="225" /><p class="wp-caption-text">Concept Artwork for the Menu of Sentinel</p></div>
<p>These two pieces of concept artwork are exceedingly simple, but they set the overall layout of specific elements of the game. They also mean that the programmer can get started on the game without having to change too much later on. It also sets the style of and feel of the game which helps to generate buzz between the artist and the programmer.</p>
<h2>Initial Coding</h2>
<p>Today marked the start of coding for Sentinel. I know that I said that you shouldn&#8217;t jump straight in, but we have a pretty clear idea where we want this small title to go after only a few hours of planning and it&#8217;s a good idea to start the programming on your game aimed at &#8216;re-usable&#8217; game components that will be re-usable in later projects. After <a title="Ikaroids - Dual Stick action for the Xbox 360" href="http://www.ironstarmedia.co.uk/games/ikaroids/" target="_blank">Ikaroids</a> we thought that this time around it would be much better to build a &#8216;User Interface&#8217; library, instead of mashing all of the menus and screens together with code every time.&nbsp;</p>
<p>After an hour or two of coding, we had a library consisting of a few basic UI elements &#8211; including Labels and Select Menus. With the UI groundwork in place, adding new elements is relatively simple and adding them / moving them around the screen is even easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/10/sentinel-development-diary-1-planning-concepts-and-initial-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XNA: The title-safe area and SDTVs</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/10/xna-the-title-safe-area-and-sdtvs/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/10/xna-the-title-safe-area-and-sdtvs/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 11:43:14 +0000</pubDate>
		<dc:creator>John Wordsworth</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[screen resolution]]></category>
		<category><![CDATA[title-safe area]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=21</guid>
		<description><![CDATA[In this article we discuss the trials of working to the title-safe area in your own Independent XNA titles. We look at the problems that this can raise and possible solutions that you should consider right from the start of the project.
On face value, working to ensure that the contents of your console / XNA [...]]]></description>
			<content:encoded><![CDATA[<p>In this article we discuss the trials of working to the title-safe area in your own Independent XNA titles. We look at the problems that this can raise and possible solutions that you should consider right from the start of the project.</p>
<p>On face value, working to ensure that the contents of your console / XNA title fit may sound like a trivial task. However, we have learnt our lesson well, and after our first project &#8211; we have come to realise that it&#8217;s something that you have to consider right from the beginning. Not everyone has a 42 inch 1080p screen like you might, and making sure your game works across all types of displays can cause a real headache if left to the last minute.&nbsp;</p>
<p><span id="more-21"></span></p>
<h2><strong>Background Information</strong></h2>
<p>Before you start thinking about the title-safe area, you&#8217;ll need to know a little bit about where the problem comes from. I personally play my Xbox 360 on a 720p 32&#8243; inch flat-panel. After writing a small XNA application, turns out we&#8217;re only actually seeing about 95% of the screen. Even on a modern TFT display, there is still some of the original picture lost &#8211; which we call <strong>overscan </strong>(some of the picture is being drawn &#8216;off the screen&#8217;).</p>
<p>People may be playing your game on one of a huge variety of screens. Before even thinking about overscan, consider the different types of screens shown below;</p>
<div id="attachment_47" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-47" title="XNA Screens Overview" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/ScreensOverview.jpg" alt="An overview of home TV screen resolutions" width="600" height="343" /><p class="wp-caption-text">An overview of home TV screen resolutions</p></div>
<p>As you can see from the figure above, some gamers will be approaching your game with 2.1 million pixels on their 42&#8243; plasma screen but others will be playing it in their bedroom on only 400 thousand pixels. Not only that, but some will have their screen in 16:9 ratio and others 4:3! All this before we even consider overscan&#8230;</p>
<p>If the above wasn&#8217;t enough of a headache, you also have to consider that some TVs will not display the edges of the picture. The &#8216;title safe&#8217; area of a television &#8211; the area that is guaranteed to be visible, is approximately the central 85% of the screen. This means that you might (but also might not) lose a whopping 7.5% off of all sides of the picture.</p>
<p>The BBC advise that, in the worst case scenario on some TVs, you might lose up to 5% on the top and bottom of the screen and 10% on either side. It has been suggested that Microsoft advise that you should consider a safe area of 7.5% on each side of the screen (leaving 85% of the center of the screen as the title-safe zone). I would suggest working towards 85% of the screen as the title-safe zone.</p>
<h2>Problem 1. Screen Resolution</h2>
<p>You have to support all resolutions in order for your game to be accessible by everyone. Luckily, in XNA this problem can be circumvented, as the Xbox allows you to program for the 720p mode and it will automatically scale it to 1080p or SDTV for you. However, for text-heavy games, you may need to consider different interfaces for different screen sizes&#8230;</p>
<p><strong>Possible Solutions</strong></p>
<p><strong>Design for 720p:</strong>&nbsp;The easiest, quickest and nicely satisfactory solution to the resolution problem is to design your game for 720p. As it&#8217;s the &#8220;middle&#8221; resolution, you get a fair indicator of what your game will look like across the board. Make sure that the text is bigger than you&nbsp;<strong>need</strong>&nbsp;it to be on your 720p monitor and test it on an SDTV monitor before you go to release. Your game should still look detailed on a 1080p screen and your graphics should all scale nicely (as long as none of them are too small).</p>
<p><strong>Design for different resolutions:</strong>&nbsp;While this may generate some extra work behind the scenes, if your game heavily relies on text in the interface, or you want to make the absolute best use of the screen that the player has, then it&#8217;s a good idea to think about having 2/3 different subclasses of your &#8220;HUD&#8221; or &#8220;View Screen&#8221; classes so that you can design the output for the user.</p>
<h2>Problem 2. Text / Icon Size</h2>
<p>On the one hand you need to make sure that text and icons are visible on the smallest possible screen (a 14&#8243; SDTV), especially if your 720p game is being scaled down to 480i. Alternatively, you don&#8217;t want to have text taking up a third of your 1080p screen&#8230;&nbsp;</p>
<p><strong>Possible Solutions</strong></p>
<p><strong>Use Icons:</strong> Icons are useful in making your game more attractive across a variety of screen sizes. If you explain what the icons mean on a &#8216;how to&#8217; page with nice big chunky text for your SDTV users, then you can get away with using just fixed sized icons in your game across all screen sizes. If your icons are distinctive and clear, this means that you can get awaywith placing icons in a suitable location to make the best use of your screen on any resolution.</p>
<p><strong>Let the User Decide:</strong>&nbsp;It might be relatively easy for you to add a &#8216;text size&#8217; option to your option screen. If you allow for small, medium and large text then the user can choose the most appropriate text size for their use. If they are using a small screen, they can choose to use up more of their screen with bigger text (to make it visible), but on larger screens users might opt to have the small text &#8211; as their screens are large enough for it to still be visible.</p>
<p><strong>Use Voice Acting: </strong>In many circumstances, it might be possible to backup important text items with voice acting. If you have a weapon select screen, using icons and having the name of the weapon read out will accommodate for a situation where you have made the text small.&nbsp;</p>
<h2>Problem 3. Play Area / HUD Border</h2>
<p>You need to accommodate for screens that only show 85% of the picture. However, if you cram your interface in so that it goes around the edge of the screen with a 7.5% border on each side &#8211; you end up with a large &#8216;dead&#8217; area outside of the play screen that the 80% of gamers that don&#8217;t have an overscan problem will see as &#8216;wasted&#8217; space. This is possibly the hardest problem to resolve if you have left it until after development!</p>
<p><strong>Possible Solutions</strong></p>
<p><strong>Minimise your HUD:</strong> This is the option that we went for with Ikaroids. By minimising the HUD so that it only consisted of 2 icons, a bar and a number, we could cram it all into one corner (which was 7.5% of the way from each edge of the screen). Gameplay still takes place underneath our HUD, so we made it low contrast and non-obtrusive. &nbsp;This is a suitable solution for games that don&#8217;t need to display information.</p>
<p><strong>Go &#8216;HUD Free&#8217; with Popup Menus:</strong> If this option suits your game, you may want to remove the HUD altogether from your game. Additional information can be found by pressing &#8217;start&#8217; on a popup menu which may (or may not) pause the action when it&#8217;s present.</p>
<p><strong>Add a big fat border:</strong> In some games, such as board games and the like, it&#8217;s more than possible to simply add an artistic border to the outer 8% of each edge of the screen. The border might represent celtic flourishes around your game board or other suitably present imagery. As long as none of your game elements (board or score charts) verge into these areas and your game play is simply &#8211; this is a perfectly adequate solution.</p>
<p><strong>Let the user decide:</strong> If you need a detailed HUD at the edge of the screen, and you&#8217;re conscious of maximising the use of the playing field by making the HUD as slimline as possible, you might want to have a slider bar that sets the coordinates of all of your HUD elements. Quake 1 did something similar to accommodate all gamers (although, their options weren&#8217;t for overscan, just for low-pixel gamers). Having a slider bar set a value for the overscan and moving all of your HUD items in from the edge by a specific number of pixels is reasonably simple, as long as you code for it from the start.</p>
<h2>A case study&#8230; Ikaroids</h2>
<p>In closing, I wanted to give you an example of how we updated Ikaroids to make it fit the &#8216;title-safe&#8217; area. First of all, here is an example screen shot from before we realised that we had a problem. The title-safe area is depicted in red.</p>
<div id="attachment_51" class="wp-caption aligncenter" style="width: 582px"><img class="size-full wp-image-51" title="BadTitleSafe" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/BadTitleSafe.jpg" alt="An example from Ikaroids of a bad title-safe area" width="572" height="323" /><p class="wp-caption-text">An example from Ikaroids of a bad title-safe area</p></div>
<p>In the above example, you can see that many of the HUD elements are not visible on all types of screens. The score for example is so much cropped you can&#8217;t really tell what the numbers should be. In the below example, you can see that we have rectified most of these problems. The elements are all understandable even at the worst case scenario. In this example there is minor cropping, but this is the worst that it should ever be. It&#8217;s also worth noting that we had to modify the camera too, so that the edge of the map was visible. Our original camera pan only a tiny amount outside of the level (so you couldn&#8217;t ever see the edge of the level if you had large overscan). We rectified this in the most recent version.</p>
<div id="attachment_52" class="wp-caption aligncenter" style="width: 561px"><img class="size-full wp-image-52" title="GoodTitleSafe" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/GoodTitleSafe.jpg" alt="Ikaroids with an Updated HUD to fit the title-safe area" width="551" height="310" /><p class="wp-caption-text">Ikaroids with an Updated HUD to fit the title-safe area</p></div>
<h2>We&#8217;d love to hear from you</h2>
<p>I&#8217;d love to hear about how you&#8217;ve overcome these challenges in the past. If you have some natty ideas that you would like to share with the world, please feel free to leave a comment below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/10/xna-the-title-safe-area-and-sdtvs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
