<?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>Paradice Software &#187; Decision</title>
	<atom:link href="http://www.paradicesoftware.com/blog/index.php/tag/decision/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paradicesoftware.com/blog</link>
	<description>Developing a role-playing game since 1981</description>
	<lastBuildDate>Tue, 22 Jun 2010 08:23:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Icefall Character Creation</title>
		<link>http://www.paradicesoftware.com/blog/index.php/2009/11/icefall-character-creation/</link>
		<comments>http://www.paradicesoftware.com/blog/index.php/2009/11/icefall-character-creation/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 10:36:38 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Icefall]]></category>
		<category><![CDATA[Decision]]></category>

		<guid isPermaLink="false">http://www.paradicesoftware.com/blog/?p=179</guid>
		<description><![CDATA[Because screenshots are always interesting, here is a screenshot of the &#8220;Character Creation&#8221; part of Icefall. This is one of the very first screens new players will see, as they opt to begin a new adventure the first thing to do is decide who they&#8217;re going to be. (I deliberately replaced the description text with [...]]]></description>
			<content:encoded><![CDATA[<p>Because screenshots are always interesting, here is a screenshot of the &#8220;Character Creation&#8221; part of Icefall. This is one of the very first screens new players will see, as they opt to begin a new adventure the first thing to do is decide who they&#8217;re going to be. (I deliberately replaced the description text with Latin, don&#8217;t want to give away too many plot points at this stage!)</p>
<div class="mceTemp mceIEcenter">
<div id="attachment_178" class="wp-caption aligncenter" style="width: 641px"><img class="size-full wp-image-178 " title="Character Creation" src="http://www.paradicesoftware.com/blog/wp-content/uploads/2009/11/CreateChar.png" alt="Icefall Character Creation, Nov 30 2009" width="631" height="314" /><p class="wp-caption-text">Icefall Character Creation, Nov 30 2009</p></div>
</div>
<p>Note: the &#8220;portrait&#8221; is currently a giant, upscaled version of the tiles used for the characters ingame. I would love to have larger character portraits, but my artistic skill just isn&#8217;t there&#8230;. hopefully I will find or convince someone at some point to help out <img src='http://www.paradicesoftware.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>Class Selection</h3>
<p>In Icefall, Class is a much more important choice than Race: Race has a few minor effects on stats, starting location, etc, but Class affects how you will approach the game: how you will defeat monsters and complete quests.</p>
<p>I strongly considered a &#8220;class-free&#8221; model, where the player starts with a generic character and shapes it over time just by their choices of equipment and &#8217;specialisations&#8217; (Titan Quest is a good example of this approach), but it made things too complicated, and you don&#8217;t gain too much in the approach anyway: in Titan Quest, if you don&#8217;t specialise correctly, you&#8217;ll end up a sort of &#8220;jack-of-all trades&#8221; type character who is not good enough at any one thing to get very far. So you may as well make the choice up-front, so that you and the game can work together to give you the type of experience you want. Choose a Ranger? Great, I&#8217;m going to give you some ranger-related quests.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paradicesoftware.com/blog/index.php/2009/11/icefall-character-creation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Icefall UI Evolution</title>
		<link>http://www.paradicesoftware.com/blog/index.php/2009/11/icefall-ui-evolution/</link>
		<comments>http://www.paradicesoftware.com/blog/index.php/2009/11/icefall-ui-evolution/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 23:25:57 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Icefall]]></category>
		<category><![CDATA[Decision]]></category>

		<guid isPermaLink="false">http://www.paradicesoftware.com/blog/?p=170</guid>
		<description><![CDATA[Taking a break from coding topics, today&#8217;s post explores how Icefall&#8217;s dialog User Interface (UI) has evolved over the course of it&#8217;s development. My automatic-backup tool keeps every version of Icefall available, so I fired up a few old versions and took some screenshots to illustrate the process.
Original Design

This screenshot is actually from the realtime Icefall [...]]]></description>
			<content:encoded><![CDATA[<p>Taking a break from coding topics, today&#8217;s post explores how Icefall&#8217;s dialog User Interface (UI) has evolved over the course of it&#8217;s development. My automatic-backup tool keeps every version of Icefall available, so I fired up a few old versions and took some screenshots to illustrate the process.</p>
<h3>Original Design</h3>
<p><img class="aligncenter size-medium wp-image-166" title="UI Dialog: Original" src="http://www.paradicesoftware.com/blog/wp-content/uploads/2009/11/Stage1-300x239.jpg" alt="UI Dialog: Original" width="300" height="239" /></p>
<p>This screenshot is actually from the realtime Icefall prototype. I needed a quick way to change screen resolutions for testing, so this is it. Some interesting features: The green background would slowly sway while the dialog was open, and there was a shimmering gold border around whichever element had keyboard focus.</p>
<h3>Revision</h3>
<p><img class="aligncenter size-medium wp-image-167" title="Icefall: Revision" src="http://www.paradicesoftware.com/blog/wp-content/uploads/2009/11/Stage2-300x266.jpg" alt="Icefall: Revision" width="300" height="266" /></p>
<p>Fast forward to the turn-based rewrite of Icefall, and this is the original Video Options dialog. Some big changes: the background texture is more subdued, there is a panel on the left to select what <strong>type </strong>of options to view, and the gold-edge focus indicator has gone (now, the focused element is just highlighted a little more). Buttons and checkboxes have also had a minor makeover, e.g. the buttons are now rounded.</p>
<h3>Revision 2</h3>
<p><img class="aligncenter size-medium wp-image-168" title="UI Dialog: Revision 2" src="http://www.paradicesoftware.com/blog/wp-content/uploads/2009/11/Stage3-300x248.jpg" alt="UI Dialog: Revision 2" width="300" height="248" /></p>
<p>What changed here? The window frame! Gone is the &#8216;rusted steel&#8217; frame from the top and bottom of the window, replaced with an ice-blue frame that encloses all four sides. I wanted to get more &#8220;ice theme&#8221; into the UI for the game, and at the same time I needed a UI frame that covered the left and right too, because not all UI elements use the slate background (the spellbook, for example, uses a &#8216;book&#8217; background, and it looked a little strange with no enclosing frame). I also think this looks better than the previous one.</p>
<h3>Current Design</h3>
<p><img class="aligncenter size-medium wp-image-169" title="UI Design: Final" src="http://www.paradicesoftware.com/blog/wp-content/uploads/2009/11/Stage4-300x248.jpg" alt="UI Design: Final" width="300" height="248" /></p>
<p>Good, the rate-of-change of the dialog is slowing down, which means we&#8217;re getting closer to completion! The only change here is to the background of the listbox. The &#8216;green waves&#8217; looked ok in the original version, but as the look and feel of the rest of the dialog evolved, it began to look more and more out of place. When the dialog frames turned ice-blue, it was a good opportunity to build on that existing colourspace and again lend more of an &#8216;icey&#8217; theme to things by using a dark, ice-blue texture. This is what this dialog looks like in current builds. Hopefully, you agree with me that it&#8217;s the best looking of them all?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paradicesoftware.com/blog/index.php/2009/11/icefall-ui-evolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minimum requirements</title>
		<link>http://www.paradicesoftware.com/blog/index.php/2009/11/minimum-requirements/</link>
		<comments>http://www.paradicesoftware.com/blog/index.php/2009/11/minimum-requirements/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 08:11:56 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Icefall]]></category>
		<category><![CDATA[Decision]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.paradicesoftware.com/blog/?p=114</guid>
		<description><![CDATA[What&#8217;s a reasonable minimum spec to aim for these days?
With Icefall, I&#8217;ve already taken the decision to target Direct3D9 &#8211; I get a lot of extra capabilities compared to DirectX8, and it still works with Windows XP unlike 10 or 11&#8230; a pretty simple decision.
But what about in terms of video memory? And system RAM? [...]]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s a reasonable minimum spec to aim for these days?</p>
<p>With Icefall, I&#8217;ve already taken the decision to target Direct3D9 &#8211; I get a lot of extra capabilities compared to DirectX8, and it still works with Windows XP unlike 10 or 11&#8230; a pretty simple decision.</p>
<p>But what about in terms of video memory? And system RAM? What&#8217;s a realistic minimum these days? Icefall is a freeware, turn-based RPG, so by rights it shouldn&#8217;t require a leading edge PC, but I need a specific target to prevent limiting myself unnescessarily. </p>
<p>Howzabout 32mb video, and 512mb RAM? I think that fits most every PC you could buy in the last few years&#8230; and should be enough for some reasonable effects. Anyone got any thoughts on this?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paradicesoftware.com/blog/index.php/2009/11/minimum-requirements/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Real-time, or turn-based?</title>
		<link>http://www.paradicesoftware.com/blog/index.php/2009/10/real-time-or-turn-based/</link>
		<comments>http://www.paradicesoftware.com/blog/index.php/2009/10/real-time-or-turn-based/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 22:18:00 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Icefall]]></category>
		<category><![CDATA[Decision]]></category>

		<guid isPermaLink="false">http://www.paradicesoftware.com/blog/?p=26</guid>
		<description><![CDATA[The next step in Icefall&#8217;s development was to decide whether to make the game realtime (like Diablo, Titan Quest, World of Warcraft&#8230;) or turn-based (Angband, Nethack, Ultima 1..5). This is probably the biggest decision for a role-playing game, as it dictates the entire gameplay, as well as the UI, multiplayer, everything.
Initially, I looked at real-time. [...]]]></description>
			<content:encoded><![CDATA[<p>The next step in Icefall&#8217;s development was to decide whether to make the game realtime (like Diablo, Titan Quest, World of Warcraft&#8230;) or turn-based (Angband, Nethack, Ultima 1..5). This is probably the biggest decision for a role-playing game, as it dictates the entire gameplay, as well as the UI, multiplayer, everything.</p>
<p>Initially, I looked at real-time. This is the only choice for multiplayer (turn-based multiplayer just doesn&#8217;t flow) and all of the &#8216;modern&#8217; games follow this formula. So I developed a playable prototype along these lines. While still using a tile-based world, this would allow freeform movement (characters were not tied to specific &#8217;tile&#8217; locations), and could have supported multiplayer quite naturally. Using placeholder graphics borrowed from games, I developed a prototype game that ran in real-time:</p>
<div id="attachment_27" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.paradicesoftware.com/blog/wp-content/uploads/2009/10/Icefall_prototype.jpg"><img class="size-medium wp-image-27 " title="Icefall_prototype" src="http://www.paradicesoftware.com/blog/wp-content/uploads/2009/10/Icefall_prototype-300x235.jpg" alt="Prototype of Icefall in real-time" width="300" height="235" /></a><p class="wp-caption-text">Prototype of Icefall in real-time</p></div>
<p style="text-align: left;">The prototype accomplished it&#8217;s goal, which was to determine whether real-time was feasible, and what the challenges would be. After getting the prototype running with some simple monsters, I had figured out the challenges I would be facing:</p>
<p style="text-align: left;">* Pathfinding dozens of monsters around a complex environment, in real time, is very hard.</p>
<p style="text-align: left;">* Real-time locks you into a specific travel speed, and can make &#8216;huge worlds&#8217; time consuming to explore.</p>
<p style="text-align: left;">* It was very hard to find the right &#8216;game speed&#8217;. Too slow and players get frustrated and bored. Too fast and the monsters can kill the player too quickly. I wanted players to dictate the pace: in Angband, you can play it very quickly or very slowly. I couldn&#8217;t find how to do that with real-time (a &#8220;game-speed&#8221; slider would not accomplish this).</p>
<p style="text-align: left;">* It just didn&#8217;t feel like the game I wanted to make. (I have played too much Angband).</p>
<p style="text-align: left;">* It didn&#8217;t quite &#8216;fit&#8217; with other concepts I had already thought about, as well. e.g. I already knew that I would be implementing a &#8216;monster memory&#8217;, which tracked monster kills for players and stored any weaknesses/vulnerabilities/etc the player observed. With a real-time game, I couldn&#8217;t figure out how the player would access the monster memory without pausing the game (which would be ugly for multiplayer) or just looking it up academically after the battle was already over (not very useful).</p>
<p style="text-align: left;">Making the decision to go turn-based was a big &#8216;constraint&#8217; in itself, but with the decision made, it makes many many other features much easier, and seems to make the player&#8217;s overall experience more relaxing.</p>
<p style="text-align: left;">This final key decision having been made, I was ready to start some actual coding. Next time, I think I&#8217;ll mix it up a bit by looking at an actual code sample&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paradicesoftware.com/blog/index.php/2009/10/real-time-or-turn-based/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>About Icefall</title>
		<link>http://www.paradicesoftware.com/blog/index.php/2009/10/hello-world/</link>
		<comments>http://www.paradicesoftware.com/blog/index.php/2009/10/hello-world/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 08:21:40 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Icefall]]></category>
		<category><![CDATA[Decision]]></category>
		<category><![CDATA[Freepascal]]></category>

		<guid isPermaLink="false">http://www.paradicesoftware.com/blog/?p=1</guid>
		<description><![CDATA[I am currently working on a new role playing game called Icefall, and to help maintain clear thinking, correct decisions, etc etc etc, I&#8217;ve decided to document the development journey on this website as a blog. That way, once Icefall is released and becomes hugely popular (:D), I will have a solid record of how [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently working on a new role playing game called Icefall, and to help maintain clear thinking, correct decisions, etc etc etc, I&#8217;ve decided to document the development journey on this website as a blog. That way, once Icefall is released and becomes hugely popular (:D), I will have a solid record of how it happened. As the game is currently about 25% complete, it&#8217;s a good opportunity to summarise the progress to-date and take a look at the &#8216;big&#8217; decisions, which have already been made:</p>
<h3>Decision: Role Playing Game</h3>
<p>Many of the very first games I got hooked on were RPGs: Moria, Ultima 5, Death Knights of Krynn) but each of them always had things I thought &#8220;if only it did&#8230;&#8221;, so creating my own game would be my opportunity to put that into practice. I&#8217;ve started to create many RPGs over the years, but I&#8217;ve never finished one or even got it largely playable. This was due to various different causes, either I&#8217;d hit a wall somewhere (pathfinding, AI, memory, and graphical speed have all defeated me over the years) or a new game (Halo, World of Warcraft) would come along and I&#8217;d abandon my development for long enough that I forgot the intricate workings of the code, and rather than dive back in I abandoned it.</p>
<p>So I&#8217;ve still never made a role playing game. Time to fix this!</p>
<p>Another good reason is that it&#8217;s within my ability. Making something like a first-person shooter (at least, a good one!) just wouldn&#8217;t be possible for me because having decent graphics is too large a part, and my graphical ability&#8230; well, let&#8217;s just call it &#8220;<a href="http://www.paradicesoftware.com/gui/launch.htm?http://en.wikipedia.org/wiki/Programmer_art" target="_blank">Programmer Art</a>&#8221; and move on.</p>
<h3>Decision: Free Pascal</h3>
<p>Having decided on the type of game I&#8217;m making, the next step is to choose the programming language. These days there are more languages than ever, and some of the new ones are really good. C# + XNA would be my &#8216;high level&#8217; choice, it makes it ridiculously easy to get graphics on the screen and a game up and running&#8230;</p>
<p>But&#8230;</p>
<p>I&#8217;m not just programming to make a game, I&#8217;m also doing this because I want to be challenged. I want to take fundamental, low-level control over everything my code does in every situation. Using a low-level language (C++, Pascal&#8230;) means there&#8217;s a lot more up-front effort involved (getting graphics on the screen isn&#8217;t one line of code anymore, it&#8217;s a couple of hundred) but, to me, also much more satisfaction when it works!</p>
<p>When I want to add a function, I can&#8217;t just copy a C# code snippet from the internet, I&#8217;ve had to go away and install the DirectX SDK, read the documentation for each instruction, look at the example code, re-interpret it to suit what I&#8217;m trying to do, and play with it until I get it to compile. The reward (and the knowledge that is acquired as a consequence of having to research every call) is worth it. (This is the same reason I&#8217;m not using an existing &#8216;game engine&#8217;, I&#8217;m creating my own with LX7).</p>
<p>Having decided to use a low-level language, my choices are C++ and Pascal (I don&#8217;t want to learn another language at the same time as creating a complex game, the game at the end would suffer too much as a result of my learning-while-doing). I chose Pascal because, I&#8217;m not really sure why, I just &#8220;like it&#8221;.It has all the language constructs I&#8217;m going to need (primarily Classes), and I like that it&#8217;s not quite as low-level as C++, which gives me a little bit more room to spend on game logic but without having to sacrifice anything.</p>
<p>Finally, choosing between my Pascal options, FreePascal and Delphi&#8230; I think FreePascal is superior! It definately compiles faster and makes smaller executables. It doesn&#8217;t support Windows GUI very well, but Icefall like 99% of games will have custom UI anyway. It&#8217;s also free. Finally, the platform is far less common than C++, and there aren&#8217;t many games in development using it (especially on Windows), so when the game is done and LX7 (the graphics/game engine I&#8217;m creating to support Icefall at the same time) is finished, I might have something to give back to the FreePascal community. So it&#8217;s settled!</p>
<p>Next time, I will talk about the third key decision for Icefall: whether to make it real-time, or turn-based?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paradicesoftware.com/blog/index.php/2009/10/hello-world/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
