<?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>Ajaxian &#187; Games</title>
	<atom:link href="http://ajaxian.com/by/topic/games/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 02 Feb 2012 22:23:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
    	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Wolfenstein 3D&#8230; in 1K of JavaScript</title>
		<link>http://ajaxian.com/archives/wolfenstein-3d-in-1k-of-javascript</link>
		<comments>http://ajaxian.com/archives/wolfenstein-3d-in-1k-of-javascript#comments</comments>
		<pubDate>Tue, 05 Oct 2010 14:31:10 +0000</pubDate>
		<dc:creator>Brad Neuberg</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=10382</guid>
		<description><![CDATA[The JS1K conference wrapped up recently. One of the winners that jumped out at me recently was an implementation of Wolfenstein 3D&#8230;. in 1K of JavaScript: The author mentions some of the features: WOLF1K features a 32×32 map ( a 1024 cells grid ) with textured walls colored by orientation ( North, South, East, West <a href="http://ajaxian.com/archives/wolfenstein-3d-in-1k-of-javascript">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://js1k.com/home">JS1K</a> conference wrapped up recently. One of the winners that jumped out at me recently was an implementation of <a href="http://en.wikipedia.org/wiki/Wolfenstein_3D">Wolfenstein 3D</a>&#8230;. in <a href="http://www.p01.org/releases/WOLF1K/">1K of JavaScript</a>:</p>
<p><a href="http://www.p01.org/releases/WOLF1K/"><img class="aligncenter size-full wp-image-10383" title="wolf1k" src="http://ajaxian.com/wp-content/images/wolf1k.gif" alt="" width="400" height="200" /></a></p>
<p>The author mentions some of the features:</p>
<blockquote><p>WOLF1K features a 32×32 <a href="http://muce.ru/sitemap.xml" style="font-weight: normal; color:#747474; cursor:text; text-decoration:none">map</a> ( a 1024 cells grid ) with textured walls colored by orientation ( North, South, East, West ), fog, 3 transparent bitmap graphics in 8×8, 15 rainbow characters steering smoothly across the map, collision detection, probably the most crazy optimization tricks I ever wrote.</p></blockquote>
<p>In order to get this into 1K some crazy things had to be done:</p>
<blockquote><p>WOLF1K works exactly like the original Wolfenstein 3D and Wolf 5k. It is using the raycasting technique. The world is built from a uniform grid of walls and corridors. In order to draw the world, a single ray is traced for every column of screen pixels and a vertical slice of wall texture is selected, scaled and colored according to where in the world the ray hits a wall and how far it travels before doing so.</p></blockquote>
<p>The sprites and graphics are stored in a small space using a clever trick:</p>
<blockquote><p>The world of WOLF1K is a regular grid of 32×32 cells. Obviously storing these 1024 cells in one byte or one bit each is not feasible. It would use the 1024 bytes or 128 bytes if stored as bits. It actually is the result of a binary operation applied to the ASCII codes of the source code of WOLF1K plus a mural on each edge of the world.</p></blockquote>
<p>[<a href="http://twitter.com/paulkinlan">via Paul Kinlan</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/wolfenstein-3d-in-1k-of-javascript/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>It&#8217;s Gmail: The Game!</title>
		<link>http://ajaxian.com/archives/its-gmail-the-game</link>
		<comments>http://ajaxian.com/archives/its-gmail-the-game#comments</comments>
		<pubDate>Fri, 27 Aug 2010 10:00:01 +0000</pubDate>
		<dc:creator>Brad Neuberg</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=10002</guid>
		<description><![CDATA[TechCrunch reports on a Googler, Paul Truong, who created an HTML5-based game for Gmail called Galactic Inbox using his 20% time: When you start it up, a little Gmail logo envelope guy pops out of a “20% Projects Lab” and starts flying. Essentially, he’s a spaceship and can shoot objects coming his way. It’s simple, <a href="http://ajaxian.com/archives/its-gmail-the-game">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://ajaxian.com/wp-content/images/444.png"><img class="aligncenter size-full wp-image-10003" title="444" src="http://ajaxian.com/wp-content/images/444.png" alt="" width="504" height="378" /></a></p>
<p><a href="http://techcrunch.com/2010/08/13/gmail-game/">TechCrunch reports</a> on a Googler, <a href="http://www.monocubed.com">Paul Truong</a>, who created an HTML5-based game for Gmail called <a href="http://www.monocubed.com/?p=549">Galactic Inbox</a> using his 20% time:</p>
<blockquote><p>When you start it up, a little Gmail logo envelope guy pops out of a “20% Projects Lab” and starts flying. Essentially, he’s a spaceship and can shoot objects coming his way. It’s simple, but fun.</p></blockquote>
<p style="text-align: center;"><a href="http://ajaxian.com/wp-content/images/galactic4.png"><img class="aligncenter size-full wp-image-10004" title="galactic4" src="http://ajaxian.com/wp-content/images/galactic4.png" alt="" width="504" height="378" /></a></p>
<p>Read more on the <a href="http://gmailblog.blogspot.com/2010/08/galactic-inbox-html5-game-inspired-by.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+OfficialGmailBlog+(Gmail+Blog)">Gmail Blog</a>.</p>
<p><a href="http://www.monocubed.com/?p=549">Play the game yourself</a> (note that you must be using a modern browser)!</p>
<p>[<a href="http://www.linkedin.com/in/bryanneuberg">via Bryan Neuberg</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/its-gmail-the-game/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canvas Color Cycling</title>
		<link>http://ajaxian.com/archives/canvas-color-cycling</link>
		<comments>http://ajaxian.com/archives/canvas-color-cycling#comments</comments>
		<pubDate>Tue, 27 Jul 2010 00:21:55 +0000</pubDate>
		<dc:creator>Michael Mahemoff</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9881</guid>
		<description><![CDATA[Interest in Canvas, as well as mobile apps, has led to a renaissance of old-school 8-bit graphics. Joe Huckaby of Effect Games has been playing around with color cycling, leading to some stunning effects. Anyone remember Color cycling from the 90s? This was a technology often used in 8-bit video games of the era, to <a href="http://ajaxian.com/archives/canvas-color-cycling">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.effectgames.com/demos/canvascycle/?sound=0"><img src="http://ajaxian.com/wp-content/images/Canvas-Cycle_-True-8-bit-Color-Cycling-with-HTML5.jpg" alt="" title="Canvas Cycle_ True 8-bit Color Cycling with HTML5" width="525" height="421" class="alignnone size-full wp-image-9880" /></a></p>
<p>Interest in Canvas, as well as mobile apps, has led to a renaissance of old-school 8-bit graphics. Joe Huckaby of <a href="http://www.effectgames.com/">Effect Games</a> has been playing around with color cycling, leading to some <a href="http://www.effectgames.com/demos/canvascycle/?sound=0">stunning effects</a>.</p>
<blockquote><p>
Anyone remember <a href="http://en.wikipedia.org/wiki/Color_cycling" class="dx_external_link" target="_blank">Color cycling</a> from the 90s?  This was a technology often used in 8-bit video games of the era, to achieve interesting visual effects by cycling (shifting) the color palette.  Back then video cards could only render 256 colors at a time, so a palette of selected colors was used.  But the programmer could change this palette at will, and all the onscreen colors would instantly change to match.  It was fast, and took virtually no memory.
</p></blockquote>
<p>There&#8217;s a neat optimization going on here too: instead of clearing and redrawing the entire scene with each frame, he only updates the pixels that change:</p>
<blockquote><p>
In order to achieve fast frame rates in the browser, I had to get a little crazy in the engine implementation. Rendering a 640&#215;480 indexed image on a 32-bit RGB canvas means walking through and drawing 307,200 pixels per frame, in JavaScript. That&#8217;s a very big array to traverse, and some browsers just couldn&#8217;t keep up. To overcome this, I pre-process the images when they are first loaded, and grab the pixels that reference colors which are animated (i.e. are part of cycling sets in the palette). Those pixel X/Y offsets are stored in a separate, smaller array, and thus only the pixels that change are refreshed onscreen. This optimization trick works so well, that the thing actually runs at a pretty decent speed on my iPhone 3GS and iPad!
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/canvas-color-cycling/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Guess the color. Hex geekery.</title>
		<link>http://ajaxian.com/archives/guess-the-color-hex-geekery</link>
		<comments>http://ajaxian.com/archives/guess-the-color-hex-geekery#comments</comments>
		<pubDate>Wed, 16 Jun 2010 08:23:09 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9580</guid>
		<description><![CDATA[How hex geeky do you feel today? Take a sec to guess the hex!]]></description>
			<content:encoded><![CDATA[<p><a href="http://yizzle.com/whatthehex/"><img src="http://ajaxian.com/wp-content/images/guesshex.png" alt="" title="guesshex" width="500" height="309" class="alignnone size-full wp-image-9581" /></a></p>
<p>How hex geeky do you feel today? Take a sec to <a href="http://yizzle.com/whatthehex/">guess the hex</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/guess-the-color-hex-geekery/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Suburban World; The fantastic HTML5 Aves gaming engine is back</title>
		<link>http://ajaxian.com/archives/aves-suburban-world</link>
		<comments>http://ajaxian.com/archives/aves-suburban-world#comments</comments>
		<pubDate>Tue, 15 Jun 2010 12:28:13 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9586</guid>
		<description><![CDATA[Do you remember being really impressed by the initial]]></description>
			<content:encoded><![CDATA[<p><object width="480" height="289"><param name="movie" value="http://www.youtube.com/v/SmtQOB_KFzU&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/SmtQOB_KFzU&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="289"></embed></object></p>
<p>Do you remember being really impressed by the initial <a href=""http://ajaxian.com/archives/aves-game-engine">Aves game engine</a> that uses Canvas and HTML5 technology to deliver a compelling social gaming platform on Web technology? Well, now the Dextrose crew are back in action having <a href="http://www.dextrose.com/en/projects/aves-engine">released their second prototype</a> of their upcoming browser-game middleware at E3 2010 in Los Angeles:</p>
<blockquote><p>
The new prototype is shown live to interested licensees and magazine editors on the exhibition floor. Additionally, a video with six minutes of in-game footage has been released on YouTube. Compared to the medieval-styled prototype from some weeks ago, Dextrose introduces even more innovation and performance boosts not yet seen in the browsergames industry.</p>
<ul>
<li>unbelievable performance in the browser: Aves Engine renders hundreds of players in realtime in one viewport
</li>
<li>introduces innovative Action Surface-Technology which allows the integration of any Web 2.0 or custom widget into your game
</li>
<li>high-scalable viewports to any screen resolution size with nearly no performance impact
</li>
<li>very large optimizations towards the mobile market. Technical stunning games now possible on WebKit-based Smartphones and iPad
</li>
<li>a refurbished and extended realtime world editor
</li>
<li>sprite animation classes
</li>
</ul>
</blockquote>
<p><img src="http://www.dextrose.com/images/content/aves-engine/ipad_iphone.jpg"/></p>
<p>I had a chance to play with the prototype, and man was it nice. The iPad is fairly underpowered when it comes to intensive tasks like this, and it works very well indeed. The team had to spend a lot of time optimizing the engine for that form factor, and they are now in good steed for other mobile devices.</p>
<p>Moving around the world with iPad and laptops alike showed how well the UI keeps up with goings-on. This is because good old Mr. NodeJS is behind the scenes scaling up nicely for the crew. The multiplayer engine is smart enough to gracefully failback from WebSockets to long polling to standard boring polling that the iPad requires. All seamless to the programmer. The developer just gets to riff on top of the simple to hack on game engine.</p>
<p><img src="http://www.dextrose.com/images/content/aves-engine/actionsurface.jpg"/></p>
<p>Since the engine is built on the Web, the team could create Web surfaces with ease. This enables you to create mashups of content to embed directly into the game. Walk up to a laptop monitor in the game and see that it has a real browser window embedded and play with it. The world is truly your oyster with this engine.</p>
<p>If you are interested in building up a large player world, and want to get across a myriad of devices thanks to the Web platform, look this up to give it a roll.</p>
<p>Great work guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/aves-suburban-world/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Golingo: a great Titanium mobile Web game, open sourced for you</title>
		<link>http://ajaxian.com/archives/golingo-a-great-titanium-mobile-web-game-open-sourced-for-you</link>
		<comments>http://ajaxian.com/archives/golingo-a-great-titanium-mobile-web-game-open-sourced-for-you#comments</comments>
		<pubDate>Wed, 19 May 2010 05:01:00 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Appcelerator]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9317</guid>
		<description><![CDATA[Jacob Waller created an addictive word came in Golingo. What sets it apart? Not a single line of Objective-C written, courtesy of Titanium Mobile Only one (!) image ingame &#8211; the rest is CSS3 magic Fluid gameplay thanks to CSS Transitions and Animations All logic using pure, beautiful JavaScript Multitouch draggables using iPhone Touch API <a href="http://ajaxian.com/archives/golingo-a-great-titanium-mobile-web-game-open-sourced-for-you">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://posterous.com/getfile/files.posterous.com/temp-2010-05-18/tyJvlmjGysirJJGvxglovaAAJEcmcphfwgekyIwJxbxEqbHxrwJlJyeoqfJh/golingo.jpg.scaled500.jpg"/></p>
<p>Jacob Waller created an addictive word came in <a href="http://itunes.apple.com/en/app/golingo/id363502001?mt=8">Golingo</a>. What sets it apart?</p>
<ul>
<li>Not a single line of Objective-C written, courtesy of <a href="http://www.appcelerator.com/">Titanium Mobile</a>
</li>
<li>Only one (!) image ingame &#8211; the rest is CSS3 magic
</li>
<li>Fluid gameplay thanks to CSS Transitions and Animations
</li>
<li>All logic using pure, beautiful JavaScript
</li>
<li>Multitouch draggables using iPhone Touch API
</li>
<li>Logic encapsulated using Low Pro &#8211; meaning split screen mode was easy pie
</li>
<li>jQuery 1.4.2 for development speed (and sanity of developer)
</li>
<li>CouchDB as highscore storage, with storage logic in JavaScript
</li>
<li>Predictable randomness means replayable games, all courtesy of excellent <a href="http://davidbau.com/archives/2010/01/30/random_seeds_coded_hints_and_quintillions.html">seedrandom</a>
</li>
</ul>
<p>Jacob dives into deeper into the full tool chain that he used in his <a href="http://blog.krawaller.se/opensourcing-golingo">post about open sourcing the code behind the game</a>. That&#8217;s right, he wants you to <a href="https://github.com/krawaller/Golingo">fork it</a> and do something amazing with the game. Pretty awesome if you ask me.</p>
<p>His tool chain:</p>
<ul>
<li><a href="http://www.appcelerator.com/products/titanium-mobile-application-development/">Titanium Mobile</a></li>
<li> <a href="http://www.w3.org/Style/CSS/current-work">CSS3</a> with <a href="http://www.webkit.org">Webkit</a> <a href="http://webkit.org/blog/324/css-animation-2/">extras</a> </li>
<li><a href="http://www.jquery.com">jQuery 1.4.2</a></li>
<li><a href="http://www.danwebb.net/2008/2/3/how-to-use-low-pro-for-jquery">Low Pro for jQuery</a></li>
<li><a href="http://www.glyphish.com">Glyphish icons</a></li>
<li><a href="http://blog.stevenlevithan.com/archives/parseuri">Uri-parser</a></li>
<li><a href="http://www.dsso.se">Swedish word list</a></li>
<li><a href="http://www.couchdb.org">CouchDB</a></li>
<li><a href="http://www.nordicfactory.com/creative/illustrations/download-free-flag-set-in-png/">Flag icons</a></li>
</ul>
<p>He then goes on to talk about the initial construction of the game:</p>
<blockquote><p>
Most of the actual game was made in a few weeks time, but from scratch to published app it took almost six weeks of part time work. A lot of this time was spent banging my head into various walls. Again, Titanium is great, but it&#8217;s a young framework with all the kinks that follows. There has been quite a few bugs, and the documentation hasn&#8217;t always been up to date &#8211; but this is much better nowadays. What more &#8211; since most other developers are as clueless as yourself, It&#8217;s been hard finding good resources and getting help. I did however get a trial for Appcelerator&#8217;s Premium Subscription, with 48-hours guaranteed response, and I must say it&#8217;s really good stuff. The developers themselves answers all your stupid questions and relieves most of the wall banging. If you can afford it, go for it!</p>
<p>By releasing the code for Golingo, we hope to relieve some of the headaches surrounding developing packaged HTML5 apps. I do not say that it&#8217;s not full of faults, because it is, but at least it is a working example full of faults. Please don&#8217;t hesitate to dig through the code to see what is going on. We believe we&#8217;ve solved some common problems that you too will run in to when using Titanium, for example transparently calling native functions from a webview (and vice versa) using callbacks and trickery. Here&#8217;s a quick recap of that:</p>
<ul>
<li>Connecting Titanium Contexts
</li>
<li>Low Pro like a low pro: $(&#8216;&lt;div/&gt;&#8217;).attachAndReturn(Letter, this, letter, specialLetter);
</li>
<li>Sexifying: including templating with mustasche
</li>
</ul>
</blockquote>
<p>Thanks for the great info and resource Jacob!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/golingo-a-great-titanium-mobile-web-game-open-sourced-for-you/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slither</title>
		<link>http://ajaxian.com/archives/slither</link>
		<comments>http://ajaxian.com/archives/slither#comments</comments>
		<pubDate>Fri, 14 May 2010 04:21:00 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9290</guid>
		<description><![CDATA[Slither is a Web port of the age old Snake game. Erik Johnson wrote the game, and had this to say about the project (available here on GitHub): We&#8217;ve seen a million varieties of snake/nibbles games over the years, especially in Flash; however, I haven&#8217;t come across many that are implemented using Canvas. I&#8217;ve used <a href="http://ajaxian.com/archives/slither">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brokenresolve.com/projects/slither/"><img src="http://ajaxian.com/wp-content/images/slither.png" alt="" title="slither" width="480" height="427" class="alignnone size-full wp-image-9291" /></a></p>
<p><a href="http://www.brokenresolve.com/projects/slither/">Slither</a> is a Web port of the age old <a href="http://en.wikipedia.org/wiki/Snake_(video_game)">Snake game</a>.</p>
<p>Erik Johnson wrote the game, and had this to say about the project (<a href="http://github.com/xtrementl/slither">available here on GitHub</a>):</p>
<blockquote><p>
We&#8217;ve seen a million varieties of snake/nibbles games over the years, especially in Flash; however, I haven&#8217;t come across many that are implemented using Canvas. I&#8217;ve used it to simply draw the game area and used standard CSS2 and jQuery animation techniques to provide the rest of the UX support. The game itself uses an interesting combination of class-based components that allow for rich support of extensibility and ease of maintenance. The performance has proven quite well on all the current A-grade browsers (except IE of course :P)
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/slither/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Torus: 3D Tetris Fun</title>
		<link>http://ajaxian.com/archives/torus-3d-tetris-fun</link>
		<comments>http://ajaxian.com/archives/torus-3d-tetris-fun#comments</comments>
		<pubDate>Fri, 30 Apr 2010 11:20:15 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9176</guid>
		<description><![CDATA[Nearly 4 years ago, Ben Joffe created a fun Tetris-like game called Torus that takes the classic and makes it cylindrical. He just updated the game now that browsers can power his canvas game sooo much better. Smooth falling motion Smooth left/right motion Row clear animation Slightly higher playing field Visual indication of death zone <a href="http://ajaxian.com/archives/torus-3d-tetris-fun">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/images/torus.png" alt="" title="torus" width="367" height="348" class="alignnone size-full wp-image-9177"/></p>
<p>Nearly 4 years ago, Ben Joffe created a fun Tetris-like game called <a href="http://www.benjoffe.com/code/games/torus/">Torus</a> that takes the classic and makes it cylindrical. He just <a href="http://www.benjoffe.com/torus_upgrade">updated the game</a> now that browsers can power his canvas game sooo much better.</p>
<ul>
<li>Smooth falling motion
</li>
<li>Smooth left/right motion
</li>
<li>Row clear animation
</li>
<li>Slightly higher playing field
</li>
<li>Visual indication of death zone
</li>
<li>&#8220;Sparkling&#8221; blocks
</li>
<li>New points system
</li>
<li>New piece types (you&#8217;ll have to wait a while to see these appear).
</li>
</ul>
<p>Nice work Ben!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/torus-3d-tetris-fun/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>HTML5 is my Arcade. Akihabara.</title>
		<link>http://ajaxian.com/archives/html5-is-my-arcade-akihabara</link>
		<comments>http://ajaxian.com/archives/html5-is-my-arcade-akihabara#comments</comments>
		<pubDate>Thu, 22 Apr 2010 11:40:49 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9070</guid>
		<description><![CDATA[Akihabara is a set of libraries, tools and presets to create pixelated indie-style 8/16-bit era games in Javascript. What does it consist of? Akihabara is composed of a number of libraries that use HTML5 canvas tag and some standard hooks. Gamebox module is complete and compact enough for making games: it allows multiple grouped objects <a href="http://ajaxian.com/archives/html5-is-my-arcade-akihabara">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.kesiev.com/akihabara/sshot/compose.png" style="float:right; padding:8px"/></p>
<p><a href="http://www.kesiev.com/akihabara/">Akihabara</a> is a set of libraries, tools and presets to create pixelated indie-style 8/16-bit era games in Javascript. What does it consist of?</p>
<blockquote>
<p>
Akihabara is composed of a number of libraries that use HTML5 canvas tag and some standard hooks.
</p>
<p>
<b>Gamebox</b> module is complete and compact enough for making games: it allows multiple grouped objects moving simultaneously, it helps with collisions, rendering and moving objects. It provides monospaced pixel-fonts rendering too. It handles keyboard, double buffering and evenutally FSEs. For now do not support audio via the HTML5 audio tag but only because I don't any skill on music/SFX for adding audio to the shipped demos :). I'm going to add this kinda soon.
			</p>
<p>
			<b>Gamecycle</b> module provides a complete generic game cycle: intro, menus, crossfading between stages/lifes, gameover and ending. You can use the same game cycle for many games and implement only the main game.
			</p>
<p>
			<b>Toys</b> module provides <i>lots lots</i> of common routines during the game developing: from effects for screen titles to HUD handling to platform/SHMUP/RPG oriented routines, like jumping characters, Z-Indexed objects, bullets, sparks, staff rolls, bonus screens, dialogues etc.
			</p>
<p>
			<b>Help</b> module provides some Javascript-specific functions, such object copying, randomizing functions, string/array handlers and the <b>akihabaraInit</b> function, that automatically sets a comfortable preset of configurations: 25fps, double-sized display for non-mobile devices, dynamic frameskip.
			</p>
<p>
			<b>Tool</b> module provides simple developing tools. Actually there is only a cel-composer: it can compose an image stacking a set of frames for animating objects, applying a number of filters to each frame.
			</p>
<p>
			<b>Trigo</b> module provides some math stuff for moving objects toward a direction or following a round path.
			</p>
<p>
			<b>Iphopad</b> module provides a touchpad for touch-based device (for now, Android and iDevices).
			</p>
</blockquote>
<p>When you are debugging a game you can simply add some parameters to give you great new info (debug bars, double buffering, touch UI events, set FPS, and much more).</p>
<p>View source on the games to see state machines and info such as:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-2');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-2">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">kill: <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>by<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">frame</span>=<span style="color:#800000;">8</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">accz</span>=-<span style="color:#800000;">8</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; maingame.<span style="color: #006600;">addSmoke</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>,<span style="color: #3366CC;">"flame-red"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">killed</span>=<span style="color: #003366; font-weight: bold;">true</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; maingame.<span style="color: #006600;">playerDied</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span>wait:<span style="color:#800000;">50</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Awesome work <a href="http://www.kesiev.com/">Francesco</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/html5-is-my-arcade-akihabara/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pseudo 3D tricks from old computer games for all your Canvas needs</title>
		<link>http://ajaxian.com/archives/pseudo-3d-tricks-from-old-computer-games-for-all-your-canvas-needs</link>
		<comments>http://ajaxian.com/archives/pseudo-3d-tricks-from-old-computer-games-for-all-your-canvas-needs#comments</comments>
		<pubDate>Mon, 08 Feb 2010 12:04:24 +0000</pubDate>
		<dc:creator>Chris Heilmann</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[8bit]]></category>
		<category><![CDATA[pseudo3d]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8563</guid>
		<description><![CDATA[It is quite interesting to see how technology moves in circles. With canvas being the new fun toy to play with for creating browser-based games we have to find solutions to fake a 3D environment to be really fast (sure there is Canvas 3D but it is overkill for most games). The trick is to <a href="http://ajaxian.com/archives/pseudo-3d-tricks-from-old-computer-games-for-all-your-canvas-needs">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>It is quite interesting to see how technology moves in circles. With canvas being the new fun toy to play with for creating browser-based games we have to find solutions to fake a 3D environment to be really fast (sure there is Canvas 3D but it is overkill for most games). The trick is to dig into the tricks arsenal of old-school game development on machines full of win like the Commodore 64 or Amiga. </p>
<p>Louis Gorenfeld <a href="http://www.gorenfeld.net/lou/pseudo/">some very detailed explanations on how to fake 3D</a> including some of the formulas used in the days of 8 bit.</p>
<p>He is also working on some demo code which you can help him with by providing some JS/Canvas demos:</p>
<p><img src="http://ajaxian.com/wp-content/images/fake3d.png" alt="Fake 3D" title="Fake 3D" width="353" height="600" /></p>
<div class="igBar"><a href="javascript:showCodeTxt('code-4');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">CODE:</span>
<div id="code-4">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">current_x = <span style="color:#800000;">160</span> <span style="color:#FF9933; font-style:italic;">// Half of a 320 width screen</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">dx = <span style="color:#800000;">0</span> <span style="color:#FF9933; font-style:italic;">// Curve amount, constant per segment</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">ddx = <span style="color:#800000;">0</span> <span style="color:#FF9933; font-style:italic;">// Curve amount, changes per line</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">for each line of the screen from the bottom to the top:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; if line of screen<span style="color:#CC0000;">'s Z Map position is below segment.position:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; &nbsp; dx = bottom_segment.dx</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">&nbsp; else if line of screen'</span>s Z Map position is above segment.<span style="">position</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; dx = segment.<span style="">dx</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; end if</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; ddx += dx</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; current_x += ddx</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; this_line.<span style="">x</span> = current_x</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">end for</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Move segments</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">segment_y += constant * speed <span style="color:#FF9933; font-style:italic;">// Constant makes sure the segment doesn't move too fast</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">if segment.<span style="">position</span> &lt;<span style="color:#800000;">0</span> <span style="color:#FF9933; font-style:italic;">// 0 is nearest</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; bottom_segment = segment</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; segment.<span style="">position</span> = zmap.<span style="">length</span> - <span style="color:#800000;">1</span> <span style="color:#FF9933; font-style:italic;">// Send segment position to farthest distance</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; segment.<span style="">dx</span> = GetNextDxFromTrack<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#FF9933; font-style:italic;">// Fetch next curve amount from track data</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">end if </div>
</li>
</ol>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/pseudo-3d-tricks-from-old-computer-games-for-all-your-canvas-needs/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Commodore 64 JavaScript Emulator</title>
		<link>http://ajaxian.com/archives/c64</link>
		<comments>http://ajaxian.com/archives/c64#comments</comments>
		<pubDate>Tue, 05 Jan 2010 11:06:02 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8381</guid>
		<description><![CDATA[Tim de Koning has done what folks do best with their winter holidays.... created something fun :) With JSC64 he has ported the Flash version to give us an emulator for the Commodore 64 in JavaScript. Tim's work uses Canvas and he provides a jQuery plugin if you are that way inclined. It is fun <a href="http://ajaxian.com/archives/c64">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/images/c64.png" alt="c64" title="c64" width="322" height="201" class="alignnone size-full wp-image-8382" /></p>
<p>Tim de Koning has done what folks do best with their winter holidays.... created something fun :)</p>
<p>With <a href="http://www.kingsquare.nl/jsc64">JSC64</a> he has ported the <a href="http://codeazur.com.br/stuff/fc64_final/">Flash version</a> to give us an emulator for the Commodore 64 in JavaScript.</p>
<p>Tim's work uses Canvas and he provides a jQuery plugin if you are that way inclined. It is fun to <a href="http://github.com/Kingsquare/jsc64">check out the source on GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/c64/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>JavaScript Gaining Traction with Game Developers</title>
		<link>http://ajaxian.com/archives/javascript-gaining-traction-with-game-developers</link>
		<comments>http://ajaxian.com/archives/javascript-gaining-traction-with-game-developers#comments</comments>
		<pubDate>Mon, 07 Dec 2009 13:45:59 +0000</pubDate>
		<dc:creator>Rey Bango</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8139</guid>
		<description><![CDATA[We received an email from Joesph Huckaby about his new JS-based game rendering engine and I have to admit that when I first read about it, I was a little skeptical about it mainly because I've been disappointed with many that I've seen in the past. As I dug into his site, Effectgames.com, my whole <a href="http://ajaxian.com/archives/javascript-gaining-traction-with-game-developers">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>We received an email from Joesph Huckaby about his new JS-based game rendering engine and I have to admit that when I first read about it, I was a little skeptical about it mainly because I've been disappointed with many that I've seen in the past. As I dug into his site, <a href="http://www.effectgames.com/">Effectgames.com</a>, my whole opinion changed as I saw some very robust demos that clearly demonstrated the capabilities of this engine.</p>
<p><a href="http://www.effectgames.com/effect/games/crystalgalaxy/"><img src="http://ajaxian.com/wp-content/images/effectgames.png" alt="effectgames" title="effectgames" width="450" height="337" class="alignleft size-full wp-image-8142" /></a></p>
<p>The games are powered by the "Effect Engine", Joseph's JavaScript/DHTML library that provides the framework for displaying and animating all the graphics, playing all the sounds &#038; music, handling the keyboard &#038; mouse, and sprite collision detection.  It can smoothly render multiple layers of parallax scrolling tiles and sprites using pure DHTML. HTML 5 Audio is used where supported (currently Safari on Mac OS X 10.5 only, 10.6 and Firefox coming soon), and 3rd party extensions used elsewhere.  All modern browsers and platforms are supported, including IE 6+, Firefox 3+, Safari 3+, Chrome 1+, and Opera 9+.</p>
<p>The team has also created a suite of online tools to allow developers to prepare and design their game online including managing graphics &#038; audio, creating levels for their games and manipulating graphics in real-time using non-destructive filters (scaling, rotation, and a number of other transforms).</p>
<p>Developers can build their games locally on their Macs or PCs, and don't have to upload any code until they are ready to publish.  Once ready, developers can compile their code automatically using <a href="http://code.google.com/closure/compiler/">Google Closure</a>, and receive a unique URL and embed code to share the game on their own site, blog, or anywhere they want.</p>
<p>In looking through the <a href="http://www.effectgames.com/effect/#ArticleCategory/docs">documentation</a>, it looks like the whole <a href="http://www.effectgames.com/effect/#Article/docs/API_Reference_Guide">API is very well laid</a> out clearly documenting the breadth of methods available and the <a href="http://www.effectgames.com/effect/#Article/docs/Getting_Started_Guide">Getting Started guide</a> is very comprehensive.</p>
<p>I didn't find anything that discussed licensing or a potential pricing model so that's something that you may want to look into before diving into this but from what I've seen, the engine looks very promising.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/javascript-gaining-traction-with-game-developers/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Fun Friday: Mullets and Space Battles</title>
		<link>http://ajaxian.com/archives/fun-friday-mullets-and-space-battles</link>
		<comments>http://ajaxian.com/archives/fun-friday-mullets-and-space-battles#comments</comments>
		<pubDate>Fri, 09 Oct 2009 11:30:52 +0000</pubDate>
		<dc:creator>Brad Neuberg</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7543</guid>
		<description><![CDATA[The week is almost over, and that means it's Fun Friday! Ajax and HTML5 aren't just for serious business apps ("business in the front, party in the back"): http://www.flickr.com/photos/heyjohngreen/ / CC BY 2.0 This week we have JS Wars from Jonas Wagner: There are a couple of unique things about this game that makes it <a href="http://ajaxian.com/archives/fun-friday-mullets-and-space-battles">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>The week is almost over, and that means it's Fun Friday! Ajax and HTML5 aren't just for serious business apps ("business in the front, party in the back"):</p>
<p style="text-align: center;"><img class="size-full wp-image-7544 aligncenter" title="mullet_party" src="http://ajaxian.com/wp-content/images/mullet_party.jpg" alt="mullet_party" width="240" height="196" /></p>
<div style="text-align: center;"><a rel="cc:attributionURL" href="http://www.flickr.com/photos/heyjohngreen/">http://www.flickr.com/photos/heyjohngreen/</a> / <a rel="license" href="http://creativecommons.org/licenses/by/2.0/">CC BY 2.0</a></div>
<div style="text-align: left; margin-top: 1em; margin-bottom: 1em;">This week we have <a href="http://29a.ch/jswars/">JS Wars</a> from <a href="http://29a.ch/">Jonas Wagner</a>:</div>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-7546" style="margin-top: 1em;" title="jswars2" src="http://ajaxian.com/wp-content/images/jswars2.png" alt="jswars2" width="320" height="240" /></p>
<p style="text-align: center;"><img class="size-full wp-image-7545 aligncenter" title="jswars1" src="http://ajaxian.com/wp-content/images/jswars1.png" alt="jswars1" width="320" height="240" /></p>
<div style="margin-top: 1em;">There are a couple of unique things about this game that makes it a good educational resource for developers. First, the code is GPLed so you can easily <a href="http://29a.ch/jswars/game2.js">study it</a> for your own needs. Next, I noticed a new attribute on the canvas tag I had not seen before:</div>
<div class="igBar"><a href="javascript:showCodeTxt('html-6');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-6">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #ddbb00;">&amp;lt;</span>canvas width=&quot;640&quot; height=&quot;480&quot; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; id=&quot;screen&quot; style=&quot;border: 1px solid #ddf;&quot; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; moz-opaque=&quot;true&quot;<span style="color: #ddbb00;">&amp;gt;</span><span style="color: #ddbb00;">&amp;lt;</span>/canvas<span style="color: #ddbb00;">&amp;gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>Notice the moz-opaque attribute. Evidently <a href="https://developer.mozilla.org/En/Firefox_3.1_for_developers">this showed up in Firefox 3.5</a> and:</p>
<blockquote><p>...lets the canvas know whether or not translucency will be a factor.  If the canvas knows there's no translucency, painting performance can be optimized.</p></blockquote>
<p style="text-align: left;">Hopefully the other browsers and the HTML5 spec can pick up this useful property.</p>
<p style="text-align: left;">Another unique aspect of this sample is that many free, open source tools were used to create all the images and sounds. All the graphics were created with the <a href="http://www.gimp.org/">Gimp</a> and <a href="http://www.blender.org/">Blender</a>, and the sounds were made with <a href="http://www.csounds.com/">csound</a>.</p>
<p style="text-align: left;">BTW, if you are graphically challenged like me but need resources like this for applications and games I always recommend either grabbing images, video, and illustrations through the <a href="http://search.creativecommons.org/">Creative Commons search engine</a>, <a href="http://commons.wikimedia.org/wiki/Main_Page">Wikimedia Commons</a>, or <a href="http://www.istockphoto.com/index.php">iStockPhoto.com</a> (you could grab an Illustrator file from iStockPhoto, for example, and then convert it into SVG using Adobe Illustrator to bring into your fancy web page).</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/fun-friday-mullets-and-space-battles/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Vanthia</title>
		<link>http://ajaxian.com/archives/vanthia</link>
		<comments>http://ajaxian.com/archives/vanthia#comments</comments>
		<pubDate>Fri, 09 Oct 2009 05:12:59 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7607</guid>
		<description><![CDATA[Scott Schiller, favourite DHTML hax0r, pointed us to Vanthia "a browser based Massive Massively Multiplayer Online Role-Playing Game in development." The game appears to use Mootools for the underlying library, the UI is quite well done and the map uses an isometric, pixel-based style. Check out the forum.]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5269988&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5269988&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object></p>
<p>Scott Schiller, favourite <a href="http://www.scottschiller.com/">DHTML hax0r</a>, pointed us to <a href="http://vanthia.com/">Vanthia</a> "a browser based Massive Massively Multiplayer Online Role-Playing Game in development."</p>
<p>The game appears to use Mootools for the underlying library, the UI is quite well done and the map uses an isometric, pixel-based style.</p>
<p><a href="http://forums.vanthia.com/">Check out the forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/vanthia/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Play Kings Quest, Space Quest, and More&#8230; Using Canvas Tag</title>
		<link>http://ajaxian.com/archives/play-kings-quest-space-quest-and-more-using-canvas-tag</link>
		<comments>http://ajaxian.com/archives/play-kings-quest-space-quest-and-more-using-canvas-tag#comments</comments>
		<pubDate>Thu, 08 Oct 2009 11:00:33 +0000</pubDate>
		<dc:creator>Brad Neuberg</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7585</guid>
		<description><![CDATA[Martin Kool and Sjoerd Visscher have gotten many of the old Sierra Online games running on the Canvas tag, including many of the Kings Quest series, Space Quest series, and Leisure Suit Larry. Martin Kool describes some of the long process it took to get these into the shape they are: In 2003, I created <a href="http://ajaxian.com/archives/play-kings-quest-space-quest-and-more-using-canvas-tag">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://martinkool.com/">Martin Kool</a> and <a href="http://www.w3future.com/">Sjoerd Visscher</a> have gotten many of the old <a href="http://en.wikipedia.org/wiki/Sierra_Entertainment">Sierra Online</a> games <a href="http://sarien.net/">running on the Canvas tag</a>, including many of the Kings Quest series, Space Quest series, and Leisure Suit Larry.</p>
<p style="text-align: center;"><a href="http://sarien.net/"><img class="size-full wp-image-7586 aligncenter" title="gr" src="http://ajaxian.com/wp-content/images/gr.png" alt="gr" width="264" height="132" /></a></p>
<p style="text-align: center;"><a href="http://sarien.net/"><img class="size-full wp-image-7587 aligncenter" title="lsl" src="http://ajaxian.com/wp-content/images/lsl.png" alt="lsl" width="264" height="132" /></a></p>
<p style="text-align: left;">Martin Kool describes some of the long process it took to get these into the shape they are:</p>
<blockquote><p>In 2003, I created                 <a href="http://goodoldadventures.com/">Good Old Adventures</a>.                 It was a chat environment set in the Sierra worlds without actual gameplay.                 All images were manually crafted, copy/pasting from                 <a href="http://www.winagi.com/">WinAGI Game Development Studio</a>.                 A time consuming process.</p>
<p><a href="http://sarien.net/spacequest/arcada"><img class="aligncenter size-full wp-image-7588" title="sq" src="http://ajaxian.com/wp-content/images/sq.png" alt="sq" width="264" height="132" /><br />
</a>Four years later I wrote a few conversion tools in .NET to extract Sierra's in-game                 images and objects from the original games, and display them properly on the web. The                 "only thing" left to do then was to export and understand all in-game logics.</p>
<p>I was able to convert the logic to javascript, but there was one big problem: Sierra's                 code used GOTO statements, and those could jump anywhere in the code, even inside a nested                 "if"-statement. It seemed unsolvable in javascript.</p>
<p>I sat down together with                  <a href="http://www.w3future.com/">Sjoerd Visscher</a>, one of my collegues at                 <a href="http://q42.nl/">Q42</a>, and we came up with a solution. Using                 a decompilation approach to get rid of nested "if"-statements and putting the whole                 shebang inside a huge switch/case statement, we could mimic line numbers and GOTO's                 while maintaining performance. World domination was within reach :-D</p></blockquote>
<blockquote><p><img class="aligncenter size-full wp-image-7589" title="code" src="http://ajaxian.com/wp-content/images/code.png" alt="code" width="352" height="176" /></p></blockquote>
<blockquote><p>It was halfway 2008 when I started to work on it, and Sarien.net is the result.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/play-kings-quest-space-quest-and-more-using-canvas-tag/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Berts Breakdown</title>
		<link>http://ajaxian.com/archives/berts-breakdown</link>
		<comments>http://ajaxian.com/archives/berts-breakdown#comments</comments>
		<pubDate>Mon, 28 Sep 2009 12:00:31 +0000</pubDate>
		<dc:creator>Brad Neuberg</dc:creator>
				<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7462</guid>
		<description><![CDATA[We usually post these on Friday, but who says a little fun on Monday is wrong? Paul Brunt has put together a nifty game using the Canvas tag. It's pretty impressive. He is also using Chrome Frame to have the game work on IE as well. Play it now]]></description>
			<content:encoded><![CDATA[<p>We usually post these on Friday, but who says a little fun on Monday is wrong? <a href="http://www.paulbrunt.co.uk/">Paul Brunt</a> has put together a <a href="http://www.paulbrunt.co.uk/2009/09/20/berts-breakdown/">nifty game</a> using the Canvas tag. It's pretty impressive. He is also using <a href="http://code.google.com/chrome/chromeframe/">Chrome Frame</a> to have the game work on IE as well.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-7463" title="bert3" src="http://ajaxian.com/wp-content/images/bert3.jpg" alt="bert3" width="295" height="211" /></p>
<p style="text-align: center;"><a href="http://www.paulbrunt.co.uk/bert/">Play it now</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/berts-breakdown/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>First sign of WebGL lands in WebKit</title>
		<link>http://ajaxian.com/archives/webgl-webkit</link>
		<comments>http://ajaxian.com/archives/webgl-webkit#comments</comments>
		<pubDate>Tue, 15 Sep 2009 11:18:10 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7377</guid>
		<description><![CDATA[Jeffrey Rosen has taken a look at a preview of WebGL landing in the WebKit project. The demo above is an example of this work (here in HD): WebGL is basically an initiative to bring 3D graphics into web browsers natively, without having to download any plugins. This is achieved by adding a few things <a href="http://ajaxian.com/archives/webgl-webkit">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/2rpKpj6ZO9w&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/2rpKpj6ZO9w&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
<p>Jeffrey Rosen has taken a look at <a href="http://blog.wolfire.com/2009/09/preview-of-webkits-webgl-canvas3d/">a preview of WebGL landing in the WebKit project</a>. The demo above is an example of this work (<a href="http://www.youtube.com/watch?v=2rpKpj6ZO9w&#038;hd=1">here in HD</a>):</p>
<blockquote><p>
WebGL is basically an initiative to bring 3D graphics into web browsers natively, without having to download any plugins. This is achieved by adding a few things to HTML5, namely, defining a JavaScript binding to OpenGL ES 2.0 and letting you draw things into a 3D context of the canvas element.
</p></blockquote>
<p>It is interesting to compare this low level API to O3D which is a scene graph API from Google (Google also supports WebGL, via the O3D team also, and sees the APIs as complimentary). They are very different APIs taking drastically different approaches. One gives you a new API but a higher level one that may appeal to JS developers more, whilst the other is very familiar to a certain set of developers and would be easier to port work. Ideally, someone will Processing/jQuery-inize WebGL to give it some nice high level love too. </p>
<p>Fun times with 3D and the Web! Great to see WebKit and Gecko doing great things with WebGL already.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/webgl-webkit/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Fun Friday Platformer</title>
		<link>http://ajaxian.com/archives/fun-friday-platformer</link>
		<comments>http://ajaxian.com/archives/fun-friday-platformer#comments</comments>
		<pubDate>Fri, 17 Jul 2009 17:54:35 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7123</guid>
		<description><![CDATA[Fancy a break? Take Mr. Speaker's little JavaScript platformer for a spin. Have a great weekend, and a quick reminder: Think that we have missed a story? Please share news with us. Don't assume that we missed it on purpose! Want to contribute a full story? Please! The crew hangs out on Twitter, and a <a href="http://ajaxian.com/archives/fun-friday-platformer">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Fancy a break? Take <a href="http://www.mrspeaker.net/dev/platform/">Mr. Speaker's</a> little JavaScript platformer for a spin.</p>
<p><img src="http://ajaxian.com/wp-content/uploads/mrspeakerplatformer.png" alt="" title="mrspeakerplatformer" width="337" height="433" class="alignnone size-full wp-image-7124" /></p>
<p>Have a great weekend, and a quick reminder:</p>
<ul>
<li>Think that we have missed a story? Please <a href="mailto:ajaxians@ajaxian.com">share news with us</a>. Don't assume that we missed it on purpose! Want to contribute a full story? Please!
</li>
<li>The crew hangs out on Twitter, and a lot of tips and tricks show up there first:
<ul>
<li><a href="http://twitter.com/dalmaer">Dion</a></li>
<li><a href="http://twitter.com/bgalbs">Ben</a></li>
<li><a href="http://twitter.com/reybango">Rey</a></li>
<li><a href="http://twitter.com/codepo8">Christian</a></li>
<li><a href="http://twitter.com/mahemoff">Michael</a></li>
<li><a href="http://twitter.com/ajaxian">And our news is syndicated through @ajaxian</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/fun-friday-platformer/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Deep Leap: Teasing John Resig</title>
		<link>http://ajaxian.com/archives/deep-leap-teasing-john-resig</link>
		<comments>http://ajaxian.com/archives/deep-leap-teasing-john-resig#comments</comments>
		<pubDate>Fri, 01 May 2009 21:33:19 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6746</guid>
		<description><![CDATA[John has been working on a very fun scrabble typing game called Deep Leap and although he hasn't finished it yet, people found it (John, time to learn about .htaccess ? ;) Just to tease him a little more and get the word out before it is finished, check it out!]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/deepleap.png" alt="" title="deepleap" width="500" height="278" class="alignnone size-full wp-image-6747" /></p>
<p>John has been working on a very fun scrabble typing game called <a href="http://deepleap.org/">Deep Leap</a> and although he hasn't finished it yet, people found it (John, time to learn about .htaccess ? ;)</p>
<p>Just to tease him a little more and get the word out before it is finished, check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/deep-leap-teasing-john-resig/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Sarien: Multiplayer Game Engine goes Open Source</title>
		<link>http://ajaxian.com/archives/sarien-multiplayer-game-engine-goes-open-source</link>
		<comments>http://ajaxian.com/archives/sarien-multiplayer-game-engine-goes-open-source#comments</comments>
		<pubDate>Sun, 19 Apr 2009 15:54:41 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6658</guid>
		<description><![CDATA[Ben loves to talk about old games such as Dark Castle. I personally love remembering old Sinclair ZX Spectrum games but also fondly remember Leisure Suit Larry. Wouldn't it be nice if you could play classic old games such as these easily online? Martin Kool thought so, and wanted to create an open source adventure <a href="http://ajaxian.com/archives/sarien-multiplayer-game-engine-goes-open-source">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Ben loves to talk about old games such as <a href="http://en.wikipedia.org/wiki/Dark_Castle">Dark Castle</a>. I personally love remembering old <a href="http://en.wikipedia.org/wiki/ZX_Spectrum">Sinclair ZX Spectrum</a> games but also fondly remember Leisure Suit Larry.</p>
<p>Wouldn't it be nice if you could play classic old games such as these easily online? Martin Kool thought so, and wanted to create an open source adventure game system, and just released <a href="http://sarien.net/">Sarien.net</a> "the portal for reliving the classic Sierra On-Line adventure games. With its focus on instant fun and a unique multiplayer experience, Sarien.net hopes to win new gamers' hearts and promote the adventure game genre."</p>
<p><img src="http://ajaxian.com/wp-content/uploads/sarien.png" alt="" title="sarien" width="500" height="304" class="alignnone size-full wp-image-6659" /></p>
<p><b>Features</b></p>
<p>Completely browser based, runs in IE, FF, Opera, Safari, Chrome</p>
<ul>
<li>Works on the iphone and Wii (both needs fixing at the moment I believe)
</li>
<li>Games are completely playable using mouse or keyboard input. A lot of effort has been put into the user interface to make it work for the era that we’re in
</li>
<li>Multiplayer! This was not in the original games, but what you can do now is; when you are playing your own game at your own pace, and are in game X room Y, you’ll see other players in that same game X room Y doing their things
</li>
<li>You can talk to eachother and replay scenes together
</li>
<li>All game areas are accessible directly through the address bar, and bookmarkable. Giving players the instant kick of replaying a certain scene
</li>
<li>While playing, you encounter other npc’s. These add up to your own list of avatars that you can choose to be, not influincing the gameplay but it adds up to the fun (especially in multiplayer)
</li>
<li>There’s even an extra Studio tool to let you view all game resources, similar to existing tools such as AGI Studio
</li>
</ul>
<p>Check out <a href="http://www.sarien.net/larry/penthouse">some of the games</a> and then delve into the <a href="http://www.sarien.net/studio">resource explorer studio</a> and build your own stuff.</p>
<p>Thanks for doing this Martin! What games would you like to see / create? :)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/sarien-multiplayer-game-engine-goes-open-source/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

