<?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>The Game That Never Was &#187; Procedural content</title>
	<atom:link href="http://the-game.odahoda.de/category/procedural-content/feed/" rel="self" type="application/rss+xml" />
	<link>http://the-game.odahoda.de</link>
	<description>Mindless ramblings about the perfect game</description>
	<lastBuildDate>Mon, 10 Jan 2011 22:43:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>How to build worlds</title>
		<link>http://the-game.odahoda.de/2010/11/how-to-build-worlds/</link>
		<comments>http://the-game.odahoda.de/2010/11/how-to-build-worlds/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 15:38:29 +0000</pubDate>
		<dc:creator>pink</dc:creator>
				<category><![CDATA[Procedural content]]></category>

		<guid isPermaLink="false">http://the-game.odahoda.de/?p=116</guid>
		<description><![CDATA[Joshua Tippetts wrote a post about procedural content generation, covering his approach to landscape generation. He differentiates between &#8220;implicit&#8221; and &#8220;explicit&#8221; methods (which I would call &#8220;bottom-up&#8221; and &#8220;top-down&#8221;, but who cares about naming) and clearly favors the implicit approach. Both approaches have a (IMHO significant) drawbacks. They are based an algorithms that happen to produce [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gamedev.net/user/47547-jtippetts/">Joshua Tippetts</a> wrote a <a href="http://www.gamedev.net/blog/33/entry-2227887-more-on-minecraft-type-world-gen/">post about procedural content generation</a>, covering his approach to landscape generation. He differentiates between &#8220;implicit&#8221; and &#8220;explicit&#8221; methods (which I would call &#8220;bottom-up&#8221; and &#8220;top-down&#8221;, but who cares about naming) and clearly favors the implicit approach. Both approaches have a (IMHO significant) drawbacks. They are based an algorithms that happen to produce something that resembles a landscape, often only after careful tweaking of obscure parameters. And while they can produce nice looking worlds (after adding water, vegetation, animals and a population), I&#8217;m not convinced that this is a good way to create worlds where an entertaining game is to unfold. (This is related to the &#8220;sandbox&#8221; vs. &#8220;story driven&#8221; games discussion. I have an opinion about that, which I might elaborate in another post. It&#8217;s neither A nor B, more like &#8220;story driven sandbox&#8221; games.)</p>
<p>So let me describe two other approaches</p>
<h2>Simulation</h2>
<p>I add this just for completeness. I don&#8217;t think that this is really reasonable or even feasible approach, but let&#8217;s check it out for the fun of it.</p>
<p>Instead of generating a world as it is <em>now</em>, simulate its development over time. For the landscape that would mean, you start off with a rocky planet, hurl meteorites at it, simulate tectonics, erosion, and all that stuff and let it run for a few billion (simulated) years. Add in plants at some point along the way &#8211; which of course have an effect on erosion &#8211; and let them spread around. You might get away without evolution, just add or remove different species at various times. Same thing for animals. And finally you pop some settlers into the world and watch them build villages, cities and kingdoms.</p>
<p>You even get history for free by recording it. So you do not only get a Kingdom of Blafasel, but also the fact that it is in war with the neighboring Kingdom of Bruhala &#8211; a stupid conflict about a small island, because that&#8217;s what they were always fighting about.</p>
<p>This biggest advantage of this approach is that it would not produce the inconsistencies which are inevitable with other approaches &#8211; especially when only local knowledge is used.</p>
<p>Of course this is pretty much nonsense and using this to build a game world would be a huge waste of CPU time.</p>
<h2>Intelligent Design</h2>
<p>No, I&#8217;m not a fundamentalist priest. But nobody claims that games work by the same rules as reality.</p>
<p>Instead of using dump algorithms to crunch numbers, let&#8217;s try to simulate what a human game designer does when (s)he creates a game world. The most important thing is that the world serves a purpose. Things link &#8220;there is a mountain range here that the player has to cross to reach the other kingdom.&#8221; Random methods can still be used to fill in the gaps, but they are heavily constraint by a list of story or gameplay driven objectives.</p>
<p>I have no clear vision of how such a beast would look like. It might start off with an empty world (say an endless ocean without any land), a set of rules and the objectives (the purpose that this world should serve). Then it starts to shape the world according to the rules, directed by the objectives.</p>
<p>Shaping means</p>
<ul>
<li>Raise some land from the sea.</li>
<li>Put a mountain range here as a border between two kingdoms.</li>
<li>Level this area to make room for a mountain village.</li>
<li>Place river here to give this wealthy city a big trading route.</li>
</ul>
<p>What are those rules?</p>
<ul>
<li>The world consists of continents which are big blobs of rock surrounded by salt water.</li>
<li>These plants grows along the coast, those in swamps.</li>
<li>This animal lives in forest, that in open plains.</li>
<li>A village needs a well or other fresh water supply.</li>
<li>A village needs some food sources, and the population is constrained by the supply.</li>
<li>Fishermen, Hunters, Farmers, &#8230; are food sources.</li>
<li>In a religions culture settlements are centered around a shrine or temple.</li>
</ul>
<p>And objectives?</p>
<ul>
<li>The world should be interesting. Otherwise the design process could terminate after raising a continent of rock from the sea, without anything of interest on it.</li>
<li>The world should be playable. In a randomly generated world, the player might start in a small village in a mountain valley &#8211; only to realize that it is surrounded by impassable walls of mountains.</li>
<li>The world should allow a certain story to take place. If the game is about an epic war which is going to destroy all of the world, make sure there is someone worth defending, someone, coming from somewhere, who is attacking and a place where the great battle can take place.</li>
</ul>
<p>And of course a gazillion more items in each list.</p>
<p>How to implement a program that can do this is left as an exercise to the reader.</p>
<p>The process of creating such a world would then be similar to declarative programming. The designer would distill her/his knowledge into rules and set up the objectives that implicitly describe a story.</p>
<p>[Update 2010-01-10: Fixed links. GameDev.net got a new site and broke some URLs]</p>
]]></content:encoded>
			<wfw:commentRss>http://the-game.odahoda.de/2010/11/how-to-build-worlds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Procedural worlds</title>
		<link>http://the-game.odahoda.de/2009/06/procedural-worlds/</link>
		<comments>http://the-game.odahoda.de/2009/06/procedural-worlds/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 23:15:25 +0000</pubDate>
		<dc:creator>pink</dc:creator>
				<category><![CDATA[Procedural content]]></category>

		<guid isPermaLink="false">http://the-game.odahoda.de/?p=23</guid>
		<description><![CDATA[My vision is a huge, realistic (within the given story setting) and highly detailed world. A world bigger than any team of designers could create in a reasonable lifetime. So instead of manually crafting the terrain, placing cities, houses and objects, you define rules and algorithms that create the world for you. Or perhaps it [...]]]></description>
			<content:encoded><![CDATA[<p>My vision is a huge, realistic (within the given story setting) and highly detailed world. A world bigger than any team of designers could create in a reasonable lifetime. So instead of manually crafting the terrain, placing cities, houses and objects, you define rules and algorithms that create the world for you.</p>
<p>Or perhaps it is the other way round: I&#8217;m a hacker, not a designer. So the obvious way to create a fantastic world is to define such algorithms and rules and let the CPU do the dirty work.</p>
<p><span id="more-23"></span></p>
<p><a id="gzas" title="Read about the game on Wikipedia" href="http://en.wikipedia.org/wiki/Elite_%28video_game%29"></a></p>
<p><a id="gzas" title="Read about the game on Wikipedia" href="http://en.wikipedia.org/wiki/Elite_%28video_game%29">Elite</a> is a prototypical example for a game with procedural universe &#8211; a game that I played for many, many hours when I was young and beautiful and that certainly shaped many aspects of how I think about games. Many things I want to write about here have their roots in that experience.</p>
<p>So&#8230; procedurally generating a world. Hmpf&#8230; I have many ideas spinning around my head. For example using a layered approach. The fundamental layer is probably the terrain. As a first step a simple subdivision algorithm should be sufficient. On top of that you put other layers: flora, fauna, population, etc. Layers can interact, e.g. the value of one layer (for example elevation of a certain area) serves as input for the formulas that constitute another layer (different vegetation). Throw in time as another possible input value (climate changes over time, with cycles at different timescales), the coordinates (it&#8217;s getting colder towards the north pole, ya know). And finally a pseudo-random value for good measure to make things more unpredictable and diverse, but still deterministic.</p>
<p>And today I was sitting on the balcony thinking of nothing in particular and a thought popped up. Functions can take you only so far. For more complex situations, like creating a village, a rule based approach is needed. There&#8217;s a lake -&gt; place some fisherman with their houses, boats and nets next to it. I&#8217;ll need a, probably pretty large, set of rules that define how the world is to be created. I need to apply these rules and there are large amounts of input conditions that have to be checked (&#8220;Where&#8217;s the next lake? Is that close to the village?&#8221;). At that was the point where my brain did, what brains are good at: digg deep in almost forgotten memories, pick something up and connect it with the problem at hand, even though you don&#8217;t think about that problem at that time.</p>
<p>So I remembered the book <a id="z-pt" title="Fluid Concepts and Creative Analogies: Computer Models of the Fundamental Mechanisms of Thought" href="http://www.cogsci.indiana.edu/book.html">Fluid Concepts and Creative Analogies: Computer Models of the Fundamental Mechanisms of Thought</a> by Douglas R. Hofstadter that I read about ten years or so ago. Fortunately the German edition had a bit more catchy title that I could remember, otherwise I don&#8217;t know if I could have found it again. The book describes an interesting approach to AI that might be applicable to the problem at hand. I need to think more about that, but first I have to refresh my memory of the book. Unfortunately our local public library has a very limited collection, so I went ahead and ordered a copy from Amazon. Together with two other books I just ordered, that should be enough to read for the days to come.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-game.odahoda.de/2009/06/procedural-worlds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

