<?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; Sentinel Development Diary</title>
	<atom:link href="http://www.ironstarmedia.co.uk/blog/category/development-diaries/sentinel-dev-diary/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>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>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>
	</channel>
</rss>
