<?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; game development</title>
	<atom:link href="http://www.ironstarmedia.co.uk/blog/tag/game-development/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>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>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>Tutorial: Panelling Effects on a Sprite</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/10/tutorial-panelling-effects-on-a-sprite/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/10/tutorial-panelling-effects-on-a-sprite/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 09:56:50 +0000</pubDate>
		<dc:creator>Jackson Matthews</dc:creator>
				<category><![CDATA[2D Graphics]]></category>
		<category><![CDATA[2-d graphics]]></category>
		<category><![CDATA[artwork]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Sprite Work]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=89</guid>
		<description><![CDATA[In this post I&#8217;m going to show you the stages I use to apply a &#8216;panelling&#8217; effect on my machine sprites, to give the impression that a sprite has been constructed. These little details, such as raised and indented areas, can really bring an otherwise simple surface to life very fast.
Tools needed:
Photoshop

1. The Base Shape
For [...]]]></description>
			<content:encoded><![CDATA[<p>In this post I&#8217;m going to show you the stages I use to apply a &#8216;panelling&#8217; effect on my machine sprites, to give the impression that a sprite has been constructed. These little details, such as raised and indented areas, can really bring an otherwise simple surface to life very fast.</p>
<p>Tools needed:</p>
<p>Photoshop</p>
<p><span id="more-89"></span></p>
<p>1. The Base Shape</p>
<p>For this example, I&#8217;m going to work with a basic sphere.&nbsp; Draw a circle the basic colour of the surface you want to add detail to. In my case&nbsp; I&#8217;m just going to use a simple metallic gray. Make sure your circle is on a separate layer to the background.</p>
<p><img class="aligncenter size-full wp-image-92" title="01" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/012.jpg" alt="01" width="270" height="263" /></p>
<p>2. Shading the Surface</p>
<p><img class="aligncenter size-full wp-image-93" title="02" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/022.jpg" alt="02" width="270" height="263" /></p>
<p>Next, using the Dodge and Burn tools, add shadow and highlight as required. I recommend setting the Exposure to 25% and the Range to Highlights, but of course this is just my preference.</p>
<p>3. Panel Shapes</p>
<p><img class="aligncenter size-full wp-image-97" title="03" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/032.jpg" alt="03" width="544" height="265" /></p>
<p>Now create a new layer and call it something like &#8216;Panel Shape&#8217;. Change your foreground colour to something highly visible (red in my case) and draw a shape over the sphere. I recommend using the path tool for this. The tricky part here is getting a convincing shape, but this will of course be easier on flat surfaces. The important part is where the red area intersects the sphere itself, as this is the line we will be working with. It does not matter if the shape goes over the edge of the sphere. Then, fill the path with your chosen colour.</p>
<p>4. The Magic</p>
<p>Now, turn off the Panel Shape layer&#8217;s visibility, so that you can just see the sphere. Then, CTRL+click on the thumbnail image&nbsp; in the Layers palette, so that you get a selection the shape of the Panel Shape.</p>
<p><img class="aligncenter size-full wp-image-98" title="04" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/042.jpg" alt="04" width="272" height="265" /></p>
<p>Next, go to Select &gt; Modify &gt; Expand, and select 2 pixels. Higher numbers will yield deeper grooves. Once you have expanded the selection, CTRL+ALT+Click on the thumbnail image&nbsp; of the Panel Shape in the Layers palette, which subtracts the shape of the shape from the current selection. This will give you a thin outline selection.</p>
<p><img class="aligncenter size-full wp-image-100" title="05" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/052.jpg" alt="05" width="272" height="265" /></p>
<p>Then, select the Burn tool and set the Exposure to 100%. Then, on the Sphere layer, shade the parts of the selection area that are facing away from the light source, and 100% Dodge on those that are.</p>
<p>5. The Clever Part</p>
<p>CTRL+Click again to select the shape of the Panel Shape, as before. Only this time, we&#8217;re going to contract the selection. Select &gt; Modify &gt; Contract, by 2 pixels again. Then, invert the selection (CTRL+Shift+I). Next, CTRL+Shift+ALT+Click on the thumbnail of the Panel Shape in the Layers palette. This will give another thin selection, only this time inside the previous shading area.</p>
<p><img class="aligncenter size-full wp-image-102" title="06" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/062.jpg" alt="06" width="272" height="265" /></p>
<p>Now, use the 100% Dodge and Burn again, making sure that the shading is reversed from before, i.e. dark areas touching light areas, and vice versa. It will take a little practice!</p>
<p>6. Repeat!</p>
<p><img class="aligncenter size-full wp-image-104" title="07" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/07.jpg" alt="07" width="270" height="263" /></p>
<p>Repeat the process as much as required to produce an assortment of panels and effects. I used this extensively on many of my sprites, for example, this guy:</p>
<p><img class="aligncenter size-full wp-image-105" title="08" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/081.jpg" alt="08" width="524" height="284" /></p>
<p>I hope you find this useful in making your own sprites!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/10/tutorial-panelling-effects-on-a-sprite/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>
		<item>
		<title>Tutorial: Creating a Boss Sprite</title>
		<link>http://www.ironstarmedia.co.uk/blog/2009/10/creating-a-boss-sprite/</link>
		<comments>http://www.ironstarmedia.co.uk/blog/2009/10/creating-a-boss-sprite/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 21:21:35 +0000</pubDate>
		<dc:creator>Jackson Matthews</dc:creator>
				<category><![CDATA[2D Graphics]]></category>
		<category><![CDATA[2-d graphics]]></category>
		<category><![CDATA[artwork]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Sprite Work]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.ironstarmedia.co.uk/blog/?p=26</guid>
		<description><![CDATA[In this post I hope to take you through the basic stages of putting together the pieces for a boss sprite. Obviously everyone is going to have their own preferred technique, but here's what I found worked best for me once I'd made a few already and had the process refined to a point I was happy with.]]></description>
			<content:encoded><![CDATA[<p>In this post I hope to take you through the basic stages of putting together the pieces for a boss sprite. Obviously everyone is going to have their own preferred technique, but here&#8217;s what I found worked best for me once I&#8217;d made a few already and had the process refined to a point I was happy with.</p>
<p><span id="more-26"></span></p>
<p>Tools used:</p>
<p>• Pencil/paper<br />
• Scanner<br />
• Adobe Photoshop (or similar graphics program)</p>
<p><strong>1. Drawing the design</strong></p>
<p><img class="aligncenter size-full wp-image-36" title="01" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/01.jpg" alt="01" width="400" height="406" /></p>
<p>First of all, I sketched the design of the sprite in it&#8217;s entirety, making sure to pick a &#8216;neutral&#8217; pose and position, picturing how I wanted it to be presented on-screen. Therefore I chose the standard &#8216;head-on&#8217; view as this would be what the player would be seeing, but needs may vary for different sprites and games, so this is the time to visualise what the sprite is going to look like and what it is going do.</p>
<p><strong>2. Scanning the drawing</strong></p>
<p>Once I had a fairly defined sketch of the sprite, I scanned it at 300dpi. It doesn&#8217;t need to be a highly defined drawing, as all we are going to do with it is draw over it in Photoshop or another graphics program.</p>
<p>At this stage I also found it helpful to have an image of the background that the sprite is going to appear on in-game behind the pencil sketch as another layer, in order to get a better feel for the colours to use. I set a space background as the background layer, then brought in my scanned pencil sketch as new layer, setting the layer type to Multiply for the background to show through.</p>
<p>If your background is dark, obviously the pencil sketch will not show up too well, as I found out rather quickly! To solve this problem, I removed the white from the image, only leaving my lines. This was done with Mac&#8217;s Remove White Filter, available from here: http://morepunkinstuff.tripod.com/filters/Mac/mac.html. I then inverted the colours of the sketch (Image &gt; Adjustments &gt; Invert), which left me with just the lines of my sketch in a nice chalky white that showed up perfectly on the black void of space.</p>
<p><img class="aligncenter size-full wp-image-37" title="02" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/02.jpg" alt="02" width="400" height="405" /></p>
<p style="text-align: center;">&nbsp;</p>
<p><strong>3. Basic Shapes</strong></p>
<p><img class="aligncenter size-full wp-image-38" title="03" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/03.jpg" alt="03" width="400" height="310" /></p>
<p>From here I could draw the shapes that I needed, copying, pasting and mirroring wherever necessary. I used different layers for everything, which made it easy to reposition if I had to. I had to consider which parts were going to move, in this case the eyes and arms, so that these pieces could be constructed separately.</p>
<p><img class="aligncenter size-full wp-image-39" title="04" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/04.jpg" alt="04" width="700" height="282" /></p>
<p><strong>4. Shading and extra colour</strong></p>
<p><img class="aligncenter size-full wp-image-40" title="05" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/05.jpg" alt="05" width="700" height="299" /></p>
<p>This was the fun part! To darken the shadowy parts, I used the Burn tool, set to 25% Exposure and 0% Hardness, and Range using Highlights, using varying brush sizes as necessary to give a soft gradient to the shading. Since each piece was on a separate layer, I didn&#8217;t have to worry about going over any lines, as the Burn tool only darkens what is already there.</p>
<p>After that, the highlights were achieved by using the Dodge tool on the same settings, making them slightly sharper to give a glistening look.</p>
<p>The eyes were constructed using three layers each &#8211; the eyeball, the iris and pupil, and then shadows and highlight applied to each piece individually.</p>
<p><strong>5. Saving</strong></p>
<p><img class="aligncenter size-full wp-image-41" title="06" src="http://www.ironstarmedia.co.uk/blog/wp-content/uploads/2009/10/06.jpg" alt="06" width="655" height="502" /></p>
<p>Of course, I was saving all the time! But the final file format cannot be a psd. As long as you have kept well organised with regard to layers and groups, you should have no problem here. I took each separate piece, copied it to preserve the original, and merged it before copying it to a new image with a transparent background. I then expanded the canvas so that the dimensions of the image were multiples of four to make it suitable for a game sprite. I repeated this process for the other pieces.</p>
<p>All in all, this guy took something in the region of 5 hours to complete. He&#8217;s one of my favourite sprites so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironstarmedia.co.uk/blog/2009/10/creating-a-boss-sprite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
