<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-348348889650646951</id><updated>2011-10-23T22:38:19.645+01:00</updated><title type='text'>XAGE - Xna Adventure Game Engine</title><subtitle type='html'>In development:  An Xna based Adventure Game Engine for the creation of point and click games for Windows PC, Xbox360 (via Xbox Live Indie Games) and Mac/Linux/Smartphones (via Silverlight)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>71</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-5383158298144986259</id><published>2011-10-10T23:14:00.002+01:00</published><updated>2011-10-10T23:37:30.674+01:00</updated><title type='text'>Implementing AGS Script in C#</title><content type='html'>Previously for AGS conversions, XAGE would use a series of workarounds in order to shoehorn the AGS script into the XAGEScript.  As discussed in the last post, this method was becomingly increasingly brittle and it was not easy to know how well a particular game would run until after a conversion was attempted.&lt;br /&gt;&lt;br /&gt;Since moving to the new C# based scripting, there are still a number of workarounds required (offering index-based accessors, rather than XAGE's preferred unique string ID), though it is unavoidable that the two engines have converged even further.  It makes sense therefore to offer an interface for much, if not all of the existing AGS script in order for our new C# script to compile.  This has now mostly been done, and gives us a new metric for monitoring development progress.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.clarvalon.com/XAGE/XageProgress.png" title="Progress"&gt;&lt;img src="http://www.clarvalon.com/XAGE/XageProgress.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Current progress stands at 8%, though in reality the figures will soon be somewhat higher.  Much of the functionality already exists in XAGE (walking, talking, animating etc.), I just need to add the relevant hooks to make them usable via the new interface.  A fairly low percentage implementation, say 30-50%, should suffice for the majority of games, with the more esoteric functions given lower priority.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-5383158298144986259?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/5383158298144986259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=5383158298144986259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5383158298144986259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5383158298144986259'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2011/10/implementing-ags-script-in-c.html' title='Implementing AGS Script in C#'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7146690126194858716</id><published>2011-09-11T23:33:00.003+01:00</published><updated>2011-09-11T23:49:23.059+01:00</updated><title type='text'>A New Direction</title><content type='html'>It's fair to say that development on XAGE has slowed in the last eighteen months.  This has mostly been unavoidable due to external factors, though there has also been a technical culprit - a thorny design issue I'd been struggling to overcome.&lt;br /&gt;&lt;br /&gt;XAGEScript, which previously powered the engine, was XML-based and completely crafted from scratch.  I'm quite proud of how far I took it - essentially it became its own bona fide programming language, supporting standard programming concepts like loops, lists, expressions and a call stack.&lt;br /&gt;&lt;br /&gt;The trouble was, the more I focused on AGS conversions, the greater difficulty I had in adding additional complexity, not just within the script itself but the editor and the engine too.  The more hastily functionality was bolted on the messier and more unwieldy it became to maintain.  A hack built upon a fudge upon a hack soon results in an unpleasant programming experience.  When your free time is limited to the late evenings, you cannot afford to suffer any impediments to your motivation.&lt;br /&gt;&lt;br /&gt;Fortunately a workable solution has presented itself.  For a while I have been been &lt;a href="http://www.bigbluecup.com/yabb/index.php?topic=42140.msg558868#msg558868"&gt;toying with the idea&lt;/a&gt; of abandoning XAGEScript in favour of using C# as a pure scripting language.  This was especially attractive as AGS already uses a C-style syntax and so would aid any conversion substantially.  However, the plan was not without its sticking points:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;My original tests resulted in a large amount of garbage being generated.  This is the bane of all Xna developers as it kills performance on Xbox and WP7.&lt;/li&gt;&lt;li&gt;With a hand-built scripting system, iterating through each command was easy and therefore blocking a script (to, say, wait for a character to speak a line of dialogue) is reasonably trivial.  Doing the same in a raw C# script would require some horrendously complex &amp;amp; difficult to debug multi-threaded solution.&lt;/li&gt;&lt;/ol&gt;Regarding the first issue, after some experimenting with the Remote Performance Moniter I discovered a means of calling methods in external DLLs without generating additional garbage, including on the Xbox.&lt;br /&gt;&lt;br /&gt;Resolving the second issue has taken much more time, but has ultimately proved much easier than resorting to running multiple threads.  The C# &lt;span class="Apple-style-span"&gt;yield&lt;/span&gt; keyword is such a strange beast that it took some time to wrap my head around it.  Essentially it allows us to iterate through a block of code in the same way we would an array or list.  Using &lt;span class="Apple-style-span"&gt;yield return&lt;/span&gt; we can indicate whether a script is blocked and provide a mechanism for resuming it at a later time.&lt;br /&gt;&lt;br /&gt;However using this keyword does somewhat complicate the code, so with the aid of the &lt;a href="https://github.com/icsharpcode/NRefactory/"&gt;NRefactory&lt;/a&gt; Library I've added an additional step which automatically copies &amp;amp; updates your C# script to handle blocking, and therefore be usable within the XAGE engine:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=CSharp.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/CSharp.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The upshot is that it will be a TON easier for me to add new functionality - all I need to do is provide an interface and then implement it in the engine.  Previously I'd have to laboriously built a new class for each function and then wrestle with the editor code to provide a means for users to make their changes.&lt;br /&gt;&lt;br /&gt;It is a shame that in dropping XAGEScript we lose some ease-of-use and perks of solely using the Editor for scripting (for example, clicking on a background to very quickly set up a series of sequential Walk &amp;amp; Talk actions), but I'm convinced the benefits are absolutely worth it.  If you are familiar with any flavours of &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express"&gt;Visual Studio Express 2010&lt;/a&gt; then you'll know they're excellent (and free) tools for writing code, plus C# and .NET will provide game developers with a great many more options and flexibility.  Just being able to step through scripts one line at a time using the debugger is a tremendous boost to productivity.&lt;br /&gt;&lt;br /&gt;All the above is still experimental and is subject to ongoing work, although I do have a working prototype.  Alongside plugging the new scripting system into the XAGE Engine, there remain a few outstanding questions I've yet to tackle:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Whether loading the script .dll at runtime will be supported on all platforms (iPhone &amp;amp; Android specifically).&lt;/li&gt;&lt;li&gt;Whether the Iterators for the blockable scripts can be serialised in a satisfactory manner (i.e. loading and saving).&lt;/li&gt;&lt;li&gt;How exactly performance will compare against XAGEScript (mostly likely it will far outstrip it, though I've not yet tested this explicitly).&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7146690126194858716?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7146690126194858716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7146690126194858716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7146690126194858716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7146690126194858716'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2011/09/new-direction.html' title='A New Direction'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_CSharp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-40109480596381245</id><published>2011-06-14T19:57:00.004+01:00</published><updated>2011-06-14T22:18:44.961+01:00</updated><title type='text'>"Time Gentlemen, Please" on WP7</title><content type='html'>&lt;div&gt;In the words of the late, great Colin Loafshorts, "&lt;i&gt;Blogs are for updating, not apologising on for the lack of updates&lt;/i&gt;".  With that in mind, here's what I've been working on in stolen hours over the past six months:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/7opm02tnm3Q?fs=1" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's not so much &lt;i&gt;Point 'n Click&lt;/i&gt; as &lt;i&gt;Drag 'n Tap&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting the TGP port functioning at this level has taken some doing, not least because of the optimisations required to get performance anywhere near acceptable on a phone.  There's still a ton of work to do, but it's getting closer.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;I'd dearly love to talk about &lt;a href="http://www.bigbluecup.com/yabb/index.php?topic=42140.msg558868#msg558868"&gt;C# Scripting in XAGE&lt;/a&gt;, and exciting projects like &lt;a href="http://andrewrussell.net/exen/"&gt;Exen&lt;/a&gt; and &lt;a href="http://www.xamarin.com/"&gt;Xamarin&lt;/a&gt; but, golly, is that the time?  See you in six months!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-40109480596381245?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/40109480596381245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=40109480596381245' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/40109480596381245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/40109480596381245'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2011/06/time-gentlemen-please-on-wp7.html' title='&quot;Time Gentlemen, Please&quot; on WP7'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/7opm02tnm3Q/default.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7071320376816790149</id><published>2010-10-22T21:29:00.009+01:00</published><updated>2010-10-23T21:39:46.156+01:00</updated><title type='text'>Bumper Update</title><content type='html'>&lt;div&gt;&lt;div&gt;Blog Updates have been quite scarce of late, as they tend to become a lower priority when development time gets squeezed.  Yet progress continues to be made at a reasonable pace.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;XNA v4.0&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The latest version of the XNA has some changes to enable Microsoft to add Windows Phone 7 support.  Most importantly, it splits the framework up between two profiles - 'Reach' (the lesser) and 'HiDef' (the greater).  Fortunately, XAGE's current functionality fits neatly within the confines of the Reach profile, meaning it will continue to support Windows, Xbox as well as WP7.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are also a number of changes which, to paraphrase Microsoft's Shawn Hargreaves, '&lt;i&gt;break it good&lt;/i&gt;'.  Most of these have already been worked around, although there are some issues particularly around sprite rendering &amp;amp; IO.  What further complicates matters is that the three open source libraries upon which XAGE depends to allow it to target other platforms are all still based on XNA 3.1 - it's possible to work around this whilst they are updated, though it means the engine code will be further muddied with additional pre-compiler directives.  Until further notice, it's safe to consider all platforms officially broken until they're all fixed &amp;amp; re-tested.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Supported Platforms &amp;amp; Associated Costs&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The website is also a little neglected and out of date, which has caused some confusion regarding the current status of platform support.  Until now most of this information has been held loosely in my head, so hopefully this clarifies matters somewhat:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XAGE-License.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XAGE-License.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Where each image represents a required license (correct at time of writing):&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/License-XAGE.png" border="0" alt="Photobucket" /&gt; &lt;a href="http://www.clarvalon.com/"&gt;XAGE&lt;/a&gt; (&lt;i&gt;£?&lt;/i&gt;):  Required for any commercial games.  Freeware/non-profit games will not require a license.&lt;/li&gt;&lt;li&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/License-MS.png" border="0" alt="Photobucket" /&gt; &lt;a href="http://create.msdn.com/en-US/home/membership"&gt;Microsoft App Hub Membership&lt;/a&gt; (&lt;i&gt;$99 annually&lt;/i&gt;):  Required for any games released on Xbox360 and Windows Phone 7.&lt;/li&gt;&lt;li&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/License-Mono.png" border="0" alt="Photobucket" /&gt; &lt;a href="http://monotouch.net/"&gt;MonoTouch&lt;/a&gt; / &lt;a href="http://monodroid.net/"&gt;MonoDroid&lt;/a&gt; (&lt;i&gt;$399 each, one-off payment with 1 year of updates&lt;/i&gt;):  Required to deploy XAGE games (based on Mono) for iOS and Android platforms respectively.&lt;/li&gt;&lt;li&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/License-Apple.png" border="0" alt="Photobucket" /&gt; &lt;a href="http://developer.apple.com/programs/ios/"&gt;Apple iOS Developer Program&lt;/a&gt; (&lt;i&gt;$99 annually&lt;/i&gt;):  Required in order to deploy any game to the iPhone, iPad and iPod Touch.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;To Summarise:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;It is completely free to create freeware XAGE games for Windows &amp;amp; Silverlight (in the future this will likely also include Linux &amp;amp; Mac OS X).&lt;/li&gt;&lt;li&gt;It is not possible to create freeware Xbox360 games due to Microsoft's pricing model.&lt;/li&gt;&lt;li&gt;The iOS platforms are the most expensive for commercial XAGE games, given they require three licenses (XAGE, Apple, MonoTouch) not to mention any additional hardware costs.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;List Support&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The most recent addition to the XAGE engine is basic support for Lists.  The decision was made as they offer greater flexibility than standard arrays, and will automatically grow to fit the desired size.  AGS Arrays will automatically converted as XAGE Lists.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Alongside this, basic string manipulation is in place (long overdue as absolutely required, not least for softcoded LucasArts style Verb GUIs).  XAGE will understand C-style formatted strings and concatenate them as required.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a result of this new data structure, in a stroke '&lt;i&gt;!&lt;/i&gt;' went from being quite broken to fully playable from start to end.  All of the puzzles now work (including that pesky DNA phone) and besides a few wonky quirks it's starting to look pretty good.  As usual, the Editor itself is incomplete and I'll get around to this when needed.  In the meantime there's still a few things remaining in order to complete '&lt;i&gt;!&lt;/i&gt;':&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Three remaining AGS Functions need to be mapped (Character.SayAt, SetMusicVolume, SetMusicRepeat).&lt;/li&gt;&lt;li&gt;Fix some animation oddities.&lt;/li&gt;&lt;li&gt;Fix some GUI issues (GUI background colours)&lt;/li&gt;&lt;li&gt;Fix the load/save mechanism as per of new Xna Framework version.&lt;/li&gt;&lt;li&gt;Resolve music seek issue.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7071320376816790149?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7071320376816790149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7071320376816790149' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7071320376816790149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7071320376816790149'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/10/bumper-update.html' title='Bumper Update'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_XAGE-License.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7388949273007432503</id><published>2010-09-10T07:39:00.002+01:00</published><updated>2010-09-10T08:00:59.220+01:00</updated><title type='text'>XAGE on iPhone</title><content type='html'>About a year ago if I'd been asked the likelihood of XAGE running on any of Apple's handhelds, I'd have said it was about as likely as &lt;a href="http://www.giantbomb.com/news/i-played-duke-nukem-forever-was-it-all-a-dream/2518/"&gt;Duke Nukem Forever being released&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However, after several weeks of tinkering, head-scratching and cursing, it's finally up and running on the iPhone/iPad emulator using the magic of &lt;a href="http://monotouch.net/"&gt;MonoTouch&lt;/a&gt; and &lt;a href="http://xnatouch.codeplex.com/"&gt;XnaTouch&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/zo8RpxDBi-w?fs=1&amp;amp;hl=en_GB"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/zo8RpxDBi-w?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Caveats:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Obviously, this is an emulator and not the real thing.  It's difficult to say what performance will be like on the actual hardware.&lt;/li&gt;&lt;li&gt;Audio isn't working yet, and various things are currently unsupported in the XnaTouch framework (RenderTargets etc - the usual suspects).&lt;/li&gt;&lt;li&gt;Zero thought has been put into the touch interface.  It's likely any game that uses more than one mouse button will need to have the UI re-designed.&lt;/li&gt;&lt;li&gt;MonoTouch is a commercial framework, with a slightly eye-watering $400 one-off license fee (although thankfully Novell do offer a non-expiring free trial).&lt;/li&gt;&lt;/ul&gt;Apple's announcement yesterday that they're &lt;a href="http://www.apple.com/pr/library/2010/09/09statement.html"&gt;relaxing the Terms &amp;amp; Conditions of their Developer License&lt;/a&gt; could not have come at a better time, as it pretty much guarantees the safe passage of any XAGE game to the App Store.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7388949273007432503?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7388949273007432503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7388949273007432503' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7388949273007432503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7388949273007432503'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/09/xage-on-iphone.html' title='XAGE on iPhone'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3801543045915586395</id><published>2010-08-20T00:09:00.003+01:00</published><updated>2010-08-20T00:44:07.915+01:00</updated><title type='text'>XAGE on Ubuntu</title><content type='html'>&lt;div&gt;My relationship with Linux has traditionally been rather negative, starting some ten years ago at university.  The key combination of Shift+Insert would make the desktop of whatever particular distribution I was using crash, and thus a decade of mild distrust began.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;This evening, armed with a new 8GB usb stick and an installation of Lucid Lynx (Ubuntu 10.04), I've learned things have improved dramatically in that time.  The OS is nippy and slick, Chrome flies and even MonoDevelop runs reasonably well.  In a few short hours I've been able to get XAGE running natively from the shared codebase:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XAGEUbuntu.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XAGEUbuntu.png" border="0" alt="Don't apt-get too excited" width="450" height="300" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is, unfortunately, the most exciting screenshot I can currently muster up.  My custom binary loader seems to be broken, and I imagine the problems with audio and video encountered previously will return, but otherwise I'm happy with the progress made.  If I can get it all working then it can only be good news for Mac OS, Android and iPhone (assuming those pesky licensing hurdles can be overcome).&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3801543045915586395?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3801543045915586395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3801543045915586395' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3801543045915586395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3801543045915586395'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/08/xage-on-ubuntu.html' title='XAGE on Ubuntu'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_XAGEUbuntu.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-2278108235776517240</id><published>2010-08-07T10:04:00.004+01:00</published><updated>2010-08-11T00:30:06.077+01:00</updated><title type='text'>Back to work</title><content type='html'>&lt;div&gt;So the World Cup was a bit of a noisy disappointment, but Read Dead Redemption saved the summer hiatus by having, in inimitable Rockstar style, quite possibly the &lt;a href="http://www.xbox360achievements.org/game/red-dead-redemption/achievement/40040-Dastardly.html"&gt;best achievement ever&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd been aware of &lt;a href="http://www.monoxna.org/"&gt;MonoXna&lt;/a&gt; for a few years, and had always known it as a dead project, so it was with some surprise that I saw that it had been quietly resurrected with some recent code submissions.  I spent a good amount of time with it and had mixed results.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The good news is that I was able to get XAGE up and running after a few days.  Similar to how Silversprite  works, MonoXNA allows XNA games to be run without any dependency on the original Microsoft framework, allowing you to target new platforms (most notably Mac &amp;amp; Linux, and bodes well for future projects like &lt;a href="http://go-mono.com/monodroid/"&gt;MonoDroid&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The bad news is that neither audio or Texture2Ds seem to be fully supported.  I'm sure it's possible to workaround some of these issues and I'll return to MonoXna again in the future when I have more time.  Silverlight continues to be the secondary focal point for development. This is because playing the games through a web browser is still compelling and novel enough to devote time and effort to, and also because it's easy for me to develop &amp;amp; test. I don't currently own a spare machine for a decent linux distribution (and lack the space for a dual-boot, or even a large enough usb stick for ubuntu), and also I'm too perpetually poor to afford a Mac.  Also, MonoDevelop curiously runs like dirt on my netbook.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Work has now finally been resumed on XAGE proper; my evening was spent adding support for running animations backward.  This was to enable the little tramp in Ben Chandler's '&lt;i&gt;!&lt;/i&gt;' to animate correctly: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=bf131d6b.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/bf131d6b.png" border="0" alt="xage !" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm using this game as a test case to help me figure out a workable design for arrays, which will help when I go back to &lt;i&gt;TGP&lt;/i&gt;.  Incidentally, Zombie Cow's game for Channel4, &lt;i&gt;Privates&lt;/i&gt;, has been released and bucks the trend of most edutainment titles by &lt;a href="http://www.e4.com/game/privates.html"&gt;actually being rather spiffy&lt;/a&gt;. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-2278108235776517240?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/2278108235776517240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=2278108235776517240' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2278108235776517240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2278108235776517240'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/08/back-to-work.html' title='Back to work'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_bf131d6b.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-4575342015641250972</id><published>2010-06-10T06:15:00.002+01:00</published><updated>2010-06-10T06:33:03.022+01:00</updated><title type='text'>The Holy Triumvirate of Timesinks</title><content type='html'>We are passing through a short period of History that scientists and theologians alike will later agree to describe as, "Mentally Busy".  This doesn't look set to change over the next six weeks due to &lt;b&gt;Red Dead Redemption&lt;/b&gt;, the &lt;b&gt;World Cup&lt;/b&gt; and a long overdue &lt;b&gt;house move&lt;/b&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I haven't completed a game since GTA4, so it is fitting that RDR is the first game in two years that has managed to sustain my attention despite the numerous obligations and distractions.  It's a very pretty title that manages to be supremely well crafted and horrendously buggy at the same time.  Just riding around shooting at wildlife is extremely satisfying.  That probably makes me a bad person.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a free tip on how to upset your significant other:  Tell her that most of your happiest memories revolve around the World Cup.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, by early-July I should be in a position to shave a whopping 12-15 hours off my weekly commute which will give me, amongst other things, more time to spend working on that pesky game engine thingy.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-4575342015641250972?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/4575342015641250972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=4575342015641250972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4575342015641250972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4575342015641250972'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/06/holy-triumvirate-of-timesinks.html' title='The Holy Triumvirate of Timesinks'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-4048993935084584576</id><published>2010-05-29T13:09:00.004+01:00</published><updated>2010-05-29T13:56:55.923+01:00</updated><title type='text'>Super-Secret Game: Revealed</title><content type='html'>&lt;div&gt;As tweeted earlier today by &lt;a href="http://twitter.com/thezombiecow"&gt;@thezombiecow&lt;/a&gt;, the super-secret AGS -&gt; XAGE conversion project is &lt;i&gt;Time Gentlemen, Please&lt;/i&gt;.  Obviously this is massively exciting for a number of reasons:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;TGP won Best Game, Best Gameplay, Best Dialogue and others in the &lt;a href="http://www.americangirlscouts.org/agswiki/AGS_Awards_2009"&gt;2009 AGS Awards&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;TGP is the first (and only?) AGS game to be &lt;a href="http://store.steampowered.com/app/37400/"&gt;released on Steam&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;TGP has received a decent amount of mainstream attention, and has a &lt;a href="http://www.metacritic.com/games/platforms/pc/timegentlemenplease"&gt;metacritic rating of 84&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;TGP features &lt;a href="http://www.wouldyoukindly.com/nazi-dinosaurs-abound-in-time-gentlemen-please/"&gt;Nazi Dinosaurs&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;More accurately, I'm actually working on the demo as a feasibility study and it's going pretty well.  The ultimate aim is to get the full game onto Xbox Live.  It's a huge amount off work but I'm confident it can be done.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Zombie Cow Studios are currently venturing into the third dimension, with some hand-holding from Channel4, in &lt;i&gt;Privates&lt;/i&gt; (read the eye-opening press release &lt;a href="http://www.zombie-cow.com/?page_id=807"&gt;here&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Oceanspirit Dennis:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've actively been working on a few others things that have helped development across the board (finicky things like handling GUI transparency).  One is Ben304's mock RPG, &lt;i&gt;Oceanspirit Dennis: Scourge of the Underworld&lt;/i&gt;.  It's essentially a satire on JRPGs (at least, that was my interpretation).  It has since spawned a number of increasingly peculiar sequels, all of which are brain-achingly canon.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;An interesting diversion and XAGE's second full conversion - play it online here:  &lt;a href="http://www.clarvalon.com/XAGE/games/ODennis/"&gt;http://www.clarvalon.com/XAGE/games/ODennis/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To quote the author:  '&lt;i&gt;Don't play if you're looking for a rewarding experience!'&lt;/i&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ben has also recently open-sourced '&lt;i&gt;!&lt;/i&gt;', his well-received comic-panelled, robotic rap-athon.  You should all follow &lt;a href="http://twitter.com/ben_304"&gt;@ben_304&lt;/a&gt; and ask him when he finds time to sleep.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Other Stuff:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Expressions are supported, in that XAGE now copes with things like &lt;i&gt;cChar.Walk(cChar.X + 10, cChar.Y - 20)&lt;/i&gt;.  &lt;/li&gt;&lt;li&gt;RenderTargets are no longer used when no scaling is required, improving performance in certain instances.&lt;/li&gt;&lt;li&gt;Silverlight now uses png textures instead of xnb, improving load times and further reducing the xap filesize.&lt;/li&gt;&lt;li&gt;Internal Dictionaries are generated in-game during initialisation.  This means that, if a room has 300 objects, the engine no longer needs to loop through 299 to retrieve the last object when it is  referenced via scripting.  Certain methods that were previously using 4-5% of all processor time now use a tiny fraction.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-4048993935084584576?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/4048993935084584576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=4048993935084584576' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4048993935084584576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4048993935084584576'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/05/super-secret-game-revealed.html' title='Super-Secret Game: Revealed'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-514796407921889827</id><published>2010-04-26T21:47:00.003+01:00</published><updated>2010-04-26T21:53:49.526+01:00</updated><title type='text'>Awakener: Reloaded</title><content type='html'>&lt;div&gt;With the recent release of Silverlight v4, &lt;i&gt;Awakener&lt;/i&gt; has received a small but much-needed update:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Right Mouse Button support&lt;/b&gt; - One long-running gripe with Flash is that any right click will open a context menu that usually can't be disposed of without selecting an item or, if you're determined not to let the pesky menu win, alt-tabbing your way out of it.  It is a relief that Microsoft has opted to allow developers to override the existing right mouse button events to their own ends.  No more awkward CTRL + LMB needed.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Full Screen Mode&lt;/b&gt; - Awakener can now be scaled up and down at runtime (previously just down due to a SilverSprite bug).  This means we can now use Silverlight's Full Screen mode, as XAGE will scale the game up depending on the user's resolution.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Performance improvements&lt;/b&gt; - As mentioned recently, load times in particular are more brisk, although this perhaps isn't as noticeable given Awakener's small size.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;These few changes make &lt;i&gt;Awakener&lt;/i&gt; feel less like a clunky web app and more like the original AGS incarnation.  I'd argue that it's even more intuitive as you don't have to worry about installations etc.  Judge for yourself:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.clarvalon.com/XAGE/games/Awakener/"&gt;http://www.clarvalon.com/XAGE/games/Awakener/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://apps.facebook.com/awakener"&gt;http://apps.facebook.com/awakener&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;I've got a few more ideas for optimisations specifically for Silverlight but for now it's back to adding new functionality.  Next up:  Expressions.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-514796407921889827?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/514796407921889827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=514796407921889827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/514796407921889827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/514796407921889827'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/04/awakener-reloaded.html' title='Awakener: Reloaded'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-5017123876603496807</id><published>2010-04-21T06:26:00.002+01:00</published><updated>2010-04-21T06:29:00.139+01:00</updated><title type='text'>More Optimisations</title><content type='html'>&lt;div&gt;Talking about optimisations isn't especially exciting, though recent changes have been crucially important to making larger, more complex games viable on XAGE.  The &lt;i&gt;super-secret&lt;/i&gt; game, for instance, wasn't running at all well on the 360.  After a productive weekend it now performs rather admirably, which is a major relief.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Engine - Load Times&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Xml serialization is great, but - cripes - it's incredibly slow on the xbox.  The main game content was taking in the region of 60 to 70 seconds to load, which might be passable for a Triple-A title but very undesireable for an Indie Game with a short time period in which to make a good impression.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Automatic XNB serialisation built into Xna Game Studio wasn't really an option, and would have added a an extra layer of complexity to the publishing process.  The only remaining solution was to write all data to a binary stream, which is blazing fast and supported on all platforms, but has obvious downsides:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;You have to write load &amp;amp; save code for EACH class you want persist (at 70+ classes, this is a huge job).&lt;/li&gt;&lt;li&gt;Each time you change a class, you also have you to update and test the IO code (adding a painful maintenance overhead).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;The eureka moment came from realizing that I could write a routine to generate the C# IO code automatically, and use this to extend my existing classes.  I've written a &lt;a href="http://forums.xna.com/forums/55.aspx"&gt;summary of my solution&lt;/a&gt; on the Xna Forums.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The load time is now down to about 10 seconds, including all the initial graphics and audio - much better!  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Engine - Garbage Collection&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As mentioned previously, the X360 garbage collector is also horrifically slow.  The super-secret game was causing XAGE to generate 1mb of garbage a second, causing a stuttering that was particularly noticeable when moving the cursor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Using Collection Pools for the scripting routines and removing some sloppy CopyTo commands have reduced this to about 120k per second, meaning the GCs now occur once every 8 or 9 seconds and are less noticeable.  I'll return to this in the future and should be able to reduce it further still.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Editor - AGS Conversions&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The scripts are now processed in smaller chunks, speeding up some of the string manipulations dramatically.  The HitchHiker's demo, quite frankly, used to take an absolute age to convert to XAGE and now the whole thing takes less than half a minute. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-5017123876603496807?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/5017123876603496807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=5017123876603496807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5017123876603496807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5017123876603496807'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/04/more-optimisations.html' title='More Optimisations'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3147816720028420972</id><published>2010-04-09T21:54:00.003+01:00</published><updated>2010-04-10T09:14:31.263+01:00</updated><title type='text'>Hodge Podge</title><content type='html'>&lt;div&gt;This post was started about three weeks ago, which may give some indication of how limited time is at the moment.  It's a bit of a hodge-podge of news.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Optimisations&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Work has begun on the next AGS game conversion - I'm not really in a position to reveal anything other than to say that it's a &lt;b&gt;super-exciting&lt;/b&gt; project (as well as a massively complicated challenge).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Due to its size, some frailties within both XAGE Editor and the engine itself have been exposed.   I've addressed some of these accordingly:  items for scripts are now selected via dropdowns &amp;amp; lists rather than the previous big shiny buttons, the treeview refreshes a bit more efficiently and conversions have been speeded up after ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Profiling&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Converting small games is reasonably fast, though the process involves a lot of string manipulation and lookups and so takes exponentially longer the larger the game is.  This was a problem for two games inparticular, taking anything between 5-10 minutes to convert - not a particularly productive length of time when testing small tweaks and changes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've managed to reduce this time by profiling the application.  Using a profiler to identify a bottleneck is &lt;i&gt;immensely&lt;/i&gt; satisfying.  I'd gotten into the bad habit of using ToUpper() a lot when comparing strings, when there's much better performance to be had using String.Compare and ignoring case sensitivity.  Other simple changes like using String Builders instead of concatenations have helped speed up the process.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another useful outcome from profiling is identifying where garbage collection is occurring.  One of the benefits of C# is not worrying too much about memory management. The xbox360 Garbage Collector isn't great however, and forces you to be mindful of what you're instatiating within each game loop.  As it turns out, some rather innocuous code can be the difference between a game that runs at 2 fps and one that runs smoothly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are plenty of further optimisations to be made; XAGE's scripting creates more garbage than I'd like it to.  When you have certain scripts with 10+ conditional statements that run 40 times per second, the garbage can quickly add up and cause stuttering.  I'm also going to run a few tests using Automatic XNB serialization to improve load times on the 360 (assuming it's possible to do this using MSBuild).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;New features&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Support for AGS-style custom modules has been tentatively added, albeit in a slightly clunky way (slotted into standalone rooms for now).  It's not ideal but it works, and will do until I get around to implementing a more elegant solution.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other bits and bobs have been added, some of them purely to cater for some legacy AGS design oddities (like having room co-ordinates that operate at different resolutions).  I've jotted out a few designs for designs for things like Expressions &amp;amp; Extension Methods so they should be getting rolled out over the coming months.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;iPhone Support&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Apple's T&amp;amp;C's for iPhone/iPod Touch firmware v4 (I do find it quite odious that they charge for firmware updates!) include the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sadly, this would appear to rule out developers ever using things like &lt;a href="http://theflashblog.com/?p=1888"&gt;Flash-to-iPhone compilers&lt;/a&gt;, MonoXna and MonoTouch.  Consequently, it is now looking very unlikely that XAGE will ever support the iPhone.  Bah.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On a happier note, Silverlight v4 should be released in a few days so &lt;i&gt;Awakener&lt;/i&gt; will shortly be getting an update.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3147816720028420972?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3147816720028420972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3147816720028420972' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3147816720028420972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3147816720028420972'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/04/hodge-podge.html' title='Hodge Podge'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-9102476132561730509</id><published>2010-03-07T10:03:00.003Z</published><updated>2010-03-07T10:25:39.117Z</updated><title type='text'>XNA on Windows Mobile 7</title><content type='html'>&lt;div&gt;Windows Mobile has never had a good reputation.  Microsoft are looking to change that with Windows Mobile 7, which looks very ZuneHD in nature.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The good news is that Windows Mobile 7 will &lt;a href="http://blogs.msdn.com/ckindel/archive/2010/03/04/different-means-better-with-the-new-windows-phone-developer-experience.aspx"&gt;support XNA natively&lt;/a&gt;, meaning for the first time XAGE should be directly supported on a smartphone.  This is a very different to the proposed iPhone support, which remains purely hypothetical at this stage. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;XAGE &lt;i&gt;Awakener&lt;/i&gt; has been in the wild for a week and has been &lt;a href="http://www.bigbluecup.com/yabb/index.php?topic=40264.0"&gt;received pretty well&lt;/a&gt;.  I've learnt a few things that will come in useful for future commercial releases.  General consensus is that lack of RMB support is a pain, though this should be rectified once Silverlight v4 comes out of beta. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is a relief to have something tangible to show after nearly two years of development.  I feel like Silverlight has been proven to be a viable release platform for adventure games.  The next two major milestones are to do the same for the Xbox360 and also release a stable version of XAGE Editor. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've had a handful of approaches from individuals about working on some other projects, so it will be interested to see if any of those pan out.  In the meantime, there's still plenty to be getting on with.  Amongst those is, yes, revisiting &lt;i&gt;Awakener&lt;/i&gt;.  As alluded to in the &lt;a href="http://www.youtube.com/watch?v=80sdyaJl_Ko"&gt;conversion video&lt;/a&gt;, the &lt;i&gt;on_mouse_click&lt;/i&gt; function isn't yet handled and all user input is still hardcoded in XAGE.  Once this is sorted it should add a new level of usability to other converted AGS games.  Other short terms goals include:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Cleaning up XAGE Editor.&lt;/li&gt;&lt;li&gt;Completing GUI editing.&lt;/li&gt;&lt;li&gt;Adding support for &lt;i&gt;OpenQuest&lt;/i&gt;'s GUIs.&lt;/li&gt;&lt;li&gt;Updating &lt;i&gt;The Fourth Wall&lt;/i&gt; to the latest version (replacing deprecated actions).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-9102476132561730509?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/9102476132561730509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=9102476132561730509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/9102476132561730509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/9102476132561730509'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/03/xna-on-windows-mobile-7.html' title='XNA on Windows Mobile 7'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-1227836538643461202</id><published>2010-03-01T22:19:00.003Z</published><updated>2010-03-01T23:02:34.056Z</updated><title type='text'>XAGE Awakener - Live</title><content type='html'>&lt;div&gt;Five months of my spare time condensed into a single blog entry: &lt;b&gt;The XAGE version of Awakener is finished&lt;/b&gt;.  Huzzah.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can play it one of two ways (although they're essentially the same thing):&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Directly in a browser - &lt;a href="http://www.clarvalon.com/XAGE/games/Awakener/"&gt;http://www.clarvalon.com/XAGE/games/Awakener/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Via Facebook - &lt;a href="http://apps.facebook.com/awakener/"&gt;http://apps.facebook.com/awakener/&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;To the best of my knowledge, this represents several firsts:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;First AGS game to be ported to XAGE (and therefore be playable online &amp;amp; on xbox 360).&lt;/li&gt;&lt;li&gt;First public XAGE game release.&lt;/li&gt;&lt;li&gt;First Xna-based game to become a facebook app(?).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;As always, the XAGE project is hungry for feedback.  &lt;b&gt;Massive thanks&lt;/b&gt; to &lt;a href="http://ben304.blogspot.com/"&gt;Ben Chandler&lt;/a&gt; and &lt;a href="http://twitter.com/billreiss"&gt;Bill Reiss&lt;/a&gt;, without whom the above would not have been possible.  Ta also to all the last-minute beta testers.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-1227836538643461202?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/1227836538643461202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=1227836538643461202' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1227836538643461202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1227836538643461202'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/03/xage-awakener-live.html' title='XAGE Awakener - Live'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-4258525191979396396</id><published>2010-02-28T11:46:00.002Z</published><updated>2010-02-28T11:49:54.352Z</updated><title type='text'>Two Requests</title><content type='html'>&lt;div&gt;&lt;ol&gt;&lt;li&gt;Anyone who can spare twenty minutes and would like to beta-test a super-secret* silverlight game, please email me at &lt;b&gt;clarvalon@live.co.uk&lt;/b&gt; and I'll pass on the link.  It would really help me out to get a fresh set of eyes on it, and to get a feel for performance on a range of machines. &lt;/li&gt;&lt;li&gt;Bit of a long shot, this:  There was an anonymous poster a few months back who was in the process of writing their own pathfinding algorithm, using boxes similar to XAGE.  If you could get in touch, It'd be great to pick your brains over how you implemented the line-of-site functionality I remember seeing in your youtube videos.  XAGE's pathfinding is only about 75% of where I'd like it to be.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;* Well, not that secret if you've been paying any sort of attention in the last six months.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-4258525191979396396?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/4258525191979396396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=4258525191979396396' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4258525191979396396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4258525191979396396'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/02/two-requests.html' title='Two Requests'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-1540440250181983121</id><published>2010-01-24T17:16:00.004Z</published><updated>2010-02-20T14:28:33.194Z</updated><title type='text'>XAGE Games as Facebook Apps</title><content type='html'>&lt;div&gt;Regardless of what you may think about Zynga, the &lt;a href="http://www.gamasutra.com/blogs/MarkNewheiser/20091204/3733/Farmville_Social_Gaming_and_Addiction.php"&gt;numbers reported to be playing FarmVille are astonishing&lt;/a&gt;.  This is due, in no small part, to the viral manner in which the game is distributed via Facebook.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I spent the morning having a quick look at the Facebook API when it suddenly dawned on me - Silverlight Applications (and therefore games) are supported.  A few hours later I'd been able to set up a quick test App using the latest &lt;i&gt;Awakener&lt;/i&gt; build: &lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=AwakenerFB.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/AwakenerFB.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Note:&lt;/b&gt;  The App itself has &lt;i&gt;not&lt;/i&gt; been submitted to the Facebook Application Directory and it is linking to the game via a local host, but it's pleasing how simple this proof-of-concept has been.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There's a lot of potential with this.  It could be used as a means of distributing a demo and raising awareness for a commercial game, or it could be used to give freeware games a larger audience (with, perhaps, a paypal donate button attached to the app).  Or there could be integration with &lt;a href="http://www.facebook.com/help/?page=837"&gt;Facebook Credits&lt;/a&gt; e.g. reach a certain level and you need to cough up to keep playing, similar to the Xbox Indie Trial system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Chances are I'll need a new 'Publish to Facebook' option in XAGE Editor.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-1540440250181983121?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/1540440250181983121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=1540440250181983121' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1540440250181983121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1540440250181983121'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/01/xage-games-as-facebook-apps.html' title='XAGE Games as Facebook Apps'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_AwakenerFB.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-2972976108692143903</id><published>2010-01-23T23:44:00.004Z</published><updated>2010-01-23T23:59:32.447Z</updated><title type='text'>Compression &amp; Encryption</title><content type='html'>&lt;div&gt;Over the last few days I've cleared a couple of crucial items from the roadmap that I've been putting off for months.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For reasons that escape me now, XAGE Editor was using a different zipping library than the engine itself.  Now everything uses the excellent SharpZipLib library, which has provided some decent space savings when it comes to publishing XAGE games to different platforms.  This is how all versions compare in their distributable packages, in order of size:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;   XAGE &lt;i&gt;Awakener&lt;/i&gt; - Silverlight (.xap): &lt;b&gt;5.28&lt;/b&gt;mb &lt;/li&gt;&lt;li&gt;   AGS &lt;i&gt;Awakener&lt;/i&gt; - Native Windows (.zip): &lt;b&gt;5.71&lt;/b&gt;mb&lt;/li&gt;&lt;li&gt;   XAGE &lt;i&gt;Awakener&lt;/i&gt; - Xbox 360 (.ccgame): &lt;b&gt;6.44&lt;/b&gt;mb&lt;/li&gt;&lt;li&gt;   XAGE &lt;i&gt;Awakener&lt;/i&gt; - Native Windows (.zip): &lt;b&gt;7.67&lt;/b&gt;mb&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;So as it currently stands, the Silverlight version is the smallest, and comes in at a paltry 1.8mb with the music removed.  Whether these relative sizes will scale this way for larger games remains to be seen, but considering XBLIG's can be up to 200mb in size, the compression is more than satisfactory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In addition, save game files are now also compressed, with a typical save for &lt;i&gt;Awakener&lt;/i&gt; coming in at about 60k.  Loading and saving isn't as snappy as I'd like it to be (particularly on Silverlight) as there's a lot going on in the background but it's never more than a few seconds.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the past I've touched upon encryption.  It's important to ensure all of a game's raw assets are protected from both casual inspection and more determined snooping.  As the heavy-duty AES encryption wasn't supported on the Xbox &amp;amp; Silverlight, I've had to look elsewhere.  I've now implemented a system I'm reasonably happy with, as everything is now locked away from prying eyes.  This also includes save files, to prevent tampering. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, &lt;i&gt;Awakener&lt;/i&gt; now has only &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;49&lt;/span&gt; script errors remaining.  I said I'd be happy if I got it under 100.  Consider me ecstatic if I get it down to under 10.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-2972976108692143903?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/2972976108692143903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=2972976108692143903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2972976108692143903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2972976108692143903'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/01/compression-encryption.html' title='Compression &amp; Encryption'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7226668576233522314</id><published>2010-01-19T10:52:00.005Z</published><updated>2010-01-19T22:06:17.924Z</updated><title type='text'>AeroNuts</title><content type='html'>&lt;div&gt;The ninth conversion project.  &lt;a href="http://www.bigbluecup.com/yabb/index.php?action=profile;u=8831"&gt;Abstauber&lt;/a&gt; from the AGS forums kindly offered to send me the source to his MAGS winner, &lt;i&gt;AeroNuts&lt;/i&gt;.  It's part SCUMM-esque point 'n click, part arcade shoot-em-up (such is the versatility of the AGS engine):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=AeroNutsXAGE.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/AeroNutsXAGE.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As expected, the shmup parts don't run at all.  The adventuring sections are up and running, though they are not especially functional as &lt;i&gt;AeroNuts&lt;/i&gt;, much like the &lt;i&gt;HitchHikers&lt;/i&gt; remake, relies quite heavily on custom modules.  I had to implement a small, temporary hack in order to get the &lt;i&gt;character.GSay()&lt;/i&gt; statements to convert into XAGE Talk Actions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's been a useful exercise in that it has helped identify and fix a handful of bugs with both the AGS Plugin and XAGE Editor.  As with all conversions, I'll be revisiting them periodically as XAGE matures.  Most of them will become more playable when certain input-related functions are handled correctly.  You can find the original version of AeroNuts &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=1238"&gt;here&lt;/a&gt;.  Well worth a look.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7226668576233522314?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7226668576233522314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7226668576233522314' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7226668576233522314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7226668576233522314'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/01/aeronuts.html' title='AeroNuts'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_AeroNutsXAGE.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-6100361847138634311</id><published>2010-01-09T14:17:00.003Z</published><updated>2010-01-09T14:56:51.171Z</updated><title type='text'>Odot Tamat On</title><content type='html'>A few days ago I came across the source code for an AGS game, &lt;i&gt;Odot Tamat On&lt;/i&gt;, by &lt;a href="http://www.bigbluecup.com/yabb/index.php?action=profile;u=5932"&gt;Zabnat&lt;/a&gt;.  It has an interesting cartoon art style and with a few minor tweaks I'm able to get the introductory cutscene to run in XAGE:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=OdotXAGE.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/OdotXAGE.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The number of scripting errors wasn't too high, at &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;719&lt;/span&gt;.  It's worth noting that none of the AGS conversions play particularly well at the moment other than &lt;i&gt;Awakener&lt;/i&gt; (itself down to &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;78&lt;/span&gt; errors), but improvements remain iterative and noticeable over time.  You can play the original, rhyme-filled AGS version of &lt;i&gt;Odot Tamat On&lt;/i&gt; &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=913"&gt;here&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Elsewhere, I've made another revision to the animation system in order to cater for AGS-style views.  Each character can now switch between views in order to more easily change the walking or talking animations.  The main difference is that views are character-specific rather than from a separate pool that all characters can access.  I can understand the reason why they're organised like this in AGS, but as with dialogues/conversations I'm loathe to separate it all to that extent as it seems slightly unintuitive to the end-user.  To simplify things I've rename 'Animation Frames' to 'Frames' and 'Custom Animations' to just 'Animations'.  Now a script can run both a specific animations or an animation belonging to the current view.  This means XAGE can now convert AGS code like &lt;i&gt;cFadi.Loop = 0&lt;/i&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=Views.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/Views.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Almost all of the character animations now run perfectly in XAGE, which is a hurdle I'm relieved to have overcome.  Once I've completed the following, &lt;i&gt;Awakener&lt;/i&gt; will be pretty much done, excluding walkboxes:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Script Stacking.&lt;/li&gt;&lt;li&gt;Script parameters and return values.&lt;/li&gt;&lt;li&gt;Calling scripts in IF/While conditions.&lt;/li&gt;&lt;li&gt;Timers.&lt;/li&gt;&lt;li&gt;GUI manipulation.&lt;/li&gt;&lt;li&gt;Handling special AGS functions ('on_mouse_click, 'repeatedly_execute' etc).&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;On a related note, &lt;i&gt;Awakener&lt;/i&gt; is one of an impressive five games by Ben nominated for the &lt;a href="http://jayisgames.com/best-of/2009/freeware/adventure/"&gt;JayIsGames best freeware adventure game of 2009&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-6100361847138634311?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/6100361847138634311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=6100361847138634311' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6100361847138634311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6100361847138634311'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/01/odot-tamat-on.html' title='Odot Tamat On'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_OdotXAGE.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-5934347210032468911</id><published>2010-01-01T12:21:00.002Z</published><updated>2010-01-01T12:29:15.091Z</updated><title type='text'>"Taste the Day"</title><content type='html'>&lt;div&gt;In the final few minutes of 2009, XAGE reached an important psychological milestone - &lt;i&gt;Awakener&lt;/i&gt; is now playable to completion.  That is, you start a new game, click on a bunch of stuff and get to the end sequence and credits:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=AwakenerEnding.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/AwakenerEnding.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Admittedly, there is still a lot to do.  Four or five small, manual hacks are required to get certain sections to work, as there are still &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;123&lt;/span&gt; scripting errors (acquiring the halberd has to be completely bypassed, for instance).  Some of the cutscenes work perfectly and others are decidedly clunky, plus there remain a few visual glitches and oddities.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fixing these remaining issues is going to take at least a few more weeks, possibly months depending on how much time I get to spend with it.  The end aim remains the same - to have a fully complete, playable &lt;i&gt;Awakener&lt;/i&gt; with as few manual changes required as possible.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-5934347210032468911?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/5934347210032468911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=5934347210032468911' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5934347210032468911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5934347210032468911'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2010/01/taste-day.html' title='&quot;Taste the Day&quot;'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_AwakenerEnding.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7647620237142077044</id><published>2009-12-21T14:03:00.003Z</published><updated>2009-12-21T15:07:41.520Z</updated><title type='text'>Awakener on a Mac</title><content type='html'>As I'm not nearly rich enough to own an Apple Mac myself, I've not yet been able to test XAGE at all on that platform.  This morning I was sent some screenshots of the latest &lt;i&gt;Awakener&lt;/i&gt; Silverlight build running on an Intel-based Mac:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=AwakenerMac.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/AwakenerMac.png" border="0" alt="awakener mac xage" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;I was worried that there'd be some unforeseen complications so I'm pleased that it works (incidentally, Ben has released his &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=1254"&gt;latest AGS game&lt;/a&gt;, which has an agreeably silly ending).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've almost finished a series of structural improvements mentioned earlier.  Previous versions of XAGE had different action types depending on whether you wanted to set a variable (say, PLAYER's X position) to a specific value (100) or to another variable's value (Enemy's X position).  This worked but was inflexible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now these action types have been combined into a single action, where the variable itself can be set to a value or variable via a checkbox:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XI_VariableSet1.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XI_VariableSet1.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XI_VariableSet2.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XI_VariableSet2.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As variables are now all loosely typed, we are also able to do more things complex things, like use a variables for a line of dialogue rather than explicit text.  That way we can make a character shout out his X Position, for instance.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XI_DialogueVariable.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XI_DialogueVariable.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Likewise, the IF Value/Variable actions have been combined, and can now have multiple conditions.  Additionally there's a new WHILE loop structure and new standard variable, Transparency, that is mostly redundant but helps us sidestep the ColourAlpha issues detailed in a previous post.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All these improvements mean that, &lt;i&gt;Awakener&lt;/i&gt;'s introduction and menu now work more or less as expected, with zero manual changes.  Conversely, the improvements utterly break the existing scripts for &lt;i&gt;The Fourth Wall&lt;/i&gt;, so at some point I'll have to make some sort of update process.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7647620237142077044?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7647620237142077044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7647620237142077044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7647620237142077044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7647620237142077044'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/12/awakener-on-mac.html' title='Awakener on a Mac'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_AwakenerMac.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-6768056665275137584</id><published>2009-12-15T00:54:00.002Z</published><updated>2009-12-15T00:59:55.387Z</updated><title type='text'>New XAGE Website</title><content type='html'>&lt;div&gt;At long last there's a proper home for all things &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;XAGE&lt;/span&gt;.  I looked at a handful of ASP.NET based Content Management Systems (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DotNetNuke&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Umbraco&lt;/span&gt;) but they seemed like overkill for what I actually needed.  A few days ago I came across the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;WebFoundations&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;CMS&lt;/span&gt; which ticked all three boxes - nice, simple and .net based.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Clicky&lt;/span&gt;:  &lt;a href="http://www.clarvalon.com"&gt;www.clarvalon.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd like to say that the site a prime example of functional design, but that's just a roundabout way of saying that it is currently devoid of content.  I'll be tweaking the layout and adding bits and pieces on the road to beta release.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As I quite like using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;blogspot&lt;/span&gt; for updates, the website consumes this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;rss&lt;/span&gt; feed for use on the main page (and after a little &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;jiggery&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;pokery&lt;/span&gt;, this now includes comments).  That way nothing has to be migrated across and I can continue to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;blogspot&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Any glaring mistakes, bugs or omissions, let me know.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-6768056665275137584?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/6768056665275137584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=6768056665275137584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6768056665275137584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6768056665275137584'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/12/new-xage-website.html' title='New XAGE Website'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7278495612571464806</id><published>2009-12-09T11:21:00.007Z</published><updated>2009-12-11T09:46:35.911Z</updated><title type='text'>Abortive XBLIG Ideas</title><content type='html'>&lt;div&gt;&lt;div&gt;Every developer has ideas that are discarded on the basis that they are unfeasible, under-developed or rubbish.  Here are some of my ideas for the Xbox  Live Indie Games channel, now yours, for free!:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;1)  "Things I'd do for 80 MS points"&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With the addition of video support in the Xna 3.0 framework, it is now trivial to include clips in your game, or in this  case, showboating application.  Think of it as Jackass-Lite - film a series of  short videos, each beginning with someone saying "&lt;i&gt;For 80 MS Points, I'd ...&lt;/i&gt;"  before they do something silly, embarrassing or mildly painful.  Have two videos  available in the trial version and a further ten or so unlock when the 'game' is  purchased.  The whole thing would be entirely transparent and shameless, and would be a financial cash-cow.  Probably.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2)  Remake "Star Warrior"&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/?action=view&amp;amp;current=StarWarrior.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/StarWarrior.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A sinclair spectrum game I remember fondly, that was ostensibly a Galaxians rip-off with an unusual twist.  The gameplay was  split into three sections, the first being the standard Space Invaders fare and the second a slightly unusual section where you had to avoid multi-coloured  asteroids while descending onto a planet.  The third part was the most interesting, a tense standoff between our hero (a magenta figure eight pixels big who would furiously dance on the spot) and the Psychotic Cyborg (a small white ball with a menacing black pixel, which I took to be an eye).  The hero would have to enter a yellow maze to get to a blue diamond, protected by the cyborg who would semi-randomly twitch and jerk its way around the maze.  As a six year old, I remember that making a dash for the diamond was a truly exhilarating affair, as the Cyborg would make a terrifying 8-bit screechy sound as it moved, and would mercilessly hunt and shoot your frantic, dancing hero on sight.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Modern gaming, replete with autosaves and checkpoints, can be quite lacking in tension and atmosphere.   Remake the above, along with some intricate form of permadeath, and you have a  genuinely stressful game with an intensely rewarding payoff.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3)  "The Race Card"&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pick a card game, any card game.  Play as normal until one  player pulls out the Race Card.  Upon playing the Race Card, their opponent must turn off their console, feeling slightly ashamed and confused.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;4)   Indie Band&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Approach one of the many unsigned bands flouting their wares on Myspace and the ilk.  Create a short application that displays photos, images, band-motifs and lyrics along to their music.  Release their album or EP for 400  points and split the profits.  It's limited in that the music is non-transferable  and only playable on the Xbox itself, but you may get some media coverage for the unorthodox route to market (the band being interested in publicity, you in sales).  I'd much rather this flood the market than massage apps.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;5)  Be the bad guys&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some games have attempted to let you play as the bad guy  (e.g. Dungeon Keeper, KotOR) but usually in a way that doesn't have an especially meaningful impact on the gameplay.  You still play the game as normal, be it shooter, RPG or Strategy, except you have evil ends to evil aims instead of good.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One departure from this would be to make a game where you truly get to be an typical Bond-Villain.  It could be a bit like a tower defense game except not as dull, where you command dozens of inept, incompetent henchmen against an impossibly overpowered and good-looking AI controlled hero character (perhaps modeled on the Commando  unit from the C&amp;amp;C games).  Only through sheer attrition or blind luck are you able to take him down - perhaps he gets stuck on a bit of geometry and starts to swear.   Or perhaps it's fairly easy to take him down, except the AI can restore the game from previous save points and you succeed by frustrating him to the point of exasperation, at which point he exits the game abruptly and you are returned to the dashboard, triumphant.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;6)  NXE 2&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Make a game based on the Xbox (New Xbox Experience) dashboard itself.  You essentially have a series of mini-games that are 'launched' as separate apps within the service, parodying existing games.  The soundtrack could be "&lt;i&gt;I made a game with 'I MAED A GAM3 W1TH Z0MB1ES!!!1' in it, innit?&lt;/i&gt;".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;7)  Motherhood&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Point and Click Adventuring offers an opportunity to explore  interesting and exciting areas with characters and storylines.  Unfortunately the  majority of titles, especially freeware games, instead prefer to explore safer and  more traditional territory (&lt;i&gt;You play Jacob Mackenzie, a Private Investigator with a murky past and a point to prove!&lt;/i&gt;).  This may lend itself to traditional inventory-based puzzle-solving, but often doesn't do much in the way of providing actual entertainment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As with film and music, I like to encounter things that I haven't experienced  before.  There are so many interesting topics to be covered, which first got me  thinking about having a game where you play as a pregnant woman, where you navigate all the social pitfalls of dealing with a pregnancy that only you want.  The player character would noticeable change over time, growing in size and a decreasing walk speed.  How many times have you seen a woman giving birth on tv compared to in a game?  How many games deal with the relationship and bond between a mother and her newborn child?  Maybe the mechanics of such a game would turn out to be tedious, but I'd like to see it tried.  It's not all about saving the world  and blowing things up.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It should hopefully be easy to spot which of the above are rather tongue-in-cheek.  Don't be fooled; very occasionally I do actually have some half-decent ideas.  I'm just keeping those closer to my chest.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Edit:&lt;/b&gt;  Star Warrior - that's the one.  Added screenshot.  Thanks, David.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7278495612571464806?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7278495612571464806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7278495612571464806' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7278495612571464806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7278495612571464806'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/12/abortive-xblig-ideas.html' title='Abortive XBLIG Ideas'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-8379184524567781510</id><published>2009-11-20T11:18:00.005Z</published><updated>2009-11-22T16:20:32.027Z</updated><title type='text'>Silverlight Progress</title><content type='html'>Whilst the Windows PC and Xbox builds remain XAGE's priority, the Silverlight version is the route to greater platform compatibility.  Bill Reiss has continued his sterling work on the SilverSprite library with a new release supporting Xna's RenderTargets.  This inclusion allows us to utilise scaling of games within a web browser.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As part of SilverSprite there are now two rendering methods - the old Silverlight Canvas style and the new Bitmap-based rendering.  They both have their pros and cons, so I've hacked in a quick toggle to change renderer mid-game.  This is how &lt;i&gt;Awakener&lt;/i&gt; looks playing in Google Chrome at x2 scale using both styles:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=AwakenerScaling.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/AwakenerScaling.png" border="0" alt="AwakenerScaling" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Canvas Rendering:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Pros:&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Quicker - runs at 100% on my atom netbook.&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cons:&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Ugly aliasing, makes text harder to read.&lt;/li&gt;&lt;li&gt;Visual glitches (transparency especially).&lt;/li&gt;&lt;li&gt;Outstanding memory leak when using bitmap fonts(?).&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Bitmap Rendering:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Pros:&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;No aliasing or visual glitches, looks practically identical to xbox and native pc.&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cons:&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Much more processor-intensive - choppy performance on my netbook but runs at 100% on a fairly low-spec dual core pc.  &lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Bitmap rendering adds (at the moment) a higher hardware requirement than I'd like, but it's really helping push XAGE's cross-platform viability.  Again, it's likely that there are further optimisations to be made in both SilverSprite and XAGE, and perhaps the recently announced Silverlight v4 will offer further performance improvements.     &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Edit:&lt;/b&gt;  There exists a third option that hadn't occurred to me - using bitmap rendering for the backbuffer and canvas rendering for the rendertarget.  This provides a happy medium - a few visual glitches but looks better than pure canvas and runs faster than pure bitmap.  This translates to three Silverlight visual quality options - Low (canvas), Medium (canvas/bitmap) and High (bitmap).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-8379184524567781510?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/8379184524567781510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=8379184524567781510' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8379184524567781510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8379184524567781510'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/11/silverlight-progress.html' title='Silverlight Progress'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_AwakenerScaling.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-5617272151440693283</id><published>2009-11-12T09:05:00.006Z</published><updated>2009-11-12T09:40:51.098Z</updated><title type='text'>AGS Conversions:  Manual amendment example</title><content type='html'>The process of identifying what needs fixing or improving in the &lt;i&gt;Awakener &lt;/i&gt;conversion is mostly done by comparing the original AGS version alongside the XAGE version.  Usually a problem corresponds with an unhandled scripting error, of which there are currently &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;163&lt;/span&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, the &lt;i&gt;Awakener&lt;/i&gt; intro screen fades some textual images in and out before presenting the player with the menu.  This doesn't currently work in XAGE.  Examining the scripts reveals that AGS relies on a While Loop to fade the objects in and out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So at first glance it looks like a simple case of implementing the While Do Loop structure into XAGE (essentially a specialised IF).  However, the While condition also uses a local variable "trans".  Local script variables are not currently supported in XAGE, so that has to be added too.  Plus the While structure is to be based on IFs, which itself need to be updated to be able to handle multiple conditions (i.e. &lt;i&gt;if flag== true &amp;amp;&amp;amp; count &gt; 5&lt;/i&gt;).  Which also reminds me that I should probably merge the IF_OO and IF_OV Action Types for greater flexibility going forward.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All of which is a lot of work, just to make a few objects fade in and out.  Sometimes working on the conversion feels like running down a rabbit hole of missing functionality and outstanding features, but the effort will eventually be worth it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The above is also a good example of where manual amendments are required.  AGS uses a Transparency property, where 0 is opaque and 100 is fully transparent.  XAGE uses the Alpha channel, similar to drawing applications, where 0 is fully transparent and 255 is opaque.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For a line of AGS code where the transparency is set explicitly, e.g. &lt;i&gt;cFadi.Transparency = 0&lt;/i&gt;, it is trivial for the converter to map this properly in XAGE as setting &lt;i&gt;cFadi's Alpha Channel to 255&lt;/i&gt;.  However, when the Transparency is set using a variable, as in the above example, XAGE has no simple number to convert.  It's safe to say that the converter will neve be sophisticated enough to identify all possible values for the variable that stage and amend their values accordingly (which itself could introduce other bugs).  The best it can do is alert the user that the value has been amended by a variable and needs to be checked that it's within the correct paramaters.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This complication leads me to believe it would be useful to have a mechanism for identifying certain scripts that are not to be updated if the conversion is run again.  That means a user could manually fix various scripts in XAGE and not have them reset should the conversion be run a second or nth time (certainly useful for development and perhaps useful to anyone else who is developing their AGS game concurrently).  More work.  This is why it's unlikely there'll be any interesting updates for a while.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-5617272151440693283?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/5617272151440693283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=5617272151440693283' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5617272151440693283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5617272151440693283'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/11/ags-conversions-manual-amendment.html' title='AGS Conversions:  Manual amendment example'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3947320760556433633</id><published>2009-11-05T14:02:00.007Z</published><updated>2009-11-05T15:10:42.565Z</updated><title type='text'>A Short History</title><content type='html'>&lt;div&gt;It's coming up to 18 months since I started work on XAGE.  During that time the focus of development has shifted so much, it seems like a good time to recap how XAGE began, where it currently  is and where it is going.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Past:&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The original project started as an effort to get my own adventure game on the Xbox Live Indie Games channel (then 'Community Games').  After a few months work the engine was in a playable state and, using Monkey Island 2 placeholder artwork, I was able to hardcode a small demo room.  It was obvious that I needed to develop a tool to enable me to quickly create all the game content from scratch, whilst the engine itself essentially operated as an interpreter (similar to SCUMM).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Soon after the original Editor had been created, it struck me that other people may be interested in the tools I was creating.  Posting in a handful of forums prompted a positive response, and I started to receive emails with comments, suggestions and general feedback - all of which has been incredibly useful and a good source of motivation.  And thus, the &lt;i&gt;Xna Adventure Game Engine&lt;/i&gt; was born.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From that point on, focus shifted from the engine to the editor itself.  Numerous revisions and improvements have meant that the editor is fairly straightforward and easy to use.  I took a look at the competition - AGS, Wintermute and later Visionaire2D, all of which have their strengths and weaknesses.  I found myself most drawn to AGS, of which I already had a passing familiarity, as it had a lot of similarities and it seemed to have the most active and friendliest community.   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As development progressed I began to think more long term about possible game projects.  As I'm a slow and clumsy pixel artist, I felt that it may be a better use of my time to instead think about converting existing games to XAGE for release to the Xbox.  I contacted the author of a  short AGS game tentatively asking what he thought of the idea, and again the response was favourable.  I have since spoken to two others, and been contacted by about a dozen or so more developers, some indie, some commercial.  It is pleasing that through only a few forum posts, blogs and youtube videos XAGE has caught the attention of the handful of people I had hoped it might.  I have a good idea of who I'd be interested in working with in the future and there are no end of interesting games to port.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Along the way I discovered the open source Silversprite project, and in an afternoon had XAGE up and running in a web browser.  This has added a complication insofar that all new functionality has to be supported across all three target platforms - Windows PC, Xbox and Silverlight.  On the other hand, it broadens the scope of compatibility to otherwise C# unfriendly platforms such as Linux and Macs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Eager to put the maturing Editor through it's paces, I spent four or five weeks making my own short game, &lt;i&gt;The Fourth Wall&lt;/i&gt;, for Microsoft's DreamBuildPlay competition.  It was a useful exercise, leading to a lot of bugfixes, as well as proving (to me and the four or five people who played it) the viability of the engine.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next shift in development focus came when I discovered that it was possible to automate a large part of the work when converting an AGS game to XAGE, drastically reducing the work required for the end user.  Numerous improvements later and I am now tweaking and altering a few outstanding aspects of XAGE's design in order to aid the AGS conversions.  This has only been possible by using the few Open Source AGS games available, and more recently &lt;i&gt;Awakener&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Present:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm working on getting &lt;i&gt;Awakener&lt;/i&gt; to convert as accurately and simply as possible.  I'm having to plumb in new functionality to support this, such as local script variables, script paramaters, GUI customisation etc.  This is a lot of work, but the end result will be worth it, vastly improving the feasibility of running complete AGS games on the Xbox. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Future:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The roadmap on this blog is periodically juggled and amended.  Once the work on &lt;i&gt;Awakener&lt;/i&gt; is complete, I'll look at other AGS games to help finalise the XAGE GUI design.  ETA for this is 8-12 weeks depending on how much time I get to spend.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Following that there will be three main milestones:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Rework &lt;i&gt;The Fourth Wall&lt;/i&gt; to work with the latest version &amp;amp; release to XBLIG.&lt;/li&gt;&lt;li&gt;Release XAGE v0.5 (or whichever version is current) as Beta on a swanky new, dedicated website (i.e. begin the PR).&lt;/li&gt;&lt;li&gt;Identify &amp;amp; negotiate rights to the first AGS game to be released on the Xbox360.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;So ... there you have it.  I'd like to thank everyone who has shown an interest in XAGE so far - your support and encouragement has always been appreciated.  To that end, XAGE will always remain completely free for non-commercial use.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3947320760556433633?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3947320760556433633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3947320760556433633' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3947320760556433633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3947320760556433633'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/11/short-history.html' title='A Short History'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-9045284195308018001</id><published>2009-10-22T23:57:00.004+01:00</published><updated>2009-10-24T14:55:38.930+01:00</updated><title type='text'>Animation Redesign</title><content type='html'>&lt;div&gt;The way animations are handled in XAGE has been redesigned to provide more flexibility and aid with AGS conversions.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;XAGE previously allowed standards to be created in a fairly quick and easy manner but also lacked some flexibility.  The order of the animation frames was important, as they needed to be tagged with various preset labels, "&lt;i&gt;Body&lt;/i&gt;&lt;i&gt;WalkDown_Start&lt;/i&gt;" etc.  There was also a duality with there being two animation mechanisms - the inbuilt tagging and custom animations (already much like AGS sprite loops).  The preset tags have now been removed and now all standard animations (walking, talking etc.) are handled by user-built custom anims.  This provides a little more flexibility and efficiency at the expense of time, as it takes a few seconds to set up the standard animations manually and link them to a character.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;XAGE still doesn't implement Views in the way AGS does.  I can definitely now see the benefit of them, as it enables the user to easily change the character's outward appearance, though there are a few (in my opinion) archaic design decisions that are slightly unintuitive, such as having the standing still frame as the first frame of a walking animation.  Likewise I like having the animations frames tied to the character, even if this is inefficient.  It seems cleaner and more intuitive, in the same way each conversation in XAGE is tied to a character as opposed to one big Dialogue pool.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Editor has had a few overdue improvements too, including the ability to preview custom animations without having to run the game (a particularly large timesink when developing &lt;i&gt;The Fourth Wall&lt;/i&gt;):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=CustomAnimate.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/CustomAnimate.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll be happy if I can get &lt;i&gt;Awakener&lt;/i&gt;'s scripting errors post-conversion down to less than 100.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-9045284195308018001?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/9045284195308018001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=9045284195308018001' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/9045284195308018001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/9045284195308018001'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/10/animation-redesign.html' title='Animation Redesign'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_CustomAnimate.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-8222892382415393061</id><published>2009-10-15T12:50:00.005+01:00</published><updated>2009-10-19T23:19:38.827+01:00</updated><title type='text'>Awakener Update</title><content type='html'>Armed with the new ability to extract room information, the progress has been faster than I'd expected.  The AGS plugin enables me to pull out everything I need, including the mask information for hotspots, walkbehinds, regions and walkable areas.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first two have slotted nicely into XAGE with a few minor changes.  AGS Hotspots convert over as XAGE room objects, albeit ones with a single, invisible anim frame.  AGS Walkbehinds convert as XAGE room objects that are unselectable, static objects with a fixed zPosition as the baseline (The zPos has been reinstated - making the &lt;i&gt;The Fourth Wall&lt;/i&gt; confirmed that there are some occasions where you just need to override an object's yPos for the drawing order).  Also, standard AGS room objects now convert in a straightforward manner.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;AGS Regions and walkable areas are trickier.  As XAGE uses geometric walkboxes for character movement, there is no easy way to automatically convert one to the other.  I may attempt to tackle this algorithmically, but chances are it will turn into an overcomplicated mess.  Another solution may be to store the walkable areas as a single mask and overlay this over the room background within the XAGE Editor, in order to aid the user in manually recreating the walkboxes as quickly as possible (taking about ten minutes or so per room, not including testing).  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A third option would be to offer a parallel room traversal system that involves a mask (or to drop the geometric walkboxes completely).  It would be quite a lot of work and it would make the conversions more complete, however I'm concerned about unwittingly turning XAGE into AGS-lite, or an unofficial port, and thus want to preserve its position as a legitimate, stand-alone engine. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Working on the conversion is now my main priority, so I'm adding new functionality to help recreate the exact look and feel of the original.  Such improvements include a new option over how the cursor highlights characters and room objects.  Previously everything was wrapped up in a bounding box, similar to how the original SCUMM games operated.  Now each item can have a manual or dynamic bounding box, or a per-pixel detection.  The latter option is in keeping with AGS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Besides a few things (fonts, cursor and some GUI stuff), &lt;i&gt;Awakener&lt;/i&gt; running in XAGE is now visually a pixel-perfect recreation of the original AGS version:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/?action=view&amp;amp;current=AwakenerComparison.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/AwakenerComparison.png" border="0" alt="Awakener Comparison" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I should stress the word &lt;b&gt;visually&lt;/b&gt;, as there remains a whole lot of work to do on converting the scripts. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;EDIT:&lt;/b&gt;  The script conversion now counts all unhandled lines of AGS code.  Now that I've added this metric it's possible to gauge the progress being made at a glance.  The number of script errors that occur when converting &lt;i&gt;Awakener&lt;/i&gt; currently numbers &lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;294&lt;/span&gt;&lt;/b&gt;.  It is likely to be a few weeks/months before the number starts to get anywhere near zero.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-8222892382415393061?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/8222892382415393061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=8222892382415393061' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8222892382415393061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8222892382415393061'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/10/awakener-update.html' title='Awakener Update'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7598535615736088882</id><published>2009-10-09T00:01:00.006+01:00</published><updated>2009-10-11T03:24:37.370+01:00</updated><title type='text'>AGS to XAGE: Awakener</title><content type='html'>Ben Chandler was kind enough to send me a copy of the source code for his latest game, the excellent and rather sweet &lt;i&gt;&lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=1208"&gt;Awakener&lt;/a&gt;.  &lt;/i&gt;Here's a short clip of it running on the Xbox360 under XAGE:&lt;div&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/XMzc59VaJJ4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/XMzc59VaJJ4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Discussion thread in the &lt;a href="http://www.bigbluecup.com/yabb/index.php?topic=37481.msg513782#msg513782"&gt;AGS Technical Forum&lt;/a&gt;.  To anyone interested in converting their AGS games to the Xbox360 or to their internet browser - &lt;b&gt;please lend your support to the feature request&lt;/b&gt;.  It would make a monumental difference, and potentially save you hours and hours (and hours) of tedious legwork with your own future game conversions.  Thanks!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;EDIT:&lt;/b&gt; Denzil Quixode on the AGS forums has very quickly knocked up an AGS Editor Plugin that does exactly what I need.  Cheers, Denzil!  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;EDIT2:&lt;/b&gt;  I've expanded on the code and now built my first AGS Editor Plugin - &lt;a href="http://www.bigbluecup.com/yabb/index.php?topic=39050.0"&gt;Export to XAGE&lt;/a&gt;.  It is largely useless to anyone else at the moment as XAGE Editor v0.5 has not yet been released, but it succeeds in simplifying, speeding up and improving the scope of the conversion process.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7598535615736088882?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7598535615736088882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7598535615736088882' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7598535615736088882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7598535615736088882'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/10/ags-to-xage-awakener.html' title='AGS to XAGE: Awakener'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3518761099817317846</id><published>2009-09-30T20:04:00.004+01:00</published><updated>2009-09-30T20:43:12.208+01:00</updated><title type='text'>Three Games</title><content type='html'>Ben Chandler's new short AGS game has been released:  &lt;i&gt;&lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=1208"&gt;Awakener&lt;/a&gt;&lt;/i&gt;.  As expected, it's a highly polished affair, with a pleasingly unusual ending.  Well worth a look.  I may have something XAGE-related to post on this in the near-future, so watch this space.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another AGS  game I (and a lot of other people) have been keeping an eye on is VinceTwelve's &lt;a href="http://xiigames.com/resonance/"&gt;&lt;i&gt;Resonance&lt;/i&gt;&lt;/a&gt;.  Interestingly, he's used &lt;a href="http://www.kickstarter.com/projects/VinceTwelve/resonance-retro-styled-adventure-game-contest-e"&gt;KickStarter&lt;/a&gt; in order to fund its entry to the IGF competition.  So positive has been the response that he's actually been pledged over ten times the required amount.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As &lt;i&gt;Resonance &lt;/i&gt;is being keenly followed by a lot of adventure game adificionados, this is entirely understandable.  The XAGE project is still rather low-key, and will remain so until v1.0 and T4W hopefully begin to raise its profile.  Seeing that people have pledged both $250 and $500 in order to be included as  a character in &lt;i&gt;Resonance&lt;/i&gt; only confirms that not only are people very excited about this game but they are also willing to part with large sums of money in order to feel involved in its construction.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My idea:  A KickStarter project to allow a single individual to pay a reasonable sum (say, $500 to $1000) to have a short XAGE game created for or about them.  Just as some people are crazy for adventure games, a whole lot more are crazy for their Xbox, investing a huge amount of time and money in their hobby.  It's not beyond the realms of possibility that someone would be interested in funding some such ego project in order to see their idea or character come to life on their console of choice.  It would also tie in nicely with an idea I have for an episodic adventure game on XBLIG, where with each release the episode's financial backer stars as the antagonist.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally,&lt;i&gt; &lt;a href="http://xboxindies.com/game/pixel-man"&gt;Pixel Man&lt;/a&gt;&lt;/i&gt; was released to XBLIG recently - something about it appeals to me on a very basic level.  The tiny graphics, 8bit sounds, rainbow menus and absolutely minimalist gameplay stir some childhood yearning for the Sinclair Spectrum.  I'd love to have a crack at making something similar.  Maybe when things aren't so busy.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3518761099817317846?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3518761099817317846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3518761099817317846' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3518761099817317846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3518761099817317846'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/09/three-games.html' title='Three Games'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-6381559003138288367</id><published>2009-09-15T22:20:00.002+01:00</published><updated>2009-09-15T22:48:23.912+01:00</updated><title type='text'>XAGE on the iPhone?</title><content type='html'>&lt;div&gt;The &lt;a href="http://www.zune.net/en-us/products/zunehd/default.htm"&gt;ZuneHD&lt;/a&gt; has been released in America.  As it directly supports XNA there's a reasonably good chance XAGE will eventually target this.  Portable XAGE gaming would be a terrific novelty, for me if no-one else.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That said, what is an even more tantalising prospect is that of iPhone support, due to the large, affluent user base and the recent success of the Monkey Island re-release.  However, given XAGE is built using C#/XNA and iPhone uses Objective-C, there was never any real hope of the iPhone being supported.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Until now.  The open-source &lt;a href="http://xnatouch.codeplex.com/"&gt;XnaTouch&lt;/a&gt; project aims to help port Zune (XNA) games to the iPhone.  They have a short video up showing an XNA game running on the iPhone simulator &lt;a href="http://www.youtube.com/watch?v=8iDtHy36E5k"&gt;here&lt;/a&gt;.  Of course, this is all miles away at the moment and would require an investment of several thousand pounds of new hardware, but it's yet another potential direction for the engine.  I'll have to keep a close eye on XnaTouch to see just how feasible it is, but potentially there's the possibility of some ridiculously convoluted porting fun, e.g:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;AGS game -&gt; XAGE -&gt; Publish to ZuneHD -&gt; Port to iPhone (via Mac)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the meantime I really ought to get the GUI customisation finished.  Finally releasing &lt;i&gt;The Fourth Wall&lt;/i&gt; to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;XBLIG&lt;/span&gt; will be a tremendous relief - conclusive proof that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;XAGE&lt;/span&gt; is not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;vapourware&lt;/span&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-6381559003138288367?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/6381559003138288367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=6381559003138288367' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6381559003138288367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6381559003138288367'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/09/xage-on-iphone.html' title='XAGE on the iPhone?'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-167871643579952108</id><published>2009-09-10T23:23:00.005+01:00</published><updated>2009-09-10T23:51:10.037+01:00</updated><title type='text'>AGS to XAGE: Pixel Hunt</title><content type='html'>&lt;div&gt;There aren't many open source AGS games, but I discovered that by hacking away at the code I've been able to get Andrew 'SSH' MacCormack's &lt;i&gt;&lt;a href="http://ssh.me.uk/pixelhunt.html"&gt;Pixel Hunt&lt;/a&gt;&lt;/i&gt; updated to the current version of AGS (most likely breaking a whole bunch of things in the process - I'm no AGS expert).  An up to date source code meant that it became the third AGS game to get the XAGE conversion treatment.  Running under AGS vs XAGE:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=PixelHuntComparison.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/PixelHuntComparison.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see above, I've finally started making some progress rewriting XAGE's GUI system as I want this completed before realeasing T4w.  The AGS GUI Buttons are more or less displaying correctly on the screen, though they don't do much else at the moment.  Notable differences:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Dynamic Cursor not yet implemented (top).&lt;/li&gt;&lt;li&gt;VerbCoint not yet implemented (sitting happily in the top left hand corner).&lt;/li&gt;&lt;li&gt;Pixel Car missing (centre, most likely a scripting inconsistency).&lt;/li&gt;&lt;li&gt;GUI Labels not yet implemented (bottom left, 'SSH Productions' etc).&lt;/li&gt;&lt;li&gt;New inventory system not yet implemented  (bottom middle, white gfx card).&lt;/li&gt;&lt;li&gt;GUI Button Text not using correct colours (bottom right - not yet sure where to find this in AGS Editor) .&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Disclaimer:&lt;/b&gt;  There's the tiniest sliver of nepotism in this post as SSH runs the &lt;a href="http://ags-ssh.blogspot.com/"&gt;AGS Blog&lt;/a&gt; and occasionally says some rather nice things about the XAGE project.  There was also a very positive plug on &lt;a href="http://www.xnplay.co.uk/2009/07/28/xage/"&gt;xnPlay&lt;/a&gt; a few weeks back.  All PR help is appreciated!  Likewise, any developers with AGS source code they don't mind sharing - &lt;i&gt;please get in touch&lt;/i&gt;.  The more I get my hands on the more the conversion process improves.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-167871643579952108?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/167871643579952108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=167871643579952108' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/167871643579952108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/167871643579952108'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/09/ags-to-xage-pixel-hunt.html' title='AGS to XAGE: Pixel Hunt'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_PixelHuntComparison.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-1686091115297212692</id><published>2009-09-08T01:01:00.002+01:00</published><updated>2009-09-08T01:12:17.375+01:00</updated><title type='text'>XAGE Flow</title><content type='html'>As requested, here's a brief overview of how everything currently fits together in XAGE land:&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XAGEFlow.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XAGEFlow.png" border="0" alt="xage" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The game code is all stored as xml.  Unlike AGS, which compiles the scripts and slaps them onto the exe, the XAGE game code is never compiled.  The XAGE executable loads them it merely deserializes (loads) the xml.  The only variation to that is for a finished, published XAGE game, where the xml (along with all graphics, audio etc.) is zipped up to reduce filesize.  Further size savings could have been made if I'd allowed for binary serialization, but there was some good reason I've not done this (probably unsupported in Silverlight - most things are).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-1686091115297212692?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/1686091115297212692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=1686091115297212692' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1686091115297212692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1686091115297212692'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/09/xage-flow.html' title='XAGE Flow'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_XAGEFlow.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-8963555432134841183</id><published>2009-09-04T11:18:00.002+01:00</published><updated>2009-09-04T11:27:27.166+01:00</updated><title type='text'>Criticism of XBLIG</title><content type='html'>&lt;div&gt;I should qualify this post by saying that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;XNA&lt;/span&gt; is a fantastic framework and Microsoft is a darling for colluding with the Indie/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Homebrew&lt;/span&gt; development scene.  Now, with that out of the way ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;1)  There are way too many non-games on the service &lt;/b&gt;&lt;/div&gt;&lt;div&gt;As a consumer and a developer, the pointless &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;screensavers&lt;/span&gt; and massage applications irritate me.  They clog up the service and, in all honesty, have no place on a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;digitial&lt;/span&gt; distribution channel that has "games" in the title.  Conversely, as a greedy developer with bills to pay, I've had a few half-decent ideas for non-games (some of which that, amazingly, don't involve making the controllers vibrate) that could potentially make a few pounds for very little effort.  As a matter of principle I've not yet gone down that path, though principles do have a habit of dissolving when unemployment pokes you with his bony finger.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2)  The ones that &lt;i&gt;are&lt;/i&gt; games have dreadful names&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Biology Battle&lt;/i&gt;, &lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Zoomaroom&lt;/span&gt;&lt;/i&gt;, &lt;i&gt;Revenge of the Ball&lt;/i&gt;, &lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Memorania&lt;/span&gt;&lt;/i&gt;, &lt;i&gt;Neon Paddles&lt;/i&gt;.  Without wishing to pick on these &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;in particular&lt;/span&gt;, they &lt;i&gt;do&lt;/i&gt; all sound awfully dull, like a game you get after painstakingly spending twenty minutes &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;copytyping&lt;/span&gt; code from a 'Learn Spectrum Basic' book circa 1985.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;XBLIGs&lt;/span&gt; have quite utilitarian names.  &lt;i&gt;Tank Strike&lt;/i&gt;, for instance, is admirably concise and conjures up a fairly accurate representation of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;gameplay&lt;/span&gt;.  Unfortunately this also can enforce rather low expectations for the game itself, as all curiosity and mystique are swept away the instant you read the title.  It's possible to take three random words and end up with a better name for a game than most titles already on the service.  Look, I'll do it now: &lt;i&gt;Kaiser Raul's Fishbowl&lt;/i&gt;.  See?  I'd buy that game in a second.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3)  The Box Art is even worse&lt;/b&gt;&lt;/div&gt;&lt;div&gt;A similar proportion of existing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;XBLIGs&lt;/span&gt; are cursed with generic, boring, lazy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;boxart&lt;/span&gt;.  Some are downright dreadful; a garish mess of unreadable text and primary colours.  The box art is where you set out your stall for the majority of your customers, so to get this so spectacularly wrong is shameful.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;4)  And they're all the same, aren't they?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Of every ten games, I might download the trial for one or two.  For my tastes, there are far too many generic puzzlers and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;platformers&lt;/span&gt;.  They may have some minor innovation in their main &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;gameplay&lt;/span&gt; mechanic, but I've yet to play one that has compelled me enough to purchase it (partly because I'm a miser but also because of the lack of achievements.  In many ways the 360 has ruined playing games in that I now feel I need an arbitrary little number to justify the time spent - enjoyment alone is no longer enough).  With a few notable exceptions there is very little focus on storytelling or character development.  Hopefully &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;XAGE&lt;/span&gt; will go some way to addressing this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Postscript: &lt;/b&gt; Yes, &lt;i&gt;The Fourth Wall&lt;/i&gt; isn't a fantastic name and the box art is &lt;i&gt;deliberately&lt;/i&gt; rubbish, so it is conveniently exempt from 2 and 3.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-8963555432134841183?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/8963555432134841183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=8963555432134841183' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8963555432134841183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8963555432134841183'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/09/criticism-of-xblig.html' title='Criticism of XBLIG'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7472307271003122174</id><published>2009-08-07T10:48:00.003+01:00</published><updated>2009-08-07T11:24:46.238+01:00</updated><title type='text'>AGS Conversion Progress</title><content type='html'>Yesterday was a welcome break from T4W (how long does it take for an acronym to be established?).  I spent some time rewriting how XAGE converts AGS scripts.  Previously it was a bit flaky in how it dealt with carriage returns and didn't always provide the most reliable results.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Each AGS script is now tokenised, splitting everything up into functions, statements, if, brackets etc.  The tokenised script is then converted into XAGE scripts.  This two stage process is a lot cleaner and easier to extend.  Using OpenQuest as my AGS source, here's a cherrypicked example of where the conversion is currently at.  Consider the following AGS code:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;function character2_a() {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  // script for Character 2 (Lifeform): Interact character&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;if (sInteractionVerb == sTalkTo)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  hideGUI();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  // have we already met the cleaner? If so, use a different greeting&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  if (GetGlobalInt(8) == 1)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;    player.Say("Greetings Carol");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;    cCleaner.Say("You again?");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  player.Say("Speak lifeform!");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  Wait(40);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  player.Say("Is this translation matrix working?");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  cCleaner.Say("You're that guy from accounts right?");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;dCleaner.Start();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;else if (sInteractionVerb == sSmell)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  player.Say("This creature has an overwhelming pungent smell");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;else if (sInteractionVerb == sMove)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;  player.Say("The lifeform is surprisingly sturdy, I don't believe I can use force");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;triggerUnhandledEvent();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The above function now converts automatically to an XAGE script as follows:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=AGStoXAGEscript.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/AGStoXAGEscript.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The two provide the equivalent 1-1 functionality save for two things:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;XAGE doesn't know what 'sInteractionVerb' is (#defined in OpenQuest as Game.GlobalStrings[11].  Whereas XAGE would link each event with its own script, AGS (or AGS developers?) tend to bunch certain events to the same function, which seems unnecessarily complicated - perhaps a throwback to earlier AGS versions).&lt;/li&gt;&lt;li&gt;The conversion process doesn't yet handle AGS functions calling each other (requires an XAGE object running a new XAGE script).&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;In the future I see a juggling act; trying to keep XAGE's design as clean as possible and yet trying to map as much AGS functionality as possible, some of it outdated and deprecated.  It's gratifying nonetheless to watch the OpenQuest opening cutscene running in XAGE, albeit in a slightly clunky, stunted way.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7472307271003122174?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7472307271003122174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7472307271003122174' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7472307271003122174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7472307271003122174'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/08/yesterday-was-welcome-break-from-t4w.html' title='AGS Conversion Progress'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_AGStoXAGEscript.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-5557298382358119388</id><published>2009-08-05T19:30:00.002+01:00</published><updated>2009-08-05T19:41:43.126+01:00</updated><title type='text'>"The Fourth Wall"</title><content type='html'>Today I submitted my DreamBuildPlay competition entry, "The Fourth Wall".  As the deadline loomed I've had to cut a lot of corners, and there's no chance it will win, but I'm reasonably pleased with how it has turned out.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's a silly, short game (or rather, anti-game).   Here's a trailer that has absolutely nothing to do with the game itself:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/dwd_0UPHRQc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/dwd_0UPHRQc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm waiting on a few library fixes but there should be a Silverlight demo soon.  In a few weeks you should also be able to part with 80 Microsoft Points and enjoy it on your Xbox360.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;XAGE's first commercial product.  Huzzah.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-5557298382358119388?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/5557298382358119388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=5557298382358119388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5557298382358119388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5557298382358119388'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/08/fourth-wall.html' title='&quot;The Fourth Wall&quot;'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-5600735368019824053</id><published>2009-07-26T01:49:00.003+01:00</published><updated>2009-07-26T02:20:38.423+01:00</updated><title type='text'>The 8 Minute Trial Test #2</title><content type='html'>As a continuation of the previous &lt;a href="http://clarvalon.blogspot.com/2009/04/8-minute-trial-test.html"&gt;8 minute trial test&lt;/a&gt;, five more point and click adventures get the treatment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Colour Key:&lt;/b&gt; &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;Green&lt;/span&gt; = pre v1.0 functionality, &lt;span class="Apple-style-span"  style="color:#FFCC33;"&gt;Orange&lt;/span&gt; = post v1.0, &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Red&lt;/span&gt; = unlikely to be implemented.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1)  &lt;a href="http://www.wadjeteyegames.com/PF.htm"&gt;Emerald City Confidential&lt;/a&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=emeraldcc.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/emeraldcc.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Good:&lt;/b&gt;  Polished, HD graphics, excellent audio.  Single-click interface is very user-friendly.  Lots of hand-holding to ease in casual players.  Parallax scrolling intro.&lt;br /&gt;&lt;b&gt;The Bad:&lt;/b&gt;  Slidy-walk animation.  Playfirst DRM (didn't actually seem too intrusive).  Objectives were clearly laid out but there was no real explanation as to why - not a lot of real plot exposition within the first 8 minutes.&lt;/div&gt;&lt;div&gt;&lt;b&gt;Not yet possible in XAGE:&lt;/b&gt; &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;GUI customisation&lt;/span&gt;, &lt;span class="Apple-style-span"  style="color:#FFCC33;"&gt;Speech&lt;/span&gt;, &lt;span class="Apple-style-span"  style="color:#FFCC33;"&gt;Various GUI effects&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;2) &lt;a href="http://www.adventuregamestudio.co.uk/games.php?action=detail&amp;amp;id=1040"&gt;Nanobots&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=nanobots.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/nanobots.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Good:&lt;/b&gt;  Fun concept, well introduced and setup.  Impressive dual view technique on tutorial.  Swearing in binary.&lt;br /&gt;&lt;b&gt;The Bad:&lt;/b&gt;  Some minor clipping issues.  'Groovy Greg' seems to suffer from a mild form of Parkinsons.&lt;br /&gt;&lt;b&gt;Not yet possible in XAGE:&lt;/b&gt;  &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;Text input&lt;/span&gt;, &lt;span class="Apple-style-span"  style="color:#FFCC33;"&gt;Y axis scrolling&lt;/span&gt;, &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;GUI customisation&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3)  &lt;a href="http://www.zombie-cow.com/?page_id=559"&gt;Time Gentlemen, Please&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=tgp.jpg" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/tgp.jpg" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Good:&lt;/b&gt;  Finely crafted, plenty of attention to detail.  Entertaining and colourful introduction.  Irreverent humour.  Plenty of witty banter between protagonists.&lt;br /&gt;&lt;b&gt;The Bad:&lt;/b&gt;  Some very minor flickering as walking &amp;amp; scrolling not synched.&lt;br /&gt;&lt;b&gt;Not yet possible in XAGE: &lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;GUI Customisation&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4)  &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=1182"&gt;Heed&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=heed.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/heed.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Good: &lt;/b&gt; Very distinctive art &amp;amp; audio, along with extremely simple user interface.  Smooth, clean animation.  Intriguing room-by-room development.  Existentialist musings.&lt;br /&gt;&lt;b&gt;The Bad:&lt;/b&gt;  No narrator with a tophat.  The fly is a little slow.&lt;br /&gt;&lt;b&gt;Not yet possible in XAGE:&lt;/b&gt; &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;GUI customisation&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5)  &lt;a href="http://www.fullyramblomatic.com/donate.htm"&gt;Five Days a Stranger&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=5days.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/5days.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The Good: &lt;/b&gt; Player character is a criminal.&lt;br /&gt;&lt;b&gt;The Bad: &lt;/b&gt; Visually has not aged especially well.  Interface is particularly clunky and old-school.&lt;br /&gt;&lt;b&gt;Not yet possible in XAGE:&lt;/b&gt; &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;GUI customisation&lt;/span&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-5600735368019824053?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/5600735368019824053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=5600735368019824053' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5600735368019824053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5600735368019824053'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/07/8-minute-trial-test-2.html' title='The 8 Minute Trial Test #2'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/th_emeraldcc.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3329930376071082842</id><published>2009-07-24T10:37:00.004+01:00</published><updated>2009-07-24T11:00:47.331+01:00</updated><title type='text'>XBLIG price changes</title><content type='html'>&lt;div&gt;Microsoft have shifted down the three price points developers can choose for their indie games (from 800, 400 and 200 to &lt;b&gt;400&lt;/b&gt;, &lt;b&gt;240&lt;/b&gt; and &lt;b&gt;80&lt;/b&gt;).  I'm in two minds about this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Cons:&lt;/b&gt;  With 800 points (about $10) no longer offered, more professional outfits are likely to be turned away if the most they can charge is about $5.  The race-to-the-bottom pricing is likely to make XBLIG much more like Apple's App Store.  It is already quite cluttered with largely pointless apps and massage games (the dashboard update to introduce users ratings should mitigate this somewhat).   In my opinion, the areas in which Indie Games differs to the App Store are its strengths, so it is unfortunate to see them being eroded further.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Pros: &lt;/b&gt; I had no plans to monetize my DBP09 entry, given that it will provide little more than 15-20 minutes of play.  But with a price point of 75p, why not?  I'll reassess this closer to completion.  It also opens the door for various small AGS games, for which a 75p cost is justifiable.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3329930376071082842?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3329930376071082842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3329930376071082842' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3329930376071082842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3329930376071082842'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/07/xblig-price-changes.html' title='XBLIG price changes'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-8412550384443509580</id><published>2009-07-19T17:49:00.004+01:00</published><updated>2009-07-19T18:02:50.771+01:00</updated><title type='text'>OpenQuest</title><content type='html'>To distract from the fact I've not been able to get anything done in the last fortnight, here's a picture of &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=945"&gt;OpenQuest&lt;/a&gt; running on XAGE:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/?action=view&amp;amp;current=OpenQuest.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/OpenQuest.png" border="0" alt="OpenQuest on XAGE" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;It's a bit glitchy (not sure what happened to the Cleaner on the left) and has the same limitations as Demo Quest, but it works.  Between the two I have a reasonable amount of source material with which to improve the AGS conversion process.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Silverlight v3.0 has now been released, so &lt;a href="http://twitter.com/billreiss"&gt;Bill Reiss&lt;/a&gt; is continuing his excellent work to bring SilverSprite up to speed.  This means that any browser based XAGE adventuring should soon become a much more robust &amp;amp; enjoyable experience.  &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-8412550384443509580?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/8412550384443509580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=8412550384443509580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8412550384443509580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8412550384443509580'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/07/openquest.html' title='OpenQuest'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7536608012072669263</id><published>2009-07-08T10:16:00.004+01:00</published><updated>2009-07-08T11:12:01.347+01:00</updated><title type='text'>Twitsqueak</title><content type='html'>As I'm practically providing 24 hour care at the moment, I have very little time for anything, let alone coding.  This means I am spending a lot more time thinking about all things XAGE than actually doing anything productive.&lt;br /&gt;&lt;br /&gt;As you can only mull over algorithms and design for so long, I've started to devote more time thinking about the eventual ramping up of the PR machine.  I've been collecting a number of &lt;a href="http://gillen.cream.org/wordpress_html/?page_id=693"&gt;decent&lt;/a&gt; &lt;a href="http://www.hamst3r.com/article/109/get-your-community-game-out-there"&gt;articles&lt;/a&gt; on publicising independant games, though it has become obvious that this is the part of XAGE's lifecycle that I'm looking forward to least.  It's cold and calculating but a necessary evil.&lt;br /&gt;&lt;br /&gt;Increasingly people have mentioned that twitter is good for (ugh) networking, (ick) public relations and (hurray!) stalking celebrities.  To this end I've created an &lt;a href="http://twitter.com/Clarvalon"&gt;XAGE twitter account&lt;/a&gt;.  I generally avoid sending text messages and have a distate for anything that encourages netspeak, but having used it for a few days I can see its merits (besides following the ravings of &lt;a href="http://en.wikipedia.org/wiki/Charlie_Brooker"&gt;Charlie Brooker&lt;/a&gt;).  Updates may be few and far between for the time being.&lt;br /&gt;&lt;br /&gt;All being said, all the publicity in the world is next to useless if you don't have a decent product.  One day I'll get around to fixing those damnable dynamic object boxes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7536608012072669263?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7536608012072669263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7536608012072669263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7536608012072669263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7536608012072669263'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/07/twitsqueak.html' title='Twitsqueak'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-2086445539479351015</id><published>2009-07-02T09:57:00.002+01:00</published><updated>2009-07-02T10:03:55.868+01:00</updated><title type='text'>Feedback = Features</title><content type='html'>I've had a few pieces of genuinely useful feedback so far. One suggestion was to allow developers to enable or disable each individual action as and when they're needed (much like commenting out code), which hadn't even occurred to me previously.&lt;br /&gt;&lt;br /&gt;After adding this functionality, I then realised it would be handy to be able to annotate scripts with developer comments, so added that too. To add an extra layer of flexibility I decided to finally implement Nested IFs, meaning it's now possible to create more complex conditional logic:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;current=NestedIFs.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/NestedIFs.png" border="0" alt="Photobucket"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, XAGE scripts looks more and more like real code, but it's still verbose and simple enough for anyone with eyes and half a brain to understand. The only typing required is for the dialogue and occasional object value.&lt;br /&gt;&lt;br /&gt;Another improvement has been to add WalkLines, which are similar to WalkBoxes but only have two points rather than four. This was already achievable, simply by making two points the same, but having this additional construct should make it more immediately obvious to developers about their use. There are now also more visual cues when placing any walkable areas, so you can more easily detect horizontal or vertical alignment and connections.&lt;br /&gt;&lt;br /&gt;I'm still a few months away from ramping up the PR machine as we get closer to v1.0. One thing lacking so far is bug reports - I've only &lt;i&gt;ever&lt;/i&gt; received two. I'd love to believe that XAGE and XAGE Editor are watertight applications but that simply isn't the case. If anyone encounters any fatal exceptions, please let me know (there's a big friendly button that does it automatically!).&lt;br /&gt;&lt;br /&gt;Finally, I've pestered &lt;a href="http://ben304.blogspot.com/"&gt;Ben304&lt;/a&gt; into letting me use some of his artwork for my DBP entry. He's a well-known man about AGS-town, so if you haven't taken a look at his short games &lt;a href="http://www.adventuregamestudio.co.uk/games.php?action=detail&amp;amp;id=1128"&gt;Annie Android&lt;/a&gt; or &lt;a href="http://www.adventuregamestudio.co.uk/games.php?action=detail&amp;amp;id=1137"&gt;Shifter's Box&lt;/a&gt;, do so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-2086445539479351015?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/2086445539479351015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=2086445539479351015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2086445539479351015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2086445539479351015'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/07/feedback-features.html' title='Feedback = Features'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_NestedIFs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-2744585196745472311</id><published>2009-06-25T00:17:00.003+01:00</published><updated>2009-06-25T10:12:12.425+01:00</updated><title type='text'>XAGE Publc Alpha v0.4 - Download</title><content type='html'>I'm not sure of the exact date, but it's been more or less a year since I began working on XAGE, and it's a relief to finally have something to publicly show for it.  You can now download it at the following link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.clarvalon.com/XAGE/Release/xage%20v0.4.zip"&gt;www.clarvalon.com/XAGE/Release/xage v0.4.zip&lt;/a&gt; (2.8mb, &lt;a href="http://rapidshare.com/files/248427223/XAGE_v0.4.zip"&gt;mirror&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;This includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;XAGE Editor (with embedded Default Game)&lt;/li&gt;&lt;li&gt;Skeleton Visual Studio Projects for Xbox360 and Silverlight (included for the people who have expressed an interest in trying them out).&lt;br /&gt;  &lt;/li&gt;&lt;/ul&gt; It has to be pointed out that this release is more than a bit rushed as I'm completely swamped.  There are quite a lot of known issues and unfinished sections, but as a whole product it's the most feature-complete version yet.  It's fair to say that the included game is a little underwhelming compared to previous ones, due to lack of fancy Lucasarts graphics and varied scripting, but it should serve as a pointer on how to achieve the absolute basic effects.&lt;br /&gt;&lt;br /&gt;As usual, XAGE is hungry for feedback and bug reports, both of which can be submitted in seconds via the built-in menu options.  Likewise it would be interesting to hear the experiences of anyone attempting to use either of the VS projects or the AGS conversion tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-2744585196745472311?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/2744585196745472311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=2744585196745472311' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2744585196745472311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2744585196745472311'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/06/xage-publc-alpha-v04-download.html' title='XAGE Publc Alpha v0.4 - Download'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3454852577355364618</id><published>2009-06-14T18:11:00.005+01:00</published><updated>2009-06-14T18:40:25.834+01:00</updated><title type='text'>'Avatars may leave innocents or bystanders slightly injured, but not dead'</title><content type='html'>Precautionary swine flu quarantine aside, the weekend has provided some much needed relief.  Easily the biggest thorn in XAGE's development has been dealing with all portability issues.  I was pleased with the heavy-duty Rjindael encryption but unfortunately it was not compatible with either Silverlight or the Xbox.  After scouring the web I was able to find three different, working ports of &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/"&gt;SharpZipLib&lt;/a&gt;, meaning I could begin work on the ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Unified File Access: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All assets are now zipped up for published games, reducing the size and number of files.  With regards to file formats, it's not even a case of working with the lowest common denominator, as there is no way of freely (i.e. without licensing issues, either by using mp3 or commercial libraries) using any two formats on all three target platforms.  After a lot of trial and error and about half a dozen open source audio components, I've finally implemented a solution that satisfies all the requirements for the new integrated publishing system:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;XAGE can now play one piece of background music at a time, and any number of sound effects.&lt;/li&gt;&lt;li&gt;Music is initially stored as Mp3s and sounds as Wav files.  These are used when debugging on Windows (via SdlDotNet).&lt;/li&gt;&lt;li&gt;For published windows games, the user is given the option of swapping the Mp3s for Ogg tracks to bypass any licensing issues.  The Wav files are untouched.&lt;/li&gt;&lt;li&gt;For Xbox games, the Wav files are automatically converted to Xnb via MSBUILD.  The Mp3s are converted into Wma.&lt;/li&gt;&lt;li&gt;As Silverlight cannot natively play Wav files, they are coverted into Wma and Mp3s are left untouched, covered by Silverlight/MS.&lt;/li&gt;&lt;li&gt;All three platforms are capable of loading assets from the pre-prepared zip files (with the exception of the Xbox Music as it cannot stream a compressed Wma file).&lt;/li&gt;&lt;/ul&gt;Just thinking about it is exhausting, but it all works as expected.  Publishing an XAGE game is designed to be as simple as possible (&lt;a href="http://en.wikipedia.org/wiki/KISS_principle"&gt;K.I.S.S&lt;/a&gt; applies to UIs too), so the user will be oblivious to most of the above.  The Xbox and Silverlight platforms are a little more involved, and require a free installation Visual Studio 2008, but even then it's mostly just a case of hitting the big green 'Start debugging' button.&lt;br /&gt;&lt;br /&gt;What does this all mean?  Well, after debugging a game via XAGE Editor it's possible to play the same game on the 360 and a Web Browser in a matter of seconds (minutes if you've made changes to the graphics or audio):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XAGEPublishing.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XAGEPublishing.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Xbox Live Indie Games&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Community Games has been rebranded by Microsoft to 'Indie Games', which seems like a sensible move.  This coincides with the release of the Xna 3.1 framework, which from XAGE's point of view doesn't yet provide a compelling reason to update.  The inclusion of Avatar support is a nice touch, though there are some &lt;a href="http://creators.xna.com/en-US/article/avataruse"&gt;strange guidelines&lt;/a&gt; regarding their use in games.&lt;br /&gt;&lt;br /&gt;As DBP09 closes in August, I've taken the decision to wrap up any loose ends, release v0.4 and then see if I'm able to complete my game within the competition deadline.   I'd essentially be submitting a demo (not that there is any chance of me winning anything), but it will be a good exercise in finally putting the engine through its paces and will give ideas on areas of improvement.  The resulting 4 month Creator's Club access will be handy too, giving me time to take a proper stab at it before releasing to XBLIG.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3454852577355364618?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3454852577355364618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3454852577355364618' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3454852577355364618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3454852577355364618'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/06/avatars-may-leave-innocents-or.html' title='&apos;Avatars may leave innocents or bystanders slightly injured, but not dead&apos;'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_XAGEPublishing.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3964103986201411820</id><published>2009-06-07T18:12:00.002+01:00</published><updated>2009-06-07T18:36:01.160+01:00</updated><title type='text'>AGS's 'Demo Quest' on Silverlight</title><content type='html'>I'm currently rewriting how content is handled, in order to make it trivial to publish XAGE games on various platforms (more about this later).  Part of this is targeting the Silverlight platform, so I've rebuilt Demo Quest (as per the xbox video) and temporarily uploaded it to play in your web browser &lt;a href="http://www.clarvalon.com/SilverLightTest/TestPage.html"&gt;here&lt;/a&gt;.  It's playable but VERY sketchy, as most of the optimisations and memory issues won't be sorted until Silverlight v3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3964103986201411820?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3964103986201411820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3964103986201411820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3964103986201411820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3964103986201411820'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/06/agss-demo-quest-on-silverlight.html' title='AGS&apos;s &apos;Demo Quest&apos; on Silverlight'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-523458614969180109</id><published>2009-05-25T16:26:00.007+01:00</published><updated>2009-05-28T08:15:47.929+01:00</updated><title type='text'>AGS's 'Demo Quest' on Xbox360</title><content type='html'>The bulk of the conversation system is now in place, and there will be further refinements when I tackle the last major component (GUI customisation).   Here's a new video detailing the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New Editor appearance (themes).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New Script Action creation method (popups). &lt;/li&gt;&lt;li&gt;XAGE again converting and running AGS's sample game, &lt;i&gt;Demo Quest&lt;/i&gt; (demonstrating a short conversation between Cris and Beman).&lt;/li&gt;&lt;/ul&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oTzUnIyoeZE&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/oTzUnIyoeZE&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This time we don't cover exporting the graphics from AGS, but you can see that the conversion process is mostly painless.  The only changes necessary here are to place the Player character, Cris, in the same room as Beman, to whom we scale up and add an &lt;i&gt;onTalkTo&lt;/i&gt; script to initiate the conversation.  A side-by-side comparison of AGS and XAGE:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=DemoQuestComparison.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/DemoQuestComparison.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From the video and picture above, the following is evidently missing or incorrect:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GUI (Reason:  Not yet implemented in XAGE).&lt;/li&gt;&lt;li&gt;The character scaling is off (Reason: Room XML required - cannot access walkable areas to automatically determine correct scaling).&lt;/li&gt;&lt;li&gt;Wall Panel missing (Reason: Room XML required - cannot access information on room objects).&lt;/li&gt;&lt;li&gt;Cris is darker in AGS (Reason:  Not sure.  Either there's some filtering applied by AGS that I'm not aware of, or the room's palette is affecting the sprite).&lt;/li&gt;&lt;/ul&gt;Also, the Cris character has no animation for walking up (away from the screen).   AGS is happy with this and just substitutes with an appropriate left/right walking animation, whereas XAGE currently expects the animation to be there, hence the odd sliding effect in the video.  This will be dealt with at some point.&lt;br /&gt;&lt;br /&gt;So far all of the conversion work is based around what is required for Demo Quest, so it would be very interesting to hear about other people's experiences.  Once XAGE v0.4 is released I'll see about placing some sort of official feature request with AGS/Chris Jones for AGS Room XML export functionality, providing there's demand for it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Edit:&lt;/span&gt;  Ags Forum thread &lt;a href="http://www.bigbluecup.com/yabb/index.php?topic=37883.0"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-523458614969180109?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/523458614969180109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=523458614969180109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/523458614969180109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/523458614969180109'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/05/agss-demo-quest-on-xbox360.html' title='AGS&apos;s &apos;Demo Quest&apos; on Xbox360'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_DemoQuestComparison.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-2048579802974159992</id><published>2009-05-08T08:20:00.002+01:00</published><updated>2009-05-08T08:53:28.813+01:00</updated><title type='text'>Dull Technical Post</title><content type='html'>Real life events have again made it difficult to contribute time to XAGE, but there has been some small progress in the last few weeks.&lt;br /&gt;&lt;br /&gt;I remember now why I put off implementing the conversation system for so long - there are a lot of design ramfications of doing so.  The basic structure is in place and its now possible to initiate and select various conversation options in a similar way to a LucasArts game.&lt;br /&gt;&lt;br /&gt;The reason it is incomplete is a long one.  I've found that the more time I've spent on XAGE, the more inclined I am to want to do things right, rather than use any cheap or ugly hacks.  One such case is that the dialogue system requires new Action Types in order to initiate conversations, amend option visibility etc.  Rather than plumb these in as before, I wanted to completely rewrite how the Actions are organised both internally and externally.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Internally:&lt;/b&gt;  At the moment, actions are simply stored as a type and a string of associated content, which is delimited by the tilde character.  This is simple to implement but is quite brittle.  After discovering &lt;a href="http://nickgravelyn.com/2009/04/xmlserializer-misconceptions-part-1/"&gt;Nick Gravelyn's post&lt;/a&gt; about serialization, I realised that it was actually possible to put Action types in their own class and still serialize them.  This is a much cleaner and &lt;i&gt;correct&lt;/i&gt; OOP way of doing things.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Externally:&lt;/b&gt;  The original Action editor relies mostly on combo boxes.  Given that the number of action types was swelling to thirty and beyond, it was becoming obvious that this list would become daunting to any unfamiliar users.  It's also quite a backwards thing to select the action type before the item it is being performed on.  By selecting the item first, you automatically narrow down the number of possible actions you can perform.  Its also more intuitive:&lt;br /&gt;&lt;br /&gt;(old)   Walk -&gt; (Character, ToXY, Direction, Pause)&lt;br /&gt;(new)   Character -&gt; Walk -&gt; (ToXY, Direction, Pause) &lt;br /&gt;&lt;br /&gt;Its not especially easy to illustrate using text alone, but the benefits should become obvious after a few minutes of use.  The above also means I can wrap up each piece of information into a seperate class and re-use as necessary for each Action (e.g. Pause after action is used in various).  Certain items are now selected via popup buttons rather than combo boxes, as this is more visual and easier to understand.&lt;br /&gt;&lt;br /&gt;All of these changes require quite a large rewrite.  One problem is that, previously, I've completely seperated the codebase of XAGE and the Editor itself, as they only shared a dozen or so classes.  As the number of classes has grown massively due to the new Action structure, it has become obvious that I need to wrap all the shared classes into a Global project, and expand any functionality in XAGE or the Editor via partial classes.  &lt;br /&gt;&lt;br /&gt;None of these required changes are particularly exciting in any way, and will take some time to complete.  The end result will be a cleaner, more flexible XAGE v0.4, which should be the first wholly public alpha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-2048579802974159992?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/2048579802974159992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=2048579802974159992' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2048579802974159992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2048579802974159992'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/05/dull-technical-post.html' title='Dull Technical Post'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-4741854020360177214</id><published>2009-04-22T22:52:00.003+01:00</published><updated>2009-04-22T23:20:00.565+01:00</updated><title type='text'>Editor Appearance</title><content type='html'>One of my gripes with the XAGE Editor was that the toolstrip looked bad on Vista - a sickly pale colour as opposed to XP's vibrant blue.  It seems to be a recurring problem for Winforms developers. &lt;br /&gt;&lt;br /&gt;When looking for solutions for this I came across a useful, free component framework, &lt;a href="http://www.componentfactory.com/free-windows-forms-controls.php"&gt;Krypton Toolkit&lt;/a&gt;, which is a lot more lightweight than the likes of DevExpress but looks good and seems to perform pretty well.  I've spent the last few evenings making the Editor play nicely with it - there are a few workarounds due to various limitations, but I'm now at the stage where I'm satisfied it has been worth the effort:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XAGEEditorv04-Feedback.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 392px; height: 305px;" src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XAGEEditorv04-Feedback.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I like it.  It has a smooth WPF-esque feel about it whilst still being plain old Winforms.  The new Editor Appearance preference allows the end user to choose between a number of presets.  If I get the time I'll add a few custom ones - for novelty value alone I'm interested to see how it looks in an eye-watering pink.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-4741854020360177214?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/4741854020360177214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=4741854020360177214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4741854020360177214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4741854020360177214'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/04/editor-appearance.html' title='Editor Appearance'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_XAGEEditorv04-Feedback.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-1063244554335196369</id><published>2009-04-18T23:36:00.003+01:00</published><updated>2009-04-19T10:30:50.237+01:00</updated><title type='text'>Refactor, Bugfix, Itch</title><content type='html'>The overall response to the AGS converter, despite its infancy, has been pretty positive so it's something I'll continue to work on.  It's probably worth reiterating that my little engine is not an official port of AGS, or in any way affiliated or endorsed by it; they are two seperate engines that share some general goals &amp;amp; functionality.  Also, the conversion only ever takes place at the developer's project level, not with the compiled AGS game as this would be unethical (and also &lt;i&gt;really&lt;/i&gt; hard). &lt;br /&gt;&lt;br /&gt;I've taken a closer look at AGS's file structure and it is in fact possible to glean quite a bit more information than I originally thought.  I've started a component that picks out all the dialogue options and then parses the associated dialogue script for the associated behavious, which map quite nicely to XAGE's Actions. &lt;br /&gt;&lt;br /&gt;This cannot be ported over just yet as there's no equivalent functionality in XAGE - as much as I'm itching to dive in and start work on the Conversation system, there's a whole bunch of bugfixing and refactoring to do first.   Walkboxes are now (fingers crossed) feature complete, and the graphics control in the Editor is more user friendly with mousewheel zooming and right-click scrolling.  It also better illustrates which pixel you're selecting and a few other handy things like showing WalkBox connectivity.  Here's a mini-changelog:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  FIXED:  Character Panel slow due to obsolete links  &lt;/li&gt;&lt;li&gt;  FIXED:  Anim Frames getting width &amp;amp; height out by one pixel&lt;/li&gt;&lt;li&gt;  FIXED:  Removed clumsy indexing for Anims, CustomAnimSteps &amp;amp; Actions&lt;/li&gt;&lt;li&gt;  ADDED:  New IF Actions (Variables &amp;amp; Objects)&lt;/li&gt;&lt;li&gt;  ADDED:  Graphic control - change get pixel depending on what we're getting (with new icons)&lt;/li&gt;&lt;li&gt;  ADDED:  Graphic control - drag image via right mouse button&lt;/li&gt;&lt;li&gt;  ADDED:  Graphic control - zooming controllable by mousewheel &amp;amp; cursor position&lt;/li&gt;&lt;li&gt;  ADDED:  Graphic control - zoom buttons no longer originate around 0,0&lt;/li&gt;&lt;li&gt;  ADDED:  Graphic control - show when walkboxes are connected&lt;/li&gt;&lt;li&gt;  ADDED:  Basic in-game debug window&lt;/li&gt;&lt;li&gt;  ADDED:  Active flag for WalkBoxes, amendable in scripting, resets WalkBoxMatrix&lt;/li&gt;&lt;li&gt;  ADDED:  onEnter event for Walkboxes - script to run when Player enters&lt;/li&gt;&lt;li&gt;ADDED: Basic AGS  -&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;XAGE&lt;/span&gt; conversion&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-1063244554335196369?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/1063244554335196369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=1063244554335196369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1063244554335196369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1063244554335196369'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/04/refactor-bugfix-itch.html' title='Refactor, Bugfix, Itch'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-1477656974279760963</id><published>2009-04-14T23:18:00.004+01:00</published><updated>2009-04-14T23:26:10.248+01:00</updated><title type='text'>AGS -&gt; XAGE Conversion</title><content type='html'>&lt;p&gt;Over Easter weekend I finally got around to taking a proper look at Adventure Game Studio.  The first thing I discovered was that the main container for an AGS Project (*.agf) is in XML format.&lt;br /&gt;&lt;br /&gt;More as a proof of concept than anything, I've added an option to convert AGS projects to XAGE.  The process so far only takes a few minutes - here's a quick video of &lt;i&gt;Demo Quest 3-1&lt;/i&gt; being converted to and running in XAGE:&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5wZLoM6kJ_Q&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/5wZLoM6kJ_Q&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;As above, the sprites and room images need to be exported first (the player character is currently bald as AGS seems to export to 32bit bitmaps instead of 8bit). XAGE gathers up the exported sprites into a single texture for each character and creates the animation frames automatically.&lt;br /&gt;&lt;br /&gt;It's a nice start, but there are quite a few limitations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;As AGS and XAGE are both engines for the same genre, there's inevitably a great many similarities. There are also, however, a number of crucial structural differences. For this reason there will never be a 1 to 1 perfect automatic conversion.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unfortunately the individual room data (objects, walkable areas etc) is not wrapped up into XML but some other format (.crm?), so I'm not currently able to convert any of the scripts over - the real meat of the game.&lt;/li&gt;&lt;/ul&gt;At the very least, the conversion process removes some of the donkey work for anyone who may want to port their finished AGS game to the Xbox360. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-1477656974279760963?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/1477656974279760963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=1477656974279760963' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1477656974279760963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1477656974279760963'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/04/ags-xage-conversion.html' title='AGS -&amp;gt; XAGE Conversion'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-8789170380699287467</id><published>2009-04-10T16:02:00.004+01:00</published><updated>2009-04-10T16:55:05.069+01:00</updated><title type='text'>Scripting example - Clouds</title><content type='html'>Here's a real world example of scripting in XAGE.  One of the locations in my game is on top of a mountain and some moving clouds would help bring the room to life.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/Clouds/?action=view&amp;amp;current=MountainTop.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/Clouds/MountainTop.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let's break this problem down into managable steps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There must be several different clouds&lt;/li&gt;&lt;li&gt;They must be obscured by the mountain and all other objects&lt;/li&gt;&lt;li&gt;They must start in randomised locations&lt;/li&gt;&lt;li&gt;They must slowly scroll to the left &amp;amp; reappear at the right of the screen&lt;/li&gt;&lt;/ul&gt;Ok, so now we can tackle these steps one at a time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) There must be several different clouds:&lt;/span&gt;  Using the editor we add five new objects to the &lt;span style="font-style: italic;"&gt;MountainTop&lt;/span&gt; room.  So we can identify them within the editor, lets give them IDs &lt;span style="font-style: italic;"&gt;cloud&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;cloud5&lt;/span&gt;.  We don't need to give them a name as we don't want the user to be able to interact with them in any way.  For each cloud we need to create a single AnimFrame.  For consistency, lets tag them all as &lt;span style="font-style: italic;"&gt;show&lt;/span&gt;, and set each cloud's current frame to the &lt;span style="font-style: italic;"&gt;show&lt;/span&gt; frame.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/Clouds/?action=view&amp;amp;current=cloud.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/Clouds/cloud.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) They must be obscured by the mountain and all other objects:&lt;/span&gt;  In order for the clouds to pass behind the mountain, we create a new object called &lt;span style="font-style: italic;"&gt;mountainCover&lt;/span&gt; which has an animframe of the mountain itself.  We then set the y position and hotspot of&lt;span style="font-style: italic;"&gt; mountainCover&lt;/span&gt; so that it perfectly overlays the actual room background image.   Because of the hotspot, this object will not obscure any other objects (our player character, for instance) but will obscure the clouds, as we'll ensure these always have a lower Y position.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) They must start in randomised locations:&lt;/span&gt;  Every time we enter the room, we should set the positions of the five clouds to random locations.  We then set each cloud to run its own move script.&lt;br /&gt;    &lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/Clouds/?action=view&amp;amp;current=Script_set_clouds.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/Clouds/Script_set_clouds.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) They must slowly scroll to left:&lt;/span&gt;  Each cloud's move script checks whether the cloud has scrolled offscreen (i.e. the xPosition is more than 200 pixels beyond the left side of the display).  If so, the cloud is repositioned at a random position to the right of the screen so it can scroll back on.  At each iteration, the scripts pauses, moves the cloud one pixel left, and then repeats the whole process.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/Clouds/?action=view&amp;amp;current=Script_move_cloud.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/Clouds/Script_move_cloud.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now if we repeat this for cloud2 to cloud5, we get the following:&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/o2P7eup9OvU&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/o2P7eup9OvU&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Excluding the artwork, the above takes only a few minutes to achieve but really helps to add an organic feel to the location, without a single line of code being written.&lt;br /&gt;&lt;br /&gt;There is an obvious improvement in that I could implement script paramaterisation and use the one script for all five clouds, passing each cloud object as a paramater.  I'm not sure yet whether I'm going to want to implement this, as you can pretty much achieve the same affect using Global Variables.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-8789170380699287467?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/8789170380699287467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=8789170380699287467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8789170380699287467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8789170380699287467'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/04/scripting-example-clouds.html' title='Scripting example - Clouds'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/Clouds/th_MountainTop.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-6698650988145358345</id><published>2009-04-07T10:09:00.001+01:00</published><updated>2009-04-13T08:57:42.353+01:00</updated><title type='text'>Update Clickety DBP</title><content type='html'>Time's been short recently, but here's the most recent changes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;REMOVED: zPos - object occlusion now works purely by Yposition &amp;amp; hotspots.&lt;/li&gt;&lt;li&gt;FIXED: WalkBoxMatrix not always generating correctly.&lt;/li&gt;&lt;li&gt;FIXED: Characters getting stuck when three walkboxes interesect.&lt;/li&gt;&lt;li&gt;ADDED: Reporting Tools now use progress bar (can be cancelled).&lt;/li&gt;&lt;li&gt;ADDED: Character WalkSpeed customisable and affected by walkBoxscale.&lt;/li&gt;&lt;li&gt;ADDED: Visible (True/False) character/object option (removed 'Invisible' option from inRoom).&lt;/li&gt;&lt;li&gt;ADDED: "Make Player" button on Character Edit panel &amp;amp; scripting.&lt;/li&gt;&lt;li&gt;ADDED: Changeable Walking Speed (handy for mapviews etc.)&lt;/li&gt;&lt;/ul&gt;I cocked up with ClickOnce insofar that I hadn't realised that, whilst the XAGE Editor installation works fine, the bootstrapper (setup.exe) was being blocked by my hosting, and they are unable to change this for the time being. This means that everyone who already had the XNA 3.0 redistributable installed already had no problems, and anyone without it ran into bother.&lt;br /&gt;&lt;br /&gt;As a workaround, any future alpha requests will get a zipped up version of the ClickOnce package to ensure that the requirements are definitely met. I'm debating whether to switch off the auto-update feature too, as various changes for v0.4 break the scripting for previous versions (at one point fatally so, as enumerations break the xml serialisation, so I reverted back to the previous system). This isn't so much of a problem at the moment, but will be in the future if people are regularly having to regression test their games to make sure new features don't make them fall over. I'll have to have a think about it.&lt;br /&gt;&lt;br /&gt;Finally, anyone hoping to release their XAGE game to the Xbox360 might want to register for the &lt;a href="http://www.dreambuildplay.com/main/default.aspx"&gt;Dream Build Play&lt;/a&gt; competition, which entitles you to a free 12 month creators club membership. This means you'll be able to deploy &amp;amp; test your game on the console itself to your heart's content, though you'll still have to cough up for a paid membership when it comes to XBLCG peer review.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-6698650988145358345?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/6698650988145358345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=6698650988145358345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6698650988145358345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6698650988145358345'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/04/update-clickety-dbp.html' title='Update Clickety DBP'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-1970832578444249229</id><published>2009-04-05T16:10:00.000+01:00</published><updated>2009-04-05T17:01:44.668+01:00</updated><title type='text'>The 8 Minute Trial Test</title><content type='html'>It seems that there's a mixed reaction over the revenue generated by the indie developers on Xbox Live Community Games.  Generally the bedroom coders are happy about making a few thousand dollars from their hobby, whereas the teams behind the larger projects seem more disappointed with the returns so far.   There are a number of reasons offered - lack of marketing,  lack of visibility, lack of quality, lack of achievements &amp;amp; leaderboards.  All seem pretty valid.&lt;br /&gt;&lt;br /&gt;There has been &lt;a href="http://forums.xna.com/forums/p/28043/155164.aspx#155164"&gt;some discussion&lt;/a&gt; on the XNA forums about the impact of the 8 minute trial on actual game sales.  Some of the problems facing small puzzle games aren't really applicable to the point and click genre, but that has its own set of issues.&lt;br /&gt;&lt;br /&gt;As I'm in the process of fleshing out plot ideas for my own game, it seemed like a good time to get some pointers over what works and what doesn't.   To help in this, I've downloaded five games built with AGS and treated them as if they were targeting XBLCG.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Colour Key:&lt;/span&gt;  &lt;span style="color: rgb(51, 204, 0);"&gt;Green&lt;/span&gt; = pre v1.0 functionality, &lt;span style="color: rgb(255, 204, 51);"&gt;Orange&lt;/span&gt; = post v1.0, &lt;span style="color: rgb(255, 102, 0);"&gt;Red&lt;/span&gt; = unlikely to be implemented.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Disclaimer:&lt;/span&gt;  The following are not reviews, just an analysis of their introduction and suitability for Xbox Live &amp;amp; XAGE.  Granted, it's a slightly unfair critique as none of these games were designed with a time limit in mind.  A few I've played before, the rest are new to me.   XAGE capability of each title excludes &lt;span style="color: rgb(51, 204, 0);"&gt;GUI Customisation&lt;/span&gt; and &lt;span style="color: rgb(51, 204, 0);"&gt;Conversations&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=941"&gt;Murder In a Wheel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=MurderInAWheel.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/MurderInAWheel.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Good:&lt;/span&gt;  Interesting Day of the Tentacle-esque art style.  The murder  occurs within the first 8 minutes.  The player gets a few minutes of playing the game.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Bad:&lt;/span&gt;  Characters slide as they walk (more a matter of personal preference).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not yet possible in XAGE:&lt;/span&gt;  Nothing I'm aware of.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=1115"&gt;A Second Face - The Eye of Geltz is watching Us&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=ASecondFace.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/ASecondFace.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Good:&lt;/span&gt;  Higher resolution than most Adventure Games.  Very good use of audio.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Bad:&lt;/span&gt;  Slow pace of the intro is a bit of a killer.  Art direction a bit wonky.  Pronunciation of "Realm".  Suitability.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not yet possible in XAGE:&lt;/span&gt;  &lt;span style="color: rgb(255, 204, 51);"&gt;Talking heads&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;Text Parser&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=905"&gt;A Tale of Two Kingdoms&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=ATaleOfTwoKingdoms.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/ATaleOfTwoKingdoms.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Good:&lt;/span&gt;  Comes across very much as a labour of love.  Interesting zoom technique in the preamble. &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Bad:&lt;/span&gt;  There is a LOT of dialogue, with barely a few seconds of play in the first 8 minutes unless you skip a lot of scenes.  This is likely to appeal to a certain type of player and alienate the rest.  Possible size limit issues.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not yet possible in XAGE:&lt;/span&gt;  &lt;span style="color: rgb(255, 204, 51);"&gt;Talking heads&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;Autonomy&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4) &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=1128"&gt;Annie Android&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=AnnieAndroid.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/AnnieAndroid.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Good:&lt;/span&gt;  Low colour palette makes for a very striking, NES-esque, retro art style.  A bit kitsch.  Nice, simple GUI &amp;amp; polished animations.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Bad:&lt;/span&gt;  Length.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not yet possible in XAGE:&lt;/span&gt;  Nothing I'm aware of.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5) &lt;a href="http://www.wadjeteyegames.com/blackwell.htm"&gt;Blackwell Legacy&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/?action=view&amp;amp;current=BlackwellLegacy.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/BlackwellLegacy.png" alt="Photobucket" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Good: &lt;/span&gt; The art style and general presentation is strong.  The story is intriguing.  The player gets an early chance to see the game's play mechanic (Rosangela's apartment).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Bad:&lt;/span&gt;  The central plot revelation is not exposed within the first 8 minutes (unless the player skips through much of the dialogue).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not yet possible in XAGE:&lt;/span&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;Character transparency&lt;/span&gt;, &lt;span style="color: rgb(255, 204, 51);"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 204, 51);"&gt;Speech&lt;/span&gt;, &lt;span style="color: rgb(255, 204, 51);"&gt;Talking Heads&lt;/span&gt;&lt;span style="color: rgb(255, 204, 51);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion: &lt;/span&gt; It's important for the player to get a clear idea of the plot, characters and game mechanic within the first few minutes, which isn't as easy as it sounds.  The player needs to get sucked into the gameworld sufficiently to part with a few hundred microsoft points.  Also a trial detection needs to be scripted into the game itself, to prevent users from repeatedly skipping cutscenes on multiple playthrough.  Loading &amp;amp; Saving must be disabled.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-1970832578444249229?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/1970832578444249229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=1970832578444249229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1970832578444249229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1970832578444249229'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/04/8-minute-trial-test.html' title='The 8 Minute Trial Test'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/8%20Minute%20Test/th_MurderInAWheel.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-129315123689136067</id><published>2009-03-29T18:15:00.000+01:00</published><updated>2009-03-30T13:53:21.446+01:00</updated><title type='text'>XAGE:  Coming to Mac/Linux/Smartphone?</title><content type='html'>A couple of posts ago I was drawing together a few ideas for future XAGE directions, one being a port to Silverlight. This turns out not to be necessary as I've discovered a technically impressive little library called &lt;a href="http://silversprite.codeplex.com/"&gt;SilverSprite&lt;/a&gt; which allows you to play XNA games in your browser via Silverlight (essentially Microsoft's version of Flash). It only took about half a day or so for me to get the MI sample game up and running in Internet Explorer:&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oqIRZqCR2z8&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/oqIRZqCR2z8&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;There are a few things missing, and you might notice that Guybrush walks backwards (sprite flipping is not yet supported), but the library can only mature. Performance isn't stellar but with some optimisations in both XAGE and SilverSprite, I can really see it being comparible to the original formats.&lt;br /&gt;&lt;br /&gt;The best part is that &lt;b&gt;Silverlight is not specific to Windows&lt;/b&gt;, and there will be &lt;b&gt;no dependancy on the XNA runtimes&lt;/b&gt;. This means that there is the possibility that XAGE could offer broad multi-platform support, something I've seen developers of commercial AGS games bemoan. The list of platforms are as follows:&lt;br /&gt;&lt;br /&gt;Executable:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Windows PC (XP/Vista/7)&lt;/li&gt;&lt;li&gt;Xbox 360 &lt;/li&gt;&lt;/ul&gt;Browser-based (via Silverlight/Moonlight)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mac OS X&lt;/li&gt;&lt;li&gt;Linux&lt;/li&gt;&lt;li&gt;Windows Mobile 6&lt;/li&gt;&lt;li&gt;Symbian (Nokia)&lt;/li&gt;&lt;/ul&gt;Thanks to everyone who's downloaded the latest Alpha so far. I've already fixed a few bugs, specifically with the generation of the WalkBoxMatrix (characters would sometimes get stuck where three boxes intersect). You should find that XAGE Editor will automatically update itself every few weeks or so.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EDIT:&lt;/b&gt;  I've just read up on Silverlight v3 which is currently in Beta.  Apparently there will be options for developers to allow users to store the SL apps offline and be run outside of a browser.  This is all very good news - essentially as good as native support for these platforms but with minimal effort.  It will be interesting to see how this all pans out and how well XAGE can exploit these features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-129315123689136067?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/129315123689136067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=129315123689136067' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/129315123689136067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/129315123689136067'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/03/xage-coming-to-maclinuxsmartphone-near.html' title='XAGE:  Coming to Mac/Linux/Smartphone?'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-8443397752062367124</id><published>2009-03-27T05:03:00.000Z</published><updated>2009-03-27T05:26:24.561Z</updated><title type='text'>XAGE Private Alpha v0.3 - Download</title><content type='html'>Being a terrible insomniac is not good for your health, but at least you get more things done - &lt;b&gt;XAGE Version 0.3 is ready for download&lt;/b&gt;.  I can't be bothered listing all the changes as there's far too many and the major ones have been covered here already.  I'm a lot happier with how the XAGE Editor looks and feels and, as this blog has been a little dry recently, here's something to give you an indication of the new layout and features:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/zhZGiBq01Ag&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/zhZGiBq01Ag&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XageEditor-Alphav03.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XageEditor-Alphav03.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XageEditor-Alphav03fonts.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XageEditor-Alphav03fonts.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The actions now have an actual textual description which makes deciphering scripts pretty painless.  A simple but useful change:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;amp;current=XageEditor-Alphav03actions.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XageEditor-Alphav03actions.png" border="0" alt="Photobucket" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As usual, if you'd like to have a play around with it, email &lt;b&gt;clarvalon@live.co.uk&lt;/b&gt; and I'll give you the download link.  This is the last time you'll have to do this as the XAGE Editor now automatically updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-8443397752062367124?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/8443397752062367124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=8443397752062367124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8443397752062367124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8443397752062367124'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/03/xage-private-alpha-v03-download.html' title='XAGE Private Alpha v0.3 - Download'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_XageEditor-Alphav03.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3045528396435815722</id><published>2009-03-25T21:41:00.000Z</published><updated>2009-03-25T22:11:20.971Z</updated><title type='text'>Misc. Gumf</title><content type='html'>&lt;strong&gt;Last update before release:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Added Copy/Import/Export mechanism - no more hacking through xml to copy items from room to room, or game to game.&lt;/li&gt;&lt;li&gt;Added integrated bug reporting, feedback and optional exception logging (all via Web Services) - hopefully this will only improve the quantity of feedback.&lt;/li&gt;&lt;li&gt;Added Font preview in FontManager - required quite a bit of work to import the XNA model into the Editor, but it works fine.&lt;/li&gt;&lt;li&gt;Tidied up field positions.&lt;/li&gt;&lt;/ul&gt;Finally I've implemented Asset Protection. What's this? Well, the Editor now has a &lt;em&gt;Publish&lt;/em&gt; button which lets you select an empty folder to publish a completed game to. This isn't just a simple copy however - all of the game content is encrypted using a randomly generated key. This enables you to distribute your XAGE game without worrying about others cannibalising your textures, music and game code. Nothing's hackproof of course, but it does provide a certain degree of security.&lt;br /&gt;&lt;br /&gt;Implementing this has taken quite a bit of work, and comes with one small sacrifice: Mp3 support. The reason for this is that I had originally been using the Windows Media Player library for PC audio playing but this component would only play the audio from a file rather than a stream, which is required for the encryption. The only way I could get around this was to save the the decrypted audio to a temporary file in order to play it, which of course defeats the whole purpose of the encryption.&lt;br /&gt;&lt;br /&gt;Eventually I decided to rip the Media Player component out altogether and have now replaced it with &lt;a href="http://cs-sdl.sourceforge.net/index.php/Main_Page"&gt;SDL.net&lt;/a&gt;'s audio, which supports loading audio via streams and therefore encryption. XAGE now supports the .ogg format for PC songs and, whilst it no longer directly supports mp3, it's easy enough to convert audio formats manually, plus there is the added bonus of future support for Midi and Mod files. Swings and roundabouts.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;XBLCG Sales&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;Whilst no concrete sales figures have been released, it appears that there's a reasonable amount of money to be made from the Xbox Live Community Games channel. At GDC Microsoft have &lt;a href="http://forums.xna.com/forums/t/27796.aspx"&gt;announced&lt;/a&gt; that '&lt;em&gt;Several Community Games top sellers will be taking home more income from four months of sales than the average U.S. citizen earns in a full year'&lt;/em&gt;. Granted that's for the more popular games, but its not bad going - about $50k in 4 months?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Blackwell Legacy:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;For someone who would normally be described as a gamer, I don't get to play a lot of games. Almost all my free time is spent working on XAGE. In the last six months I've rattled through a couple of hours of Left 4 Dead and Mirror's Edge, and that's about it.&lt;br /&gt;&lt;br /&gt;Last night, after reading &lt;a href="http://reviews.gamesafoot.com/2009/03/23/ghost-detectives-oyeroh-boy/"&gt;Uhfgood's review&lt;/a&gt;. I finally got around to trying &lt;a href="http://www.wadjeteyegames.com/blackwell.htm"&gt;The Blackwell Legacy&lt;/a&gt; demo. It's a nice looking game, polished and well put together. From what I saw there's nothing in it that XAGE wouldn't be able to recreate - there'd need to be a few UI additions and implementing speech is an interesting challenge, but ultimately there's nothing that I'm yet aware of that would stop a title of Blackwell's quality being released on xbox live using XAGE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3045528396435815722?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3045528396435815722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3045528396435815722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3045528396435815722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3045528396435815722'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/03/misc-gumf.html' title='Misc. Gumf'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-5841054975783342698</id><published>2009-03-19T11:04:00.000Z</published><updated>2009-03-19T11:11:05.129Z</updated><title type='text'>Recent Editor improvements</title><content type='html'>An quick update as the Editor is not quite ready for the next alpha:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Added a new unified viewer control to replace the different ones for managing graphics, animation frames and walkboxes.  It includes magnification buttons, xnb support and no longer causes mild headaches due to incessant flickering.  The highlighted boxes now flash so you can more readily see what you're amending.&lt;/li&gt;&lt;li&gt;Removed local anim offsets due to reworked animation offsets (renamed to the more sensible 'hotspots') - creating animations is now a whole lot simpler.&lt;/li&gt;&lt;li&gt;Automated script creation for characters/objects (turns a three step process into one).&lt;/li&gt;&lt;li&gt;Added Audio manager to support importing of wav, mp3 and xnb formats, all playable within the editor and for use with scripting.&lt;/li&gt;&lt;li&gt;Added Font manager to add/remove different spritefonts to game from stock selection.&lt;/li&gt;&lt;li&gt;Integrated OK &amp;amp; Cancel buttons into main editor, removed from dynamic panels (more intuitive, quicker to use, less scrolling).&lt;/li&gt;&lt;li&gt;Added saving &amp;amp; loading of Editor user settings (display settings, previous projects etc).&lt;/li&gt;&lt;li&gt;Added progress bars for loading and saving.&lt;/li&gt;&lt;li&gt;Replaced most of the crappy hand drawn icons with free, professional looking ones.&lt;/li&gt;&lt;li&gt;Tightened up field validation.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Currently working on:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Copy room/character/object mechanism (locally and to file).&lt;/li&gt;&lt;li&gt;Spritefont preview.&lt;/li&gt;&lt;li&gt;Integrated Bug reporting and Feedback.&lt;/li&gt;&lt;li&gt;Asset protection.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-5841054975783342698?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/5841054975783342698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=5841054975783342698' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5841054975783342698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5841054975783342698'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/03/recent-editor-improvements.html' title='Recent Editor improvements'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-8664733526758059091</id><published>2009-03-04T13:10:00.000Z</published><updated>2009-03-04T13:56:22.257Z</updated><title type='text'>ClickOnce</title><content type='html'>I've figured out the distribution method for XAGEditor. In previous alpha releases I've bundled everything up separately in a .zip file. The problem with this is that XAGEditor and XAGE itself have certain requirements (DOTNET 2.0 and XNA GS 3.0 frameworks, DirectX). My temporary workaround was to include a seperate installer, "DummyGame.exe", essentially an empty XNA game which used the Microsoft ClickOnce method to automagically download and install these requirements. That way XAGEditor and the sample XAGE game would work.&lt;br /&gt;&lt;br /&gt;This isn't an especially user-friendly solution. I've now changed this so that XAGEditor (which itself contains XAGE) uses ClickOnce. This means that users will go to the website, click on a button and XAGEditor and all the requirements will be downloaded. What's more, XAGEditor will automatically be updated whenever I publish a new version to the website. Brilliantly, this means I don't have to spend a day packaging up and testing a release and uploading it to rapidshare or megaupload or wherever - instead I can just click 'publish' on VS2008 and all end users will find XAGEditor updates the next time they use it (providing they are connected to the internet). I've tested this and it works like a charm.&lt;br /&gt;&lt;br /&gt;I've been very impressed with the ease-of-use for the technologies I've discovered in the last few days. If I use ClickOnce, which I'm 90% sure I will, then all I have to be wary of is introducing any changes that break games relying on older versions.&lt;br /&gt;&lt;br /&gt;The only issue remaining is that XAGE itself does not automatically install requirements. This is a problem if a creator wants to distribute their own Windows-only game. If they distribute their XAGE game to someone without XAGEditor (or the required frameworks) installed then it won't run. I can see three possible solutions to this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The creator can include the "DummyGame.exe" installer along with their XAGE game (not ideal but easy).&lt;/li&gt;&lt;li&gt;The creator can build own windows installer for their XAGE game to ensure the requirements are met (more difficult but a more end-user friendly option)&lt;/li&gt;&lt;li&gt;The creator could upload their game to a new steam-like online service (XAGE Launcher?). This would take a lot of work on my part, and there'd be all sorts of of bandwidth costs or even legal issues, but it could be a great way of unifying the game creators with their audience. &lt;/li&gt;&lt;/ol&gt;AGS offers something similar to option 3, but the catalogue of games is web based and the they are not hosted on-site. My way would be much more like a lite version of Steam or XBLA/XBLCG. And who knows, maybe I could eventually bundle in some payment methods so people can release XAGE games commercially without requiring a publisher. DRM is a thorny issue best left until another day, methinks.&lt;br /&gt;&lt;br /&gt;P.S. It looks like XAGETOOL is being renamed XAGEditor. If anyone has any better suggestions I'd love to hear them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-8664733526758059091?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/8664733526758059091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=8664733526758059091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8664733526758059091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8664733526758059091'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/03/clickonce.html' title='ClickOnce'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-2080739245966978688</id><published>2009-03-03T09:25:00.000Z</published><updated>2009-03-03T13:57:41.062Z</updated><title type='text'>XAGETOOL Progress</title><content type='html'>Focus remains on XAGETOOL (maybe I should rename this XAGE Editor, or XAGEditor). I'm continuing to make general improvements to ensure its as stable and functional as possible before release. I'll give a general summary when I'm closer to completion.&lt;br /&gt;&lt;br /&gt;I've also sorted my web domain and hosting. The hosting is free and supports the .net 3.5 framework - there are a few questions marks over performance but I can always upgrade to a paid plan at a later stage. Irritatingly, all 'XAGE' related URLs were already taken so I decided to go with &lt;a href="http://www.clarvalon.com/"&gt;http://www.clarvalon.com/&lt;/a&gt;. This will give me more leverage to add new projects as and when they take form.&lt;br /&gt;&lt;br /&gt;I laboured a few hours looking at socket programming and managed to get simple data exchange between a client and server, but I was a bit disheartened by how fiddly everything was. I then came across Web Services, which are an absolute joy. After about half an hour I was able to write a program that effortlessly connects to my website. The upshot of this is that I can build nifty little features straight into XAGETOOL/XAGE Editor/XAGEditor like online exception logging, feedback and bug reporting with minimal effort. It would also be possible to have an integrated game upload/download client as a means of distribution (think Steam). Whether my bandwidth could handle this is another matter.&lt;br /&gt;&lt;br /&gt;Another possibility would be to port everything to WPF and Silverlight. As XAGE is solely 2D I'm pretty sure Silverlight would be able to handle all the graphical aspects. This would give the added bonus of portability, as Silverlight is browser-specific as opposed to platform-specific, from what I can gather. For now I'll just work on getting the original incarnation completed as I think the Xbox360 platform remains the biggest draw. It's good to know that, whilst there are some very specific project milestones, there are also potentially lots of future directions for XAGE.&lt;br /&gt;&lt;br /&gt;I was able to test on a Vista machine (all my development is done on a brilliant little Asus EEE 1000H netbook with XP) and finally found and fixed a bug causing a few people problems when opening XAGE projects. This will now be sorted for the next release, which will probably be a final private alpha in a few weeks time.&lt;br /&gt;&lt;br /&gt;Finally, I need to start thinking about documentation. The options seem to be to go with either an included .chm help file or an online wiki, or both. I do like Wikis but they live or die by the popularity of the subject matter. Maybe I'm just being lazy in hoping a wiki would mean some kindly soul will write the documentation for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-2080739245966978688?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/2080739245966978688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=2080739245966978688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2080739245966978688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2080739245966978688'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/03/focus-remains-on-xagetool-maybe-i.html' title='XAGETOOL Progress'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-6128882561095380265</id><published>2009-02-19T12:28:00.000Z</published><updated>2009-02-19T12:34:14.361Z</updated><title type='text'>Fontastic</title><content type='html'>Due to various commitments I've barely made any progress in the last few weeks, though I have implemented the font bank so you can import your own .xnb spritefonts and assign different ones to each character (useful if you want to make a narrator using a blank character, for instance). Any free time has been spent researching the best way to deal with that niggling Windows sound issue - at the very least I want to be able to support users importing their own .wav and .mp3s to be used as background music or sound effects. It seems that there are two remaining feasible options:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;SlimDX: An open-source c# wrapper for accessing DirectX functionality through managed code. This is the right idea, though I cannot find any pertinent code examples that use DirectSound.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MCI/Mediaplayer: Invisibly use windows media player the audio. It's a bit of a dirty hack and I'm not sure if it will allow multiple sound sources, but it's definitely the easier of the two options.&lt;/li&gt;&lt;/ol&gt;At the moment it looks like I'm leaning towards the media player option - the wrong option, no doubt, but the easiest for now and it'll help tick things over until SlimDX matures. All this agonising over design decisions is just me thinking out aloud - when XAGE is done all the internal workings will be abstracted away from the user. It'll just work™. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-6128882561095380265?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/6128882561095380265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=6128882561095380265' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6128882561095380265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/6128882561095380265'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/02/fontastic.html' title='Fontastic'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-280319705449307127</id><published>2009-02-07T20:44:00.001Z</published><updated>2009-02-25T13:50:25.848Z</updated><title type='text'>Conditional Logic</title><content type='html'>Mercifully, plumbing in the conditional logic turned out to be a lot more straightforward than I'd anticipated.  Adding the functionality for variables to the new XAGETOOL only took about 45 minutes, which is testament to the new design (even if do say so myself).&lt;br /&gt;&lt;br /&gt;Scripts can now manipulate and act upon user-defined variables with simple IF, ELSE, ENDIF actions, as per this toy example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;current=ConditionalLogic.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/ConditionalLogic.png" border="0" alt="Photobucket"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It was possible to achieve the above by changing the attached script associated with the door's onOpen, however the more complexity you add to your game the number of scripts you require grows exponentially and it quickly becomes a complicated mess.  The conditional logic is a simple way of negating this.  I don't at present expect to need to implement nested IFs - besides, the user can always invoke new scripts depending on the outcome of the original IF statement.&lt;br /&gt;&lt;br /&gt;Variables aren't type specific; XAGE will automatically determine whether the variable is numeric or non-numeric, so you can do things like &lt;i&gt;"IF $MONEY is greater than 500"&lt;/i&gt;.  Also, the drop-down fields are pre-set with 'TRUE' and 'FALSE'.  These are treated as strings but they essentially provide boolean functionality.&lt;br /&gt;&lt;br /&gt;I've always wanted XAGE to include non-technical types amongst its target audience.  The conditional logic is the only thing that remotely resembles code, but I can't see it putting anyone off as it is hard to imagine anyone not understanding the concept behind an IF, ELSE, ENDIF statement.  For this reason, I've made it as verbose as possible: 'greater than' rather than '&gt;'.&lt;br /&gt;&lt;br /&gt;It is creating the sample game that will really put XAGE through its paces and expose its strengths and weaknesses.  For example, it's already obvious that I need to add a popup to visually get x,y coordinates to make it easier and quicker to add various script actions (WALK actions inparticular).  It's very important that I address any weaknesses before v1.0 is released, hence why I keep harping on about feedback from the alphas.&lt;br /&gt;&lt;br /&gt;Once the oft-delayed dialogue system is out of the way, I only have two real headaches.  Both relate to asset creation, and the previously mentioned .xnb file format problem:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Sound:  For xbox development this isn't a problem.  Anyone developing for the 360 will easily be able to convert mp3s and wavs to the required .xnb format using Visual Studio/XNA GameStudio.  Windows-only developers however need to be able to import their audio files without converting to .xnb.  This means I need to implement songs and sound effects using DirectSound alongside the standard XNA implementation.  Unfortunately, as I don't currently have a dedicated internet connection, I won't be able to get my hands on the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5493f76a-6d37-478d-ba17-28b1cca4865a&amp;amp;DisplayLang=en"&gt;DirectX SDK&lt;/a&gt; (483MB) in the near future.&lt;/li&gt;&lt;li&gt;Fonts:  As above, sprite fonts are converted by visual studio into an .xnb format.  It's less of a problem however, as I can convert a bunch of free fonts myself in various sizes and include them with XAGETOOL.  This way the user can simply use XAGETOOL to import the desired fonts into their game.&lt;/li&gt;&lt;/ol&gt;Allowing GUI customisability will be a bit of a pain to code but shouldn't be too difficult.  I'm hoping the rest of the outstanding features are trivial and there'll be no showstoppers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-280319705449307127?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/280319705449307127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=280319705449307127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/280319705449307127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/280319705449307127'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/02/conditional-logic.html' title='Conditional Logic'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_ConditionalLogic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-5297117616625962296</id><published>2009-02-05T09:27:00.001Z</published><updated>2009-02-25T13:52:09.228Z</updated><title type='text'>Up the TreeView</title><content type='html'>Some of the feedback I've had from the latest Alpha has been excellent - very thorough and thoughtful.  It's much appreciated.&lt;br /&gt;&lt;br /&gt;I didn't actually mean to lie when I said I'd be focusing on new functionality - instead I've completely redesigned the XAGETOOL user interface:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I've replaced the numerous listboxes with a single treeview (think Windows Explorer) - this makes everything look much less cluttered and more intuitive to use, as the user can visually see how all the game content fits together, room by room.  It also makes it easier to add new functionality via context-sensitive menus (e.g. I've added an 'insert new ...' option for items in which the order is important, such as script actions or animation frames).  It also means that the UI is now completely resizable.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The popup dialogs have now been replaced with a panel embedded into the front page.  Now you can traverse the tree whilst editing items, and it also removes the size limitations of the popups.&lt;/li&gt;&lt;li&gt;The load/save buttons are gone and in there place is a proper menu strip.  This gives  it a much more familiar look and feel, and consequently it all seems a bit less amatuerish.&lt;/li&gt;&lt;li&gt;There's now a nice green, shiny 'Play' button which starts your current XAGE project game.  XAGETOOL now also contains all the required files, so essentially you can create an XAGE project completely from scratch without having to cannibalise the example game as in previous versions.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/k9Pbh7dX39w&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/k9Pbh7dX39w&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;current=XAGETOOLv03.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XAGETOOLv03.png" border="0" alt="Photobucket"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All in all, I'm pretty pleased with how it is turning out.  I have a vague design for my dialogue system, so it's about time I implemented that.  There's also now a roadmap on the project status panel on this blog, so you can get an idea of where XAGE currently is and where it needs to be for v1.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-5297117616625962296?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/5297117616625962296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=5297117616625962296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5297117616625962296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/5297117616625962296'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/02/some-of-feedback-ive-had-from-latest.html' title='Up the TreeView'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_XAGETOOLv03.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-7963220318334515511</id><published>2009-01-19T20:31:00.000Z</published><updated>2009-01-19T20:52:26.415Z</updated><title type='text'>XAGE Private Alpha v0.2 - Download</title><content type='html'>The second alpha release is now ready.   There is a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;changelog&lt;/span&gt; with the attached &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;readme&lt;/span&gt;, but here's a summary of the main changes for v0.2:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;XAGETOOL&lt;/span&gt; now works with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;XAGE&lt;/span&gt; projects ("Game.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;xag&lt;/span&gt;") which references five sections of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;inerpreted&lt;/span&gt; game content (intro, menu, tutorial, game &amp;amp; credits).&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;XAGE&lt;/span&gt; now takes any size for game screen, so can be used to develop retro 320*200 titles or 1280*720 behemoths.  Each section can also have its own screen size and scale, so a retro game can still have a fancy Hi-Def intro and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;menu screen&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;XAGE&lt;/span&gt; games can now be deployed to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;xbox&lt;/span&gt; 360 with the included skeleton project for Visual Studio 2008.&lt;/li&gt;&lt;li style="text-align: left;"&gt;Numerous tweaks and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;bugfixes&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;There's a lot of fiddly little things to deal with for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Xbox&lt;/span&gt; games to ensure you'll pass peer review, like dealing with unexpected controller unplugs or profile sign-outs.  These have now been dealt with.  The next release will focus on the outstanding functionality.  As usual, if you'd like to get your hands on it, please email &lt;span style="font-weight: bold;"&gt;clarvalon@live.co.uk&lt;/span&gt; for the download link.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-7963220318334515511?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/7963220318334515511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=7963220318334515511' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7963220318334515511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/7963220318334515511'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/01/xage-private-alpha-v02-download.html' title='XAGE Private Alpha v0.2 - Download'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-2269438848045575253</id><published>2009-01-17T19:27:00.000Z</published><updated>2009-01-19T20:29:28.754Z</updated><title type='text'>"Writer's Block"</title><content type='html'>It seems that someone's beaten me to releasing the first point &amp; click adventure game on the Xbox Live Community Games channel.  I've just had a quick go of &lt;a href="http://catalog.xna.com/en-US/GameDetails.aspx?catalogEntryId=ebdbab1b-9d9e-4912-872c-c204ce865b98&amp;type=2"&gt;Writer's Block&lt;/a&gt; and the similarities and differences between it and anything XAGE produces are interesting (to me, at least).&lt;br /&gt;&lt;br /&gt;Both have SCUMM-esque interfaces, though WB toggles the GUI with a click of the left shoulder button whereas XAGE always displays it at the bottom of the screen (as per the LucasArts games).  Early on in development I played around with various ideas for the interface similar to what the guys behind WB have gone for.  In the end I settled on sticking as closely to the winning (Lucasarts) formula as possible, as it turned out that using the thumbstick for the cursor wasn't nearly as laborious as I thought it might be.  In future, if there's a demand for it, there's nothing to stop me adding functionality for a Sierra style interface.  It's purely because I much prefer the SCUMM system that XAGE uses it.&lt;br /&gt;&lt;br /&gt;I quite like Writer's Block, and seeing a complete adventure game at a high resolution on a tv screen is refreshing.  There are a few things in it that I'd have done differently - the dialogue system in particular is a little clunky, and the character graphics, whilst pretty decent, suffer from that 'beanpole' style that seems to curse most AGS games.  I don't regard WB as competition as such as any game that brings more attention to the genre can only be a good thing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-2269438848045575253?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/2269438848045575253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=2269438848045575253' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2269438848045575253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/2269438848045575253'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/01/writers-block.html' title='&quot;Writer&apos;s Block&quot;'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-1637728204076859706</id><published>2009-01-06T14:07:00.000Z</published><updated>2009-01-06T14:28:29.548Z</updated><title type='text'>Bye bye, Guybrush</title><content type='html'>The placeholder Monkey Island graphics will soon be replaced.  In a way this is a shame as they're obviously of professional quality and gave the XAGE youtube videos an extra layer of polish.&lt;br /&gt;&lt;br /&gt;I'd expected that I'd need to replace them with either some suitable public domain graphics (none of which I was able to find) or to approach an AGS developer to use theirs.  In fact the answer had been staring me in the face all along.  In the mid-90's an elder brother and I had spent countless months of our misspent youth making simple adventure games with AMOS for the Amiga 500.  It transpires that my brother had actually recently managed to convert a bunch of our (mostly his, my creativity has always been highly derivative) deluxe paint drawings of various characters and locations.  At some point Guybrush and the Governer's Mansion will be replaced with Artichoke and the island of Uh-Oh Yeti:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/?action=view&amp;current=artichoke.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/artichoke.png" border="0" alt="Photobucket"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, I've contacted the creator of an AGS game who is potentially interested in converting his game to XAGE for release on the Xbox360.  Nothing is set in stone yet but this is a particularly exciting development and can only make XAGE more robust as I implement all the functionality I've overlooked as part of the conversion progress.  It should also be possible to automate parts of the conversion, specifically dialogue trees.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-1637728204076859706?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/1637728204076859706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=1637728204076859706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1637728204076859706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1637728204076859706'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2009/01/bye-bye-guybrush.html' title='Bye bye, Guybrush'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-1303754878232704013</id><published>2008-12-30T00:12:00.000Z</published><updated>2008-12-30T00:48:29.211Z</updated><title type='text'>XAGE v0.2 Progress</title><content type='html'>&lt;span style="font-weight: bold;"&gt;XAGE goes HD:&lt;/span&gt;  XAGE now accepts any gameScreen size.  There are still a few scaling issues to resolve - I aim to add GUI customisation to XAGETOOL at some point.  Here's XAGE using a background texture I borrowed from the AGS forums:  &lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/?action=view&amp;amp;current=XNAv02-HD.png"&gt;Clicky&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;XAGE on the Xbox 360:&lt;/span&gt;  The next release will include a XAGE as a library, along with a skeleton VS2008 project for easy assembly and deployment to the Xbox 360.  You'll need an &lt;a href="http://creators.xna.com/en-US/create_detail#tour_one"&gt;XNA Creators Club  membership&lt;/a&gt; (though you can occasionally get free ones).&lt;br /&gt;&lt;br /&gt;Here's a low-quality clip showcasing the following:&lt;br /&gt;1)  XAGE running on the Xbox 360&lt;br /&gt;2)  Introduction and Menu scripts (essentially non-playable mini-games)&lt;br /&gt;3)  Simple loading &amp;amp; saving (one slot only at present) and X360 storage selection&lt;br /&gt;&lt;br /&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Block this object with Adblock Plus" class="abp-objtab-05797208807269693 visible ontop" href="http://www.youtube.com/v/wqmD1YvsPYU&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/a&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wqmD1YvsPYU&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/wqmD1YvsPYU&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The above two features were implemented due to requests I received after v0.1, so your feedback &lt;span style="font-style:italic;"&gt;is&lt;/span&gt; taken seriously and is appreciated.  I'm not sure on the ETA for v0.2 yet - there's a fair amount of refactoring to do that I've put off for a while.  You can still get your hands on v0.1 by emailing me as per the below post.  At some point there'll be a online bugtracker to submit bugs and feature requests but it's probably overkill at the moment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-1303754878232704013?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/1303754878232704013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=1303754878232704013' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1303754878232704013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/1303754878232704013'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2008/12/v02-progress.html' title='XAGE v0.2 Progress'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-999099001047285447</id><published>2008-12-20T17:09:00.000Z</published><updated>2008-12-20T18:25:07.064Z</updated><title type='text'>XAGE v0.1 (Private Alpha)</title><content type='html'>It's taken a week longer than I had hoped, but the private alpha is now ready.  As mentioned previously, there's a bunch of features not yet implemented and a handful of known bugs, but I've been able to test the installation package on another machine and it seems to work fine.  There's a dummy game installer included which uses Microsoft's Click-Once installation to ensure you have all the requirements (dotnet 2.0, XNA Framework 3.0) and automatically downloads them if you don't.  All this is covered in the readme.&lt;br /&gt;&lt;br /&gt;If you'd like to participate, please email clarvalonATliveDOTcoDOTuk and I'll email you the link to the file (rapidshare).  Please post any feedback or issues on this blog.&lt;br /&gt;&lt;br /&gt;Much obliged.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-999099001047285447?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/999099001047285447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=999099001047285447' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/999099001047285447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/999099001047285447'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2008/12/xage-v01-private-alpha.html' title='XAGE v0.1 (Private Alpha)'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-3467237064388962121</id><published>2008-12-09T09:31:00.000Z</published><updated>2008-12-09T09:53:43.804Z</updated><title type='text'>Minor update</title><content type='html'>I've been laid up in bed for a few days with a touch of flu, so progress has been slow in the last week.  I've implemented a few new features for the creation tool, including the ability to import your own non-compiled graphics.  For animation frames I had previously been manually entering the pixel co-ordinates, which is easy enough, but I think most people would prefer being able to select the frames directly from the spritesheet using the mouse, so I'll put that in for the alpha.&lt;br /&gt;&lt;br /&gt;The following outstanding features will NOT be in the alpha, as they'll take a while to code and I'm eager to get some feedback as soon as possible:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Conversation Trees&lt;/li&gt;&lt;li&gt;Global Variables&lt;/li&gt;&lt;li&gt;Compression of save files&lt;/li&gt;&lt;li&gt;Importing of SOME non-compiled assets (fonts &amp;amp; sounds)&lt;/li&gt;&lt;li&gt;Full UI scalability&lt;/li&gt;&lt;/ul&gt;To answer a question in the comments, XAGE uses a system reminiscent of the SCUMM games in that there is a single executable which essentially interprets a gamecontent file (currently "Game.xml", but an option will be added to use a binary file instead).  The gamecontent file is created and updated by the creation tool - you'll never need to touch or worry about the executable.&lt;br /&gt;&lt;br /&gt;I'll post again when the Alpha's ready.  Note that documentation will be light (read: non-existent), but I'll put in some tooltips so you can at least figure out what each field does.  I'm hoping that the majority of the functionality will be self-explanatory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-3467237064388962121?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/3467237064388962121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=3467237064388962121' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3467237064388962121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/3467237064388962121'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2008/12/minor-update.html' title='Minor update'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-8443154842487820795</id><published>2008-12-01T19:02:00.000Z</published><updated>2008-12-01T19:29:30.731Z</updated><title type='text'>Custom Animations</title><content type='html'>One of the improvements Monkey Island 2 had over the original was the use gestures.  It made the characters seem more real if they were gesticulating as they talked, rather than just standing there with their mouths opening and closing.&lt;br /&gt;&lt;br /&gt;Alongside the scripting system XAGE uses, I've added a simple &lt;span style="font-style: italic;"&gt;Custom Animation&lt;/span&gt; structure, which simply lets you string together a series of frames at timed intervals.  This allows a certain deal of flexibility and enables the creator to add their own gesticulations.&lt;br /&gt;&lt;br /&gt;Here's a short clip that shows custom animations, along with &lt;span&gt;character scaling, object occlusion, multiple rooms and background scrolling:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pTlH1LNtqUA&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/pTlH1LNtqUA&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;As part of the engine's release I want to include a small sample game (a handful of rooms, characters and scripts).  Obviously I can't distrubute Lucasarts graphics as part of the package, so I need to stat thinking about either rolling my own or using the art from a different game.&lt;br /&gt;&lt;br /&gt;I really like &lt;a href="http://www.bigbluecup.com/games.php?action=detail&amp;amp;id=941"&gt;Murder in a Wheel&lt;/a&gt;; it's a good match for XAGE  .  Are there any public domain adventure game art assets, or is it likely anyone would let me use their artwork for my sample game?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-8443154842487820795?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/8443154842487820795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=8443154842487820795' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8443154842487820795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/8443154842487820795'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2008/12/one-of-improvements-monkey-island-2-had.html' title='Custom Animations'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-4938214116153466271</id><published>2008-11-27T13:07:00.000Z</published><updated>2008-11-27T13:20:12.408Z</updated><title type='text'>XAGE feature list</title><content type='html'>We now have a name - XAGE - standing for Xna Adventure Game Engine.  I'd played around with a few acronyms but this seemed the most obvious and least offensive to the eyes and ears.&lt;br /&gt;&lt;br /&gt;Completed features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Point &amp;amp; Click Interface (SCUMM-esque verb construction)&lt;/li&gt;&lt;li&gt;  Input Handling (Xbox controller &amp;amp; mouse)&lt;/li&gt;&lt;li&gt;  Multiple Rooms&lt;/li&gt;&lt;li&gt;  Inventory System&lt;/li&gt;&lt;li&gt;  Global &amp;amp; local characters / objects, all drawn via Y position&lt;/li&gt;&lt;li&gt;  Object scripts&lt;/li&gt;&lt;li&gt;  Character Walking (walkboxes, character scaling)&lt;/li&gt;&lt;li&gt;  Character Talking&lt;/li&gt;&lt;li&gt;  Audio - Sounds, Game Songs&lt;/li&gt;&lt;li&gt;  Skippable Cutscenes&lt;/li&gt;&lt;/ul&gt;In Progress:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Menu System (mostly done)&lt;/li&gt;&lt;li&gt;  Load / Save system (fine on PC, not yet working on xbox)&lt;/li&gt;&lt;li&gt;  Audio - Networked songs (fine on PC, needs multithreading to work smoothly on xbox)&lt;/li&gt;&lt;/ul&gt;Yet to implement:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Conversation Trees&lt;/li&gt;&lt;li&gt;  Conversation Gestures&lt;/li&gt;&lt;li&gt;  Reaching (high, low, across)&lt;/li&gt;&lt;li&gt;  Room Entry and Exit scripts&lt;/li&gt;&lt;li&gt;  External Cutscenes&lt;/li&gt;&lt;li&gt;  Compression of save files&lt;/li&gt;&lt;li&gt;  Loading of non-compiled assets (for easier PC-only production, i.e. no .xnb files = no VS2008 requirement)&lt;/li&gt;&lt;li&gt;  Full UI scalability (i.e allow any reasonable gamescreen size and resolution)&lt;/li&gt;&lt;li&gt;  User defined Object variables (not sure if this is needed yet)&lt;/li&gt;&lt;/ul&gt;Once the above has been implemented I'll begin work on my game - I have two ideas floating around, one inspired oddly enough by &lt;a href="http://en.wikipedia.org/wiki/In_the_Night_Garden"&gt;In The Night Garden&lt;/a&gt;.  This will help me iron out any glaring bugs and any useability issues as I want XAGE to be as robust as possible before release.  As it stands the tool has very little control validation and no circular referencing so needs a bit of work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-4938214116153466271?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/4938214116153466271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=4938214116153466271' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4938214116153466271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4938214116153466271'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2008/11/xage-feature-list.html' title='XAGE feature list'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-4170880489834426931</id><published>2008-11-25T17:00:00.000Z</published><updated>2008-11-25T17:02:16.850Z</updated><title type='text'>Tool Video</title><content type='html'>A quick video showing the XNA Adventure Game Creator Tool (working title) in action - it's a bit grainy due to compression but you get the general idea of how it works:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CrhLpgDmfyk&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/CrhLpgDmfyk&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-4170880489834426931?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/4170880489834426931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=4170880489834426931' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4170880489834426931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/4170880489834426931'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2008/11/tool-video.html' title='Tool Video'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-348348889650646951.post-9018270629842737674</id><published>2008-11-25T12:38:00.000Z</published><updated>2008-12-01T19:30:20.592Z</updated><title type='text'>Announcing XAGE</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;It's about time I started a development blog for this sort of thing.&lt;br /&gt;&lt;br /&gt;I'm developing a SCUMM-esque engine for adventure games using the XNA framework.  Eventually I hope to release an indie game via the recently launched Xbox Live Community Games service.&lt;br /&gt;&lt;br /&gt;Development is going well and I'm about 60-70% complete on the engine itself.  Here's a quick clip showcasing the engine (using placeholder MI2 graphics):&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/n9ujXyv6QcU&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/n9ujXyv6QcU&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Alongside development of the engine, I'm also making a tool for the creation of the game content.  In my opinion it's very easy to use and requires no actual programming or even scripting knowledge in order to create characters, rooms, objects, events etc.  Here's a screengrab:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://s360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/?action=view&amp;current=XNATool.png" target="_blank"&gt;&lt;img src="http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/XNATool.png" border="0" alt="Photobucket"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm hoping that there'll be interest in the eventual release of this tool in order for people to make their own Point 'n Click games for my engine.  Games could be released for the PC, Xbox360 and Zune, but not any other formats as the XNA framework does not support this.&lt;br /&gt;&lt;br /&gt;I'm trying to figure out what sort of model to use, either:&lt;br /&gt;  a)  Collaborate:  Find a pixel artist and possibly a composer with whom to make XBLCG games and share the profits. &lt;br /&gt;  b)  License:  Release the engine and content tool free for non-commercial use, licensed for commercial use (i.e. either an one-off payment or a percentage of revenue - probably the latter as coughing up money upfront tends to put people off)&lt;br /&gt;&lt;br /&gt;Any feedback/suggestions/questions welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/348348889650646951-9018270629842737674?l=clarvalon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://clarvalon.blogspot.com/feeds/9018270629842737674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=348348889650646951&amp;postID=9018270629842737674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/9018270629842737674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/348348889650646951/posts/default/9018270629842737674'/><link rel='alternate' type='text/html' href='http://clarvalon.blogspot.com/2008/11/hi-its-about-time-i-started-development.html' title='Announcing XAGE'/><author><name>Clarvalon</name><uri>http://www.blogger.com/profile/08868169810712321832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://1.bp.blogspot.com/_u4CJg7-255U/SdXbHzS2kgI/AAAAAAAAAAQ/JrjuAF5u2ZY/S220/XAGE+icon.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i360.photobucket.com/albums/oo42/clarvalon/XNA%20-%20PnC%20Engine/th_XNATool.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
