<?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>Games By Angelina</title>
	<atom:link href="http://www.gamesbyangelina.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gamesbyangelina.org</link>
	<description>Developing an AI that can automatically design videogames</description>
	<lastBuildDate>Mon, 17 Jun 2013 09:54:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Adam Smith @ Goldsmiths</title>
		<link>http://www.gamesbyangelina.org/2013/06/adam-smith-goldsmiths/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adam-smith-goldsmiths</link>
		<comments>http://www.gamesbyangelina.org/2013/06/adam-smith-goldsmiths/#comments</comments>
		<pubDate>Mon, 17 Jun 2013 09:54:58 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=362</guid>
		<description><![CDATA[If you&#8217;re coming to this morning&#8217;s seminar, where Adam Smith is talking about his research into game design and artificial intelligence &#8211; we&#8217;re in Room 305 of the New Academic Building. Find the building here! If you need to contact me, grab me on Twitter or email me mike@gamesbyangelina.org]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re coming to this morning&#8217;s seminar, where Adam Smith is talking about his research into game design and artificial intelligence &#8211; we&#8217;re in Room 305 of the New Academic Building.</p>
<p style="text-align: center;"><a href="https://maps.google.com/maps?saddr=51.472308,-0.037413&amp;hl=en&amp;sll=51.472569,-0.036231&amp;sspn=0.00534,0.009645&amp;mra=mift&amp;mrsp=0&amp;sz=17&amp;t=m&amp;z=17">Find the building here!</a></p>
<p style="text-align: left;">If you need to contact me, grab me on <a href="http://www.twitter.com/mtrc">Twitter</a> or email me mike@gamesbyangelina.org</p>

]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/06/adam-smith-goldsmiths/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Saturday Paper: Goldilocks And The Three Puzzles</title>
		<link>http://www.gamesbyangelina.org/2013/06/the-saturday-paper-goldilocks-and-the-three-puzzles/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-saturday-paper-goldilocks-and-the-three-puzzles</link>
		<comments>http://www.gamesbyangelina.org/2013/06/the-saturday-paper-goldilocks-and-the-three-puzzles/#comments</comments>
		<pubDate>Sat, 08 Jun 2013 09:43:46 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[The Saturday Papers]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=349</guid>
		<description><![CDATA[A puzzle, yesterday. With thanks to Gunpoint. Most procedural generators have it pretty easy. Generation techniques for content like dungeon layouts or 3D worlds can&#8217;t really fail &#8211; they proceed very steadily, laying down content as they go, and if the occasional tree ends up floating in mid-air it&#8217;s not going to break the game. [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-large wp-image-351" alt="Screen Shot 2013-06-04 at 13.08.12" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/06/Screen-Shot-2013-06-04-at-13.08.121-1024x345.png" width="1024" height="345" /><span style="font-size: xx-small;">A puzzle, yesterday. With thanks to <a href="http://www.gunpointgame.com">Gunpoint</a>.</span></p>
<p>Most procedural generators have it pretty easy. Generation techniques for content like dungeon layouts or 3D worlds can&#8217;t really fail &#8211; they proceed very steadily, laying down content as they go, and if the occasional tree ends up floating in mid-air it&#8217;s not going to break the game. This attitude won&#8217;t cut it for more critical game content like puzzles or narratives, however. One small mistake might shortcut half of the plot or render a game trivially easy. How can you tell if a puzzle is solvable<em> in the</em> <em>right way,</em> though? This week on The Saturday Paper we look at how procedural generators can intelligently design puzzles with just the features you want &#8211; no more, no less.</p>
<p><span id="more-349"></span></p>
<p>We&#8217;re reading <a href="http://users.soe.ucsc.edu/~amsmith/papers/fdg2013_shortcuts.pdf"><strong>Quantifying over Play: Constraining Undesirable Solutions in Puzzle Design</strong></a> by Adam Smith, Eric Butler and Zoran Popovic. The paper describes their work investigating AI and game design when building a puzzle designer for the game <em>Refraction 2</em> (you can play the original for free <a href="http://www.kongregate.com/games/gamescience/refraction">here</a>), an educational maths puzzle game, and the steps they took to make sure the procedural puzzle generator would not only generate puzzles with particular solutions, but puzzles which didn&#8217;t inadvertently have additional, unwanted solutions either. The result is a clever procedural design system that can <em>precisely</em> ensure certain goals are met in its output &#8211; something that is completely reusable, and could come in handy in all manner of game design projects.</p>
<p><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/06/Screen-Shot-2013-06-04-at-14.45.11.png"><img class="aligncenter size-full wp-image-353" alt="Screen Shot 2013-06-04 at 14.45.11" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/06/Screen-Shot-2013-06-04-at-14.45.11.png" width="746" height="300" /></a></p>
<p>We&#8217;re back in the realm of constraint solving here, which we saw recently when reading about <a href="http://www.gamesbyangelina.org/2013/05/the-saturday-paper-dungeon-feng-shui/">populating dungeons with monsters and items a few weeks back</a>. There&#8217;s a longer overview there as well as some links to good tutorials, but the upshot is this: constraint solving lets you describe the <em>results</em> you want from a program, rather than <em>writing the instructions to get there</em> like you would with <a href="http://www.wisegeek.com/what-is-imperative-programming.htm">normal &#8216;<em>imperative&#8217;</em> programming</a>. If you can find a good representation for your problem &#8211; which can be tricky at first &#8211; then constraint solvers can rapidly build a solution, making and undoing possible design choices as it tries to match the criteria you give it.</p>
<p><a href="http://www.kongregate.com/games/gamescience/refraction">Refraction</a> is a game about understanding fractions. Players place pieces in the path of laser beams to redirect, split, combine or change the beams in some way, in order to provide a particular amount of power to some target spaceships. By allowing the player to split up and combine laser streams the game can test fractional arithmetic and other concepts by designing puzzles that require certain kinds of solution &#8211; like merging two 1/16 lasers to power up a spaceship needing 1/8 of power. The authors have already written a paper on <a href="http://adamsmith.as/papers/fdg2012generation.pdf">a system using constraint solving to design puzzles</a> for this purpose, in fact. So what was their next step?</p>
<p><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/06/Screen-Shot-2013-06-04-at-13.57.36.png"><img alt="Screen Shot 2013-06-04 at 13.57.36" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/06/Screen-Shot-2013-06-04-at-13.57.36-1024x521.png" width="1024" height="521" /></a></p>
<p>If you look at the picture above, you can see a nice puzzle solution on the left, demonstrating splitting and joining laser beams (with some rather elegantly symmetrical puzzle design to boot), and on the right you can see a nasty shortcut that completely bypasses the whole point of the puzzle. One way to avoid these shortcuts is to generate a puzzle, and then exhaustively test every possible solution to make sure there are no solutions that break the rules you had in mind for this level (such as teaching the player about splitting lasers, as above). This isn&#8217;t great for a number of reasons pointed out in the paper &#8211; for one thing, this might take ages, especially if the constraints can&#8217;t actually be satisfied. Equally importantly, such a system can&#8217;t use information about failed designs to stop trying the same idea out for a particular constraint problem.</p>
<p>What if we could express the idea of shortcuts as constraints, just like the rest of the puzzle design system? This would be a huge improvement, because answer set programming (or ASP, the special type of constraint solving used in the paper) improve dramatically over time by using failed solutions to avoid bad designs in future attempts. How do we encode something like that into an ASP, though? The solution uncovered in the paper is initially mind-bending, particularly if you&#8217;ve not used ASP before. I&#8217;m going to try and give a brief idea here, but I highly recommend reading the paper and contacting the authors to find out more details.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-354" alt="Screen Shot 2013-06-04 at 16.09.56" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/06/Screen-Shot-2013-06-04-at-16.09.56.png" width="662" height="348" /><span style="font-size: xx-small;">Some puzzles made by the improved solver. Notice how the one on the right doesn&#8217;t need rocks at all! It&#8217;s all in the elegant placement of the lasers and spaceships.</span></p>
<p>First, imagine that before we run our solver we give it two things: first, a definition of what we want every solution to include (call it the <em>concept</em>); second, a list of <em>level design features</em> that the solver can define to describe a level. A level design feature might be &#8220;Spaceship A needs 1/2 Power&#8221; or &#8220;There&#8217;s a rock at (2,2)&#8221;, while a concept might be &#8220;The player had to add 1/4 and 1/4 together&#8221;. Now suppose our solver comes up with a puzzle-and-solution pair, and through testing it knows it embodies that key concept we want the player to practice. The question is, how do we know if this puzzle has other solutions that pair with it &#8211; ones that shortcut our concept?</p>
<p>What we&#8217;re looking for (or rather, hoping we don&#8217;t find!) is any puzzle-and-solution pair which has exactly the same set of level design features, but that doesn&#8217;t have our concept satisfied. If you look at what that means, here&#8217;s our initial outcome:</p>
<p style="text-align: center;">{&#8220;Ship needs 1/2 power&#8221;, feature2&#8230;, featureX, &#8220;The player had to add 1/4 and 1/4 together to win&#8221;}</p>
<p style="text-align: left;">And here&#8217;s the dastardly shortcut, in which the concept we hoped was required is actually missing:</p>
<p style="text-align: center;">{&#8220;Ship needs 1/2 power&#8221;, feature2&#8230;, featureX}</p>
<p style="text-align: left;">In mathematics, the bottom list is a <em>subset</em> of the top list. What Adam and co. do, in just a few lines of ASP, is tell their solver to forbid subsets like this, meaning that if they find them then they know that something about that level design has to change. It&#8217;s a little more involved and a lot more clever than I&#8217;ve made out, but the principle is the same. And because of the way ASP works, these failures help make the search faster and faster, until a puzzle design is found.</p>
<p style="text-align: left;">The beauty of this subset checking is that the idea is completely general, and so is the code that Adam and co. have written. As long as you can write down what it means for a concept to be broken or shortcutted for a particular puzzle-and-solution pair, you can use the system developed for <em>Refraction 2</em> in your own procedural content generator. The paper itself suggests this might be used not just for puzzles, but everything from interactive stories to crafting systems. In essence, it gives developers of procedural generators access to modeling the trickiest problems possible in ASP while staying anchored on the same design task: level design choices and a target concept you wish to see in all player solutions.</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-355" alt="gunpoint" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/06/gunpoint-1024x358.png" width="1024" height="358" /><span style="font-size: xx-small;">Another screen from <em>Gunpoint</em></span></p>
<p style="text-align: left;">The system can produce some really elegant puzzles. As the authors point out, while human designs use things like impassable rocks to block off shortcut solutions (making it much simpler to check the puzzle over visually), the ASP solver is so rigorous it can often satisfy conceptual constraints just by cleverly placing the lasers and their spaceships on the level &#8211; and still have a huge diversity of output. I&#8217;m really excited to see where this goes next &#8211; given that Refraction is a game with education in mind, this could lead to tailored puzzles that teach specific mathematical ideas to people.</p>
<p style="text-align: left;">I&#8217;ve been playing <a href="http://gunpointgame.com/">Gunpoint</a> a whole lot since it came out last Monday. In the developer commentary, designer Tom Francis says:</p>
<p style="text-align: left; padding-left: 30px;"><em>&#8220;&#8230;if I made the puzzles too open-ended, people found them too easy&#8230; then I tried a more restricted version where there was generally only one solution, but people complained it was restrictive &#8230; [I ended up with] a puzzle nested within an open-ended level. I found that balance worked much better.&#8221;</em></p>
<p style="text-align: left;">One of the things I really like about this research &#8211; and it&#8217;s not exclusive to constraint solving but it&#8217;s illustrated so well here &#8211; is that with a bit of intelligence in our procedural generators, we could feasibly design puzzles that are perfectly open-ended but where all solutions pass through the same point &#8211; exactly as Tom describes his process for Gunpoint worked. Or puzzles where all solutions seem equally feasible (for some definition of &#8216;feasible&#8217;, of course). Or we could design puzzles that explicitly require gadgets the player hasn&#8217;t been using very much.</p>
<p>The barrier for many will probably be getting into answer set programming in the first place. The authors here are keen on building better tools, systems and languages that might help developers use the power of ASP without learning a lot of complex new programming ideas though. I originally wrote here, &#8220;It&#8217;s a barrier worth getting over&#8221;, but instead I&#8217;ll leave you with a quote from Adam Smith on this very topic, in an email to me about today&#8217;s post:</p>
<p style="text-align: left; padding-left: 30px;"><em>I appreciate your effort in saying &#8220;it&#8217;s a barrier worth getting over&#8221;, but I think I shouldn&#8217;t be asking people to cross that particular barrier when I know of not-so-difficult ways to build tunnels through it.</em></p>
<p style="text-align: left;">As you can see from the work in their paper, there are some very enticing lights to be seen down the end of this tunnel. I&#8217;m looking forward to seeing more of it.</p>
<p><strong>Where To Find More</strong></p>
<p><a href="http://www.adamsmith.as/">Adam Smith</a> is currently at the University of Washington in Seattle. He&#8217;s extremely friendly and always enthusiastic about getting people thinking in terms of design spaces, just like we did today. If you&#8217;re interested in the ideas and technology behind today&#8217;s paper, do <a href="http://www.twitter.com/rndmcnlly">get in touch with him</a>! <a href="http://www.ericbutler.net/">Eric Butler</a> is a PhD student at the University of Washington, making games and doing some exciting-sounding research at the same time. <a href="http://homes.cs.washington.edu/~zoran/">Zoran Popovic</a> is at the same university, too &#8211; you might recognise his name from the ludicrously impressive <a href="http://fold.it/portal/">Foldit</a> project (which Eric also had a hand in).</p>
<p><strong>In the UK? Come and see Adam Smith talk about his research!</strong></p>
<p>Adam is currently on a trip to the UK, during which time he&#8217;s speaking at a few venues. I was lucky enough to be able to invite him to talk at <strong><a href="https://maps.google.com/maps?q=goldsmiths,+university+of+london&amp;hl=en&amp;ll=51.475262,-0.038903&amp;spn=0.001838,0.010922&amp;sll=37.0625,-95.677068&amp;sspn=42.03917,89.472656&amp;hq=goldsmiths,+university+of+london&amp;radius=15000&amp;t=m&amp;z=17&amp;layer=c&amp;cbll=51.475263,-0.038898&amp;panoid=FyR6nQZuNleOcgXwsuamJg&amp;cbp=11,135.94,,0,-11.14">Goldsmiths University</a> on Monday June 17th at 11am, in the <a href="https://maps.google.com/maps?q=goldsmiths,+university+of+london&amp;hl=en&amp;ll=51.475262,-0.038903&amp;spn=0.001838,0.010922&amp;sll=37.0625,-95.677068&amp;sspn=42.03917,89.472656&amp;hq=goldsmiths,+university+of+london&amp;radius=15000&amp;t=m&amp;z=17&amp;layer=c&amp;cbll=51.475263,-0.038898&amp;panoid=FyR6nQZuNleOcgXwsuamJg&amp;cbp=11,135.94,,0,-11.14">N</a>ew Academic Building (<a href="http://www.gold.ac.uk/media/campus-map.pdf">number 2 on this map</a>)</strong>. All are welcome! The title of Adam&#8217;s talk is <em>Mechanizing Exploratory Game Design</em>. Adam is a really inventive and interesting chap and it should be a fantastic talk. Let me know if you&#8217;re coming by <a href="http://www.twitter.com/mtrc">pinging me on Twitter</a>, where you can also let me know what you thought of this week&#8217;s column!</p>
<p>On that note: thanks for reading and for sharing these columns on forums, social media, Reddit and so on. It&#8217;s making me really happy to see them being linked to from far and wide, and to see it generating interest and inspiration!</p>
<p>Thanks especially to Darren Grey for once again giving great feedback on the piece, and Adam Smith for helping communicate his work best (he made some great additions to this piece). I&#8217;m off to Australia this week for the International Conference on Computational Creativity &#8211; when I get back I&#8217;m going to do a special roundup episode of The Saturday Paper covering some of the most interesting creative research and how it could be used inside games.</p>
<p>&nbsp;</p>

]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/06/the-saturday-paper-goldilocks-and-the-three-puzzles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Saturday Paper: Use NEW IDEA On GENRE</title>
		<link>http://www.gamesbyangelina.org/2013/05/the-saturday-paper-use-new-ideas-on-genre/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-saturday-paper-use-new-ideas-on-genre</link>
		<comments>http://www.gamesbyangelina.org/2013/05/the-saturday-paper-use-new-ideas-on-genre/#comments</comments>
		<pubDate>Sat, 25 May 2013 12:33:42 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[The Saturday Papers]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=336</guid>
		<description><![CDATA[Puzzles in videogames, especially point-and-click adventures, are strange things. Mysteries and puzzles in movies are all about ingenuity, wits and thinking outside of the box. In games, though, they&#8217;re about working out what the designer thought was the right solution and finding whatever combination of items is hardcoded to unlock the next Plot Door. Not [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/puzzles.jpg"><br />
<img class="size-full wp-image-338  aligncenter" alt="puzzles" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/puzzles.jpg" width="580" height="350" /></a></p>
<p>Puzzles in videogames, especially point-and-click adventures, <a href="http://www.tastycake.net/~mjc//games/AbstractAdventure.html">are strange things</a><sup>[<a href="#the-saturday-paper-use-new-ideas-on-genre-n-1" class="footnoted" id="to-the-saturday-paper-use-new-ideas-on-genre-n-1">1</a>]</sup>. Mysteries and puzzles in movies are all about ingenuity, wits and thinking outside of the box. In games, though, they&#8217;re about working out what the designer thought was the right solution and finding whatever combination of items is hardcoded to unlock the next Plot Door. Not only does it suck to find your perfectly reasonable solution wasn&#8217;t the one the developers put in, but having one route to the goal kills any hope of replayability, too. This week on the Saturday Paper, we look at a system that aims to fix both problems at once, by generating puzzles based on real world ideas of cause and effect.<span id="more-336"></span></p>
<p>We&#8217;re reading <strong><a href="http://geneura.ugr.es/cig2012/papers/paper92.pdf">Smart Terrain Causality Chains for Adventure-Game Puzzle Generation</a> </strong>by Isaac Dart and Mark Nelson. The paper describes a new way of generating puzzles for point-and-click adventure games by simulating real-world systems like combustion and carefully planning which items to give the player. The best part is the idea has already been implemented by the authors in a Unity game that you can <a href="http://goo.gl/pEIXY">play for yourself</a>, and the paper even includes some experiments and discussion for how procedural puzzles might be best used. Let&#8217;s dive in!</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-24-at-15.41.28.png"><img class="aligncenter size-large wp-image-345" alt="Screen Shot 2013-05-24 at 15.41.28" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-24-at-15.41.28-1024x334.png" width="1024" height="334" /></a></p>
<p style="text-align: left;">Let&#8217;s start with that title; what is smart terrain and what are causality chains? The former is a phrase that&#8217;s older than this paper by some margin. Popularised by Will Wright, the term is used to describe items with an awareness of their functionality, like most things in Wright&#8217;s series <em>The Sims</em>. Objects that make up a smart terrain &#8211; like everything in The Sims from the TV to the neighbours &#8211; know what actions they can perform, or what actions can be performed on them, like being switched off, used to prepare a meal, or greeted. In your average point-and-click adventure, items aren&#8217;t very smart at all. Instead they normally have a few specific use-cases in mind that are part of a tightly-designed route through a game. Even if you can use a crowbar to open one door, you might find it magically doesn&#8217;t work on the next one you find.</p>
<p style="text-align: left;">If you&#8217;ve played a lot of games like this, you might have wondered if it would be possible to just define the sorts of actions you can perform with a particular item, and let the player figure a solution out themselves. This is precisely what smart terrain causality chains add &#8211; they describe chains of actions that can be performed to turn a starting set of items into a solution to a puzzle. For the work in this paper, the kinds of cause and effect involved is often related to physical properties, such as turning ice into water by applying heat to it. As you&#8217;ll see, though, the technique is general enough to apply to just about any kind of cause and effect you can think of.</p>
<p style="text-align: left;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-23-at-20.29.07.png"><img class="aligncenter" alt="Screen Shot 2013-05-23 at 20.29.07" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-23-at-20.29.07-1024x640.png" width="614" height="384" /></a></p>
<p style="text-align: left;">Here&#8217;s how the system works: you start off with a list of actions that can be performed on particular objects. Each action has a cause and an effect. Here are two examples from the paper:</p>
<p style="text-align: left;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-24-at-15.17.48.png"><img class="aligncenter size-full wp-image-341" alt="Screen Shot 2013-05-24 at 15.17.48" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-24-at-15.17.48.png" width="534" height="136" /></a></p>
<p style="text-align: left;">You can probably work out what each one says. A sprinkler has an &#8216;activate&#8217; action that is caused by smoke and has the effect of producing water. Paper has a &#8216;burn&#8217; action that is caused by fire and produces smoke. You can also begin to see how chains can be built up, by linking the effects of one action to the cause of another. If the player needs water, they can find a way to burn a piece of paper near a sprinkler system. Because there&#8217;s no complex judgement needed here &#8211; just matching fields up in a database &#8211; we can easily use an AI planner to find chains of cause and effect, even in reverse.</p>
<p style="text-align: left;">This is exactly what Isaac and Mark&#8217;s system does. It starts with an objective, and works backwards to find chains of actions that lead to the objective being satisfied. In their demo game, the primary puzzle objective is to disable an electronic lock<sup>[<a href="#the-saturday-paper-use-new-ideas-on-genre-n-2" class="footnoted" id="to-the-saturday-paper-use-new-ideas-on-genre-n-2">2</a>]</sup>. The system looks at what things can cause the disable action on a lock &#8211; such as water &#8211; and then moves backwards looking for actions that cause water to appear. Once it finds a chain of items of a particular length, it places the objects in the game world and the puzzle is ready.</p>
<p style="text-align: left;">One particularly nice aspect of the paper was the evaluation performed on their demo game, <em>Space Dust</em>. The authors realised that one of the consequences of their new system was that it could produce puzzles with multiple solutions, but would that make things easier or more confusing for the player? They offered both types of puzzle to a collection of players and got their feedback. Most people found that having more solutions was easier, which I think makes sense to me. I like the idea of a game detecting that someone is having trouble solving a puzzle, and your sidekick suddenly &#8220;discovering&#8221; an item behind a rock somewhere that opens up a new solution chain to make things easier.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-24-at-15.40.20.png"><img class="aligncenter size-large wp-image-344" alt="Screen Shot 2013-05-24 at 15.40.20" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-24-at-15.40.20-1024x349.png" width="1024" height="349" /></a><span style="font-size: xx-small;">George, look what I found! <em>Goat repellent</em>!</span></p>
<p style="text-align: left;">You might have played <a href="http://gambit.mit.edu/loadgame/summer2010/symon_play.php">Symon</a>, an <a href="http://vagrantcursor.wordpress.com/">experimental game</a> from MIT&#8217;s GAMBIT lab, which played with similar ideas. I like both projects because they&#8217;re developing new ways of approaching something that is about as genre-defining as it gets. A lot of the time, procedural content generation is a way of performing tasks that humans can already do, but this is more about using technology to rethink design decisions that have been accepted for years and years.</p>
<p style="text-align: left;">This more flexible approach to puzzle design has lots of potential applications, not least because it&#8217;s not just point-and-clickers that use item chain puzzles &#8211; in fact I&#8217;ve been playing <em>Arkham City</em> this week and realising how much games like this rely on items to defeat bosses or traverse game worlds. I also can&#8217;t help but think back to last week&#8217;s post on constraint solvers and see a connection here too. Constraint solvers could use information about the causality chains involved in solving a puzzle, and arrange the items in sensible orders and locations, as well as satisfying constraints like &#8220;food items must be found in kitchens or dining rooms&#8221;.</p>
<p style="text-align: left;">Above all else, you should be excited about this work because it&#8217;s a step towards allowing us to design games that would be difficult to do by hand. Having multiple solutions to a puzzle opens the possibility for the player to be carrying leftover items further into the game &#8211; which might inadvertently solve a puzzle in a way a human designer might not be expecting or just have not considered. The opposite is even worse &#8211; if a player burns an important bit of paper before they&#8217;ve used the secret message that was written on it, for instance. But using constraint solvers and planners, we can build tools that can give the player lots of choice and pathways through the game, while still making sure that nothing undesirable happens and certain crucial puzzles aren&#8217;t skipped. Often we see procedural generation as &#8216;putting people out or jobs&#8217;, tongue-in-cheek or not. On the contrary, this work shows how new technology can help us work smarter.</p>
<p style="text-align: left;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-24-at-15.38.27.png"><img class="aligncenter size-large wp-image-343" alt="Screen Shot 2013-05-24 at 15.38.27" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-24-at-15.38.27-1024x204.png" width="1024" height="204" /></a></p>
<p style="text-align: left;"><strong>Where To Find More</strong></p>
<p style="text-align: left;">You can read the original paper here as well as an expanded version <a href="http://www.mrdart.com/papers/Dart2011_Adventures%20in%20Procedurally%20Generated%20Causality.pdf">here</a>, thanks to Isaac.  Mark also wrote up a web-friendly condensed version <a href="http://www.kmjn.org/notes/adventure_puzzle_generation.html">here</a>, which I really like the style of. I know I say this a lot, but this paper is readable! You can really skim through it and learn a lot more about the system than I could fit into this post. And of course you can download the Unity game that the paper was based on right <a href="http://goo.gl/pEIXY">here</a>. The objective is to find your way to an entrance on the ship, but to do so you&#8217;ll need multiple tries &#8211; hence needing to escape from the brig over and over again, with a different puzzle each time. I think it&#8217;s a great demonstration for the tech.</p>
<p style="text-align: left;">Isaac went on to co-found <a href="http://preliminal.com/">Preliminal Games</a>, a London startup working on an unannounced title that apparently uses his work on smart terrain causality chains! I&#8217;m very excited to see what comes of that. <a href="http://www.itu.dk/~mjas/">Mark Nelson</a> is Assistant Professor at ITU Copenhagen, alongside Julian Togelius whose Mario work we saw a few weeks back.</p>
<p style="text-align: left;">Thanks to Mark and Isaac for helping me write this piece this week, and to Rob (<a dir="ltr" href="https://twitter.com/MGPNightShift">@MGPNightShift</a>) of the <a href="http://maturegamerpodcast.com/">Mature Gamer Podcast</a> community forums and <a href="http://www.gamesofgrey.com/blog/">Darren Grey</a> for taking the time to proofread it too. Don&#8217;t forget to drop in on our Reddit thread in /r/gamedev, and <a href="http://www.twitter.com/mtrc">catch me on Twitter</a> to tell me what you think of the piece.</p>
<p style="text-align: left;"><strong>Other Stuff</strong></p>
<p style="text-align: left;">AIIDE is a really great conference every October, and this year it&#8217;s in Boston. There&#8217;s a bunch of great workshops being organised that you can find <a href="http://www.aiide.org/workshops">here</a>, but I want to mention a couple in particular that I know a little about. The first is <a href="http://www.aigaw.org/">AI &amp; Game Aesthetics</a>, a workshop I&#8217;m co-organising with Antonios Liapis and Cameron Browne. We&#8217;re looking for relatively short submissions (just 4 pages) about interesting work relating to intelligent systems and all manner of aesthetic and subjective issues in game development. Check out the topics <a href="http://www.aigaw.org/cfp.php">here</a> and please submit if you&#8217;ve made a game, a tool or performed an experiment that might be relevant!</p>
<p style="text-align: left;">Another workshop is the <a href="http://idpv2.cs.washington.edu/">2nd Workshop on Intelligence in the Design Process</a>. This is being organised by Adam Smith and Gillian Smith, two great researchers from the US, as well as Mark Nelson &#8211; the co-author of today&#8217;s Saturday Paper! Be sure to check out their list of topics <a href="http://idpv2.cs.washington.edu/?page=cfp">here</a>, too, and consider submitting something.</p>

<ol class="footnotes">
	<li class="footnote" id="the-saturday-paper-use-new-ideas-on-genre-n-1"><strong><sup>[1]</sup></strong> This is a link to Abstract Adventure, a very neat shortform game by a friend of mine. If you&#8217;ve ever played point-and-click games you&#8217;ll enjoy it, I think. <a class="note-return" href="#to-the-saturday-paper-use-new-ideas-on-genre-n-1">&#x21A9;</a></li>
	<li class="footnote" id="the-saturday-paper-use-new-ideas-on-genre-n-2"><strong><sup>[2]</sup></strong> The real objective is to escape a prison cell, but most ways of doing this involve disabling the lock. <a class="note-return" href="#to-the-saturday-paper-use-new-ideas-on-genre-n-2">&#x21A9;</a></li></ol>
]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/05/the-saturday-paper-use-new-ideas-on-genre/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Saturday Paper: Dungeon Feng Shui</title>
		<link>http://www.gamesbyangelina.org/2013/05/the-saturday-paper-dungeon-feng-shui/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-saturday-paper-dungeon-feng-shui</link>
		<comments>http://www.gamesbyangelina.org/2013/05/the-saturday-paper-dungeon-feng-shui/#comments</comments>
		<pubDate>Sat, 11 May 2013 13:13:02 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[The Saturday Papers]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=325</guid>
		<description><![CDATA[Level design is a tricky business. As you creep around Dunwall or drive through Liberty City, you&#8217;re influenced by the architecture, the passageways, the placement of other characters and the location of treasure. Handcrafted levels benefit from the attention and refinement of many human designers, while procedural systems sacrifice human intuition in exchange for limitless [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-08-at-13.17.16.png"><img class="aligncenter  wp-image-326" alt="A dungeon, yesterday." src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-08-at-13.17.16-1024x452.png" width="602" height="265" /></a></p>
<p>Level design is a tricky business. As you creep around Dunwall or drive through Liberty City, you&#8217;re influenced by the architecture, the passageways, the placement of other characters and the location of treasure. Handcrafted levels benefit from the attention and refinement of many human designers, while procedural systems sacrifice human intuition in exchange for limitless content and unpredictable outcome. It&#8217;s only natural to ask &#8211; can we have both? This week The Saturday Paper is about building procedural level designers that can work to the kinds of intelligent, flexible constraints that designers use every day.</p>
<p><span id="more-325"></span></p>
<p>We&#8217;re reading <strong><a href="http://www.aaai.org/ocs/index.php/AIIDE/AIIDE12/paper/view/5466/5691">Fast Procedural Level Population With Playability Constraints</a></strong>, by Ian Horswill and Leif Foged. The paper describes a way of placing objects like enemies, items and treasure inside a level procedurally, using some clever programming and maths tricks to make sure certain rules are always followed. It lets you add quite loose rules like &#8220;make sure the player has to fight at least three monsters before they find any treasure&#8221;, and still get randomised, unpredictable level outputs. It deals with a few concepts that might be new to you, but stick with it &#8211; it&#8217;s got some great ideas.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-08-at-13.35.42.png"><img class="aligncenter  wp-image-328" alt="Screen Shot 2013-05-08 at 13.35.42" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-08-at-13.35.42-1024x366.png" width="819" height="293" /></a></p>
<p>First, a little background on <em>constraint solving</em>. Most of the time in programming you&#8217;re asking the computer to do things for you quite specifically &#8211; for instance, you might set the player&#8217;s health to be <em>currentHealth + 20</em> if they pick up a health potion. There&#8217;s no ambiguity there. Sometimes it&#8217;s easier to describe what your answer <em>looks like</em> instead of writing it explicitly though. So you might say that when a player opens a chest, they receive an item, and that item is <em>worth less than 100 gold</em>. That&#8217;s a constraint. You&#8217;re not saying exactly what the item is, but you&#8217;re specifying something you want to be true about it. Special <em>constraint solvers</em> can take rules like this and find you all the results that satisfy them (maybe you have a list of possible items and values in this case). <a href="http://www.gamesbyangelina.org/2012/01/questions-and-answer-sets/">I wrote a post on something related (but not quite the same) a while back</a>.</p>
<p>Constraints are interesting for procedural generation, because they let the designer very elegantly state rules (&#8220;This map need a waterfall.&#8221; &#8220;This village needs a graveyard next to a mine.&#8221;) and suddenly all the other details are left to randomly vary. It&#8217;s even been used to great effect in <a href="http://users.soe.ucsc.edu/~amsmith/papers/ieeecig20_vf.pdf">automated game design</a> &#8211; but that&#8217;s a paper for another day.</p>
<p>Ian and Leif&#8217;s paper shows a system they built for describing a dungeon in a way that, given a dungeon map, allows constraint solvers to place objects and enemies and finish the dungeon design for them. With a few simple definitions their solver can look through the dungeon, work out the possible paths from start to finish, and make conclusions about which layouts would fit the rules the designer set for it. It&#8217;s really customisable, too. To show you how it works, let&#8217;s take a very simple example. Here&#8217;s our starting dungeon:</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-08-at-13.56.50.png"><img class="aligncenter  wp-image-329" alt="Screen Shot 2013-05-08 at 13.56.50" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-08-at-13.56.50-1024x337.png" width="502" height="165" /></a></p>
<p>To simplify things, let&#8217;s assume each room has one thing in it &#8211; either a monster, some treasure, or a health pack. How do we want the dungeon to be laid out? A simple example (straight out of the paper) might be &#8220;Make sure the player can survive the dungeon.&#8221; It&#8217;s the first level, after all. To check this, the system will check every path that makes progress of some kind through the dungeon (so no doubling-back or going in circles), and score it based on however we define &#8216;survive&#8217; mathematically. First, you define a way of scoring each possible room. Since we&#8217;re looking at survivability, we could score the rooms based on how much health you gain or lose by being in the room. So if the room has a monster in it, the score is -15. If the room has a health potion in it, the score is +20.</p>
<p><em></em>Now we can say what it means for the player to survive the dungeon. It means that for any path from the start to the finish, if you add up the score of each room in the path going along, you should never have a negative score. So the dungeon layout below works because the health potion bumps the player&#8217;s health up again before they fight the next monster:</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-08-at-14.07.29.png"><img class="aligncenter  wp-image-330" alt="Screen Shot 2013-05-08 at 14.07.29" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-08-at-14.07.29-1024x309.png" width="502" height="151" /></a></p>
<p>It might seem obvious with my terrible example, but this can get quite tricky quite quickly. Here&#8217;s a non-linear example from a talk Ian and Leif gave (click to make it bigger):</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/nonlinearbright.png"><img class="aligncenter  wp-image-331" alt="nonlinearbright" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/nonlinearbright-1024x576.png" width="717" height="403" /></a></p>
<p>You can see each room has many possible exits, with different strengths of monster (meaning there are even more choices for the constraint solver to place in each room). What&#8217;s great about this approach is that the constraints are very customisable. In my simple example, I said the entire level must be survivable. But we can ask for levels where only <em>half</em> of the paths through the level are survivable. Or levels that <em>aren&#8217;t survivable at all</em> (with maybe an additional constraint that says the player has to go into another level to find an item that makes them strong enough to get through).</p>
<p>If you can find a way to represent your constraint, the system can solve for it, so it&#8217;s not restricted to a few measly health points. In the paper there&#8217;s a great example about locks and keys &#8211; you can write constraints that make sure the keys are behind rooms with boss monsters in, or write &#8216;safety conditions&#8217; that make sure the keys are never behind their own locked doors.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-09-at-15.13.50.png"><img class="aligncenter  wp-image-332" alt="Screen Shot 2013-05-09 at 15.13.50" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-09-at-15.13.50-1024x328.png" width="717" height="230" /></a></p>
<p>The idea of using constraints on paths through a dungeon &#8211; or any world where the play areas are cleanly arranged, like Metroidvania games &#8211; is really nice indeed. Approaching procedural content generation by specifying some starting blocks and letting a machine do the rest gives a great compromise between developer control and machine generation. It has scope to expand far beyond level design, too. I could see the same ideas being used to procedurally generate narratives, where paths are checked to ensure that the critical plot events occur in sequence, leaving the rest to be autogenerated. Or point-and-click adventures where the important plot items are guaranteed to be picked up by certain points in the game, but the puzzles in-between those points are selected from a database at random.</p>
<p>Constraint solving is a great tool that hasn&#8217;t yet caught on in a big way in procedural generation circles, but there are a lot of great researchers out there, like Ian and Leif, working to make it happen. It&#8217;s not just about offering easy customisation for game developers, though. It&#8217;s about providing easier ways for non-programmers to customise procedural systems. If you can work out how to express a simple rule or two, you can completely change the way a constraint-based procedural generator works. That&#8217;s exciting, and it could mean a lot for people trying to get into game development for the first time.</p>
<p><strong>Where To Find More</strong></p>
<p><a href="http://www.cs.northwestern.edu/~ian/">Ian</a> and <a href="http://leifaffles.com/">Leif</a> are really friendly people and hugely enthusiastic about their research. Leif developed the tool alongside a tech demo where the tool designed layouts for a proto-roguelike. They&#8217;ve given a GDC talk about the work, and been interviewed on <a href="http://www.roguelikeradio.com/2012/11/episode-53-game-design-in-academia.html">Roguelike Radio</a> and <a href="http://aigamedev.com/">AIGameDev</a>. In short &#8211; they&#8217;re very approachable, and they really want people to use their ideas! Constraint solving isn&#8217;t something you come across very often in game development, but if people are willing to take the plunge I think they&#8217;ll be excited by what they find. If you want to know more, but aren&#8217;t sure where to start, I really suggest getting in touch with them.</p>
<p>There are some finer details that really make the paper technically interesting that I don&#8217;t have the space to go into now &#8211; how do you deal with looping paths, for instance, or dead ends where the player doubles back on themselves? If you want to know more about constraint solving generally, I really like <a href="http://eis-blog.ucsc.edu/2011/10/map-generation-speedrun/">Adam Smith&#8217;s Map Generation Speedrun</a>. Leif himself wrote a tutorial on <a href="http://ianhorswill.wordpress.com/2013/03/26/how-to-build-a-constraint-propagator-in-a-weekend/">how to build a constraint propagator in a weekend</a>. Constraint solving isn&#8217;t the easiest jump to make if you&#8217;re used to everyday programming stuff, but it can be great fun, and the simplicity of the programs at least means there&#8217;s not too much to read (Adam writes engagingly too).</p>
<p>Thanks to Ian and Leif for their support this week, and <a href="http://www.gamesofgrey.com/blog/">Darren Grey</a> for proofreading this article too. As ever, let me know what you think &#8211; <a href="http://www.twitter.com/mtrc">@mtrc</a> on Twitter or email <a href="mailto:mike@gamesbyangelina.org">mike@gamesbyangelina.org</a>. And please so share this around if there are game developers you know who might be interested! It&#8217;s great to get research further out there to people who might not normally come across it. Thanks for reading.</p>
<p><span style="color: #000000;"><b>Addendum I &#8211; Procedurally Generated Narratives</b></span></p>
<p>I first heard about The Kingsport Cases over on Reddit&#8217;s <a href="http://reddit.com/r/gamedev">/r/gamedev</a>, and I&#8217;ve been following it ever since. It&#8217;s a horror game with a procedurally generated cast and plot, using a really nice approach that I desperately want to see get implemented and released. If you&#8217;re a fan of cool ideas being developed into real games, you should take a look at <a href="http://www.kickstarter.com/projects/1374511342/the-kingsport-cases">their Kickstarter they recently put up</a> and seriously consider funding them!</p>
<p><strong>Addendum II &#8211; Play Games, Help Science</strong></p>
<p>If you follow me on Twitter you&#8217;ll already know about Alex Zook&#8217;s experiment in adaptive games. If not, <a href="http://www.gamesbyangelina.org/2013/05/play-games-help-science-1-georgia-tech/">check this post I made earlier in the week</a> for two links to some 2D shooter games. Playing them for ten minutes will help Alex&#8217;s research into adaptive games, and make some great science even more awesome by providing lots of lovely data to crunch and make pretty graphs out of. As we all know, graphs are the best bit of science, so if you&#8217;ve got some spare time this weekend do go and give it a play.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/05/the-saturday-paper-dungeon-feng-shui/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Play Games, Help Science #1 &#8211; Georgia Tech</title>
		<link>http://www.gamesbyangelina.org/2013/05/play-games-help-science-1-georgia-tech/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=play-games-help-science-1-georgia-tech</link>
		<comments>http://www.gamesbyangelina.org/2013/05/play-games-help-science-1-georgia-tech/#comments</comments>
		<pubDate>Mon, 06 May 2013 15:57:06 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Play Games Help Science]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=323</guid>
		<description><![CDATA[&#160; Doing science with videogames is all well and good, but the only way to know if you&#8217;re doing it right is to get real people in front of what you&#8217;ve made, and get them playing. Alex Zook is one of Mark Riedl&#8216;s students at Georgia Tech University, and does really cool research into games [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-06-at-16.49.49.png"><img class="aligncenter size-large wp-image-324" alt="Screen Shot 2013-05-06 at 16.49.49" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/05/Screen-Shot-2013-05-06-at-16.49.49-1024x381.png" width="1024" height="381" /></a></p>
<p>&nbsp;</p>
<p>Doing science with videogames is all well and good, but the only way to know if you&#8217;re doing it right is to get real people in front of what you&#8217;ve made, and get them playing. <a href="http://www.twitter.com/zookae">Alex Zook</a> is one of <a href="http://www.twitter.com/mark_riedl">Mark Riedl</a>&#8216;s students at <a href="https://research.cc.gatech.edu/inc/mark-riedl">Georgia Tech University</a>, and does really cool research into games that adapt themselves to better suit the player. He&#8217;s running an experiment right now and needs some help &#8211; if you&#8217;re interested in being a guinea pig and want to play a game that&#8217;s full of exciting research, read on and see how you can contribute:</p>
<p><span id="more-323"></span></p>
<address>Hello,We would like to ask for your assistance evaluating our algorithms for adapting game play.We are running a study of AI algorithms running in two simple games: one automatically adapts to your gameplay behavior and the other to your stated preferences. Each game takes about 15 minutes to play through 10 waves. You&#8217;re free to play as many waves as you like, but we can only use your data if you finish at least 10 waves.We don&#8217;t offer compensation, but would really appreciate your help (and you might enjoy playing the game). We won&#8217;t track any long-term data on you, only keeping information on your gameplay and preference ratings under anonymized codes generated for each time you start the game up. You must speak English and be 18 years old or over to participate. Our research has been approved by the Georgia Institute of Technology Institutional Review Board.</p>
<p>Between each wave, an adaptive AI algorithm will run. This can take a couple of minutes between waves and your web browser may report the application is unresponsive. Rest assured that it is working, just crunching the data to give you the best possible results! More instructions about browser compatibility, controls, and warnings are provided on the game webpages (see below). Due to our server limitations the game may be slow to start up, please be patient.</p>
<p>If you&#8217;re interested in playing the games we ask that you please play both games.</p>
<p>First go to <a href="http://zook.ericfruchter.com" target="_blank">http://zook.ericfruchter.com</a> and complete 10 waves.</p>
<p>Then go to <a href="http://zook2.ericfruchter.com" target="_blank">http://zook2.ericfruchter.com</a> and complete 10 more waves.</p>
<p>If you have any questions or find major bugs contact Alex Zook at <a href="https://exchange.imperial.ac.uk/owa/redir.aspx?C=QM-JLxh0bUOFTqx2vanaaciNkXUHHtAIzkVZqFLMEmcLHlRlgq2wuVr0p1GSUI5CDj9cbCJV5Ww.&amp;URL=mailto%3aa.zook%40gatech.edu">a.zook@gatech.edu</a>.</p>
<p>Thanks! Alex</p>
</address>
<p> Good evaluations with lots of participants can make good research into amazing research &#8211; and for game work especially, having people play with your output is key. Thanks to everyone who takes part &#8211; I&#8217;ll have a new Saturday Paper up for you this weekend.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/05/play-games-help-science-1-georgia-tech/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Saturday Paper: Minecraft and Monet</title>
		<link>http://www.gamesbyangelina.org/2013/04/the-saturday-paper-minecraft-and-monet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-saturday-paper-minecraft-and-monet</link>
		<comments>http://www.gamesbyangelina.org/2013/04/the-saturday-paper-minecraft-and-monet/#comments</comments>
		<pubDate>Sat, 27 Apr 2013 12:53:40 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[The Saturday Papers]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=308</guid>
		<description><![CDATA[Procedural content generation is a popular piece of technology, to say the least. From Minecraft&#8217;s rolling hills to Dwarf Fortress&#8217; intricate world histories, we love games that can generate parts of themselves each time we play them. But other than tweaking the sea level in Civilization V, we don&#8217;t tend to think of content generators [...]]]></description>
				<content:encoded><![CDATA[<h3><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/2013-04-19_19.52.42.png"><img class="aligncenter  wp-image-311" alt="2013-04-19_19.52.42" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/2013-04-19_19.52.42.png" width="546" height="307" /></a></h3>
<p>Procedural content generation is a popular piece of technology, to say the least. From Minecraft&#8217;s rolling hills to Dwarf Fortress&#8217; intricate world histories, we love games that can generate parts of themselves each time we play them. But other than tweaking the sea level in Civilization V, we don&#8217;t tend to think of content generators as things that can change much. What kind of Spelunky levels would Minecraft&#8217;s worldgen make? Do Dwarf Fortress&#8217; histories share a literary style? This week The Saturday Paper is about generating the content generators &#8211; and the world of possibilities that opens up beyond.</p>
<p><span id="more-308"></span></p>
<p>We&#8217;re reading <strong><a href="http://julian.togelius.com/Kerssemakers2012A.pdf">A Procedural Procedural Level Generator Generator</a></strong>, a paper by Manuel Kerssemakers, Jeppe Tuxen, Julian Togelius and Georgios Yannakakis. In it, they describe a system they built for interactively designing level generators for <em>Infinite Super Mario Bros</em>. &#8211; and it offers up some interesting insights and ideas about how we use content generation in the games we make today. Users of the tool can view level generators abstractly, look at them in detail, see sample levels, and combine generators they like to make new ones &#8211; similar to the way the evolutionary system we saw <a href="http://www.gamesbyangelina.org/2013/04/the-saturday-paper-generating-new-rpg-classes/">two weeks ago</a> worked. The authors very kindly uploaded the tool for us (more on that later), which you can download <a href="http://julian.togelius.com/pplgg/pplgg.rar">here</a>.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/Screen-Shot-2013-04-22-at-16.33.35.png"><img class=" wp-image-314 aligncenter" alt="Screen Shot 2013-04-22 at 16.33.35" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/Screen-Shot-2013-04-22-at-16.33.35.png" width="648" height="200" /></a></p>
<p>How do you &#8216;look&#8217; at a level generator, though? The image above shows how &#8211; the tool generates lots of levels from a single generator, and then lays them on top of each other, averaging out all the colours representing each type of tile. It&#8217;s surprisingly effective &#8211; you can see generators that repeat particular patterns (such as rising and falling sections of blocks) as well as see which level generators are more chaotic, or that feature lots of detail at different parts of a level.</p>
<p>If you select one of these level generators, you can see a generated level in more detail &#8211; even playing one out yourself to see what kind of output it provides. You can also select two generators to combine together, to try and mix features that you like into a single generator. To understand why this works, and how these weird patterns you can see in the image above come out, let&#8217;s look at how these level generators are described.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/Screen-Shot-2013-04-22-at-16.41.26.png"><img class="aligncenter size-full wp-image-315" alt="Screen Shot 2013-04-22 at 16.41.26" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/Screen-Shot-2013-04-22-at-16.41.26.png" width="626" height="110" /></a></p>
<p style="text-align: left;">The procedural procedural tool uses agents to generate their levels. Each agent is like a robot with a particular set of instructions attached to it. Before generation, the level is a blank white canvas, and the agents are set out at different times to lay tiles into the level &#8211; in this case, things like coins, platforms or breakable blocks. The agents have lots of parameters that describe their behaviour, such as how often they act on the level, an area they randomly spawn in, how they move across the level, and what tiles they drop<sup>[<a href="#the-saturday-paper-minecraft-and-monet-n-1" class="footnoted" id="to-the-saturday-paper-minecraft-and-monet-n-1">1</a>]</sup>. With just a dozen or so of these agents you can describe a wide variety of level generators.</p>
<p style="text-align: left;">When you choose two level generators you&#8217;d like to see combined, the tool chooses a random grab of agents from each generator, and combines them into a new one. The different rules will all interact in different ways (some of the agent rules also allow them to react to tile placement, offering up even more interesting combinations). You can then view these new generators in the composite view we looked at above, drill down and play levels from each one, or go on to combine them further if you see something you like.</p>
<p style="text-align: center;"><img class="aligncenter" alt="Screen Shot 2013-04-22 at 17.07.29" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/Screen-Shot-2013-04-22-at-17.07.29.png" width="476" height="368" /></p>
<p style="text-align: center;"><span style="font-size: xx-small;">Sample levels from a single generator &#8211; you can see similar patterns or themes in placement.</span></p>
<p style="text-align: left;">The tool has some mixed but undoubtedly interesting results. Some generators show great diversity, while others produce variations on the same level over and over (both of which I can see being useful for different types of game). What&#8217;s encouraging about the tool is that it&#8217;s fast and robust &#8211;  it can generate an average-sized playable level in an impressively nippy 1/20 of a second, and using <a href="http://www.youtube.com/watch?v=DlkMs4ZHHr8">Robin Baumgarten&#8217;s Infinite Mario AI</a> it can test the initial set of level generators to ensure they tend to generate playable levels. This means that the tool is in excellent shape for further development to explore other genres, or look at different ways of representing level generators.</p>
<p style="text-align: left;">What&#8217;s most interesting to me is this little quote in the evaluation section:</p>
<p style="padding-left: 30px;"><em>&#8230;[some generators] generate levels that look completely different from each other in the game view, while retaining a common “theme” or “style”.</em></p>
<p> &#8217;Theme&#8217; and &#8216;Style&#8217; are not words you associate with procedural content generators very often, but I think it should be. Instead of thinking of Minecraft&#8217;s world generator as the only possible generator that could appear in such a game, we should think of it as just one possibility in a huge space of generators. There are generators that favour dramatic mountain ridges, ones that place villages in valley passes, and run rivers through deserts. This research helps us think of generators as things that we might also one day generate &#8211; perhaps automatically, even.</p>
<p>This is something I hope we can explore more in the research world, but it also has a place in game development too. Can my dungeon generator have a personality? Could Dwarf Fortress&#8217; world generator develop a taste for romantic subterfuge one day, and shift to preferring political intrigue the next? This paper is an excellent example of how to build simple abstractions of content generators, and explore a whole new exciting space through this.</p>
<p>At the start, I also mentioned the idea of Minecraft&#8217;s world generator making levels for Spelunky. The authors of the paper talk at the end about their hope to build a generic level generator generator &#8211; one that could create level generators for roguelikes as well as for platformers, simply by a designer sitting down and selecting the right combinations  of generator until something they like comes out. The idea of generalising content generation across games and genres really appeals to me, too. Of course, this all requires people to spend the time generalising their games so that they share common inputs or interfaces, something that many developers can&#8217;t afford to do. Perhaps the research in this paper will lead to some <a href="http://www.mapeditor.org/">Tiled</a>-esque middleware that might take care of this for them, though. I certainly hope so.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/Screen-Shot-2013-04-22-at-16.22.33.png"><img class="aligncenter  wp-image-319" alt="Screen Shot 2013-04-22 at 16.22.33" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/Screen-Shot-2013-04-22-at-16.22.33.png" width="538" height="493" /></a></p>
<p><strong>Where To Find More</strong></p>
<p>The paper is freely available on <a href="http://julian.togelius.com/Kerssemakers2012A.pdf">Julian Togelius&#8217;s site here</a>. The authors are all very approachable too, and I&#8217;ve met a few of them in person too. Manuel is currently part of <a href="http://abbeygames.com/">Abbey Games</a>, who are developing the exciting-looking <a href="http://www.reusgame.com/">Reus</a>, but plans to return to finish his Masters&#8217; degree after release in May. Jeppe is currently hard at work at ITU Copenhagen on his project &#8220;<em>A Framework for Real-time Collaborative Game Design in Digital Environments</em>&#8220;, where he&#8217;s working on tools that let designers sketch games out while the player is playtesting them. Julian is heading up <a href="http://game.itu.dk/index.php/Julian_Togelius">games research at ITU Copenhagen</a>, and Georgios recently moved to the <a href="http://game.edu.mt/">Institute of Digital Games at the University of Malta</a>.</p>
<p>All are very enthusiastic about their work and I highly recommend getting in touch with them to learn more about the work and its current status. We&#8217;ll also have comment threads on Reddit&#8217;s /r/gamedev and Gamasutra&#8217;s blog section too &#8211; I&#8217;ll link them here once they&#8217;re online. The authors of the paper may be popping into those threads to answer questions and discuss the work, so be sure to join in if you want to chat!</p>
<p>Aside from reading the paper, you can also interact with the tool itself! The authors have very kindly packaged up the tool and uploaded it to coincide with The Saturday Paper &#8211; the first time it&#8217;s been made available to the public. I&#8217;m incredibly grateful for this, and I know many of you will be excited to take a look. <strong><a href="http://julian.togelius.com/pplgg/pplgg.rar">Download it here.</a></strong> It has some GUI issues on some Macs, but Windows users should be just fine.</p>
<p>As ever, don’t forget to let me know what you thought of the column this week. Let me know by emailing me – mike@gamesbyangelina.org – or getting in touch <a href="http://www.twitter.com/mtrc">@mtrc</a> on Twitter. Thanks for reading!</p>

<ol class="footnotes">
	<li class="footnote" id="the-saturday-paper-minecraft-and-monet-n-1"><strong><sup>[1]</sup></strong> If you want to see a complete description of the agents, there&#8217;s a very clear breakdown in the paper itself. <a class="note-return" href="#to-the-saturday-paper-minecraft-and-monet-n-1">&#x21A9;</a></li></ol>
]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/04/the-saturday-paper-minecraft-and-monet/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Hyperbole</title>
		<link>http://www.gamesbyangelina.org/2013/04/hyperbole/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hyperbole</link>
		<comments>http://www.gamesbyangelina.org/2013/04/hyperbole/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 11:18:52 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=317</guid>
		<description><![CDATA[I was fortunate enough to be one of the guests on the latest season of Joe Martin and Harriet Jones&#8217; podcast, Unlimited Hyperbole. The episode has just gone up, and is perfect coffee break listening-size. In it, I talk about how the games industry is missing out on a future it could still have, if only we [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2012/10/Screen-shot-2012-10-15-at-17.18.06.png"><img class="aligncenter size-full wp-image-217" alt="Screen shot 2012-10-15 at 17.18.06" src="http://www.gamesbyangelina.org/wp-content/uploads/2012/10/Screen-shot-2012-10-15-at-17.18.06.png" width="572" height="177" /></a></p>
<p>I was fortunate enough to be one of the guests on the latest season of Joe Martin and Harriet Jones&#8217; podcast, <em>Unlimited Hyperbole. </em><a href="http://joemartinwords.com/2013/04/24/unlimited-hyperbole-20/">The episode has just gone up</a>, and is perfect coffee break listening-size. In it, I talk about how the games industry is missing out on a future it could still have, if only we could get academia to work a bit closer with industry. I might be sounding like a broken record lately &#8211; I said the same thing <a href="http://www.gamesbyangelina.org/2013/04/the-saturday-papers/">when I launched <em>The Saturday Paper</em></a> just a few weeks ago. But it&#8217;s something that plays on my mind a lot, because it&#8217;s so easily fixed, and because there&#8217;s so much exciting research going on out of people&#8217;s reach.</p>
<p><span id="more-317"></span></p>
<p>Research that people would be interested in, too. <a href="http://www.gamesbyangelina.org/2013/04/the-saturday-paper-generating-new-rpg-classes/">The first Saturday Paper</a>, which went up a fortnight ago almost, has had 1500 readers on this site, as well as an unknown number over on Gamasutra (where it was crossposted). So far I&#8217;ve had 80 clickthroughs from the site, and conversion rates are generally quite low, so I&#8217;m hoping that means there were a few hundred readers over there, too. Potentially a couple of thousand people decided to read about an experimental research project &#8211; with over 130 people downloading the paper itself (again, not including Gamasutra). I&#8217;m hoping the next paper, due up this saturday, will get a similar reception.</p>
<p>In <a href="http://joemartinwords.com/2013/04/24/unlimited-hyperbole-20/">the Unlimited Hyperbole episode</a> I come across as quite harsh on the industry, but as I&#8217;ve mentioned since I know that these things go both ways &#8211; hence my attempt to reach out with The Saturday Paper, and spread the word about things I think are interesting, exciting or relevant to the games industry right now. Everyone needs to work at getting closer and collaborating more.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2012/01/Screen-shot-2012-01-15-at-14.38.06.png"><img class="aligncenter size-full wp-image-76" alt="Screen shot 2012-01-15 at 14.38.06" src="http://www.gamesbyangelina.org/wp-content/uploads/2012/01/Screen-shot-2012-01-15-at-14.38.06.png" width="723" height="177" /></a></p>
<p>Another thing crops up at the very end of the podcast, where I say this:</p>
<p style="padding-left: 30px;"><em>[Gamers] have lost their belief in what computers can do, and we&#8217;ve all become very cautious in what we dream about and what we wish we could have in our games. Everything is <a href="http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non">non-traditional</a> unless we have this culture of experimentation and investigation.</em></p>
<p>I really believe that. When I see wishlists, or people asking developers to add things to their next game, it&#8217;s really just more of things &#8211; broader scopes or elements from other games. Yet this is the same demographic that is supposed to love science fiction and the promise of the future. In recording the podcast with Joe and Harriet (the same Harriet who did the amazing promotional art for A Puzzling Present) we talked more about this, I think &#8211; because getting people to dream, to ask for crazy things, is a great way to power research forwards. I like talking to people about AI, because wheedling weird ideas out of them is a great way to get new ideas to work on and think about. I&#8217;m still pondering <a href="http://niobiumj12.imascientist.org.uk/2012/06/22/do-you-think-ai-will-ever-take-over-the-world-or-become-influential-to-society-such-as-become-prime-minister-or/">the idea of an AI as a political representative</a>, thanks to a school student in I&#8217;m A Scientist.</p>
<p>In games this is even more important. Games are wish fulfilment. Even simulators, or &#8216;realistic&#8217; games are about experiencing things differently, or things we couldn&#8217;t experience ourselves. That means you get to ask for whatever you want. So don&#8217;t be afraid &#8211; because <a href="http://www.cc.gatech.edu/~riedl/">someone</a> <a href="http://julian.togelius.com/">out</a> <a href="http://eldar.mathstat.uoguelph.ca/dashlock/">there</a> <a href="http://yannakakis.net/">crazy</a> <a href="http://www.itu.dk/~mjas/">enough</a> <a href="http://users.soe.ucsc.edu/~michaelm/">to</a> <a href="http://sokath.com/main/">try</a> <a href="http://mtreanor.com/">is</a> <a href="http://adamsmith.as/">probably</a> <a href="http://game.itu.dk/index.php/Antonios_Liapis">listening</a><sup>[<a href="#hyperbole-n-1" class="footnoted" id="to-hyperbole-n-1">1</a>]</sup>.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2012/01/Screen-shot-2012-01-27-at-14.06.10.png"><img class=" wp-image-95 aligncenter" alt="" src="http://www.gamesbyangelina.org/wp-content/uploads/2012/01/Screen-shot-2012-01-27-at-14.06.10.png" width="999" height="378" /></a></p>
<p style="text-align: center;"><span style="font-size: xx-small;">Attendees of CIG 2011 &#8211; my first academic conference! The crowd includes (to mention a few) Mike Preuss and Noor Shaker, who both run successful AI competitions as well as being full-time researchers; Julian Togelius, whose huge breadth of experiments in PCG inspired ANGELINA; Dan Ashlock, an amazing mathematician with a love of roguelikes; Alex Zook, a member of the terrifyingly interesting Intelligent Narrative Computing group; and Giel van Lankweld, who showed that the way we play RPGs can reflect who we are as well as a personality test.</span></p>

<ol class="footnotes">
	<li class="footnote" id="hyperbole-n-1"><strong><sup>[1]</sup></strong> Apologies to those I didn&#8217;t link to &#8211; I&#8217;m proud that there are too many names to fit in. <a class="note-return" href="#to-hyperbole-n-1">&#x21A9;</a></li></ol>
]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/04/hyperbole/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Saturday Paper: Making Magic (Spells)</title>
		<link>http://www.gamesbyangelina.org/2013/04/the-saturday-paper-generating-new-rpg-classes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-saturday-paper-generating-new-rpg-classes</link>
		<comments>http://www.gamesbyangelina.org/2013/04/the-saturday-paper-generating-new-rpg-classes/#comments</comments>
		<pubDate>Sat, 13 Apr 2013 12:30:06 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[The Saturday Papers]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=294</guid>
		<description><![CDATA[Depictions of character classes in The Elder Scrolls IV: Oblivion If you&#8217;ve ever played a role-playing game, from Final Fantasy V to Skyrim, you&#8217;ll know that the genre loves its tropes. From orcs and goblins to swords and sorcery, the same themes come up time and time again. Sometimes this is exactly what you want, [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/1030378750.jpg"><img alt="1030378750" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/1030378750.jpg" width="580" height="272" /><br />
</a><span style="font-size: x-small;"><em>Depictions of character classes in The Elder Scrolls IV: Oblivion</em></span></p>
<p>If you&#8217;ve ever played a role-playing game, from Final Fantasy V to Skyrim, you&#8217;ll know that the genre loves its tropes. From orcs and goblins to swords and sorcery, the same themes come up time and time again. Sometimes this is exactly what you want, but often &#8211; particularly when it comes to the classes players choose to be, and the skills they have available &#8211; we want to have something new to challenge us. This week The Saturday Paper is about getting the game itself to come up with new abilities and class ideas for RPGs, with a little guidance from the player.</p>
<p><span id="more-294"></span></p>
<p>We&#8217;re reading Alex Pantaleev&#8217;s 2012 paper, <a href="http://cs.oswego.edu/~alex/AlexPantaleevPCG2012.pdf"><b id="internal-source-marker_0.2272497769445181">In Search of Patterns: Disrupting RPG Classes through Procedural Content Generation</b></a>. It describes a game he built for two players who fight each other in simple RPG-style battles. It&#8217;s a prototype game in order to prove the idea&#8217;s worth, so Alex&#8217;s RPG system doesn&#8217;t let the characters move (they can all reach each other, like a Final Fantasy fight) and has a really simple combat system that uses eight statistics &#8211; things like health points, armor, speed and so on. Each player controls a party of characters who take turns (according to their speed statistic) to fight until one party is defeated.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/ffcombat.png"><img class=" wp-image-297 alignnone" alt="ffcombat" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/ffcombat.png" width="515" height="342" /><br />
</a><em><span style="font-size: x-small;">The experiment&#8217;s RPG system reminds me a bit of Final Fantasy-style combat. In a good way!</span></em></p>
<p>Instead of picking a ready-made player class with its own skill tree, players begin by choosing abilities for each character from a list generated by the game. Each ability is defined by a few pieces of information &#8211; a negative effect (the <em>cost</em> of the ability) and a positive effect (the <em>benefit</em>). For instance, a magic spell might lower an enemy&#8217;s health points while reducing an ally&#8217;s magic points. This makes abilities very easy to represent and generate through code &#8211; you just need two statistics to target (like health and magic points) and two numbers to add or subtract from them. Abilities also have information like a duration (the number of turns they affect things for) and a cooldown (the number of turns you have to wait before using it again).</p>
<p>Of course, if the abilities were just randomly generated forever this wouldn&#8217;t be much use. Instead, Alex&#8217;s system tries to improve the abilities over time by using computational evolution. Like biological evolution, computational evolution is about combining good examples of something in the hope of making even better examples (in the same way that fit animals survive to reproduce and make fitter children). Computational evolution works in much the same way &#8211; if you&#8217;re interested in reading more (and like baking analogies) <a href="http://www.gamesbyangelina.org/?p=104">I wrote a quick explanation of how computational evolution works in this post here</a>.</p>
<p style="text-align: center;"><img class=" wp-image-298 aligncenter" alt="Screen Shot 2013-04-09 at 10.13.03" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/Screen-Shot-2013-04-09-at-10.13.03.png" width="584" height="323" /><em><span style="font-size: x-small;">A (very) simple example of how two abilities could be recombined. Alex&#8217;s are a little bit more interesting, and detailed better in his paper.</span></em></p>
<p style="text-align: left;"><em></em>Recombining can be a tricky thing to define when you&#8217;re making an evolutionary system, but it&#8217;s easily experimented with over time. Maybe initially you create a child that takes the benefit from one ability and the cost from the other (like the illustrated example above). Or maybe you vary the values a bit. Maybe you swap the statistics over. Different methods will have different results &#8211; Alex uses a method where any number of elements (statistics or values) are chosen from one of two parent abilities, and included in their children.</p>
<p>Just like evolution in the real world, Alex&#8217;s RPG abilities need a way of being sorted so only the fittest can reproduce. What do &#8216;fit&#8217; abilities look like? His solution is elegant and simple &#8211; let the player decide. At the end of each battle, the abilities that were used the most by players are the ones that get chosen to recombine into the next set of abilities for players to choose from. The player might choose some, all or none of this new set &#8211; whatever happens, the process continues into the next battle.</p>
<p><strong>Results</strong></p>
<p>So, what do you think? Could such a simple system &#8211; giving a player random abilities and slowly mixing together the ones they like best &#8211; produce cool new ideas for RPGs? My favourite thing about this system is that it absolutely did, and I want to go over some of the interesting ideas that came out of this (very preliminary) experiment.</p>
<p>Remember that each ability has a cooldown and a duration of effect? In one game, a player evolved a set of abilities that had durations slightly longer than their cooldowns. These abilities were often not individually very powerful, because Alex&#8217;s generation system tries to avoid generating abilities that have a high benefit and a low cost. Because they could be stacked multiple times, however, they could be used to create huge damage in very long battles.</p>
<p style="text-align: center;"><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/goblin.jpg"><img class="wp-image-299 aligncenter" alt="goblin" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/goblin.jpg" width="588" height="403" /></a><span style="font-size: xx-small;"><span style="line-height: 15px;"><i>Goblin Techies from DOTA</i></span></span></p>
<p>Another example had a player evolve highly damaging, long-duration abilities that also hugely damaged the person casting them. This meant that some party members could sacrifice themselves to inflict large amounts of damage on the enemy team. This is a really unusual ability &#8211; the only example that springs to mind is the weird <a href="http://www.dota2wiki.com/wiki/Goblin_Techies">Goblin Techies character</a> in DOTA, whose ultimate abilities kills the player and deals huge damage around them.</p>
<p>Other interesting patterns emerged from unforeseen uses of game mechanics. If a player&#8217;s magic points dropped to zero, any active spells they had cast immediately vanished. This led to abilities that attacked magic points and magic point generation as a way of stopping suicidal or long-term strategies like the ones above. It&#8217;s interesting to see such variety coming from such a simple system &#8211; included alongside these more unusual examples were also the expected range of healing, damage and buff/debuff spells.</p>
<p><strong>So What?</strong></p>
<p>Where might this research apply to the games industry today? Even just considering its core idea &#8211; that there are more RPG classes out there than just Warrior, Mage and Thief &#8211; I think there&#8217;s plenty to be excited about here. Ideas like this could be used in the development of a game &#8211; to explore new ideas that you might not have thought of yourself &#8211; or even built in as procedural generators to games for players to explore themselves.</p>
<p>It also has promise outside the boundaries of RPGs. What about a roguelike whose item drops were designed based on which ones the player picked up and which ones they threw away? What about an RTS where the tech tree redesigned itself each week based on what skills players were picking most or picking least? Perhaps a game like Minecraft could help players specialise and co-operate better by changing its crafting recipes or inventing new ones as players find things they want to do more of? Player-guided creation of content, that goes beyond the ordinary things that games try to generate, is an exciting prospect.</p>
<p><a href="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/NetHack-classes.png"><img class="aligncenter size-full wp-image-300" alt="NetHack classes" src="http://www.gamesbyangelina.org/wp-content/uploads/2013/04/NetHack-classes.png" width="256" height="128" /></a></p>
<p><strong>Where To Find More</strong></p>
<p>I&#8217;ve been in touch with Alex since deciding to write about his paper, and he&#8217;s very kindly <a href="http://cs.oswego.edu/~alex/AlexPantaleevPCG2012.pdf">put the PDF online</a> for everyone to download and read. He was extremely friendly and excited about the idea of people finding out about his work:</p>
<p style="padding-left: 30px;"><em>I&#8217;m glad that the community is starting to look at the intersection between academia and industry, which has long been a pet peeve of mine. I&#8217;d be very happy to talk to indie game developers and other smart people with my goal, which is &#8220;make cool stuff that works and is useful&#8221;.</em></p>
<p>Alex can be contacted <a href="http://cs.oswego.edu/~alex/">via his academic site</a> &#8211; please drop him an email if you liked the work or want to know more about it, I&#8217;m sure he&#8217;d be delighted to talk to interested developers and gamers! There are lots of details to be found in the paper that Alex can expand on that I didn&#8217;t have time to go into here. Hopefully I&#8217;ve piqued your interest and you can find out more through the paper itself.</p>
<p>Don&#8217;t forget to let me know what you thought of the column this week. I&#8217;m working on the format and I want to know what people want more of, less of, or just plain love/hate. Let me know by emailing me &#8211; mike@gamesbyangelina.org &#8211; or getting in touch @mtrc on Twitter. Thanks for reading!</p>
<p><em>With many thanks to <a href="https://twitter.com/craigtheliar">Craig</a>, <a href="https://twitter.com/electrondance">Joel</a>, <a href="https://twitter.com/mjntendency">Mark</a>, <a href="http://www.youtube.com/user/jiiiiimproductions">Mike</a> and <a href="http://www.doc.ic.ac.uk/~azalea">Azalea</a> for feedback and suggestions.</em></p>

]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/04/the-saturday-paper-generating-new-rpg-classes/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The Saturday Papers</title>
		<link>http://www.gamesbyangelina.org/2013/04/the-saturday-papers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-saturday-papers</link>
		<comments>http://www.gamesbyangelina.org/2013/04/the-saturday-papers/#comments</comments>
		<pubDate>Sat, 06 Apr 2013 21:48:21 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[The Saturday Papers]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=291</guid>
		<description><![CDATA[This evening I found a few tweets from Jonathan Blow that disappointed me a bit. Here they are: I wrote code to do A* today, for the first time since I was in college. Long time! — Jonathan Blow (@Jonathan_Blow) April 6, 2013 In other news, this puts me pretty close to the state of [...]]]></description>
				<content:encoded><![CDATA[<p>This evening I found a few tweets from Jonathan Blow that disappointed me a bit. Here they are:</p>
<blockquote class="twitter-tweet"><p>I wrote code to do A* today, for the first time since I was in college. Long time!</p>
<p>— Jonathan Blow (@Jonathan_Blow) <a href="https://twitter.com/Jonathan_Blow/status/320637906601512960">April 6, 2013</a></p></blockquote>
<blockquote class="twitter-tweet"><p>In other news, this puts me pretty close to the state of the art in video game AI research&#8230;</p>
<p>— Jonathan Blow (@Jonathan_Blow) <a href="https://twitter.com/Jonathan_Blow/status/320638001992581120">April 6, 2013</a></p></blockquote>
<p>This has driven me to finally start doing something I meant to begin a long time ago. I&#8217;d really like your help, too!</p>
<p><span id="more-291"></span></p>
<p>My first thought when reading Jonathan&#8217;s tweets were that he meant one of two things &#8211; AI in games generally, and AI for NPCs (which is what people often mean when they say &#8216;game AI&#8217;). For the former case, well, there are too many examples of great, vibrant, exciting research to mention. Even in the latter case, research into pathfinding and planning has made huge surges in recent years, with <a href="http://www.mcts.ai">Monte Carlo Tree Search</a> cracking every search domain known to man, and even Jonathan&#8217;s plain old A* having new life squeezed out of it &#8211; <a href="http://cilab.sejong.ac.kr/cig2011/proceedings/CIG2011/Keynotes_3.htm">by researchers working on AAA games, no less</a>.<sup>[<a href="#the-saturday-papers-n-1" class="footnoted" id="to-the-saturday-papers-n-1">1</a>]</sup></p>
<p>However, it&#8217;s easy to point the finger. I am upset by Jonathan&#8217;s tweets &#8211; because I believe very passionately in building bridges between scientists and independent developers, moreso than ties with the mainstream industry. But instead of moaning, I&#8217;m going to try and do something about it. As I tweeted myself:</p>
<blockquote class="twitter-tweet"><p>Perhaps Jonathan Blow&#8217;s comments reflect a failing on our side to communicate our work though. Maybe we can change that!</p>
<p>— Michael Cook (@mtrc) <a href="https://twitter.com/mtrc/status/320644556079104000">April 6, 2013</a></p></blockquote>
<p>What can I do? Something I wanted to do ages ago! Every fortnight from now on, on a Saturday, I will post <strong>The Saturday Paper</strong> &#8211; a blog post where I highlight a cool paper from or related to videogame development, with a summary written by me that cuts through the density of the paper itself. I&#8217;ll try and provide pictures and video where possible, and links to the paper if I can gain permission (or if it&#8217;s not open access already &#8211; many conferences, including CIG and AIIDE already are!)</p>
<p>What do I need for help? For one thing I need criticism. It&#8217;s been a while since I wrote regularly, and I&#8217;m new at science communication. I&#8217;ll value any feedback or comments you can give me &#8211; feed them through to the usual address, mike@gamesbyangelina.org. The other thing you can do, of course, is spread the word &#8211; Twitter, Facebook, Reddit and more. Show gamedevs, get the knowledge spread, and maybe next time an indie mentions game research on Twitter it&#8217;ll be because she&#8217;s just adapted it to make her awesome game even better.</p>

<ol class="footnotes">
	<li class="footnote" id="the-saturday-papers-n-1"><strong><sup>[1]</sup></strong> I should probably say &#8211; I did say I was learning about science communication! &#8211; that A* is a very popular algorithm used to find the shortest route between two points. As you might imagine, it&#8217;s used a lot in videogames for getting NPCs places, among other things! <a class="note-return" href="#to-the-saturday-papers-n-1">&#x21A9;</a></li></ol>
]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/04/the-saturday-papers/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ANGELINA on Gamasutra &amp; Eurogamer</title>
		<link>http://www.gamesbyangelina.org/2013/04/angelina-on-gamasutra-eurogamer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=angelina-on-gamasutra-eurogamer</link>
		<comments>http://www.gamesbyangelina.org/2013/04/angelina-on-gamasutra-eurogamer/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 16:03:32 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Media]]></category>

		<guid isPermaLink="false">http://www.gamesbyangelina.org/?p=289</guid>
		<description><![CDATA[It&#8217;s the first day of EvoStar 2013 today, and I&#8217;ve already seen plenty of confusing and exciting talks, drunk a week&#8217;s ration of coffee, and confused the locals with my attempts to speak German. I just wanted to post a quick update to let you know that two articles went online this week about the [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s the first day of EvoStar 2013 today, and I&#8217;ve already seen plenty of confusing and exciting talks, drunk a week&#8217;s ration of coffee, and confused the locals with my attempts to speak German. I just wanted to post a quick update to let you know that two articles went online this week about the project, both of which are great reads, covering different but complementary sides of the project as it stands today.</p>
<p><a href="http://www.gamasutra.com/view/feature/189354/angelina_the_computer_program_.php">Over on Gamasutra</a>, Joe Martin and I discuss the criticisms, valid and open, of ANGELINA and computational creativity. We talk about the advantages of being human, where ANGELINA might manage to one day go, and where humans will (and should) have the upper hand.</p>
<p><a href="http://www.eurogamer.net/articles/2013-04-02-plastic-soul-one-mans-quest-to-build-an-ai-that-can-create-games">Meanwhile at Eurogamer</a>, Chris Donlan sits down with me to discuss why ANGELINA and computational creativity at large is the beginning of something separate, something beyond traditional creativity and maybe a chance to look at things in a new way.</p>
<p>I spoke to both Chris and Joe at Imperial over the last few months, and both conversations were absolutely brilliant. I can&#8217;t thank them enough. Both links will of course make it over to the Press page of the site too. EvoGames kicks off in earnest tomorrow, which I might tweet a little about. Normal work service resumes next week!</p>

]]></content:encoded>
			<wfw:commentRss>http://www.gamesbyangelina.org/2013/04/angelina-on-gamasutra-eurogamer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
