<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title><![CDATA[Indiegamer Developer Discussion Boards - Game Development & Technical]]></title>
		<link>http://forums.indiegamer.com/</link>
		<description>Discuss game development and technical topics, including programming, art, design, music, sound fx, web development, porting, localization, and hardware.</description>
		<language>en</language>
		<lastBuildDate>Sat, 25 May 2013 09:56:12 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>http://forums.indiegamer.com/images/misc/rss.png</url>
			<title><![CDATA[Indiegamer Developer Discussion Boards - Game Development & Technical]]></title>
			<link>http://forums.indiegamer.com/</link>
		</image>
		<item>
			<title>Unity for Big Fish Games/Casual Portals?</title>
			<link>http://forums.indiegamer.com/showthread.php?35489-Unity-for-Big-Fish-Games-Casual-Portals&amp;goto=newpost</link>
			<pubDate>Wed, 22 May 2013 09:57:43 GMT</pubDate>
			<description><![CDATA[Do you think Unity is viable for games on BFG? With that I mean for 2D games running on quite old PCs. 
 
I've looked thru Unity's galley of games and can see some quite big games there (eg http://www.badpiggies.com/), but has anyone got their Unity game on BFG or other causal portals?]]></description>
			<content:encoded><![CDATA[<div>Do you think Unity is viable for games on BFG? With that I mean for 2D games running on quite old PCs.<br />
<br />
I've looked thru Unity's galley of games and can see some quite big games there (eg <a href="http://www.badpiggies.com/" target="_blank">http://www.badpiggies.com/</a>), but has anyone got their Unity game on BFG or other causal portals?</div>

 ]]></content:encoded>
			<category domain="http://forums.indiegamer.com/forumdisplay.php?3-Game-Development-amp-Technical"><![CDATA[Game Development & Technical]]></category>
			<dc:creator>therevillsgames</dc:creator>
			<guid isPermaLink="true">http://forums.indiegamer.com/showthread.php?35489-Unity-for-Big-Fish-Games-Casual-Portals</guid>
		</item>
		<item>
			<title>Which game engine?</title>
			<link>http://forums.indiegamer.com/showthread.php?35454-Which-game-engine&amp;goto=newpost</link>
			<pubDate>Sun, 12 May 2013 17:57:55 GMT</pubDate>
			<description>Okay, so Ive been having some trouble deciding which game engine I should go with. I have experience with unity but I heard theres no modding support on that, the problem with CryEngine and UDK is they take a large sum of the money that you make and source only lets you sell on steam (it might also...</description>
			<content:encoded><![CDATA[<div>Okay, so Ive been having some trouble deciding which game engine I should go with. I have experience with unity but I heard theres no modding support on that, the problem with CryEngine and UDK is they take a large sum of the money that you make and source only lets you sell on steam (it might also take some money, Im not sure). Correct me if Im wrong about unity by the way. With that in mind (so mod-ability, cost and platforms) which engine should I use?<br />
<br />
Thanks<br />
Tom</div>

 ]]></content:encoded>
			<category domain="http://forums.indiegamer.com/forumdisplay.php?3-Game-Development-amp-Technical"><![CDATA[Game Development & Technical]]></category>
			<dc:creator>ostrich160</dc:creator>
			<guid isPermaLink="true">http://forums.indiegamer.com/showthread.php?35454-Which-game-engine</guid>
		</item>
		<item>
			<title>Procedural Dungeon Generation Algorithm Explained for my game TinyKeep</title>
			<link>http://forums.indiegamer.com/showthread.php?35422-Procedural-Dungeon-Generation-Algorithm-Explained-for-my-game-TinyKeep&amp;goto=newpost</link>
			<pubDate>Fri, 03 May 2013 13:23:52 GMT</pubDate>
			<description><![CDATA[Hey guys, 
 
I was originally going to advertise my Kickstarter project TinyKeep (http://tinykeep.com) here, but as everyone knows spamming a message board is not good etiquette so I thought I'd share some knowledge with the community as well. Hopefully this will somewhat pay for the sin I am about...]]></description>
			<content:encoded><![CDATA[<div>Hey guys,<br />
<br />
I was originally going to advertise my Kickstarter project <a href="http://tinykeep.com" target="_blank">TinyKeep</a> here, but as everyone knows spamming a message board is not good etiquette so I thought I'd share some knowledge with the community as well. Hopefully this will somewhat pay for the sin I am about to commit at the end of the post.<br />
<br />
Today I'm going to talk about one technical aspect of the game, that is random procedural dungeon generation. It's pretty over-engineered, but hopefully will give anyone who is interested some ideas on generating dungeon layouts for their own games.<br />
<br />
The interactive demo can be found here:<br />
<a href="http://tinykeep.com/dungen/" target="_blank"><img src="http://tinykeep.com/images/kickstarter/dungen.png" border="0" alt="" /></a><br />
<br />
Here's how I do it, step by step:<br />
<br />
1. First I set the number of cells I want to generate, say 150. This is an arbitrary amount really, but the higher the number the larger the dungeon and in general more complexity.<br />
<br />
2. For each &quot;cell&quot; I spawn a Rectangle of random width and length within some radius. Again the radius doesn't matter too much, but it should probably be proportionate to the number of cells.<br />
<br />
Instead of using uniformly distributed random numbers (the default Math.random generator in most languages), I'm using <a href="https://en.wikipedia.org/wiki/Normal_distribution" target="_blank">Park-Miller Normal Distribution</a>. This skews the size of the cells so that they are more likely to be of a small size (more smaller cells, less larger cells). The reason for this will be explained later!<br />
<br />
In addition to this I ensure that the ratio between the width and length of each cell is not too large, we don't want perfectly square rooms but neither do we want really skinny ones, but somewhere in between.<br />
<br />
3. At this point we have 150 random cells in a small area, most are overlapping. Next we use simple separation steering behaviour to separate out all of the rectangles so that none are overlapping. This technique ensures that the cells are not overlapping, yet in general remain as tightly packed together as possible.<br />
<br />
4. We fill in any gaps with 1x1 sized cells. The result is that we end up with a square grid of differently sized cells, all perfectly packed together.<br />
<br />
5. Here is where the fun begins. We determine which of the cells in the grid are rooms - any cell with a width and height above a certain threshold is made into a room. Because of the Park-Miller Normal Distribution described earlier, there will only be a small amount of rooms in comparison to the number of cells, with lots of space between. The remaining cells are still useful however... read on.<br />
<br />
6. For the next stage we want to link each room together. To begin we construct a graph of all of the rooms' center points using <a href="http://en.wikipedia.org/wiki/Delaunay_triangulation" target="_blank">Delaunay Triangulation</a>. So now all rooms are connected to each other without intersecting lines.<br />
<br />
7. Because we don't want every single room to be linked to every other with a corridor (that would make for a very confusing layout), we then construct a <a href="http://en.wikipedia.org/wiki/Minimum_spanning_tree" target="_blank">Minimal Spanning Tree</a> using the previous graph. This creates a graph that guarantees all rooms are connected (and therefore reachable in the game).<br />
<br />
8. The minimal spanning tree looks nice, but again is a boring dungeon layout because it contains no loops, it is the other extreme to the Delaunay Triangulation. So now we re-incorporate a small number of edges from the triangulated graph (say 15% of the remaining edges after the minimal spanning tree has been created). The final layout will therefore be a graph of all rooms, each guaranteed to be reachable and containing some loops for variety.<br />
<br />
9. To convert the graph to corridors, for each edge we construct a series of straight lines (or L shapes) going from each room of the graph to its neighbour. This is where the cells we have not yet used (those cells in the grid which are not rooms) become useful. Any cells which intersect with the L shapes become corridor tiles. Because of the variety in cell sizes, the walls of the corridors will be twisty and uneven, perfect for a dungeon.<br />
<br />
And here's an example of the finished result!<br />
<br />
<img src="http://tinykeep.com/images/tinykeep/dungen_example.png" border="0" alt="" /><br />
<br />
That's it!<br />
<br />
And here comes the plug:<br />
<br />
&lt;snip - DG&gt;</div>

 ]]></content:encoded>
			<category domain="http://forums.indiegamer.com/forumdisplay.php?3-Game-Development-amp-Technical"><![CDATA[Game Development & Technical]]></category>
			<dc:creator>phi6</dc:creator>
			<guid isPermaLink="true">http://forums.indiegamer.com/showthread.php?35422-Procedural-Dungeon-Generation-Algorithm-Explained-for-my-game-TinyKeep</guid>
		</item>
	</channel>
</rss>
