<?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>Reenigne blog &#187; games</title>
	<atom:link href="http://www.reenigne.org/blog/category/computer/games/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.reenigne.org/blog</link>
	<description>Stuff I think about</description>
	<lastBuildDate>Thu, 29 Jul 2010 05:12:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Tet4 is a game of luck</title>
		<link>http://www.reenigne.org/blog/tet4-is-a-game-of-luck/</link>
		<comments>http://www.reenigne.org/blog/tet4-is-a-game-of-luck/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 23:00:57 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=1001</guid>
		<description><![CDATA[I used to think it might be possible to come up with some kind of general algorithm for playing Tet4 indefinitely, but I now suspect that no matter how tall the pit is and how many pieces you can look ahead, there are always sequences of pieces that will guarantee a loss &#8211; in particular, [...]]]></description>
			<content:encoded><![CDATA[<p>I used to think it might be possible to come up with some kind of general algorithm for playing <a href="http://www.reenigne.org/blog/tet4-implemented-in-javascript/">Tet4</a> indefinitely, but I now suspect that no matter how tall the pit is and how many pieces you can look ahead, there are always sequences of pieces that will guarantee a loss &#8211; in particular, I don&#8217;t think there is any way to place the sequence SSZ without adding a row every 6 pieces. This means that ultimately, Tet4 is a game of luck. However, most sequences that occur in practice do seem to be solvable &#8211; many years ago I wrote a program to play Tet4 automatically, and it seems to be able to play indefinitely. So in practice speed and accuracy are more important than luck for winning the game.</p>
<p>Side note: On the most recent occasion that I tried to figure this out, I attempted to resurrect my old Tet4-auto-player program (not trivial, since it&#8217;s a graphical DOS program and hence doesn&#8217;t work on Vista) and modify it to see if it could solve the SSZ repeated sequence. Once I&#8217;d got it running, I was amused to see that it was already set up to solve the SSZ repeated sequence &#8211; I&#8217;d done the exact same thing before and forgotten all about it!</p>
<p>Talking of Tet4, it&#8217;s had a couple of updates since I last mentioned it here. The <a href="http://www.reenigne.org/tet4/">original version</a> has had a bug fix so that playback of games in which the curtain reaches the bottom works properly. Also, a <a href="http://www.reenigne.org/tet4v2">second version</a> has been added, which is exactly the same but with no undo (and which is therefore less forgiving). This may be one of very few occasions on which the second version of a piece of software is identical to the first version apart from the removal of a significant feature.</p>
<p>When I first wrote the Javascript version of Tet4, I took the opportunity to change the keys from the DOS version a bit, to make them more logical and faster (so that if there were 5 or fewer possible positions for a piece, either hand could be used, for example). This meant that I kept making mistakes because (although I hadn&#8217;t played Tet4 for years) my muscle memory was still trained with the old keys. Hence I added the undo feature. But in making the game more forgiving, I changed its nature significantly.</p>
<p>There&#8217;s two ways I could have added undo to Tet4. One way is to undo the random number generator one step when undoing. The other is not to. Undoing the random number generator essentially gives you unlimited lookahead capability. To look ahead n pieces, drop those n pieces (anywhere) and then undo n times. I didn&#8217;t want to grant that power, so I wrote it in such a way that dropping n pieces and undoing them changes the random number generator state. However, this gives an even stronger ability &#8211; now you can essentially choose which piece comes next by dropping and undoing until you get the piece you want. I think this makes the game too easy (at least until it gets really fast), hence the new version.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-is-a-game-of-luck%2F&amp;linkname=Tet4%20is%20a%20game%20of%20luck" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-is-a-game-of-luck%2F&amp;linkname=Tet4%20is%20a%20game%20of%20luck" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-is-a-game-of-luck%2F&amp;linkname=Tet4%20is%20a%20game%20of%20luck" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-is-a-game-of-luck%2F&amp;linkname=Tet4%20is%20a%20game%20of%20luck" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-is-a-game-of-luck%2F&amp;linkname=Tet4%20is%20a%20game%20of%20luck" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-is-a-game-of-luck%2F&amp;linkname=Tet4%20is%20a%20game%20of%20luck" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/tet4-is-a-game-of-luck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game browser</title>
		<link>http://www.reenigne.org/blog/game-browser/</link>
		<comments>http://www.reenigne.org/blog/game-browser/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 00:00:32 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=897</guid>
		<description><![CDATA[I was thinking some more about convergence of game engines recently, and started wondering what a cross between a web browser and a game engine would look like. I think the real value in this would be lowering the barrier to entry for 3D game creation, much as the appearance of HTML and web browsers [...]]]></description>
			<content:encoded><![CDATA[<p>I was thinking some more about <a href="http://www.reenigne.org/blog/game-engines-will-converge/">convergence of game engines</a> recently, and started wondering what a cross between a web browser and a game engine would look like.</p>
<p>I think the real value in this would be lowering the barrier to entry for 3D game creation, much as the appearance of HTML and web browsers made it easy for anyone to create rich documents and publish them to the world.</p>
<p>The first thing we need is a very high level way of specifying simple 3D environments. I think the best interface for such a task ever conceived is that of the holodeck in Star Trek: The Next Generation. Captain Picard walks into the holodeck, which initially is an empty room. he says &#8220;Computer, create me a table&#8221; and a generic table appears. Next he says &#8220;make it pine, 2 inches taller, rotate it 45 degrees clockwise and move it 6 feet to the left&#8221;. Iterating in this way, he converges on the design he had in mind. Seeing the intermediate results immediately allows him to determine what&#8217;s &#8220;most wrong&#8221; and therefore needs fixing first, and may also provide inspiration in the event that he doesn&#8217;t really know what he wants just yet.</p>
<p>The difficult thing about this interface is that one needs to have a big database of objects to start with &#8211; tables, trees, bees, books and so on. Once also needs a big database of textures, a big database of transformations and so on. In fact, there are all sorts of databases which would come in handy &#8211; animations, AI routines, material properties, object behaviours. The obvious &#8220;Web 2.0&#8243; way to populate these databases is to encourage people to publish the things they create for their own games in such a form that they can be used by other people for their games. I don&#8217;t think the software should necessarily go out of its way to forbid people from making content that can only be used in their own game, but making the default be &#8220;this is free to use&#8221; would probably help a lot.</p>
<p>If you&#8217;re creating a website today you can easily find lots of free backgrounds, buttons, menus, applets and so that have been created by the community. With the right encouragement, a similar community could form around creating game things. Put a search engine on top of this community&#8217;s effort so that when you search for &#8220;chair&#8221; you get a gallery of models to choose from and you&#8217;re well on your way to the holodeck interface.</p>
<p>To create compelling games, one needs more than just a decorated 3D space to wonder around in &#8211; there need to be challenges, there needs to be something at stake. The web model breaks down a bit here &#8211; since you can get from anywhere to anywhere else just by typing in the appropriate URL, what&#8217;s to stop players from just transporting themselves to the holy grail room?</p>
<p>I think that any non-trivial game would generally involve writing some code (possibly in an ECMAScript-ish sort of language). That code would need to have certain powers over the player, including associating information with them (like &#8220;has the player been through this obstacle yet?&#8221;) and the ability to move the player (which could be done by moving a portal through the space that the player&#8217;s avatar is occupying) to send them back to the beginning if they haven&#8217;t completed a required obstacle or if they are &#8220;killed&#8221; by the minotaur. In computer games, death is of course never permanent, so can be effectively emulated by teleportation.</p>
<p>Another web principle that I think this software should embody is decentralization. Someone who wants to create a website has many options for hosting it (depending on their needs), one of which is to run their own web server. A major problem with a system like Second Life is that there is a central server, which is a single point of failure and a monopoly of sorts over the game universe. Virtual &#8220;land&#8221; is not not free in second life, it leased from the central authority. And if that central authority decides to raise their prices, censor content they find objectionable or has a server failure, there is nothing that the users can do about it. I suspect that this is a limiting factor in SL&#8217;s growth.</p>
<p>If no-one &#8220;owns&#8221; this universe, who decides how it &#8220;fits together&#8221; (more concretely, what&#8217;s to stop everyone saying &#8220;our site is directly north of Yahoo!&#8221;). I think in this scheme one has to give up having a single <a href="http://en.wikipedia.org/wiki/Hausdorff_space">Hausdorff space</a> and instead have many worlds connected by portals. The owner of a space decides what portals go in it, how large those portals are, what their positions and orientations are, how they move and where you end up when you go through them. Portals are not necessarily bi-directional &#8211; on going through one, one cannot necessarily get back to where one was just by retracing one&#8217;s steps. They are more like links on a website than the portals in <a href="http://en.wikipedia.org/wiki/Portal_(video_game)">Portal</a>. Mutual portals could be constructed though, if two gamemasters cooperate with each other to do so.</p>
<p>Ideally a portal should be rendered in such a way that you see what&#8217;s on the other side &#8211; this just means that that &#8220;world&#8221; would also be loaded by the client software and rendered from the correct perspective (though should not be able to affect the player).</p>
<p>I think it would be great fun to wander around and explore different game worlds this way. It might be confusing sometimes, but if a place is too confusing people probably won&#8217;t create many portals to it, so the system would be self-governing to some extent.</p>
<p>The system I&#8217;ve described could run with a standard HTTP server to implement a wide variety of single-player games. But where the internet really comes into its own is real-time interaction with other people &#8211; (massively) multiplayer games. Here, things become more complicated because the movements and actions of each player need to be sent to all the other players, and conflicts need to be resolved (who actually got to that loot first?) These problems have all been solved in real-life multiplayer games &#8211; one just needs a server which does some of this &#8220;real time&#8221; stuff as well as serving the content.</p>
<p>While games would be probably be the initial &#8220;killer application&#8221; for this, I&#8217;m sure all sorts of other interest applications would emerge.</p>
<p>Shortly after I originally wrote this, Google announced their <a href="http://code.google.com/apis/o3d/">O3D</a> API which seems like it has at least some of the same aims, though at the moment I think it&#8217;s really just an in-browser 3D API rather than a 3D version of the web. However, it&#8217;ll be interesting to see what it evolves into.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-browser%2F&amp;linkname=Game%20browser" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-browser%2F&amp;linkname=Game%20browser" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-browser%2F&amp;linkname=Game%20browser" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-browser%2F&amp;linkname=Game%20browser" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-browser%2F&amp;linkname=Game%20browser" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-browser%2F&amp;linkname=Game%20browser" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/game-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game engines will converge</title>
		<link>http://www.reenigne.org/blog/game-engines-will-converge/</link>
		<comments>http://www.reenigne.org/blog/game-engines-will-converge/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 23:00:20 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=829</guid>
		<description><![CDATA[At the moment, just about every computer game published has its own code for rendering graphics, simulating physics and so on. Sometimes this code is at least partially reused from game to game (e.g. Source), but each game still comes with its own tuned and updated version of it. I think at some point the [...]]]></description>
			<content:encoded><![CDATA[<p>At the moment, just about every computer game published has its own code for rendering graphics, simulating physics and so on. Sometimes this code is at least partially reused from game to game (e.g. <a href="http://en.wikipedia.org/wiki/Source_engine">Source</a>), but each game still comes with its own tuned and updated version of it.</p>
<p>I think at some point the games industry will reach the point where game engines are independent of the games themselves. In other words, there will be a common &#8220;language&#8221; that game designers will use to specify how the game will work and to store assets (graphics, models, sound, music etc.) and there will be multiple client programs that can interpret this data and be used to actually play the game. Some engines will naturally be more advanced than others &#8211; these may be able to give extra realism to games not specifically written to take advantage of it. And games written for later engines may be able to run on earlier ones with some features switched off.</p>
<p>Many classes of software have evolved this way. For example, in the 80s and early 90s there were many different ways of having rich documents and many such documents came with their own proprietary readers. Nowadays everybody just uses HTML and the documents are almost always independent of the browsers. As far as 2D games are concerned, this convergence is already happening to some extent with flash.</p>
<p>3D games have always pushed hardware to its limits, so the overhead of having a game engine not tuned for a particular game has always been unacceptable. But as computer power increases, this overhead vanishes. Also, game engines are becoming more difficult to write (since there is so much technology involved in making realistic real-time images) so there are economies of scale in having a common engine. Finally, I think people will increasingly expect games to be multi-platform, which is most easily done if games are written in a portable way.</p>
<p>If game design does go this way, I think it will be a positive thing for the games industry &#8211; it will mean that more of the resources of the game can be devoted to art, music and story-telling. This may in turn open up whole new audiences for games.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-engines-will-converge%2F&amp;linkname=Game%20engines%20will%20converge" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-engines-will-converge%2F&amp;linkname=Game%20engines%20will%20converge" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-engines-will-converge%2F&amp;linkname=Game%20engines%20will%20converge" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-engines-will-converge%2F&amp;linkname=Game%20engines%20will%20converge" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-engines-will-converge%2F&amp;linkname=Game%20engines%20will%20converge" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fgame-engines-will-converge%2F&amp;linkname=Game%20engines%20will%20converge" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/game-engines-will-converge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What makes a game addictive?</title>
		<link>http://www.reenigne.org/blog/what-makes-a-game-addictive/</link>
		<comments>http://www.reenigne.org/blog/what-makes-a-game-addictive/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 23:00:33 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=668</guid>
		<description><![CDATA[I have an unfortunate habit of getting addicted to computer games &#8211; this is one reason why I don&#8217;t play them as much as I used to, and why when I do now play games, I usually pick one with a definite ending so that there&#8217;s a natural place to stop. But occasionally I do [...]]]></description>
			<content:encoded><![CDATA[<p>I have an unfortunate habit of getting addicted to computer games &#8211; this is one reason why I don&#8217;t play them as much as I used to, and why when I do now play games, I usually pick one with a definite ending so that there&#8217;s a natural place to stop.</p>
<p>But occasionally I do slip into excess playing of Tet4, Freecell or Spider Solitaire. I think what makes these games particularly addictive is that restarting them is a move which seems to bring you closer to winning. In all these games, the state of the game starts out as quite simple and the moves are obvious, but as you play things get more complexified and constrained until either you lose or (if possible) winning becomes inevitable. Restarting decomplexifies so when you lose your brain (which is still thinking in terms of the game) naturally reaches for the &#8220;restart&#8221; key.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwhat-makes-a-game-addictive%2F&amp;linkname=What%20makes%20a%20game%20addictive%3F" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwhat-makes-a-game-addictive%2F&amp;linkname=What%20makes%20a%20game%20addictive%3F" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwhat-makes-a-game-addictive%2F&amp;linkname=What%20makes%20a%20game%20addictive%3F" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwhat-makes-a-game-addictive%2F&amp;linkname=What%20makes%20a%20game%20addictive%3F" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwhat-makes-a-game-addictive%2F&amp;linkname=What%20makes%20a%20game%20addictive%3F" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwhat-makes-a-game-addictive%2F&amp;linkname=What%20makes%20a%20game%20addictive%3F" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/what-makes-a-game-addictive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tet4 implemented in JavaScript</title>
		<link>http://www.reenigne.org/blog/tet4-implemented-in-javascript/</link>
		<comments>http://www.reenigne.org/blog/tet4-implemented-in-javascript/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 23:00:50 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=666</guid>
		<description><![CDATA[If you want to just skip to the game, the link is here. Many years ago, I decided to write a Tetris game, just to see if I could. I succeeded, but the play area was very wide. So I added controls to make it adjustable. I figured the minimum sensible width was 4 (otherwise [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to just skip to the game, the link is <a href="http://www.reenigne.org/tet4">here</a>.</p>
<p>Many years ago, I decided to write a Tetris game, just to see if I could. I succeeded, but the play area was very wide. So I added controls to make it adjustable. I figured the minimum sensible width was 4 (otherwise not all orientations of all pieces can be used). Playing Tetris on a board of width 4 (or Tet4 for short), I discovered, is very different to normal Tetris. Things change much more quickly, every piece has a profound effect on the state of the board and the normal Tetris strategies don&#8217;t apply because it&#8217;s impossible to play without leaving some gaps.</p>
<p>After playing for a while, I discovered that Tet4 was even more addictive than normal Tetris, and that it was much easier to get to the state of mental concentration known as &#8220;the zone&#8221; &#8211; where the entire rest of the world seems to melt away and there is nothing left except you and the falling blocks. When you notice this (and can do so without leaving the zone), it becomes almost an &#8220;out of body&#8221; experience &#8211; your conscious mind almost seems to observe from outside as your unconscious mind plays the game as if on some kind of automatic pilot.</p>
<p>Once I experienced this, I wanted to intensify it. I realized that a gradual increase in speed is intrinsic to the zone experience (otherwise it&#8217;s just repetitive). But at a particular speed, the limiting factor becomes how fast your fingers can move to maneuvre the piece into place &#8211; this can take as many as 4 or 5 keystrokes with the normal Tetris controls. I realized that Tet4 only had at most 10 possible combinations of orientation and position for each block. Most people have 10 fingers so let&#8217;s just assign one combination to each of 10 keys and have a finger corresponding to each key. This is the control mechanism that Tet4 uses, and it worked exactly as I had hoped.</p>
<p>This version is a rewritten version in JavaScript (because I wanted to learn the language, and because by making it run in a web browser more people would be able to play it). I&#8217;ve tested it on IE7, FireFox 3 and Chrome and it seems to work fine but there may be bugs with other browsers. Let me know if you find any. I&#8217;ve made some fairly substantial changes with this rewrite, which makes this a rather unusual and minimalist version of the game:</p>
<ul>
<li>A display which shows the position and orientation for each key (on my original version I learned the combinations by trial and error). This display is really just to reduce the game&#8217;s learning curve a bit &#8211; to truly get into the zone you&#8217;ll need to commit all the combinations to muscle memory.</li>
<li>In my original version, the 10 keys just set the position and orientation of the tetroid &#8211; you had to press the spacebar (or wait for gravity) to drop the piece to the bottom and get the next piece. This meant a decrease in zone at the point where it gets too fast to use the space bar and you switch from 11-key mode to 10-key mode. In this version, the 10 keys drop the piece as well, so you always press 1 key per piece.</li>
<li>In my original version, the game ends rather suddenly when your tower gets so high that there isn&#8217;t time to think before your active tetroid locks. In this version, there is a &#8220;curtain&#8221; which falls behind the playfield, and you always have until it gets all the way to the bottom before your tetroid drops. This means that the amount of time you have isn&#8217;t dependent on the height of your tower. Also, the piece doesn&#8217;t enter the playfield until it is dropped, so you can take care even with the endgame (you lose when you drop a piece and it would protrude from the top of the screen).</li>
<li>The single key control mechanism is rather unforgiving of misdrops, so I added an undo feature &#8211; at any time you can press Q to undo the last drop. This helps in learning the keys, but for getting the best scores it is best avoided as your score is also undone but the time speedup is not. This also doesn&#8217;t allow you to &#8220;look into the future&#8221; (further than you can anyway with the next piece indicator) &#8211; a new tetroid is chosen at random for the new next piece whenever a piece is placed.</li>
<li>I added a persistant, global high score table which includes a facility for replaying the top 10 games.</li>
<li>I modified the colours and key to position correspondances to better take advantage of the symmetries. This puts me at a bit of a disadvantage (since I&#8217;m used to the original keys) but should be easier to learn.</li>
</ul>
<p>One other thing I&#8217;d like to do in the future is make an ActionScript/Flash version so that it can be embedded into other pages. I started this but it turns out that without the official Adobe development kit, Flash is really hard to learn.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-implemented-in-javascript%2F&amp;linkname=Tet4%20implemented%20in%20JavaScript" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-implemented-in-javascript%2F&amp;linkname=Tet4%20implemented%20in%20JavaScript" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-implemented-in-javascript%2F&amp;linkname=Tet4%20implemented%20in%20JavaScript" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-implemented-in-javascript%2F&amp;linkname=Tet4%20implemented%20in%20JavaScript" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-implemented-in-javascript%2F&amp;linkname=Tet4%20implemented%20in%20JavaScript" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Ftet4-implemented-in-javascript%2F&amp;linkname=Tet4%20implemented%20in%20JavaScript" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/tet4-implemented-in-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cheating in online games</title>
		<link>http://www.reenigne.org/blog/cheating-in-online-games/</link>
		<comments>http://www.reenigne.org/blog/cheating-in-online-games/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 23:00:48 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=632</guid>
		<description><![CDATA[Many modern online games go to great lengths to try to prevent players from cheating &#8211; some of them quite invasive. I hope that in the future our computer systems are architected to make it trivial to subvert such malware, but where does that leave players of on-line games who want to avoid playing against [...]]]></description>
			<content:encoded><![CDATA[<p>Many modern online games go to great lengths to try to prevent players from cheating &#8211; some of them <a href="http://en.wikipedia.org/wiki/Warden_(software)">quite invasive</a>. I hope that in the future our computer systems are architected to make it trivial to <a href="http://www.reenigne.org/blog/desktop-security-silver-bullet">subvert</a> such malware, but where does that leave players of on-line games who want to avoid playing against cheaters?</p>
<p>Well, I hope that in the future, online games are designed in such a way that cheating is impossible &#8211; that is, no information sent to a player&#8217;s computer that would allow them to gain an unfair advantage and no information received from a player&#8217;s computer is trusted to be untampered-with. In such a game, a player would be allowed to use whatever client software they like, and would be encouraged to use client software that gives them the best odds. Serious golf players pick the clubs that give them the best advantage, tennis players pick the best tennis rackets and so on &#8211; why should on-line gaming be any different?</p>
<p>One implication of this is that the best games will be Turing tests of a sort &#8211; a game of aiming accurately and reacting quickly won&#8217;t be much of a challenge since the computer can do those things better than human players. Tasks that humans can do well but computers are poor at will need to be integral to the game.</p>
<p>That&#8217;s not to say that games of aiming accurately and reacting quickly won&#8217;t exist, but if they are played online they will be played between people who each other and trust each other not to cheat, not between strangers.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fcheating-in-online-games%2F&amp;linkname=Cheating%20in%20online%20games" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fcheating-in-online-games%2F&amp;linkname=Cheating%20in%20online%20games" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fcheating-in-online-games%2F&amp;linkname=Cheating%20in%20online%20games" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fcheating-in-online-games%2F&amp;linkname=Cheating%20in%20online%20games" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fcheating-in-online-games%2F&amp;linkname=Cheating%20in%20online%20games" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fcheating-in-online-games%2F&amp;linkname=Cheating%20in%20online%20games" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/cheating-in-online-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webifying old games</title>
		<link>http://www.reenigne.org/blog/webifying-old-games/</link>
		<comments>http://www.reenigne.org/blog/webifying-old-games/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 23:00:18 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=547</guid>
		<description><![CDATA[One of these days I&#8217;d like to put some of my old DOS programs on the web to make them a bit more accessible. I used to think that I would do that in Java but these days Flash seems to be the most popular way to do interactive thingies on the web so maybe [...]]]></description>
			<content:encoded><![CDATA[<p>One of these days I&#8217;d like to put some of my old DOS programs on the web to make them a bit more accessible. I used to think that I would do that in Java but these days Flash seems to be the most popular way to do interactive thingies on the web so maybe I should learn that. Or even just plain old HTML with Javascript &#8211; if someone can implement Lemmings in DHTML then I&#8217;m sure Cool Dude and probably some of the VGA demos could probably be implemented that way as well.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwebifying-old-games%2F&amp;linkname=Webifying%20old%20games" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwebifying-old-games%2F&amp;linkname=Webifying%20old%20games" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwebifying-old-games%2F&amp;linkname=Webifying%20old%20games" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwebifying-old-games%2F&amp;linkname=Webifying%20old%20games" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwebifying-old-games%2F&amp;linkname=Webifying%20old%20games" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fwebifying-old-games%2F&amp;linkname=Webifying%20old%20games" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/webifying-old-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Digger adventure</title>
		<link>http://www.reenigne.org/blog/digger-adventure/</link>
		<comments>http://www.reenigne.org/blog/digger-adventure/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 23:00:59 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=546</guid>
		<description><![CDATA[Lately I haven&#8217;t really had any interest in improving Digger, but I still occasionally think it might be fun to write a sequel. &#8220;Digger 2&#8243; or &#8220;Digger&#8217;s Adventure&#8221; would have a 2D continuously scrolling playfield, impenetrable walls, new monsters, bosses, new items to collect, more weapons, shields, warps, speed-boosters, and maybe the possibility to dig [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I haven&#8217;t really had any interest in improving <a href="http://www.digger.org">Digger</a>, but I still occasionally think it might be fun to write a sequel. &#8220;Digger 2&#8243; or &#8220;Digger&#8217;s Adventure&#8221; would have a 2D continuously scrolling playfield, impenetrable walls, new monsters, bosses, new items to collect, more weapons, shields, warps, speed-boosters, and maybe the possibility to dig to the surface where it would be possible to jump.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fdigger-adventure%2F&amp;linkname=Digger%20adventure" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fdigger-adventure%2F&amp;linkname=Digger%20adventure" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fdigger-adventure%2F&amp;linkname=Digger%20adventure" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fdigger-adventure%2F&amp;linkname=Digger%20adventure" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fdigger-adventure%2F&amp;linkname=Digger%20adventure" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fdigger-adventure%2F&amp;linkname=Digger%20adventure" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/digger-adventure/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Another 2D game</title>
		<link>http://www.reenigne.org/blog/another-2d-game/</link>
		<comments>http://www.reenigne.org/blog/another-2d-game/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 23:00:40 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=545</guid>
		<description><![CDATA[Another 2D game I&#8217;d like to write (which might even be the same game as that one) is a bouncing ball game. The player would be in control of a ball which could be accelerated by means of the direction keys. So holding down right would give a velocity increase in the positive x direction [...]]]></description>
			<content:encoded><![CDATA[<p>Another <a href="http://www.reenigne.org/blog/2d-game">2D game</a> I&#8217;d like to write (which might even be the same game as that one) is a bouncing ball game.</p>
<p>The player would be in control of a ball which could be accelerated by means of the direction keys. So holding down right would give a velocity increase in the positive x direction proportional to the length of time the key was held down (there have been a few games that work like this but in my experience in most non-simulation games the player only has one or two speeds and acceleration to/from these is instanteous). Wind resistance would be implemented to avoid the possibility of the ball reaching unlimited speeds.</p>
<p>Once the player has got used to these controls the next complication is maze traversal. While you could in principle just maneuvre around the maze slowly, it is much more fun to play at speeds close to the ball&#8217;s terminal velocity. At these speeds, the ball&#8217;s turning radius will be much larger than the scale of features in the maze, so the ball will hit the walls. When it does so, the obvious thing to happen is that it should bounce off (unless the wall is dangerous or special in some way).</p>
<p>Another possible complication is areas of the maze with gravity fields. The strength of the gravity could be smaller than the control acceleration (in which case it just changes the controls a bit) or could be greater (in which case entire directions become impossible to travel in). Gravity fields can be constant or central (or may have even more complicated configurations).</p>
<p>Then there could be places in the maze where the drag factor is proportional to some the velocity plus some constant field (i.e. windy places).</p>
<p>Some parts of the maze could be flooded with various different kinds of fluid, giving the opportunity to show off fun 2D fluid dynamics simulations.</p>
<p>Then of course there are the usual game elements &#8211; things to collect, power ups, space warps, spikes, enemies with various degrees of artificial intelligence and so on.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fanother-2d-game%2F&amp;linkname=Another%202D%20game" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fanother-2d-game%2F&amp;linkname=Another%202D%20game" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fanother-2d-game%2F&amp;linkname=Another%202D%20game" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fanother-2d-game%2F&amp;linkname=Another%202D%20game" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fanother-2d-game%2F&amp;linkname=Another%202D%20game" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2Fanother-2d-game%2F&amp;linkname=Another%202D%20game" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/another-2d-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2D game</title>
		<link>http://www.reenigne.org/blog/2d-game/</link>
		<comments>http://www.reenigne.org/blog/2d-game/#comments</comments>
		<pubDate>Tue, 20 May 2008 23:46:18 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.reenigne.org/blog/?p=467</guid>
		<description><![CDATA[I don&#8217;t tend to have time to play many computer games these days (though I made exceptions for Portal and Lost:Via Domus), but I still like to keep abreast of how technology trends change in games. A concept that I think is interesting in games is to &#8220;raise the stakes&#8221; as the game progresses, so [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t tend to have time to play many computer games these days (though I made exceptions for Portal and Lost:Via Domus), but I still like to keep abreast of how technology trends change in games.</p>
<p>A concept that I think is interesting in games is to &#8220;raise the stakes&#8221; as the game progresses, so that later levels seem to be more important than earlier ones. A couple of contemporary games (neither of which I have played) that embody this principle are <a href="http://en.wikipedia.org/wiki/Katamari_Damacy">Katamari Damacy</a> and <a href="http://en.wikipedia.org/wiki/Spore_(video_game)">Spore</a>. As the game progresses, the very scale of the action increases, causing the early parts of the game to pale in comparison.</p>
<p>3D graphics have become much more impressive in the past few years but the trouble with 3D is that the extra degrees of freedom make the controls more complicated and difficult to learn (especially for people who don&#8217;t play many 3D games).</p>
<p>I think it would be interesting to apply the &#8220;increasing scale&#8221; concept to a 2D game using modern graphical techniques. My idea is a 2D-scrolling shoot-em-up. You start off with a very small, simple &#8220;asteroids&#8221; spaceship with a very simple weapon. As you blow things up, you can collect more weapons which make your spaceship bigger. Using these bigger weapons, you can attack bigger and bigger targets. The view gradually &#8220;zooms out&#8221; as the size of the ship, weapons and targets increases.</p>
<p>This idea also reminds me of the Seven Force in <a href="http://en.wikipedia.org/wiki/Gunstar_Heroes">Gunstar Heroes</a> on the Megadrive. Easy parts of this boss appeared in an early level and then in a later level there was a &#8220;scaled out&#8221; version which was much harder and with smaller sprites.</p>
<p>And with modern technology, 2D games can be <a href="http://www.bit-blot.com/aquaria/">seriously beautiful</a>. Aquaria does actually zoom in and out a bit, but not by orders of magnitude as I&#8217;m imagining.</p>
<p><a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2F2d-game%2F&amp;linkname=2D%20game" title="Reddit" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/reddit.png" width="16" height="16" alt="Reddit"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2F2d-game%2F&amp;linkname=2D%20game" title="Digg" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2F2d-game%2F&amp;linkname=2D%20game" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2F2d-game%2F&amp;linkname=2D%20game" title="StumbleUpon" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png" width="16" height="16" alt="StumbleUpon"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2F2d-game%2F&amp;linkname=2D%20game" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.reenigne.org%2Fblog%2F2d-game%2F&amp;linkname=2D%20game" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.reenigne.org/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.reenigne.org/blog/2d-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
