<?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>Dale J Williams</title>
	<atom:link href="http://blog.dalejwilliams.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dalejwilliams.com</link>
	<description>Actionscript and Audio Production with Dale J Williams</description>
	<lastBuildDate>Thu, 02 Sep 2010 07:21:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>On Powering Jetskis</title>
		<link>http://blog.dalejwilliams.com/2010/09/02/on-powering-jetskis/</link>
		<comments>http://blog.dalejwilliams.com/2010/09/02/on-powering-jetskis/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 07:16:53 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Audio Production]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=140</guid>
		<description><![CDATA[The Breaka Jetski Game Engine Explained (written for Cru Digital) Games are a powerful medium. While a film can only provide a few hours of entertainment to a group of people, a game can provide potentially limitless entertainment to a potentially limitless audience through the lure and viral spread of social competition. When Breaka commissioned ]]></description>
			<content:encoded><![CDATA[<p><strong>The Breaka Jetski Game Engine Explained</strong><br />
(written for Cru Digital)</p>
<p>Games are a powerful medium. While a film can only provide a few hours of entertainment to a group of people, a game can provide potentially limitless entertainment to a potentially limitless audience through the lure and viral spread of social competition. When Breaka commissioned us to create a microsite, we put a game front and centre. A good game needs a great idea, a tonne of play-testing, ten tonnes of optimisation and a solid framework. In this article I&#8217;m going to introduce you some of the processes involved in creating the <a href="http://www.breakaisland.com.au/#/jetski" target="_blank">Breaka Island Jetski Challenge</a>.</p>
<p><span id="more-140"></span></p>
<p><strong>The First Step In Creating A Jetski Game Is Creating The Jetski</strong></p>
<p>The Jetski Challenge was born as a playable proof of concept, the demo. The demo featured a jetski driving around an infinite spread of water. During this initial phase of development, the most important aspect was making the Jetski look, feel and control like a real jetski, through real water.</p>
<p>Jetskis tilt, roll and flip. With this observation we knew immediately that the jetski had to be represented in three dimensional space (3D). Early tests showed that placing entire 3D worlds in Flash put a heavy burden on even the most powerful computer processors so we had to find a way to respresent the game&#8217;s world in something other than 3D. To achieve the look of 3D whilst maintaining the computing performance of 2D, we decided to place the Jetski in a small 3D box and place that 3D box inside a top-down 2D environment. This gave the game its bird-eye-view aesthetic. To render the 3D we used Flash 3D framework Papervision3D. To host it, and eveything else arround it, we wrote our own 2D framework – which would later become the game&#8217;s engine. With rendering sorted, we moved onto control and physics.</p>
<p>Jetskis drift, glide, carve and jump. The next step was to give this control to the player and have it reflected in a realistic way. As the jetski speed up we tilted the 3D model&#8217;s hull back. As the jetski turned left or right we tilted the model&#8217;s hull left or right to imitate lean. We forced the control to  lag to give the illusion that the jetski had ability to generate momentum in the water. We zoomed in on the model whenever the jetski jumped and moved a shadow up and left to create the illusion of height. We placed a spray particle generation system at the base of the jetski to imitate the wake. Once each of these techniques were combined into the demo, we had a pretty sweet drivable jetski on our hands.</p>
<p><strong>The Second Step In Creating A Jetski Game Is Creating The Game</strong></p>
<p>While burning around an infinite pond with a turbo-charged jetski may be fun for the developers in the Flash Department, it may not be enough to win over the discerning player. The game needed an angle – a world to drive through and a challenge.</p>
<p>To create the world we crafted a tool. The tool was similar in functionality to the Breaka Island Flag Designer and allowed us to drag and drop checkpoints, obstacles, bonus items, sand banks and trees, amongst other elements, into the game world. With the tool we created three separate tracks: one focused on speed, one focused on stunts and one focused on survival. The aim of the speed track was to design the track with a clear driving line in mind. The aim of the stunt track was to place enough jumps to give the player ample air-time to perform stunts within. The aim of the survival track was to pump the world with enough obstacles to make it hard for the player to navigate.</p>
<p>With each track we crafted a matching game mode. The speed track was given a game mode that recorded the player&#8217;s time for three laps. The winning player would have the fastest time around the track. The stunt track was given a mode with a set amount of time. The winning player would be the player that could obtain the highest score from successful stunts. The survival track was given health and a small countdown timer. A player would slowly accumulate score based on the time the survived, dying if they lost all health. Each checkpoint would award them a time bonus allowing them to play for longer. The winning player would be the player that had survived the longest.</p>
<p>With these tracks and modes we built an engine.</p>
<p><strong>The Biggest Step In Creating Any Game Is Creating An Engine</strong></p>
<p>Game engine development is not for the feint of heart. The process can take weeks for even a small game and the only time it works is when its finished. Rather than babble about the process we went through to develop the engine, I thought I&#8217;d instead list the technologies we used and developed. A forewarning: This is some technology enthusiast stuff &#8211; if the terms &#8216;byte data&#8217;, &#8216;input events&#8217; and &#8216;z-indexing&#8217; don&#8217;t mean anything to you, you may want to skip this bit.</p>
<p>Input Management<br />
While AS3 has improved control where Keyboard Input is concerned, AS2 was easier to use. An input manager was created to keep track of which keys were pressed and which actions they corresponded to. The net benefit of creating our own input manager is that it allowed multiple key inputs to register as pressed, overriding the caveat of the operating system level key repeating.</p>
<p>Map, Entity, Obstacle Management<br />
A map able to load and house the tracks created in the world designing tool. The map contained the ability to house entities and was in charge of testing collisions, running the game loop and culling off-screen objects. The map also had the ability to draw the water texture according to position co-ordinates, giving the illusion that the water was infinite in all directions and a cool script which turned any vector shape into a sandbank with feathered edges. As all of the games entities and obstacles are contained with the map, the majority of the distance and angle calculation, collisions, depth swapping and camera movement are be handled by it or delegated to it.</p>
<p>Sound Management<br />
To house the rocking soundtrack, sound effects and engine noises, a multi-track sound manager was created. The sound manager allows sounds to be grouped into tracks in a similar fashion to that found in DAW software. The sound manager could loop sounds, play multiple sounds, maintaining track volume or sound volume control.</p>
<p>3D Rendering<br />
To render the jetski we used the popular <a href="http://code.google.com/p/papervision3d/" target="_blank">Papervision3D libraries</a>. PV3D is an invaluable tool for 3D in flash, maintained by the Flash Community. Those interested should also take a look at Away3D, which we used for the rest of the Breaka Island website.</p>
<p>Asset Management, Zip Compression<br />
To store the game&#8217;s assets we used the N<a href="http://nochump.com/blog/archives/15">oChump Zip Compression Library</a>. This allowed the games assets to be of minimal file size and embedded directly into the SWF file. The zip data was managed by a custom asset management library.</p>
<p><strong>Game Over, Man, Game Over</strong></p>
<p>All of these elements tied together with some Cru magic are a part of what allowed the game to come to life. Make sure you <a href="http://www.breakaisland.com.au/#/jetski/">have a play through of the end product</a> on breakaisland.com.au. See if you beat the high score.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/09/02/on-powering-jetskis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Away3D Lite</title>
		<link>http://blog.dalejwilliams.com/2010/06/09/introduction-to-away3d-lite/</link>
		<comments>http://blog.dalejwilliams.com/2010/06/09/introduction-to-away3d-lite/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 03:58:27 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Misc / Other / Random]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=133</guid>
		<description><![CDATA[I have been playing with Away3D Lite. Away3D Lite is a stripped back, high performance variant of Away3D with optimisation for Flash Player 10. I might say that, to this point, I am relatively happy with it. The team at Papervision3D seems to be in hiding these days and I can&#8217;t help but think the ]]></description>
			<content:encoded><![CDATA[<p><a href="/files/QRCMinesite.swf" target="_blank"><img src="/files/QRCMinesite.jpg" alt="" width="550" height="300" /></a></p>
<p>I have been playing with Away3D Lite. Away3D Lite is a stripped back, high performance variant of Away3D with optimisation for Flash Player 10. I might say that, to this point, I am relatively happy with it.</p>
<p>The team at Papervision3D seems to be in hiding these days and I can&#8217;t help but think the departure of Ralph Hauwert from the project might have killed it. It is a shame, I have enjoyed working within their system on more than one occasion. On the other site of the fence its younger brother Away has been advancing at blistering speed.</p>
<p>The demo included is my &#8220;Hello World&#8221; of Away3D Lite. A loaded 3D terrain and some custom camera movement.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/06/09/introduction-to-away3d-lite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Orchestral Stuff</title>
		<link>http://blog.dalejwilliams.com/2010/03/12/some-orchestral-stuff/</link>
		<comments>http://blog.dalejwilliams.com/2010/03/12/some-orchestral-stuff/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 10:11:24 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Audio Production]]></category>
		<category><![CDATA[Misc / Other / Random]]></category>
		<category><![CDATA[Orchestral]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=121</guid>
		<description><![CDATA[So I&#8217;ve been playing arround with orchestral composition for a while now and it never really gets a post. Most of what I&#8217;ve done is draft or concept and I rarely finish anything, but here are a few: Adventure of the Something Zombies Aproach Scary Spider]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been playing arround with orchestral composition for a while now and it never really gets a post. Most of what I&#8217;ve done is draft or concept and I rarely finish anything, but here are a few:</p>
<p><a href="/files/adventure_of_the_something.mp3" target="_blank">Adventure of the Something</a><br />
<a href="/files/zombies.mp3" target="_blank">Zombies Aproach</a><br />
<a href="/files/scary_spider.mp3" target="_blank">Scary Spider</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/03/12/some-orchestral-stuff/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TweenDark v0.666.3</title>
		<link>http://blog.dalejwilliams.com/2010/03/12/tweendark-v0-666-3/</link>
		<comments>http://blog.dalejwilliams.com/2010/03/12/tweendark-v0-666-3/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 03:55:46 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Metal]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=105</guid>
		<description><![CDATA[Looking for a completely Open Source, lightweight, easy to use tweening engine? So was I. I announce the first public release of TweenDark, an open source, lightweight, fast AS3 tweening engine. Click here to read more]]></description>
			<content:encoded><![CDATA[<p>Looking for a completely Open Source, lightweight, easy to use tweening engine? So was I.</p>
<p>I announce the first public release of TweenDark, an open source, lightweight, fast AS3 tweening engine.</p>
<p><a href="http://blog.dalejwilliams.com/tweendark/">Click here to read more.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/03/12/tweendark-v0-666-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>UbuntuStudio</title>
		<link>http://blog.dalejwilliams.com/2010/03/08/ubuntustudio/</link>
		<comments>http://blog.dalejwilliams.com/2010/03/08/ubuntustudio/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 08:46:19 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Misc / Other / Random]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=76</guid>
		<description><![CDATA[So I&#8217;m sporting Ubuntu Studio 9.10 at the moment. This is some excellent software. I&#8217;m surprised how user-friendly Ubuntu Linux has become &#8211; I&#8217;ve been flying through the UI, completing most tasks without the need to operate the console at all]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m sporting Ubuntu Studio 9.10 at the moment. This is some excellent software. I&#8217;m surprised how user-friendly Ubuntu Linux has become &#8211; I&#8217;ve been flying through the UI, completing most tasks without the need to operate the console at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/03/08/ubuntustudio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rotating Rotat</title>
		<link>http://blog.dalejwilliams.com/2010/02/17/rotating-rotat/</link>
		<comments>http://blog.dalejwilliams.com/2010/02/17/rotating-rotat/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 14:02:20 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rotat the Rat]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=68</guid>
		<description><![CDATA[So, I&#8217;ve been doing some more work on Rotat towards rotation. In this tech demo, the wall collision has been removed in favour of the ability to climb walls. I am certain that this has opened up some interesting gameplay possibilities &#8211; especially as the two behaviours can complement each other. EDIT: The demo has ]]></description>
			<content:encoded><![CDATA[<p><a href="/files/rotat2/Rotat.swf" target="_blank"><img src="/files/rotat_test2.png" alt="" width="550" height="300" /></a></p>
<p>So, I&#8217;ve been doing some more work on Rotat towards rotation. In this tech demo, the wall collision has been removed in favour of the ability to climb walls.</p>
<p>I am certain that this has opened up some interesting gameplay possibilities &#8211; especially as the two behaviours can complement each other.</p>
<p><strong>EDIT: </strong>The demo has been updated with more accuracy and wall clipping included. We&#8217;re still buggy, but coming&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/02/17/rotating-rotat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Secret of Milky Island</title>
		<link>http://blog.dalejwilliams.com/2010/02/11/the-secret-of-milky-island/</link>
		<comments>http://blog.dalejwilliams.com/2010/02/11/the-secret-of-milky-island/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 14:22:34 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Audio Production]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=62</guid>
		<description><![CDATA[This is a song that will likely be used for an upcoming campaign. Inspired by the work of Michael Land on Monkey Island. The Secret of Milky Island]]></description>
			<content:encoded><![CDATA[<p>This is a song that will likely be used for an upcoming campaign. Inspired by the work of Michael Land on Monkey Island.</p>
<p><a href="/files/the_secret_of_milky_island.mp3">The Secret of Milky Island</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/02/11/the-secret-of-milky-island/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rotat Engine</title>
		<link>http://blog.dalejwilliams.com/2010/02/08/rotat-engine/</link>
		<comments>http://blog.dalejwilliams.com/2010/02/08/rotat-engine/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 10:42:17 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rotat the Rat]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=39</guid>
		<description><![CDATA[This is an early demo of the newly rewritten Rotat Engine. Left / Right walk, space jumps. Some of the cool features it has: Tight, pixel-based collision detection. Real-time gravity. Camera control. The core has also been made in a very robust MVC-like pattern. This game will be a Handsome Lads game; as this is ]]></description>
			<content:encoded><![CDATA[<p><a href="/files/rotat1/Rotat.swf" target="_blank"><img src="/files/rotat_test1.png" alt="" width="550" height="300" /></a></p>
<p>This is an early demo of the newly rewritten Rotat Engine.</p>
<p>Left / Right walk, space jumps.</p>
<p>Some of the cool features it has:</p>
<ul>
<li>Tight, pixel-based collision detection.</li>
<li>Real-time gravity.</li>
<li>Camera control.</li>
</ul>
<p>The core has also been made in a very robust MVC-like pattern.</p>
<p>This game will be a<a href="http://www.handsomelads.com" target="_blank"> Handsome Lads</a> game; as this is a technology blog, any further announcements about it will probably be made there.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/02/08/rotat-engine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Website Up</title>
		<link>http://blog.dalejwilliams.com/2010/02/08/website-up/</link>
		<comments>http://blog.dalejwilliams.com/2010/02/08/website-up/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 10:33:51 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Misc / Other / Random]]></category>

		<guid isPermaLink="false">http://blog.dalejwilliams.com/?p=37</guid>
		<description><![CDATA[After a long wait, I&#8217;ve got my hosting back in order. I&#8217;ll be posting more frequently going forwards starting with the open source release of TweenDark, my lightweight AS3 animation/tweening engine and some cool game stuff for Rotat &#8211; which  has, I believe, been completely restarted twice since my website&#8217;s hosting issues. For those who ]]></description>
			<content:encoded><![CDATA[<p>After a long wait, I&#8217;ve got my hosting back in order. I&#8217;ll be posting more frequently going forwards starting with the open source release of TweenDark, my lightweight AS3 animation/tweening engine and some cool game stuff for Rotat &#8211; which  has, I believe, been completely restarted twice since my website&#8217;s hosting issues.</p>
<p>For those who wish to know, I am now on <a href="http://www.dreamhost.com">Dreamhost</a>. As far as hosting decisions go, this is easily the best I&#8217;ve made &#8211; so far they come highly recommended.</p>
<p>Unfortunately, a good amount of the linked filed have disappeared in the migration. I might bring some of it back down the track.</p>
<p>Also news is that I&#8217;m co-chairing an indie games studio called <a href="http://www.handsomelads.com" target="_self">Handsome Lads</a>.</p>
<p>I&#8217;d also like to thank <a href="http://www.mono-lab.net/">mono-lab</a> for the WordPress Theme &#8211; I will work towards building my own in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2010/02/08/website-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website Down</title>
		<link>http://blog.dalejwilliams.com/2009/03/09/website-down/</link>
		<comments>http://blog.dalejwilliams.com/2009/03/09/website-down/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 01:43:05 +0000</pubDate>
		<dc:creator>Dale J Williams</dc:creator>
				<category><![CDATA[Misc / Other / Random]]></category>

		<guid isPermaLink="false">http://dalejwilliams.com/?p=36</guid>
		<description><![CDATA[Hey guys, Just a quick note to let you know I&#8217;m going to be down for a few days as I switch hosts. This is largely due to a domain transfer that, for some reason, the current registrar couldn&#8217;t do immediately. When I come back I&#8217;ll be on a new host and will be looking ]]></description>
			<content:encoded><![CDATA[<p>Hey guys,</p>
<p>Just a quick note to let you know I&#8217;m going to be down for a few days as I switch hosts. This is largely due to a domain transfer that, for some reason, the current registrar couldn&#8217;t do immediately.</p>
<p>When I come back I&#8217;ll be on a new host and will be looking to make a few changes to the way I run my site. Expect something along the lines of seperate blogs for software, audio and an overarching personal blog for both (the latter to be similar to the way I run it now). This is, for the most part, due to the widening gap between my audio and software practices. Neither blog will be protected, or inaccessable from the other, I&#8217;m just trying to keep web types and musician types in the right spot.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dalejwilliams.com/2009/03/09/website-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
