<?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>Vertigames &#187; AI</title>
	<atom:link href="http://www.patricklipo.com/tag/ai/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.patricklipo.com</link>
	<description>The Power of Game Design</description>
	<lastBuildDate>Fri, 16 Jul 2010 19:37:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>The Challenge&#8230;  errr, Challenge &#8211; DTO Part 2</title>
		<link>http://www.patricklipo.com/2009/04/15/the-challenge-errr-challenge/</link>
		<comments>http://www.patricklipo.com/2009/04/15/the-challenge-errr-challenge/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 04:15:32 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[Other Games]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Bioshock]]></category>
		<category><![CDATA[Diablo]]></category>
		<category><![CDATA[Resistance]]></category>
		<category><![CDATA[X-Men Legends]]></category>

		<guid isPermaLink="false">http://www.patricklipo.com/?p=376</guid>
		<description><![CDATA[Last time I talked about co-op games and the need to tweak the difficulty in the name of a better experience.  I mentioned that inflating the total number of hit points can work, but it can lead to the trap of The Numbers Game, where your existing health and damage are scaled together, resulting in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.patricklipo.com/2009/02/24/drawing-things-out-part-1/">Last time</a> I talked about co-op games and the need to tweak the difficulty in the name of a better experience.  I mentioned that inflating the total number of hit points can work, but it can lead to the trap of <strong>The Numbers Game</strong>, where your existing health and damage are scaled together, resulting in a constant game challenge that only shifts when you fall outside of what the game deems &#8220;fair&#8221;.  This can work for RPG&#8217;s, but is troublesome when used on shooters.</p>
<div id="attachment_368" class="wp-caption alignright" style="width: 309px"><img class="size-full wp-image-368  " style="border: black 10px solid;" title="bag_hp_no" src="http://www.patricklipo.com/wp-content/uploads/2009/02/bag_hp_no.jpg" alt="Bag o' Hit Points" width="299" height="300" /><p class="wp-caption-text">Bag o&#39; Hit Points</p></div>
<p>This argument isn&#8217;t particularly constructive for the FPS designer, the poor soul who is scrambing for <em>anything </em>to keep things balanced and exciting in the wild wooly west of random online pick-up groups. We can&#8217;t really blame them for falling back on pure numbers when necessary (full disclosure: <span style="text-decoration: underline;">X-Men Legends</span> was an unabashed example of the Numbers Game&#8230;). Solving this problem through other means is a tough one, but it is worthwhile to pursue avenues other than the venerable Bag of Hit Points.</p>
<p align="left"><strong>Challenge Stage</strong></p>
<p align="left">When looking for ways to increase difficulty, game developers often wish the answer was as simple as adding more enemies to each encounter&#8230; &#8220;No problem! Double the players equals twice the enemies! BAM!&#8221; Sadly, very few game technologies give developers the luxury of unlimited enemies onscreen&#8230; It&#8217;s a yoke that just about all of us constantly struggle with. Back in the sprite days of <span style="text-decoration: underline;">Doom</span> and <span style="text-decoration: underline;">Heretic</span> it wasn&#8217;t a big deal; those games had extra enemy spawns that were triggered at higher levels or during coop. In these days of high-fidelity characters, however, most technology still keeps the population somewhere in the single digits.</p>
<p align="left">There are tricks to give a feeling of greater foe count&#8230; Placing additional enemy encounters in the &#8220;dead spots&#8221; between the &#8220;standard&#8221; encounters works, if you never overlap the encounters to keep the maximum enemy count low. It can be tricky to pull off but it can give the player a sense of a relentless onslaught, requiring him to manage ammo and health more carefully even though he never sees more than a few at a time. Unfortunately, by leveraging this method you can ravage any sense of pacing, leveling out those tension peaks and valleys into a steady drone, and changing the game in perhaps unintended ways.</p>
<p align="left">Another population trick is to deliver more enemies to the battlefield through respawning. This allows enemies to repopulate places that were previously cleared out, denying players a safe retreat and keeping the pressure on. This approach can be reviled by players because it denies them a sense of &#8220;completion&#8221; within a level (it was a contentious feature in <span style="text-decoration: underline;">Soldier of Fortune</span>, for example), but it can be used to great effect. My first experience with respawning as a gamer was <span style="text-decoration: underline;">Doom&#8217;s</span> Nightmare mode, where all enemies regenerated after 1 minute or so. <em>(Damn that was hard!)</em> More recently it was embraced in <span style="text-decoration: underline;">Left 4 Dead</span>, where zombies can pour out of just about any opening, inaccessible fences area, rooftop, etc. Careful use of this mechanic can help a game level feel as though it is packed with hundreds of foes, even if your tech can&#8217;t handle it (although L4D did a damn good job with the population too)&#8230;</p>
<p align="left"><strong>Up to 11</strong></p>
<p align="left">In contrast with developers, a majority of gamers wish that higher difficulty was just a matter of making the enemies smarter&#8230; perhaps implying the existence of a Jules Verne-era dial with &#8220;IQ&#8221; scrawled on the side that can be cranked past 10. Unfortunately game AI is never so easy that you&#8217;ve got unused slack somewhere that you&#8217;re not using. Generally it&#8217;s not decision-making that challenges the AI programmer or designer, but rather environment response and navigation. Sure, humans can walk across an obstacle-ridden field without even thinking about it, but an AI that does this naturally requires tremendous work whether the difficulty level is baby-like or insane.</p>
<p align="left">Even if the leap from floor-traversing mouth-breather to devious mastermind were easy, I&#8217;ve repeated many times that &#8220;smarter enemies&#8221; don&#8217;t always pave the way to &#8220;more fun&#8221; anyway. Aside from major boss-level fights, the opponents in many games don&#8217;t last long enough for you to really experience their brilliance&#8230; showing off would require for the player to see them, which means they&#8217;re probably already busy killing them. Sure, you could make the enemies tougher so that you might see their amazing kung-fu, but then you&#8217;re back to turning them into HP bags.</p>
<p align="left"><img class="alignleft size-full wp-image-394" style="border: black 10px solid;" title="Shot by pixels" src="http://www.patricklipo.com/wp-content/uploads/2009/04/pixelshot.jpg" alt="pixelshot" width="512" height="256" /></p>
<p align="left">Some games emulate enemy &#8220;smarts&#8221; by simply increasing their shooting accuracy or giving them uncanny perception. Let me be clear, <strong>this is not fun</strong>. Most games with gun-toting enemies <em>need</em> them to be inaccurate at long ranges. If an enemy pops into a play space a long distance from the player, chances are the player is not aware of their presence immediately&#8230; a bit of warning is needed before he gets a bullet in the head. If an enemy&#8217;s accuracy is simply dialed up arbitrarily, the player suddenly starts taking significantly more damage from enemies a few pixels in size&#8230; you&#8217;ve turned the game into a walk through a room full of snipers. Statistically the enemies are just doing more damage to the player each second anyway&#8230; so that&#8217;s what you want, just crank the bullet damage and be done.</p>
<p align="left">There are some better models out there for bullet inaccuracy that can help remedy the fun, but they are still aren&#8217;t used enough (that would be fun to talk about in another post).</p>
<p align="left"><strong>Phases of Death</strong></p>
<p align="left">While technically it is a variation on adding health to opponents, but one way of amping difficulty is giving them additional damage states, each of which has to be &#8220;killed&#8221;. Examples of this are the humans that become &#8220;tentacle heads&#8221; when headshot in Resident Evil 4, or the aliens in Blacksite: Area 51, that can sever their torso after being &#8220;killed&#8221;, crawling after the player. These imply non-realistic opponents or a heavy art burden, but it can also be done by having the foe walk with a limp in phase 2, or switching weapons each phase.</p>
<p align="left">This may sound familiar because it is the way that just about every classic boss encounter works&#8230; and for good reason. Bosses are &#8220;tough&#8221; and hence can soak up a lot more damage&#8230; without small player victories and new behaviors coming into play, defeating them would be a tiresome exercise in shoveling damage until it goes down (and many action games still use this model).</p>
<p align="left">Cleverly-designed damage stages also have the advantage of not always being used. A 3-stage robot can skip stage 2 and 3 in easy difficulty, last for a second stage in later levels, and die only after all three in harder difficulties. Depending on how an enemy is designed, it might even be possible to regenerate them to a previous state if not killed in time for even more challenge.</p>
<p align="left">A distant relative of the staged model is a mechanic where an enemy must be in a certain state to be killed. For example, a foe may have a &#8220;stunned&#8221; state which provides you with an opening to slice off their head. By this I don&#8217;t mean &#8220;Japanese boss-style&#8221; where every 15 seconds the monster opens up his eye-dome and can be hurt, but rather a system that gives the player the tools to introduce a vulnerable state. Another example is a robot who must be immobilized with an electric shock, before you step in to disable his control chip. Or a soft-bodied creature that must be frozen first and then shattered (similar to how the freeze-wrench combo works in Bioshock). Games like modern military shooters are more limited in this respect, but if you have the luxury to play with your enemy ecology (that is, their function and response to various stimuli), a large number of additional options open up to you. As above, you can scale difficulty by sprinkling in these new mechanics more aggressively later on (say, early robots don&#8217;t have an &#8220;overdrive chip&#8221;, but all of them do at higher difficulty).</p>
<p align="left"><strong>Smarty(er)-Pants</strong></p>
<p align="left">Other tricks aside, there&#8217;s still a value in delivering a smarter enemy&#8230; or at least one the gamer will recognize as &#8220;smarter&#8221;. One example of that is to add some coordinated behaviors between multiple foes. A simple trigger that makes several enemies charge at once or synchronize multiple grenade tosses can add difficulty in a hurry. Throw in an audio cue to draw attention to it and suddenly the gamer has a newfound respect for your AI mojo, baby. More complicated relationships like an enemy that lays down covering fire while the other charges can be good also, but the more complex they get, the more likely they are to fail or get lost in the shuffle. Sure, it makes things harder, but look for ways that are going to make the player <em>feel</em> the added pressure.</p>
<p align="left"><span style="text-decoration: underline;">Left 4 Dead</span> in particular leveraged this synchronization through their &#8220;AI Director&#8221;. While not technically an issue of &#8220;smarts&#8221; (the zombies are, well, zombies) when the director decided that the experience needed a massive assault for added danger, the player knew that the game was turning on the heat. The perception of challenge is perhaps as important as the actual difficulty increase.</p>
<p align="left"><img class="size-full wp-image-396  alignright" style="border: black 10px solid;" title="fallenshaman" src="http://www.patricklipo.com/wp-content/uploads/2009/04/fallenshaman.gif" alt="fallenshaman" width="125" height="150" /><img class="alignright size-full wp-image-395" style="border: black 10px solid;" title="fallen" src="http://www.patricklipo.com/wp-content/uploads/2009/04/fallen.gif" alt="fallen" width="125" height="150" />Adding enemies with interrelated behaviors is also a method to give a feeling that they are &#8220;conspiring against you&#8221;. A prime enemy that adds challenge to any group is the buffing opponent. The Shaman in <span style="text-decoration: underline;">Diablo II</span> and the Arch-Vile in <span style="text-decoration: underline;">Doom II</span> could resurrect fallen opponents, making the whole group for more deadly and interesting to fight. Other, more mild examples of this type of enemy are enemies that have an aura that heals or increases the strength of their nearby friends.</p>
<p align="left">A player must completely change his tactics and adjust when fighting a group that has a buffing foes added. Even one can add considerable challenge, and multiples can be devastating. Beyond just spawning extra ones, their behaviors can be tweaked for difficulty by increasing the buffing effect, casting time, or the radius of their ability.</p>
<p align="left">Looking closer, any type of environmental object that enemies can utilize can add challenge and an extra feeling of intelligence, no matter how simple. Enemy buffs could be provided by emplacements rather than spawned foes. The health stations in <span style="text-decoration: underline;">BioShock</span> kept you from leaving your nearly-dead foe alone, because he might return fully charged. Emplaced totems such as those in World of Warcraft are similar.</p>
<p align="left"><strong>Final Thoughts</strong></p>
<p align="left">Reflecting on what I&#8217;ve written above, I see that there is no &#8220;magic bullet&#8221; for scaling difficulty (although I hoped that writing about it might shake one loose). The techniques that must be used will certainly vary from game to game&#8230; My main suggestion is to look beyond the traditional D&amp;D numerical &#8220;crutch&#8221; when faced with systems that need to scale. I understand why we do it: it&#8217;s not just our inner fanboy screaming to get out&#8230; numbers are a necessary part of our job and getting results. However, I love designs where the player doesn&#8217;t have to be steeped in numbers in order to succeed.</p>
<p align="left">You might also come out of this thinking that I turn my nose up at RPG&#8217;s. On the contrary, it&#8217;s one of my favorite genres, and <span style="text-decoration: underline;">Diablo II</span> is still my favorite game of all time.</p>
<p>Finally, I certainly mean no disrespect for what <span style="text-decoration: underline;">Resistance 2</span> has accomplished in its multiplayer mode. Along with <span style="text-decoration: underline;">Call of Duty 4</span>, I think it has laid a foundation for great semi-persistent online experiences for shooters. What others might build upon these concepts in the future makes my mind reel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patricklipo.com/2009/04/15/the-challenge-errr-challenge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Making the Rules: Great Enemies</title>
		<link>http://www.patricklipo.com/2007/08/22/making-the-rules-great-enemies/</link>
		<comments>http://www.patricklipo.com/2007/08/22/making-the-rules-great-enemies/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 07:39:02 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[Half-Life]]></category>
		<category><![CDATA[Raven]]></category>

		<guid isPermaLink="false">http://www.patricklipo.com/2007/08/22/making-the-rules-great-enemies/</guid>
		<description><![CDATA[Previously I’ve talked about how games adjust AI difficulty because of the need to fulfill the player’s fantasy, and provide them with success and positive feedback. This time I’d like to talk about perils and pointers for creating good combat AI. Now, while many articles that wish to address “great AI” contain heavy jargon or [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.gamesgoneferal.com/wp-content/uploads/2007/08/confusing.jpg" alt="Confusing" style="margin: 10px" class="right" />Previously I’ve talked about how games adjust AI difficulty because of the need to fulfill the player’s fantasy, and provide them with success and positive feedback. This time I’d like to talk about perils and pointers for creating good combat AI. Now, while many articles that wish to address “great AI” contain heavy jargon or equations and diagrams depicting line of sight, or reticular splines or some such, let’s put that aside for now. It can be a great deal simpler than that (although in some ways more challenging).</p>
<h3>Out of Sight, Out of Mind</h3>
<p>Imagine dropping a player in a sprawling maze… hedgerow, factory, prison, whatever… that is impossible to be known beforehand. Within there is one incredibly realistic, human-like AI… It operates on its senses, with no unfair information about the maze or the player, but it executes on some crazy supercomputer with a million factors that it takes into account, from its knowledge of combat tactics to its own preferences and personality. Hell, let’s even keep track of what it had for breakfast in case we want to simulate a chance of it having an upset stomach. This AI’s job is to start searching for the player and make assaults as he moves through the maze. For a moment, as we watch the AI, we can see it moving through the maze, tracking the player’s scent, thinking about how to flank him… <span id="more-22"></span>when it hits a fork in the path, it decides to go left or right based on tactical decisions, or its own tendencies, or whatever a human-like AI should do. Perhaps it has a human-like idiosyncrasy like alternating… Whatever. The important thing is when it finds the player, whether by crafty wiles or just dumb luck, it switches to combat tactics and starts attacking the player without warning, pressing any advantage it can. When it is out of the player’s view, he is completely stealthy, undetectable until he encounters the player again.</p>
<p><img src="http://www.gamesgoneferal.com/wp-content/uploads/2007/08/wolf.gif" alt="Wolfenstein 3D" style="margin: 10px" class="left" />Now imagine this experience from the player’s perspective. He’s moving through the maze, starting to get familiar with his surroundings. Assuming the brilliant AI is quiet like he is, the enemy could be around any corner. The first time he encounters him, the attack could be anywhere, behind, ahead… who knows. If the AI is particularly crafty and sets up a sniper ambush, the player could die in a single shot to the head. To the player it’s a chaotic, unpredictable experience&#8230; Perhaps a fun one for some, perhaps not.</p>
<p>Now let’s replace the AI with a more rudimentary version, one that makes more random decisions about what path to take while moving through the maze. This is sporadically punctuated with the AI taking the <em>best </em>path to the player, using perfect information. The enemy will still use intelligent tactical decisions once the player has engaged it in combat, but when it is out of the player’s sight, the AI is entirely artificial. For the player, assuming the general frequency and predictability of the enemy <em>appearance</em> is similar, very few audience members will notice the difference.</p>
<p>Now let’s go even further, and replace the AI with a spawning routine that creates an enemy at the edge of the player’s awareness at a similar frequency and predictability as either of the other approaches. Certainly there are a few cases where it would make a wrong choice, such as spawning the enemy from a dead-end, but how often would this become apparent to most players? .</p>
<p>Now what point am I making here? That “real AI” is worthless? Of course not! When the enemy is within the player’s view, it needs to act extremely effectively, to provide the player with sufficient combat challenge and to keep the illusion up that this is human-like behavior. However, once the player has lost all perception of the enemy’s movements, there is a significant drop-off in the impact of sophisticated AI on the player’s game experience… That enemy could go off and play chess, consult his favorite tracker’s handbook or compose humorous limericks about the death of the player, but none of it makes much of a difference if the player is not aware of these activities. And it doesn’t advocate delivering “good enough”, it’s just that we could be using that supercomputer for better things.</p>
<h3>A Pinch of Player Feedback</h3>
<p><img src="http://www.gamesgoneferal.com/wp-content/uploads/2007/08/sof.jpg" alt="Soldier of Fortune II: Double Helix" style="margin: 10px" class="right" />Of course there are better ways of selling an interesting “hunt” scenario between a player and an AI. The game might have remote cameras out in the world that allow you to sporadically see his activities. The enemy can leave a trail that you can pick up. He can make noises that might give away their position or distract you. These additions almost universally add <em>additional player awareness</em> of the AI’s activities when he is out of sight.</p>
<p>Sure, you can add some clever AI tactics that go beyond spawning… he might feint in one direction to lure you off, then work around and flank you. However, consider that we are adding to events in a chaotic, confusing combat situation to begin with. How would most players feel if they went towards an enemy who disappeared, appearing not much later to shoot him in the back? He might feel confused, or cheated, like the AI did something illegal. There is no satisfaction to be gained by guessing the enemy’s next action and planning accordingly. There is no learning process to “outwit” the opponent, nor is there any way to increase one’s skill to defeat him, aside from simple reflex improvement such as firing a gun accurately.</p>
<p>The development of most game features require the creator to balance of the investment of time and computer performance, versus the gameplay value created. No feature is free, and in a shooter, if the AI programmer spent all their time creating AI’s that can independently recreate all the works of Shakespeare, the time would generally be wasted… such effort and horsepower doesn’t help the player… this is a game about combating the enemy. Back when I was working on Soldier of Fortune 2, there were some enemies that had the ability of tossing clips to each other if one ran out of ammo. However, nobody knew that feature existed. Why? Well, the clips were never exchanged unless the two enemies were behind cover, completely out of sight. Also, the ammo level of any individual enemy was never a significant issue in the game, since fights tended to be very short and deadly. This was a time to invoke a cardinal rule of game development: <strong>Features that do not notably affect the player experience are usually not worth implementing.</strong></p>
<p><img src="http://www.gamesgoneferal.com/wp-content/uploads/2007/08/half-life.jpg" alt="Half Life" style="margin: 10px" class="left" />Contrast that to the AI in the first Half-Life, which critics and consumers unanimously celebrated as one of the most significant contributors to their enjoyment of the game. In Half-Life the enemies did all sorts of things, from flanking you to spotting your thrown grenades and responding accordingly. However, combat against the deadly Black Mesa soldiers was a very hide-and-shoot affair, so there would have been little opportunity for the player to understand their tactics and smarts. However, some exceedingly smart individual at Valve decided to give the player a radio that intercepted the soldier’s communications, which gave the player a window on their reactions and strategies. Sure, it would have been even more challenging for the player if he had absolutely no clue to what the enemies were going to do next, but it is far more impactful to the player’s experience to allow him to understand how smart the enemies are. Arguably, beyond every other feature the enemies in Half Life had, the radio was the single most significant invention of that game.</p>
<p>Enemy communication of their intent has been used in other games, such as Halo, where the slightly comical alien grunts would spout exclamations like “there he is!” or “where’d he go?” when they observed a specific situation. Metal Gear Solid soldiers talk to themselves, saying “what was that noise?” and so on. Of course it’s not realistic, but it makes things more fun. Concealing those mechanisms actually creates a less compelling experience than when you lay out the rotating gears in front of a big window that the player can see.</p>
<h3>Great AI lives in the player</h3>
<p><img src="http://www.gamesgoneferal.com/wp-content/uploads/2007/08/metalgearsolid.jpg" alt="Metal Gear Solid 2: Sons of Liberty" style="margin: 10px" class="right" />So if a more human-like opponent leads to unpredictable, and often unsatisfying behavior, and realistic, limited information plunges the player into a chaotic, random-seeming experience, what is the player asking for when he or she is asking for “better AI” or a “smarter” opponent? The answer to this harkens back to a previous point, that the player wishes to fulfill a specific fantasy that they have. They wish for their opponents to respond <strong>as they imagine they would in their fantasy</strong>. In the case of a super-spy fighting against armies of henchmen, it’s a set of opponents that appear to fight against the player effectively, yet die or fail to kill the player at appropriate moments so that the player can feel powerful.</p>
<p>In a player’s fantasy, an enemy is still capable of many things. There is a great deal that a gamer can imagine his electronic opponents doing to try to outsmart him. This includes flanking the player, hearing noises and investigating, changing ammo types, and spotting and responding to thrown grenades. In fact, it could be said that a large variety of actions at the enemy’s disposal is what might make him seem “smart”. However, again, with limited information confounding the player’s ability to appreciate this rich palette of AI options, there is but one avenue to make a character seem intelligent… we must inform the player of some of the choices that are being made while they are being made, so that the player can feel even cooler when taking them out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patricklipo.com/2007/08/22/making-the-rules-great-enemies/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Article 1: Kingdom Hearts Review</title>
		<link>http://www.patricklipo.com/2007/07/15/article-1-kingdom-hearts-review/</link>
		<comments>http://www.patricklipo.com/2007/07/15/article-1-kingdom-hearts-review/#comments</comments>
		<pubDate>Sun, 15 Jul 2007 16:27:03 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Disney]]></category>
		<category><![CDATA[Kingdom Hearts]]></category>
		<category><![CDATA[Media]]></category>

		<guid isPermaLink="false">http://www.patricklipo.com/2007/07/15/article-1-kingdom-hearts-review/</guid>
		<description><![CDATA[Over the past 15 years I&#8217;ve written a bunch of stuff, public and private, that I was looking for a repository for.  Right now I only have a few articles, but I&#8217;ll be growing this as I uncover material and write more.  Anyway, I figured I&#8217;d start out light&#8230;  This is a review of Kingdom [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past 15 years I&#8217;ve written a bunch of stuff, public and private, that I was looking for a repository for.  Right now I only have a few articles, but I&#8217;ll be growing this as I uncover material and write more.</p>
<p> Anyway, I figured I&#8217;d start out light&#8230;  This is a review of Kingdom Hearts that I wrote for internal distribution at <a href="http://www.ravensoft.com">Raven</a>.  If anything, it gives a feel to the style that I use.</p>
<p><a href="http://www.patricklipo.com/?page_id=7">Kingdom Hearts Review</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.patricklipo.com/2007/07/15/article-1-kingdom-hearts-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
