<?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>Zeroth Code &#187; game design</title>
	<atom:link href="http://www.oddco.ca/zeroth/zblog/category/game-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oddco.ca/zeroth/zblog</link>
	<description>Game design, development, technology, programming, and python</description>
	<lastBuildDate>Thu, 09 Sep 2010 14:18:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Dynamic pathfinding(Cutting edge research!)</title>
		<link>http://www.oddco.ca/zeroth/zblog/2008/07/29/dynamic-pathfindingcutting-edge-research/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2008/07/29/dynamic-pathfindingcutting-edge-research/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 16:59:09 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[npcs]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[game ai]]></category>
		<category><![CDATA[pathfinding]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://www.oddco.ca/zeroth/zblog/?p=105</guid>
		<description><![CDATA[Today, I went to an awesome presentation by Vadim Bulitko about his most recent research. Here&#8217;s the presentation, but I&#8217;ll summarize what the presentation was about for general use. (I just found that the pdf didn&#8217;t come through the pdf export very well, apparently.) This was a presentation at UBC-Okanagan, in Kelowna, BC for reference. [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I went to an awesome presentation by Vadim Bulitko about his most recent research. <a href="http://ircl.cs.ualberta.ca/files/webfm/lrts/pres/2008-07-18-DLRTA.pdf">Here&#8217;s the presentation</a>, but I&#8217;ll summarize what the presentation was about for general use. (I just found that the pdf didn&#8217;t come through the pdf export very well, apparently.) This was a presentation at UBC-Okanagan, in Kelowna, BC for reference. Vadim is thinking about taking his sabbatical here at UBC, yay!</p>
<p>Its a rather innovative technique, and delivers great results for only a bit of computer power.</p>
<p><span id="more-105"></span></p>
<h1><span style="text-decoration: underline;"><strong>The Big Granddaddy Algorithms</strong></span></h1>
<p>First, a bit of background as to what has been done before. The Big Granddaddy of pathfinding algorithms is the A*(called the A-star) algorithm. It makes the complete plan, every step needed, to get from one point to another, then executes it. Unfortunately, the amount of time this takes scales exponentially with the size of the map. It, however, does provide an optimal path.</p>
<p>The other algorithm is the LRTA* algorithm, which looks ahead, and moves based only on that information. For example, it looks ahead, maybe 3 steps, and sees what sequence of 3 steps will bring it closer, in a straight-line measurement, to the goal. This has the benefit of always executing within a certain amount of time. Unfortunately, walls between the agent and the goal can and will prove difficult to surmount.</p>
<p>An addition to the LRTA* raises the &#8220;distance&#8221; weighting of a node every time the agent goes over it, thus eventually forcing the agent to go around the wall. But it still takes bumping into the wall three or four times to finally find the correct path.</p>
<h1><span style="text-decoration: underline;"><strong>Its all real(time that is).</strong></span></h1>
<p>There are a few constraints that pathfinding needs to work under in games, and even in robotics(Phoenix Mars Lander anyone?). You need to have something that can operate and find its way with only a bit of computation, and predictably work well. It would be a disaster for a $70 million dollar robot to keep bumping into a rock.</p>
<p>As well, with ever more powerful cpus and gpus, gamers demand more and more units, and bigger and better maps. The irony is, that with increasing hardware power&#8230; comes even less time to compute pathfinding and general AI. Computer power has only quadrupled a couple of times since Starcraft, yet, we demand 100 times more units, with smarter and more intuitive AI, coupled with four or five times bigger maps.</p>
<h1><span style="text-decoration: underline;">Dynamic Lookahead</span></h1>
<p>So, the way that D LRTA* works is first, they have dynamic lookaheads. Some squares on a map require more searching to find a near optimal solution, particularly around corners. One way to determine the lookahead value for a square, is to naively compute the required minimum lookahead depth to any other possible square. Then, store the pairs of coordinates and that lookahead depth, and just look it up! Simple, eh?</p>
<p>Not really. On a 512&#215;512 map, that results in ~68 billion pairs to store. On a normal desktop, that would take about 2 years to compute(probably a lot less on a compute farm&#8230; google could likely do it in one minute, because its an extremely parallelizable problem.) This is quite unacceptable, both due to time constraints and space constraints. This is where the research group&#8217;s second innovation comes into play.</p>
<h1><span style="text-decoration: underline;">A house divided&#8230;</span></h1>
<p>They found that splitting up the map into spaces, and then computing the optimal lookahead depth from one space to another worked very well. In the worst case, it devolved into LRTA*. However, there must be a better way to divide things up&#8230;</p>
<h1><span style="text-decoration: underline;">Clique Abstraction</span></h1>
<p>[Sturtevant, Buro 2005]</p>
<p>Clique abstraction was developed in the above cited paper. It is the concept of taking adjacent tiles, and lumping them into one larger tile. For example, four adjacent tiles that are all interconnected, could be replaced by one larger tile. And so on, with larger and larger abstraction at each level. (Take a look at page 38 from the PDF)</p>
<p>It becomes a lot easier to pre-calculate the optimal lookahead depths when you have a sufficient level of abstraction. Granted, you lose a bit of that oh so sweet optimalness, but its worth it for getting things to work within a certain amount of time.  Of course, walls and pockets on maps still give the budding algorithm a bit of trouble. Which leads us to the next addition to D LRTA*:</p>
<h1><span style="text-decoration: underline;">Setting goals</span></h1>
<p>The team found that by setting intermediate goals, they take advantage of a small property of lookahead algorithms: they&#8217;re more accurate closer to the goal. By setting goals in each of the subdivided spaces, its plainly obvious to the algorithm that going that-away is better than going this-away.</p>
<p>As well, by not placing goals in spaces that are obviously farther away from the ultimate goal than the starting point, it makes the algorithm ignore those spaces.</p>
<p>Right now, there are two ways to do dynamic lookahead: pre-calculated with clique abstractions, or calculated on the fly with sub-divided spaces and intermediate goals. They both come with their pros and cons, and if the game company can afford it, it appears that precomputed is much more reliable.</p>
<p>Optimal lookahead:</p>
<div id="attachment_107" class="wp-caption alignnone" style="width: 310px"><a href="http://www.oddco.ca/zeroth/zblog/wp-content/uploads/2008/07/optimal.png"><img class="size-medium wp-image-107" title="optimal" src="http://www.oddco.ca/zeroth/zblog/wp-content/uploads/2008/07/optimal-300x192.png" alt="Optimal lookahead depths for a Baldur's gate map" width="300" height="192" /></a><p class="wp-caption-text">Optimal lookahead depths for a Baldur&#39;s gate map</p></div>
<p>Stored Lookahead</p>
<div id="attachment_108" class="wp-caption alignnone" style="width: 310px"><a href="http://www.oddco.ca/zeroth/zblog/wp-content/uploads/2008/07/stored.png"><img class="size-medium wp-image-108" title="stored" src="http://www.oddco.ca/zeroth/zblog/wp-content/uploads/2008/07/stored-300x192.png" alt="Stored lookahead depths for a Baldur's gate map" width="300" height="192" /></a><p class="wp-caption-text">Stored lookahead depths for a Baldur&#39;s gate map</p></div>
<p>I do have a few questions about the research, that unfortunately I didn&#8217;t ask at the time, for example, the outliers on the graph on page 70. One of the results for the little dots was very efficient, but the other two dots are optimal, yet expanded lots and lots of moves. As well, I&#8217;d like to know exactly what the different algorithms that were used for the graphs, specifically. I will ask the presenter today.</p>
<h1><span style="text-decoration: underline;">What else?</span></h1>
<p>What needs to be done to expand this research, is to look at how to handle dynamically changing maps, and moving targets. As well, they haven&#8217;t looked at memory storage techniques or compression of precomputed files.(According to Information Theory, the data files could likely be extremely compressed, on the order of 75% compression or so.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2008/07/29/dynamic-pathfindingcutting-edge-research/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pay as you play</title>
		<link>http://www.oddco.ca/zeroth/zblog/2008/05/25/pay-as-you-play/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2008/05/25/pay-as-you-play/#comments</comments>
		<pubDate>Sun, 25 May 2008 21:05:15 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[game design]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/?p=70</guid>
		<description><![CDATA[I was reading this very long and informative rant/lecture on the shortcomings of current rpg design. Except its dated, because it mentions Ultima Online! The saddest part of the rant however, is the fact that everything stated there still applies to the latest and greatest of rpgs, mmorpgs, etc. I just had one idea to [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">I was reading this very long and informative rant/lecture on the <a href="http://mu.ranter.net/theory/">shortcomings of current rpg design. </a>Except its dated, because it mentions Ultima Online! The saddest part of the rant however, is the fact that everything stated there still applies to the latest and greatest of rpgs, mmorpgs, etc.</p>
<p class="MsoNormal">I just had one idea to put out there, for the general improvement of mmorpgs as a whole. One problem with the addictiveness of say, WoW, is the unlimited play model currently in effect. The player pays ~$15 , and they could theoretically play 720 hours(One whole month, with no sleep, downtime, eating, etc).</p>
<p class="MsoNormal">The downsides of this model are readily apparent, in that being offered unlimited anything, is that we like to get the best bang for our buck. If you pay five bucks for a buffet, you’ll have several helpings, just to take advantage of the deal. It is a natural human tendency to do so, however, it has deleterious effects when applied to new players of an MMORPG.</p>
<p class="MsoNormal">It creates a pressure, both subconscious and cultural pressure, of playing as many hours as possible to take advantage of the theoretically unlimited play. This can, and does lead to addiction with the game, which in turn can destroy lives, just as any other addiction can do so.</p>
<p class="MsoNormal">So to combat this, the solution in retrospect is obvious: pay as you play. The idea is to offer new and casual players the opportunity to buy “hours” of game time. Instead of buying unlimited game time, the player instead buys 60 hours of game time, which can be used over several days, weeks, or months.</p>
<p class="MsoNormal">The benefits are simple and varied. The player can now relax, in that they have bought 60 hours of game time, and can use at any time, with no pressure to play every hour of every day. For the hard working 30-somethings that just want to relax and raid a dungeon with their friends, this is quite literally perfect. As well, it is an immense boon to not have to worry about regular credit card charges, since you’ve been charged once, and will not be charged again until you want more game time.</p>
<p class="MsoNormal">This is a good thing, for the players and the game designers. It produces a non-addictive game, and allows new players to literally try risk free, with no credit card numbers needed.</p>
<p class="MsoNormal">The more difficult question, however, is, Do you allow for players to purchase unlimited play alongside the pay as you play, or only do pay as you play?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2008/05/25/pay-as-you-play/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Playtesting Paper Knaves</title>
		<link>http://www.oddco.ca/zeroth/zblog/2008/01/13/playtesting-paper-knaves/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2008/01/13/playtesting-paper-knaves/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 22:00:44 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[game design]]></category>
		<category><![CDATA[paper knaves]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/2008/01/13/playtesting-paper-knaves/</guid>
		<description><![CDATA[So, I playtested Paper Knaves with my friend, Gallo Pinto, and discovered a few thing. The game is remarkably well-balanced, not allowing either player to ever gain a supreme advantage over the other. However, it is also a much longer game than I figured. It has a depth of strategy as-yet unexplored, but thats always [...]]]></description>
			<content:encoded><![CDATA[<p>So, I playtested Paper Knaves with my friend, <a href="http://gallocomics.blogspot.com/">Gallo Pinto</a>, and discovered a few thing. The game is remarkably well-balanced, not allowing either player to ever gain a supreme advantage over the other. However, it is also a much longer game than I figured. It has a depth of strategy as-yet unexplored, but thats always a good thing.</p>
<p>A few tips: multiple stables or barracks are useless except to block movement.</p>
<p>sacrificing characters is nearly useless, as you can only make one per turn.</p>
<p>Consider all your moves carefully, and remember, you can move pieces diagonally!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2008/01/13/playtesting-paper-knaves/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paper Knaves</title>
		<link>http://www.oddco.ca/zeroth/zblog/2008/01/11/paper-knaves/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2008/01/11/paper-knaves/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 19:42:18 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[game design]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/2008/01/11/paper-knaves/</guid>
		<description><![CDATA[So, I was talking with ruby, and we did a quick mental exercise I like to do. Basically, you take a specific genre or game, and your goal is to design a version that is as stripped down as possible. A few simple rules: All the rules must fit on a sheet of paper, and [...]]]></description>
			<content:encoded><![CDATA[<p>So, I was talking with ruby, and we did a quick mental exercise I like to do. Basically, you take a specific genre or game, and your goal is to design a version that is as stripped down as possible. A few simple rules: All the rules must fit on a sheet of paper, and your ultimate goal is a game easily played on pencil and paper.</p>
<p>First, here&#8217;s my game, based off the RTS genre, which I call Paper Knaves. (If you have a better name, let me know!)<br />
<span id="more-44"></span><br />
<span class="postbody"> <span style="font-weight: bold">Setup</span><br />
You play on an 8&#215;8 board, the color of the spaces do not matter.</span></p>
<p>Each player gets one castle, to be placed anywhere within the first two rows on their side.</p>
<p>A castle can make either a stable, or a barracks, and place them anywhere within two spaces of the castle.</p>
<p>At the beginning of your turn, you can either make a new building(Your only allowed one castle though), or a new unit.</p>
<p>Castle makes a pikeman, a stable makes a knight, and a barracks makes a peasant.  Units are generated right next to the building, on any available spot.</p>
<p>Buildings can be placed within at least two spaces of any other of your buildings.<br />
<span style="font-weight: bold"><br />
Combat</span><br />
Units must be next to each other to initiate combat.</p>
<p>Pikemen beat knights in one turn, knights beat peasants, and peasants beat pikemen.</p>
<p>Any other matchup(IE: Knight charging down a pikeman) results in self-destruction.</p>
<p>Buildings take two turns to be destroyed. However, castles take four turns.</p>
<p>When a building is being attacked, that building cannot make any units.</p>
<p>When your castle is destroyed, you lose.</p>
<p><span style="font-weight: bold">Movement</span><br />
Pieces can move in any direction. You can move one piece two spaces, or two pieces one space. Allied pieces can move through each other(like a Knight in Chess).</p>
<p>Buildings cannot move.<br />
<span style="font-weight: bold"><br />
Turn order</span><br />
Your turn is in three phases:<br />
1)construction: You can either build a new building, or recruit a new unit.<br />
2)movement of pieces<br />
2.a)Then pieces can attack units beside them. Units do not occupy the space of vanquished units<br />
3)clean up(you remove all destroyed pieces, buildings from the board, and play passes to your opponent.)<br />
<strong> Design process</strong></p>
<p>The design process was relatively simple. We looked at the very core of RTS gameplay, which is resource management and combat. This resource vs that resource, and one win. Placement of resources also factored in as well. So, I broke down the RTS genre into three types of resources: time, units, and buildings. If you make the game turn-based, it becomes easy to balance the time aspect, and the easiest and simplest way to balance unit superiority is to use a rock-paper-scissors style dominance method. And I chose to have the win condition as elimination of your castle, to save time on mop-up procedures. However, it does mean that pikemen are that much more valuable, since there is only one building to make it. I still haven&#8217;t playtested the game yet. If you have any thoughts, considerations, critiscisms, verbal diarrhea, let me know at zeroth[a t]oddco[dot]ca</p>
<p>EDIT: Added and updated the rules for clarity.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2008/01/11/paper-knaves/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marketing games makes them suck</title>
		<link>http://www.oddco.ca/zeroth/zblog/2007/12/08/marketing-games-makes-them-suck/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2007/12/08/marketing-games-makes-them-suck/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 02:35:38 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[game design]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/2007/12/08/marketing-games-makes-them-suck/</guid>
		<description><![CDATA[Ah, Assassin&#8217;s Creed. I wonder if anyone else remembers feeling excited for this game? It certainly looked awesome. Innovative per-npc AI, good graphics, intriguing story, interesting gameplay. And I do remember that simply awesome promo video with the Lonely Souls song in the background. I was hyped for the game. Who wasn&#8217;t? Why, even Ctrl-Alt-Del [...]]]></description>
			<content:encoded><![CDATA[<p><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title></title><meta name="GENERATOR" content="OpenOffice.org 2.3  (Unix)" /><br />
<style type="text/css"> 	<!-- 		@page { size: 21.59cm 27.94cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 	--> 	</style>
<p style="margin-bottom: 0cm">Ah, Assassin&#8217;s Creed. I wonder if anyone else remembers feeling excited for this game? It certainly looked awesome. Innovative per-npc AI, good graphics, intriguing story, interesting gameplay. And I do remember that simply awesome <a href="http://www.ctrlaltdel-online.com/news.php?i=1405">promo video</a> with the Lonely Souls song in the background. I was hyped for the game.</p>
<p style="margin-bottom: 0cm">
Who wasn&#8217;t? Why, even <a href="http://www.ctrlaltdel-online.com/news.php?i=1405">Ctrl-Alt-Del </a>featured AC, and expressed excitement. Penny-arcade, Kotaku, many others were all excited for AC. Why, for a week, the promo video was one of the most-watched on gametrailers.com.</p>
<p style="margin-bottom: 0cm">There was a very large marketing push for this game, and it ended up&#8230; <a href="http://www.gamecritics.com/assassins-creed-review">not exactly meeting expectations.</a> Why, one could even go so far as to say it was a bad game. But, this whole fiasco does remind me of one key fact with games: the heavier the advertising, the worse the game will be.</p>
<p style="margin-bottom: 0cm">Just think about every game you&#8217;ve seen, where there were banner ads, videos on tv and the internet(where applicable), even print ads! Now, tell me if that game was any good.</p>
<p style="margin-bottom: 0cm">There are of course, a few exceptions, namely any game made by Nintendo, Blizzard, or Bioware, and games that have already proven popular across the ocean(either Europe or Japan).</p>
<p style="margin-bottom: 0cm">But, it seems, that when a game is felt not to be&#8230; blockbuster calibre, the executives decide to &#8216;cover their ass&#8217;, and push the marketing. Of course, that just pushes up the expenditures related to said game. And they even put pressure onto the reviewers(as detailed here).</p>
<p style="margin-bottom: 0cm">The end result are a lot of broken hopes and failed expectations, and yet another broken game, pushed out before it was ready, wasting people&#8217;s time, money and effort. Is it any wonder that gamers are becoming so jaded about advertised games?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2007/12/08/marketing-games-makes-them-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to make great girl&#8217;s games</title>
		<link>http://www.oddco.ca/zeroth/zblog/2007/11/23/how-to-make-great-girls-games/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2007/11/23/how-to-make-great-girls-games/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 03:24:00 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[female gamers]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[women]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/?p=19</guid>
		<description><![CDATA[The secret to making good girl&#8217;s games is this: make good games. Pretty simple. Thats the conclusion I&#8217;ve come to after talking with a few female gamers I know. I will paraphrase a bit of an interview I did with a close personal friend, whom goes by the pseudonym Ruby. Ruby is an artist, in [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_ncbbNq8vavg/R0ZUxmSrFjI/AAAAAAAAAAM/qzePmbXYRns/s1600-h/383899580_d21c40b6e9.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_ncbbNq8vavg/R0ZUxmSrFjI/AAAAAAAAAAM/qzePmbXYRns/s320/383899580_d21c40b6e9.jpg" alt="" id="BLOGGER_PHOTO_ID_5135885636131821106" border="0" /></a><br />The secret to making good girl&#8217;s games is this: make good games.</p>
<p>Pretty simple. Thats the conclusion I&#8217;ve come to after talking with a few female gamers I know. I will paraphrase a bit of an interview I did with a close personal friend, whom goes by the pseudonym Ruby.</p>
<p>Ruby is an artist, in almost any medium. She wants to convey emotion, meaning, and depth in her work, and from what I&#8217;ve seen, she does a great job of it. She wants to date a J-Rocker, change the world, and look hot doing it.</p>
<p>She does work mainly in drawing, with paints, charcoals, sketches, on the computer. Soon, she&#8217;ll learn how to do 3d models as well, and use her photoshop skills to great effect. She is also the lead artist of the game we&#8217;re working on at the moment, and she&#8217;ll likely end up being the lead writer as well.</p>
<p>She also plays video games, and had some interesting things to say about them. First off, &#8220;Girl&#8217;s games suck.&#8221; They&#8217;re made easy, devoid of content and depth, and stereotype. Thats insulting to girls. They are just as smart, talented, and ambitious as men, and often, more so. So why would their game be simpler, easier, and stereotyped?</p>
<p>Yes, having little susie play Dress-up with a virtual barbie is very enjoyable. But as little susie gets not so little, we encounter a small issue: people don&#8217;t think girls should play games.</p>
<p>According to Ruby, &#8220;There are no positive role models, and no encouragement from society.&#8221; Theres nothing wrong with the games we have today, except for the culture surrounding them. Its as enjoyable for Ruby to snipe someone as it is for me to do so. So then why is it that we think girl&#8217;s games need to be different?</p>
<p>Maybe it could be due to the over-lying themes in games focusing around masculine concepts, such as women with big boobs. That really does not help the cause any, and it just makes the men playing the games appear misogynistic and perverted.</p>
<p>Another culprit is games marketing. Name three games that used sex to sell the game, that actually had nothing to do with the game. I can: Everquest, Grand Theft Auto, and some random shooting game that had women in Vegas on it.</p>
<p>I&#8217;m sure there are a lot more examples out there, but Ruby&#8217;s point has been made. She feels that the culture needs to change, and be more accepting. It needs to have a female role model, and Ruby is prepared to sacrifice to make that happen.</p>
<p>So, basically, what needs to be done is for game developers to realize how some of their choices are sexist and do not at all contribute to the self-esteem of women. And also, for their to be a push in the culture to be more welcoming. Look at all the articles about how women are treated with surprise and disdain in online games, because &#8220;women don&#8217;t exist on the internet. And they most certainly don&#8217;t play video games.&#8221;<a href="http://www.escapistmagazine.com/articles/view/issues/issue_17/109-OMG-Girlz-Don-t-Exist-on-teh-Intarweb-1">(source)</a></p>
<p>So, if you have any comments, flames, threats, leave me a comment.</p>
<p>A few relevant resources:
<ul>
<li><a href="http://www.girlgamezone.com/">Girl Game Zone</a></li>
<li><a href="http://www.womengamers.com/">WomenGamers.com</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2007/11/23/how-to-make-great-girls-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game story-telling</title>
		<link>http://www.oddco.ca/zeroth/zblog/2007/11/21/game-story-telling/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2007/11/21/game-story-telling/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 03:15:00 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[game design]]></category>
		<category><![CDATA[plot]]></category>
		<category><![CDATA[storytelling]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/?p=18</guid>
		<description><![CDATA[Storytelling is a difficult business, particularly in games. And good storytelling is the last great avenue of game design to be focused on, in this age ever-improving graphics and AI. The reason why it has been largely ignored is mainly because it is hard. Faster processors, better algorithms will not ever improve stories in games. [...]]]></description>
			<content:encoded><![CDATA[<p>Storytelling is a difficult business, particularly in games. And good storytelling is the last great avenue of game design to be focused on, in this age ever-improving graphics and AI.</p>
<p>The reason why it has been largely ignored is mainly because it is hard. Faster processors, better algorithms will not ever improve stories in games.  We are used to thinking primarily of one-way storytelling, of a storyteller, and an audience. In games, however, your audience is the story. Their actions are not controlled by a central storyteller. In a haunted house game, if you script the scene such that the background music swells ominously as you move closer to a locked door, what happens to the story if the player backs off?</p>
<p>In the old form of storytelling, whether the main character went through the door or not was up to the storyteller. Not so with games (unless you decide to force them through no matter what, but that itself is bad) .</p>
<p>It is easy to see why the old ways of telling stories do not work in games. However, there are some very good ways of establishing a story. Writers know that good storytelling needs three things: plot, characterization, and exposition. Lets look at each of these elements in the context of envisioning a new way of telling stories.</p>
<p>First up, is exposition. Some of the best ways are to show the player important facts, instead of telling them, as per the old adage, &#8220;It is better to show than to tell.&#8221;  Rather than have someone say everyone is scared, show their responses to the haunted house.  When your character mentions the haunted house, subtle clues like facial expressions(if possible), movement away from the player, and a change in the tone of their dialog works well to convey this fact. A sample dialog:</p>
<p>Random NPC A: Ho there traveller! How goes this fine day?<br />Hero A: Can you tell me about that haunted house over there?<br />Random NPC A: Uhmm, hmm, yes, indeedy this day is fine, but I think it&#8217;ll rain later. I think I shall go now.<br />Random NPC A walks off hurriedly.</p>
<p>If most of, or all of the dialog is at that level, of subtle personal clues, responses, it provides a better sense of what is being shown. In that dialog there, we saw friendliness, turn to avoidance of the issue, even running away.</p>
<p>Second, is characterization. If your game allows for dialog choices, then a good way to convey characterization is to colour the choices in the direction required. What that means is instead of offering a plain good or evil response, the responses offered should be more ambiguous. As an example:</p>
<p>Random NPC B(a girl): And here the heroes be! What brings you back here?<br />Hero A&#8217;s choices:
<ol>
<li>You, beautiful creature.</li>
<li>Your sweet charms.</li>
<li>Your bordello.</li>
</ol>
<p>As you can see, the choices are all different, yet all convey a similar sense of who the character is. In this case, he&#8217;s a lady&#8217;s man. Maybe a good one. Or not. That would have to be shown by the responses. Or even, that would up to the player&#8217;s choices.</p>
<p>However, this is still guiding the player, the old way of storytelling. It all depends on if you want the character to have character traits. For other such characters, providing a range is great. Recommended even! So, then for everyone else involved with the character, the above points about exposition work great for character development.</p>
<p>The last point is plot. And that is, quite simply the hardest. Some random blogger (IE, me) will not have a solution unless they&#8217;re particularly brilliant. Which I am&#8230; except I don&#8217;t have one yet. Some previous suggestions are storytelling by AI/heuristics, branching plots, or sandbox mode. By sandbox mode, I mean, GTA style gameplay.</p>
<p>And thats what I have today.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2007/11/21/game-story-telling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NPC AI or are you talking to yourself?</title>
		<link>http://www.oddco.ca/zeroth/zblog/2007/11/18/npc-ai-or-are-you-talking-to-yourself/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2007/11/18/npc-ai-or-are-you-talking-to-yourself/#comments</comments>
		<pubDate>Sun, 18 Nov 2007 15:07:00 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[npcs]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/?p=16</guid>
		<description><![CDATA[And now for the promised RPG AI part II, a follow up of part I. The second arena of AI in an rpg, are the npcs, non-player characters. That has been most of the focus for AI work in most rpg games. Consequently, the state of the art is much more advanced. The reasoning behind [...]]]></description>
			<content:encoded><![CDATA[<p>And now for the promised RPG AI part II, a follow up of<a href="http://zerothcode.blogspot.com/2007/11/game-ai-or-do-game-ais-feel-pain.html"> part I</a>. The second arena of AI in an rpg, are the npcs, non-player characters.</p>
<p>That has been most of the focus for AI work in most rpg games. Consequently, the state of the art is much more advanced. The reasoning behind this, is to tell a story. To tell a good story. And people standing around repeating the same thing  ruins the effect of the story. It takes the player out of the game, which is not a good thing. In fact, its exactly what the designer does not want. The player ends up noticing small things, tiny details, that did not bother them before. This serves to lower their enjoyment of the game. Again, a bad thing.</p>
<p>Good NPC AI is supposed to prevent this from happening, but I think there is something similar to the <a href="http://en.wikipedia.org/wiki/Uncanny_Valley">Uncanny Valley</a> when it comes to NPC dialog. The closer to reality, the harder it is to believe, but if its sufficiently cartoon-like, its somehow easier to immerse yourself. (Of course, the opposite is also true, where the more ridiculously bad the dialog is, the harder it is to be immersed. And so you end up with kind of a bell curve, balanced between really unpredictable and random, to really really bad.)</p>
<p>One particularly effective example I have seen was used in the <a href="http://en.wikipedia.org/wiki/Golden_Sun">Golden Sun</a> series. In that game, you could use psynergy, kind of like magic, and one of the moves was Telepathy. Using it next to an NPC, you could hear their thoughts. And by changing the thoughts based on any current events, it gave the npcs a hidden dimension, a personality.</p>
<p>The writing itself in those games was particularly brilliant, which also helps. However, in addition to good dialog writing there have been some interesting efforts to provide personality and unpredictability to npc AIs. The first is the &#8220;job system&#8221;, where npcs go around do jobs, live their lives, go shopping, have needs and wants, and react accordingly when you disrupt them.</p>
<p>I see often on indie rpg games their breathless promise of a job system like that, where all the npcs have &#8220;real lives, real personalities!&#8221;. What kind of benefit does this bring to the player? Well, for one, it does provide a kind of personality, as in, &#8220;Thats a blacksmith. He&#8217;s in the blacksmith building for eight hours, then goes home, eats, and sleeps.&#8221; Yep, thats a lot of personality.</p>
<p>Thats what happens often with job systems. You&#8217;ve just added a huge dimension of things to make and define for your designers, more than maps, items, doors, main plots, etc etc. And due to the sheer size, it becomes a copy+paste affair, where every blacksmith in the towns previous are identical to this town&#8217;s blacksmith. Real personality, oh my!</p>
<p>Then there are the dialog trees. This works a bit better to tell the story, provide some personality, but there are still a few major issues. The first is simple, and horrific. Dialog trees end up almost being like those phone menus. Thats right, imagine those dialog trees as being read our loud, with your options each as numbers.</p>
<p>If you&#8217;re like me, you shuddered at this image. Or rather sound recording or&#8230;okay, I&#8217;ve stretched the analogy too far. But back on point. The second issue is the representation. You get a bit of dialog, then have a bunch of dialog choices presented to you. Again, this commits the big story-teller no-no. You remove the player from the story, by showing them the different choices they could be, and maybe should be making. What if they think their character would do something different?</p>
<p>Also, lots of choices do not make people happy. When I&#8217;m faced with six or seven different dialog choices, I suddenly begin wondering, okay, okay, what if I pick the wrong one, and I don&#8217;t hear more about the story like I&#8217;m supposed to? And I begin worrying. Then if you can start the dialog tree over again, you can try the other choices.</p>
<p>Oh wow, more personality! I can do all the dialog choices to find out all the information! Yeah, thats totally realistic. But the designers did decide to make that choice because of the sheer number of choices they gave the player, and it made the test group happier.</p>
<p>Therefore, to fix dialog trees, I have a few ideas. First is cut down the number of choices you give the player! Fewer choices means more happiness, and less &#8220;min-maxing&#8221;. It also serves to tighten up your story-telling such that no npc should need more than three choices at any one time. If you find yourself needing more, then you need another npc.</p>
<p>By separating different parts of the plot to different npcs, you can focus more easily on developing them, or give it to someone else. It makes the writing more parallel. So, by making the user happier, and making it easier to make the game faster, this solution works pretty well.</p>
<p>The second idea is to not use real sentences, but a vague concept. After all, rpg stands for role-playing game. Make the player play a role. Make them pick a response that fits their character, and let the player know this!  Have responses that fit that vague concept, like if the player expresses boredom, the npc becomes more insistent, maybe even angry based on the context.</p>
<p>And there we have it. More brilliance. Till next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2007/11/18/npc-ai-or-are-you-talking-to-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design, or is all that shiny stuff important?</title>
		<link>http://www.oddco.ca/zeroth/zblog/2007/11/15/design-or-is-all-that-shiny-stuff-important/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2007/11/15/design-or-is-all-that-shiny-stuff-important/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 17:29:00 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[rpg]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/?p=13</guid>
		<description><![CDATA[Design is a very big thing, for a lot of people. But I find its often misunderstood, or incorrectly applied. To start with, design does not mean the same thing to Interior decorators as it does to architects. But most people see design as more of the interior decorator kind, than the architect kind. Interior [...]]]></description>
			<content:encoded><![CDATA[<p>Design is a very big thing, for a lot of people. But I find its often misunderstood, or incorrectly applied. To start with, design does not mean the same thing to Interior decorators as it does to architects. But most people see design as more of the interior decorator kind, than the architect kind.</p>
<p>Interior decorators do what I call appearance level design. And the benefits of appearance level design are not all that important. They make people feel better, more at home. Its a more impressive room/house/office.</p>
<p>That is not real design, in my view. Real design is figuring the best placement of bathrooms and appliances in the kitchen for maximum comfort and productivity. Real design is invisible, unseen, uncredited.</p>
<p>Here&#8217;s a little task for you, to see what design really is about. Walk into any room of your house/apartment/mud hut/palace, and choose a common household item. I&#8217;ll take a knife block as an example. Now, spend five or ten minutes thinking about how you could improve a knife block, to A) make it easier to use or B) add new functionality that is not just combining two opposite functions (like a clock on a VHF antenna).</p>
<p>If you can come up with an improvement that is not just glitz, that actually makes the item better than it was before, then the item does not have good design. If however, you can come up with nothing, and you realize changing anything would be for the worst, the item has good design.</p>
<p>My example the knife block, works really well for its purpose: hold knives, keep them sharp, and keep them organized.  Can there be an improvement, that would make using it easier, faster, more efficient at its purpose? After ten minutes, all I could come up with was improving the knives themselves. The actual knife block works great. Its easy to pull out a knife, you know by the size of the hole how big the knife is, and its easy to put back in. Some knife blocks have built-in sharpeners, and thats about the only improvement that could be made.</p>
<p>The fact is, it takes experience and introspection to see design around us all the time. In our games, in TV shows, in our world all around us.</p>
<p>Another excellent example is in Final Fantasy III for the DS. The actual interface is a hodge-podge of button-clicking and touch-screen use, not very good. However, in the item list, for each category of items, there is an 8&#215;8 icon representing it. This sits beside each item in your inventory, allowing you at a glance to see what it is. Axes for viking weapons, a glove icon for accessories, a spear icon for dragoons. Its simple, effective, nearly invisible. I caught myself using the icons, and thats when I actually noticed them. Someone consciously decided to make icons for each kind of item, and displayed them. Why? To make it easier to deal with a large inventory!</p>
<p>Good design is all around us. And good design takes conscious effort. Any time you find yourself making a snap decision on the placement of an item, or icon, or graphic interface, ask yourself why it goes there, and is there any way I can improve this?</p>
<p>As a personal example of good design, I was tasked to make it so that users of an application would know that the file has not been saved yet. My first response was a dialog on exit(or any other context change, more on that in future posts) if the file was not saved. Then I thought, okay, the user, she&#8217;s likely not going to want to have to click through a dialog all the time, so how else can I do this? I added an icon to the upper bar, that appears when the file is modified. Its red, shaped like a stop sign, and has the word stop on it. Its placed right by the exit button.</p>
<p>Nowhere else in the application is red used, so when you go to load a new file, exit, you see the icon if you did not already. It disappears when you save, and it appears when you modify a file. No dialogs, no clicks, simple information conveyed quickly and easily. That is good design. It makes the workflow faster, the user quickly and easily learns what the icon means, and it helps them!</p>
<p>Next time, ask yourself why you are making the decision this way. If you can improve it, do so!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2007/11/15/design-or-is-all-that-shiny-stuff-important/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game AI, or Do game AI&#8217;s feel pain?</title>
		<link>http://www.oddco.ca/zeroth/zblog/2007/11/10/game-ai-or-do-game-ais-feel-pain/</link>
		<comments>http://www.oddco.ca/zeroth/zblog/2007/11/10/game-ai-or-do-game-ais-feel-pain/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 04:53:00 +0000</pubDate>
		<dc:creator>Zeroth</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[game design]]></category>
		<category><![CDATA[genetic algorithms]]></category>
		<category><![CDATA[rpg]]></category>

		<guid isPermaLink="false">http://oddco.ca/zerothsblog/?p=12</guid>
		<description><![CDATA[As some of you may know, I am currently working on an rpg.(Who isn&#8217;t it seems like). However, I was thinking about different AI ideas that could be implemented in an RPG. For this post, I will focus only on monster/enemy AI. Now, the first thing that can make rpg battles/dungeons a bit more interesting [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you may know, I am currently working on an rpg.(Who isn&#8217;t it seems like).</p>
<p>However, I was thinking about different AI ideas that could be implemented in an RPG. For this post, I will focus only on monster/enemy AI.</p>
<p>Now, the first thing that can make rpg battles/dungeons a bit more interesting is a context outside of battle, where what happens in battle does affect the overall dynamic of the dungeon. Here is one possible idea, similar in aspect to a genetic algorithm. Each enemy has a fear and an intelligence rating, randomly assigned within a predetermined racial standard deviation. Say, slimes are smarter than kobolds for example, on average.</p>
<p>Now what this means is that if you cross an enemy&#8217;s fear/intelligence barrier, ie, &#8220;They&#8217;re really tough, maybe I should run.&#8221; So they&#8217;d try to escape. If they do escape, what happens? Normally, you&#8217;d never see that enemy again, or at the very least, never be able to tell. However, what if the enemies that survive or escape you, communicate with each other? And even are able to formulate plans and groups to take advantage of whatever they learn.</p>
<p>This can be done by giving escaping monsters a memory, a kind of statistical observation of your performance. Then in a background task, have a couple or more of such monsters communicating their knowledge to each other. Now, based on the length of time since the knowledge was obtained, the detail, and what is observed, different information will be valued more than others. By sharing the information between the monster memories, the background task is able to determine your weaknesses. Say it saw your white mage fall to two hits, but your knight took 10. That would be taken into account.</p>
<p>Then, the enemies would lead a charge against you, with slightly modified battle AI&#8217;s. As per our example, focus on the white mage!</p>
<p>And since this would be largely time and number of battles based, the longer you are in the dungeon, the tougher the enemies get.</p>
<p>To balance that, we make it so that when you leave the dungeon, the monsters all forget about you.</p>
<p>This behaves similarly to a genetic algorithm, where the fitness test is fighting you. And the sharing of information is similar to swapping genes, but, in this instance, its a method that can deal with unexpected shifts of the problem space. Whereas, in genetic algorithms, the genes have to fit the problem well, and take a while to adapt. By data-mining observed actions, the enemies can adapt faster than with a genetic algorithm.</p>
<p>Another idea I considered was enemy genes, where each enemy you manage to kill does not reproduce, and thus, the more you fight in an area, the tougher the monsters. However, without a very flexible genetic system(IE, one too powerful to adequately simulate) this would only lead to monsters with stronger and stronger genes. Also, the algorithm would have to be tweaked to show results quicker than most GA&#8217;s.</p>
<p>Next post: RPG AI Part II</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oddco.ca/zeroth/zblog/2007/11/10/game-ai-or-do-game-ais-feel-pain/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

