Right then. About five months ago, Ben sent me the source code from his then latest game, Awakener. I've since been using it as a test case for my AGS to XAGE conversion tool.
Consequently, Awakener is now playable online in your web browser:
http://www.clarvalon.com/XAGE/games/Awakener/ (http://www.clarvalon.com/XAGE/games/Awakener/)
It has also been released as a Facebook application:
http://apps.facebook.com/awakener (http://apps.facebook.com/awakener)
(plus it runs just fine on the Xbox360, though there are no plans to release to Xbox Live).
I've taken the liberty of pre-empting a handful of questions:
---
How does it work?
Magic.
For a more detailed answer, see the following demonstration video:
http://www.youtube.com/watch?v=80sdyaJl_Ko (http://www.youtube.com/watch?v=80sdyaJl_Ko)
Will my AGS game convert?
Maybe. It depends on how complex the scripting is. Theoretically any game that uses the same (or a subset) of the functionality Awakener does should be up and running within minutes. In practice, however, it's more likely that there'll be missing functionality that is not yet correctly mapped to XAGE. There is still a long way to go.
When will XAGE v0.5 be out?
I had originally hoped to release it alongside this version of Awakener, but I've cut a few corners and the Editor inparticular is not nearly as robust as I'd like it to be. It will most likely be released in a month or two when I'm satisfied it is stable.
---
A big thank you obviously goes to Ben, for sharing his source code and tolerating my incessant emails. Likewise thanks to everyone else who has sent me their source code over the last six months - every one has helped XAGE mature, and will continue to do so.
Cheers,
Dan
Great work! Love watching your progress with this.
Definitely a cool idea, although Moonlight seems to still be lacking in functionality. Will have to check this out from my brother's PC when I get a chance.
Wow! That's damn impressive. Congrats on the release!
Seems to work brilliantly. A question though: Seems like Silverlight suffers the same curse as Flash of not allowing right-clicking? That could really make me reconsider my GUI design strategies since being able to port my AGS game to the browser would be the coolest thing ever.
QuoteA question though: Seems like Silverlight suffers the same curse as Flash of not allowing right-clicking?
Yeah, I've noticed that. :(
Which begs the question: if you have to work around right-clicking in both Silverlight AND Flash, would one be able to do it in embedded JavaScript?
My GOD, this is insane! Great work! I can't express how excited I am ;D
Amazing :=
I'm pretty sure the right mouse button events can be captured in Silverlight v4, though that won't come out of beta for a few months and I didn't fancy sitting on this for that long. I'll be sure to update it when the time comes as it should make for a more user-friendly experience (Silverlight performance currently isn't that great either, though this should also improve with v4).
Thanks for the nice comments. It's by no means perfect - the pathfinding is a bit iffy, and there were a few things I neglected to implement (TurnBeforeFacing, room transitions etc.) but I'd hazard it's about 95% the same experience as the original.
This is really great. Could this be the future? Shame about the right clicking problem though :(
Woow, this is great! I'd love to see my games online! Can games be exported to XAGE with older versions of AGS or just with the latest (my games are created with AGS 2.72)? I hope soon the right click to be captured :)
This is probably the most exciting AGS-related project in progress right now. Great job!
Very awesome! Out of curiosity, how big is the game Awakener in mb? It took about 2 minutes to load here via Silverlight, so I'm interested to know how some of my filesizes might affect a loading time :)
@Harg: Games need to be upgraded to AGS v3.x before they can be converted. I'm pretty sure this was the case for Pixel Hunt and a few others.
@Mods: The silverlight .xap file is about 5.3mb, which is a little bit smaller than the original AGS Awakener zip package. I'm not yet sure whether larger games with more assets will scale in the same way.
This is really awesome Clarvalon and I can't wait to see where this ends up in the future. It's quite exciting.
Basically the first application I played on Facebook, and it ran very well. This is a brilliant effort and a great idea. I've been a bit critical about publishing on Facebook but they say it's one of the best places to reach people. But with this type of product, I do agree. This is just... really awesome. I was able to just link my friends to it when before they were forced to download the stuff just by looking at a few pictures. Thumbs up!
This..is..amazing.
My computer is running stupidly right now (the game is slowing it down a lot) but you say the new version of Silverlight should improve performance issues when it comes out..so hopefully yes.
The right-click issue is also bothersome, but looking forward to that being fixed in the future and still in awe that I am playing an AGS game in a web browser. :)
One question, is this a direct conversion or did you add specific exceptions and modify/tweak things to make this game specifically work? For example, if I send you the source of my game could you put it online too? :=
This is incredible! One of the coolest developments for the engine I've seen in awhile. I did notice one issue though. How do you "unstick" inventory items from your mouse now that you can't right-click? I clicked on the salt in the player's inventory and now i can't get rid of it.
Dave: Ctrl+Left Click (it's actually written below the game window, but that also took me some time to figure out)
Great, job, to be honest, I'm not at all surprised. I've been seeing the progress on this on the blog, so it rather felt natural, but it's a great step for AGS!!
Awesome stuff!
12 thumbs up!
It's even more impressive given that you're reverse engineering the AGS engine... :o
Congratulations. Hard work does indeed pay off.
This ranks very high in the list of coolest AGS things ever. Dave, didn't you just say that lack of portability was the biggest drawback of AGS? Hire this man!
Of course, currently this only actually adds Mac compatibility...
Anyone tried this with Moonlight 3 beta (http://www.go-mono.com/moonlight/prerelease.aspx)? I will give it a go soon...
Not that Awakener wasn't fun, cause it was, but I never thought I'd play through a second time! This is so awesome! This is great. I just got two facebook friends who had never played an adventure game to play Awakener, and they loved it. Great way to spread the love!
So cool!
@Tuomas / mouthuvmine: It's true that Silverlight lowers the barrier of entry quite significantly (in terms of getting started, if not hardware). The idea of using Facebook only occurred to me quite recently, so it's pleasing to hear that it's useful as a way of disseminating the game. Essentially that's what it's all about - bringing adventure games to a broader audience.
@monkey_05_06: Yeah, it's true that the Silverlight performance isn't fantastic. The game stutters here and there on my Atom-powered laptop, though the quality settings mitigate this somewhat. The native implementations (Windows PC exe & xbox) run a lot better on older or underpowered hardware.
This is pretty much a direct conversion. Only a handful of manual changes were required post-conversion. The main thing was adding walkboxes to mimic AGS's walkable areas. As there was only one room this didn't take very long, about 15 minutes. Other than that only a few things were tweaked, the equivalent of adding five or six lines of code.
It's difficult to predict how well any other game will convert without seeing the source code. I've been adding functionality as and when it's required, so the quality of conversion improves incrementally.
Clarvalon,
If one were to make a game with a XAGE port in mind, what considerations would you suggest for maximum ease of portability?
Peace
Scarab
That's a good question and one not easily answered. I've really just been adding functionality as and when it's required, so the bare minimum required to get Awakener running properly might leave a lot broken in another game. I really ought to document this somewhere.
AGS -> XAGE:
Character -> Character
Object -> Object
Inventory -> Inventory
Walkable Areas -> UNSUPPORTED (must be manually added as walkboxes)
Walkbehinds -> Object with a single frame
Hotspot -> Object with a single frame
Region -> Square Walkbox (not ideal, may change this at some point)
Edges -> UNSUPPORTED (I'll add this eventually, shouldn't be too hard)
Functions -> Scripts
Code -> Actions
Script stuff that is supported:
Manipulation of Characters, Objects, GUIs etc.
Global variables (and some deprecated global_int stuff)
Local variables.
Paramaters (for certain types, not all).
Return values (ish).
Script stacking (i.e. call one function from another and resume original on completion).
IF & WHILE loops with multiple conditions.
Currently unsupported:
A lot of script commands / statements.
AGS v3.2 style audio.
Sierra style dialogue.
Speech.
Plugins (.dlls)
Custom Modules.
LOTS of GUI functionality.
User input (hardcoded into XAGE for now)
Translations (.TRA)
Complex datatypes / structs.
Probably a lot of other things I've overlooked.
Other limitations:
Views must be all be stored in the base folder - the way the tool deserializes the game.agf xml means it cannot cope with nested folders.
Fonts won't ever likely be transferable, due to the way Xna handles spritefonts.
While text input will likely be added, it's unlikely things like keyboard control will be permitted as it will break platform independence.
This is very impressive stuff! If I ever find the time to get into point and click game making again, the ability to make them playable online would be a major source of excitement!
I'll make sure to check out your homepage and read about the limitations you have listed here to see how I would need to prepare in order to use this!
Very well done!
As Silverlight v4 has been released, I've updated XAGE Awakener to address some of the remaining issues:
- Right mouse button support - no need to use CTRL + LMB anymore, you can also click both at once to skip cutscenes a la LucasArts games.
- Full Screen Mode - Press 'F' in-game to play Full Screen.
- General performance improvements - especially in loading times.
Try it here: http://www.clarvalon.com/XAGE/games/Awakener/ (http://www.clarvalon.com/XAGE/games/Awakener/)
P.S. I originally forgot to also thank Denzil Quixode for his work on the AGS XML exporter.
Opera crashes when I try to play the lastest version. I'm not 100% sure if I tested it on Opera aswell last time, but I am sure that it's not working now.
Got a similar problem in Chrome - Silverlight becomes unresponsive when it loads to 100%.
Xbox 360? Does that mean you can build ags games to run in a kind of XBLA environment? That is awesome! It would be great to see the indie xbox live scene flooded with quality AGS games!
Hmm. I just tried it on another machine and it worked fine. I don't think Opera is supported, but Chrome should be. Did Silverlight v4 automatically install/upgrade? You might also need to clear your browser's cache for it to notice the changes.
@Mark Borg: Yep. XAGE games can be submitted to the Xbox Live Indie Games channel (basically XBLA-lite). I'm sitting on a small, silly game that will end up on the service eventually, though I keep getting distracted by more interesting projects.
wow thats really nice, do you plan on eventually releasing the tools to get AGS content running on an Xbox or is this your personal little baby? I've worked on a few things that are on Xbox360 but always dreamed of eventually doing something thats come from myself rather than working to someone else's brief.
Great job all in all :)
The plan has always been to release the tools, though there haven't been any public releases for a while. There are several reasons for this. The editor code hasn't been refactored for about six months, and there's a lot of tidying up to do. Several redesigns and improvements have broken compatibility with previous versions - I don't want anyone to put a lot of effort into something that soon becomes obsolete.
It's getting there, though. I'm currently working on converting a much larger & complex AGS game that should, once done, substantially improve compatibility across the board.
Quote from: clarvalon on Tue 27/04/2010 05:32:33
The plan has always been to release the tools, though there haven't been any public releases for a while. There are several reasons for this. The editor code hasn't been refactored for about six months, and there's a lot of tidying up to do. Several redesigns and improvements have broken compatibility with previous versions - I don't want anyone to put a lot of effort into something that soon becomes obsolete.
It's getting there, though. I'm currently working on converting a much larger & complex AGS game that should, once done, substantially improve compatibility across the board.
Can you tell us which game?
It's not my IP so I'm not really in a position to say. It's super-special, mind you. Italics warranted and everything.
Quote from: clarvalon on Tue 27/04/2010 21:34:50
It's not my IP so I'm not really in a position to say. It's super-special, mind you. Italics warranted and everything.
You got me curious what project is that?
Hi,
I just checked this out for the first time - excellent work!
The mouse was a little laggy for me so I played around with size and resolution, which led to some display problems (Firefox 3.5). Changing the quality at triple resolution results in the screen being masked off to a 640x480 area surrounded by pink.
Hope that helps make this project even better!
- Ali
Hi Ali, thanks for the bug report. I've tested it in Firefox and the problem seems to affect all browsers. It looks like the silverlight canvas is resizing when the game is restarted, and not resizing the surrounding elements. As a temporary workaround the pink border can be removed by scaling the window down and up again. I'll look into getting this fixed for the final version.
As for performance, turning the graphical quality down should make it run a lot smoother, with the downside of some blurriness and slightly slow font drawing. High quality is more processor intensive due to the custom way in which the rendering works; currently the only method of avoiding the excessive anti-aliasing when scaling up. I've brought this up with a Microsoft MVP, so fingers crossed a native solution will turn up in SL5.
@Jim: Patience!
Why won't you tell us the project? At least a hint? ???
a hInT? im not Sure what NOnsense To COme up with to Say that Might make yOu underStand i'm QUite sEriouS about noT saying.
Lmao, nice hint. I hope it's not.
h, just got it. ;D