Friday 22 October 2010

Bumper Update

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.

XNA v4.0

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.

There are also a number of changes which, to paraphrase Microsoft's Shawn Hargreaves, 'break it good'. Most of these have already been worked around, although there are some issues particularly around sprite rendering & 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 & re-tested.

Supported Platforms & Associated Costs

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:

Photobucket

Where each image represents a required license (correct at time of writing):
  • Photobucket XAGE (£?): Required for any commercial games. Freeware/non-profit games will not require a license.
  • Photobucket Microsoft App Hub Membership ($99 annually): Required for any games released on Xbox360 and Windows Phone 7.
  • Photobucket MonoTouch / MonoDroid ($399 each, one-off payment with 1 year of updates): Required to deploy XAGE games (based on Mono) for iOS and Android platforms respectively.
  • Photobucket Apple iOS Developer Program ($99 annually): Required in order to deploy any game to the iPhone, iPad and iPod Touch.
To Summarise:
  • It is completely free to create freeware XAGE games for Windows & Silverlight (in the future this will likely also include Linux & Mac OS X).
  • It is not possible to create freeware Xbox360 games due to Microsoft's pricing model.
  • 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.
List Support

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.

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.

As a result of this new data structure, in a stroke '!' 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 '!':
  • Three remaining AGS Functions need to be mapped (Character.SayAt, SetMusicVolume, SetMusicRepeat).
  • Fix some animation oddities.
  • Fix some GUI issues (GUI background colours)
  • Fix the load/save mechanism as per of new Xna Framework version.
  • Resolve music seek issue.

9 comments:

SSH said...

If you want any assistance testing on Android, give me a shout!

Clarvalon said...

Will do! I don't currently own an Android handset and MonoDroid is still behind a closed beta, though we'll get there eventually.

Unknown said...

Hi there i was searching .. rather desperately i might add to find a GUI lib for SilverLight using XNA (Silver Sprite) Is there any chance you know where i may find one. Is the one you have Strictly stuck in your engine?

Please email me to let me know.

Clarvalon said...

I'm afraid I'm unaware of any such Libraries. XAGE uses a fairly simple collection of custom-made classes for it's GUI.

Unknown said...

Well i am having issues developing the input system is there any tips or advice that you may have any problems or pitfalls you ran into during its devlopment?

My Email is XainFaith@gmail.com

Any information would be help full as this topic is rather sparce.

Regards Scott J

Clarvalon said...

Your first option would be to knock up a few GUI classes. Try looking at the Winforms controls for ideas on what sort of properties/methods/events you might want to use.

Or if you don't feel like reinventing the wheel, there appear to be a handful of XNA GUI projects that you could use, such as:

http://simplegui.codeplex.com/

It should work with Silversprite. The only thing I can think of that might cause a problem are the Fonts or DrawString calls as Silversprite can be a bit iffy with drawing text.

Anonymous said...

Hi
Just came across this, as was looking into creating my own adventure game for xbox, and looked for examples of the scripting they used in SCUMMVM games. Looks like a while since the last update, is the project working with XNA 4.0? If so, is the project in a useable state? I'm definitely interested in working on a game using XAGE, and with the Dream.Build.Play competition coming up, could be a good showcase for XAGE itself.

Clarvalon said...

XAGE development has been unavoidably quiet for a few months, but is still active - the last few weekends I've been able to devote a few hours here and there, and now again in the evenings too. It has been updated to work with Xna 4.0 and runs fine on the Xbox.

Is it in a useable state? Not at the moment, for two reasons:

1) I'm currently re-writing how game data is accessed to reduce the loadtimes (to help overcome performance issues on WP7).

2) The Editor gets the least amount of attention and has not been updated to handle various new structures.

I'm putting whatever spare time I have into it, but I'm afraid it's unlikely a new version will be released in time for dreambuildplay, given that submission closes next month.

Anonymous said...

Thanks for the reply, I'll be following progress on twitter and looking forward to when its given the light of day, no matter how long it takes!