Adventure Game Studio

AGS Development => Other Engine & Editor Development => Topic started by: Clarvalon on Fri 09/08/2019 22:49:37

Title: XAGE Development thread
Post by: Clarvalon on Fri 09/08/2019 22:49:37
Figured it was about time I started a thread about the general state and progress of my engine, XAGE.  It's been quietly in development for a long time now - much too long really - though a lot of ground has been covered in the last 18 months inparticular.  It's approaching a point where it may actually stop being vapourware and become a thing people can get their hands on.

Established general-purpose engines like Unity have proven C#'s suitability for certain types of games, and as a language it shares much in common already with AGS Script.  The aim of XAGE is to find a niche somewhere inbetween, using a lot of similar paradigms AGS does for creating adventure games (including the same script API), whilst also allowing developers to script and test and profile their game using the latest version of the cross-platform .NET Core framework within Visual Studio.  Somewhere there's a venn diagram of people with those two interests and hopefully the intersection isn't a picture with just my face on it.

As a recent test case, I ported AGS game Last & Furious (https://www.adventuregamestudio.co.uk/forums/index.php?topic=55534.0) over to XAGE.  This was a reasonably challenging port, with 21 modules of varying degrees of complexity, but this could be converted mostly automatically once I'd implemented all the necessary missing engine functionality.  I wrote a little about it here:  http://clarvalon.blogspot.com/2019/08/last-furious.html (http://clarvalon.blogspot.com/2019/08/last-furious.html) - hopefully this showcases the current state of the engine.

(https://i.imgur.com/mYD3H2B.png)
Title: Re: XAGE Development thread
Post by: Crimson Wizard on Fri 09/08/2019 23:43:41
It's nice to hear that you were using GPU matrix rotation instead of software one for sprites. AGS is practically at the point when it may also allow add accelerated scaling and rotation to any game object or whole screen, if not for the dreaded software mode it would be mostly a question of writing an API. (edit: well, and doing click checking using matrix transformations)
Title: Re: XAGE Development thread
Post by: Monsieur OUXX on Sun 11/08/2019 23:22:14
I would suggest releasing a few tutorials, maybe in the form of videos?

EDIT: Found it. The official website is very slick. But if I recall you wanted to sell licenses to your engine, am I correct?

I would like to try porting my game using the closed alpha. What says you?
Title: Re: XAGE Development thread
Post by: Clarvalon on Sun 11/08/2019 23:27:54
Yep - I plan out putting together some documentation & tutorials when the tools are released.  There's some stuff on youtube already but it's pretty out of date.

Edit:  Just saw your edit :)  I'm in the middle of a commercial port at the moment (L&F was a palette cleanser) but the plan is to put the tools out once there's a commercial game in the wild, to prove the viability of the engine.  Hopefully by then all licensing will have been figured out.

RE: Website - thanks.  The search functionality (https://clarvalon.bitbucket.io/documentation/Scripting.html) isn't quite 100% yet as I built it myself (the site itself is hosted on bitbucket so is entirely static).  I should probably get a proper domain at some point.  I just really like being able to update it using standard version control software.
Title: Re: XAGE Development thread
Post by: Clarvalon on Sun 22/09/2019 22:58:39
Bitbucket dropping mercurial support gave me the nudge I needed to move all my code repositories over to GitHub and, more importantly, presented an opportunity to rethink how everything was structured.  As part of this process I've been considering how best to package up the Editor in such a way that it's both easy to distribute and update.

The final release candidate for .NET Core 3 - the underlying tech which XAGE is built upon - is expected to go live tomorrow.  While there are still some issues around the new publish options I've had some success with trimming the DLLs to reduce the size, and creating a self-contained single executable:

(https://i.imgur.com/tv3PuTY.png)

Having uploaded a handful of prototype/showcase games there already, itch.io (http://itch.io) seemed the logical choice to host XAGE Editor itself.  The tools are great but the biggest selling point is the itch.io client's auto-update mechanism.  Users who prefer to update manually will also be able to do so.

(https://i.imgur.com/uEhjhni.png)

Once things are a bit more stable I'll share a few pre-release keys with anyone interested in trying it out, before making it publicly available.  The plan is to have a handful of small sample games on GitHub that XAGE Editor will be able to download or clone, to make it easier for new users to jump right in and get a feel for the workflow.
Title: Re: XAGE Development thread
Post by: Clarvalon on Tue 05/11/2019 21:26:50
Development continues apace in all areas, with particular focus on improving the developer experience by tightening the change & test loop.  I detailed some of the more recent engine optimisations here:  http://clarvalon.blogspot.com/2019/11/putting-lipstick-on-sisyphus.html (http://clarvalon.blogspot.com/2019/11/putting-lipstick-on-sisyphus.html)

Packaging games as single executable files is a nice novelty.

(https://i.imgur.com/3HfaZB5.png)
Title: Re: XAGE Development thread
Post by: eri0o on Tue 05/11/2019 22:03:00
Is XAGE available for download?
Title: Re: XAGE Development thread
Post by: Clarvalon on Tue 05/11/2019 22:43:28
Not yet - I had initially planned to have three demo games available on github but I may rethink this to get something out sooner.  I'll update this thread when it's available.

A few evenings ago I spent an hour making a basic game from scratch for my kids.  I don't do these dogfooding exercises often enough as generally I'm focused on ports.  It exposed a few bugs and gaps that I need to address (e.g. creating default cursors, ensuring at least one room exists etc).  The editor UI gets the least amount of love so it needs a few rounds of polishing before I'd inflict it on anyone else  :)
Title: Re: XAGE Development thread
Post by: Clarvalon on Mon 18/11/2019 22:50:53
Getting started with XAGE in two minutes ... ish:

Title: Re: XAGE Development thread
Post by: Joseph DiPerla on Wed 27/11/2019 18:46:47
Will Xage port to mobile?
Title: Re: XAGE Development thread
Post by: Clarvalon on Mon 02/12/2019 17:22:06
Earlier versions of XAGE were built upon Monogame which supported Android (see Awakener (https://play.google.com/store/apps/details?id=awakener.awakener&hl=en_GB)).  However I've since switched to FNA, which does not yet officially support Android (https://github.com/FNA-XNA/FNA/wiki/Appendix-D:-MonoGame-Compatibility#platform-compatibility).  iOS should be fine and Mac should also be supported long term now FNA (as of yesterday) can use a Metal backend renderer.  Hoping to get my hands on some apple hardware in the new year to test it all out.

I've summarised current XAGE platform support here: https://clarvalon.com/documentation/supportedplatforms (https://clarvalon.com/documentation/supportedplatforms)
Title: Re: XAGE Development thread
Post by: Clarvalon on Sat 14/03/2020 09:43:37
Progress has been slow since the turn of the year, but I've finally addressed a thorny issue that has been a problem for a long time.

The previous serialization library, protobuf-net, had no officially supported solution for pre-generating the serialization routines, required for platforms that only allow for AOT (ahead of time) compiled programs instead of JIT (just in time) like iOS and UWP.

The MessagePack format has been around for a long time, but the MessagePack for C# library has recently come on leaps and bounds after being adopted by a Microsoft employee for use within Visual Studio itself.  Among it's features are the ability to pre-generate serialization code as an MSBuild task, essentially making the process invisible.  This is especially important as ideally users shouldn't have to care about the mechanics of how their game loads and saves.

Initial benchmarks  (http://clarvalon.blogspot.com/2020/03/experimenting-with-messagepack.html)looked good, and tests on real world examples even better (http://clarvalon.blogspot.com/2020/03/corert-and-messagepack-real-world.html).  I've now incorporated MessagePack into the XAGE pipeline and while there is more testing to do, it's looking like I'll be pulling protobuf out entirely. 

Combined with CoreRT, the startup times are so much better, and general performance and memory usage is also good.

(https://i.imgur.com/UiZ33Fq.png)
Title: Re: XAGE Development thread
Post by: Mehrdad on Wed 18/03/2020 12:34:34
Hi @Clarvalon

Isn't any beta link .exe file for test your engine? Or what is your estimate time for the first beta release?
Title: Re: XAGE Development thread
Post by: Clarvalon on Wed 18/03/2020 15:22:40
Coincidentally, I started giving out alpha keys in the AGS discord yesterday evening.  Take a look at the following and if you're still interested let me know and I'll send you a key:  https://clarvalon.com/documentation/gettingstarted (https://clarvalon.com/documentation/gettingstarted)

Same goes for anyone else who may be interested - I'm ideally looking for AGS users who are comfortable using Visual Studio.  It would be good to start getting the tools into other people's hands and start canvassing feedback etc.  I will use this to help prioritise bugfixes, enhancements, documentation etc.  Thanks!
Title: Re: XAGE Development thread
Post by: Mehrdad on Wed 18/03/2020 15:39:00
Oh sorry, I missed this in discord. I'll try it. Thanks a lot.
Title: Re: XAGE Development thread
Post by: Clarvalon on Tue 07/04/2020 22:46:01
I've been playing around with some free assets to see how easy it is to knock something up quickly:  https://twitter.com/Clarvalon/status/1245480316321628163 (https://twitter.com/Clarvalon/status/1245480316321628163)

More recently I've gotten the AGS SpeechBubble  (https://www.adventuregamestudio.co.uk/forums/index.php?topic=55542.0)module converting across:

(https://i.imgur.com/5SvlAPc.png)

Alpha users:  I'll be pushing out a new build to itch.io once I've cleaned up a few usability issues, particularly around creating projects from scratch (missing default cursors etc).

Title: Re: XAGE Development thread
Post by: Snarky on Wed 08/04/2020 08:20:39
Nice.
Title: Re: XAGE Development thread
Post by: Clarvalon on Fri 10/04/2020 17:26:28
A port of AGS game Space Pool Alpha (https://www.adventuregamestudio.co.uk/site/games/game/1309/) has been completed:  http://clarvalon.blogspot.com/2020/04/space-pool-alpha.html (http://clarvalon.blogspot.com/2020/04/space-pool-alpha.html)

The C# source is also available on GitHub:  https://github.com/clarvalon/SpacePoolAlpha (https://github.com/clarvalon/SpacePoolAlpha)

XAGE v0.6.7405 has been pushed to itch which allows alpha users to immediately pull the source and assets in to tinker with.
Title: Re: XAGE Development thread
Post by: Clarvalon on Sat 11/04/2020 20:02:09
Last 'n Furious got the same treatment:  https://github.com/clarvalon/LastAndFurious (https://github.com/clarvalon/LastAndFurious)

(https://i.imgur.com/78wlOTx.png)

Thanks to Crimson Wizard for OK'ing the availability of the C# source.  I am tempted to use this for figuring out how to properly expose controller support, as everything thus far has been hacks in-engine.
Title: Re: XAGE Development thread
Post by: Clarvalon on Sun 12/04/2020 22:15:46
Adding GamePad support turned out to be pretty simple once I'd decided to expose FNA to the script API (rather than have an abstraction layer):  https://github.com/clarvalon/LastAndFurious/commit/731262ef296f99193873e571d08274be6388a62c

This will be fleshed out so that there is a basic mapping available (i.e. have your controller mimic a mouse cursor) or advanced version where you can handle button presses, thumbsticks and triggers in the game script itself, as per above.
Title: Re: XAGE Development thread
Post by: Mehrdad on Mon 13/04/2020 06:39:26
Thanks, Clavaron. well done!!!
Title: Re: XAGE Development thread
Post by: Clarvalon on Sat 18/04/2020 00:49:18
Still working on the UWP build, should have something concrete to show soon.

One item that came up was the ability to integrate with Xbox Live services via the game script in such a way that it doesn't impact other non-UWP platforms.  To this end I wrote a very basic PlatformService (https://clarvalon.com/documentation/interface/platformservice) interface that can currently be used to initiate an asynchronous SignIn and pull out your Gamertag.  The idea is that the same code can be used when running under different platforms (e.g. SteamWorks) - the implementation for the relevant platform is just injected in by the calling executable. 

This may end up being a bad idea if the core services differ too much to be able to abstract them easily.  But I'm hoping it will be sufficient for the basics - e.g. achievements, leaderboards et al.
Title: Re: XAGE Development thread
Post by: Clarvalon on Mon 20/04/2020 17:47:12
Here's the thing I've been working on - Last 'n Furious (https://www.adventuregamestudio.co.uk/site/games/game/2216/) is now playable for free on Xbox One.  Details here:  http://clarvalon.blogspot.com/2020/04/official-console-support.html (http://clarvalon.blogspot.com/2020/04/official-console-support.html)

Microsoft App Store link:  https://www.microsoft.com/en-gb/p/last-n-furious/9p3c8dq7qfsh (https://www.microsoft.com/en-gb/p/last-n-furious/9p3c8dq7qfsh)

I've got lots to keep me busy (https://github.com/clarvalon/XAGE-Public/issues) but I need a new project   :)
Title: Re: XAGE Development thread
Post by: Cassiebsg on Mon 20/04/2020 20:45:11
Is there some other way to get the game for Xbox other than MS Store?
I would love to test it, but if it's Store only, then I'm unable.
Title: Re: XAGE Development thread
Post by: Clarvalon on Mon 20/04/2020 20:47:48
If you search within the Xbox itself you can find it there (listed under 'Creators Collection'), though it is not in the newest releases yet.

The MS store link allows you to install to your xbox remotely assuming you're using the same credentials on both.
Title: Re: XAGE Development thread
Post by: Cassiebsg on Mon 20/04/2020 21:22:47
I don't understand, how I'll find on my Xbox. my Xbox isn't online.
Title: Re: XAGE Development thread
Post by: Clarvalon on Mon 20/04/2020 22:25:22
Oh, I assumed you had access to Xbox Live.  While it's possible to sideload it, you'd still need Internet access (as well as a Dev account).  If your Xbox is permanently offline then we're out of luck.
Title: Re: XAGE Development thread
Post by: Cassiebsg on Mon 20/04/2020 23:01:41
Okay then, thanks anyway  :)
Title: Re: XAGE Development thread
Post by: Clarvalon on Mon 27/04/2020 00:19:42
Not having a long commute at the moment is really helping me put some extra time into XAGE at the moment.  This week I've added support for Cameras (https://clarvalon.com/documentation/interface/camera) and Viewports (https://clarvalon.com/documentation/interface/viewport) which were originally introduced in AGS v3.5.  It became a good opportunity to rethink and restructure how some of the rendering was being performed under the hood and it's working pretty nicely.  Quick update here:  https://clarvalon.blogspot.com/2020/04/viewports-cameras.html (https://clarvalon.blogspot.com/2020/04/viewports-cameras.html).
Title: Re: XAGE Development thread
Post by: Clarvalon on Sat 09/05/2020 22:21:48
A new version has been released - XAGE alpha users can finally now deploy to Xbox One.  Read more here:  https://clarvalon.blogspot.com/2020/05/big-fat-update-fna3d-uwp-new.html (https://clarvalon.blogspot.com/2020/05/big-fat-update-fna3d-uwp-new.html)

There's also a bunch of new functionality in place, as well as restructuring to allow for forthcoming rendering backends to be plugged in - Vulkan, Metal, Directx11 etc.  This is all coming sooner rather than later due to all the good work being done by the clever folk in the FNA Discord.
Title: Re: XAGE Development thread
Post by: Joseph DiPerla on Tue 12/05/2020 16:42:12
Have you determined yet if you are looking to make XAGE commercial, license based or free yet? Visual Studio is a requirement? If so, free, ent or pro?
Title: Re: XAGE Development thread
Post by: Clarvalon on Tue 12/05/2020 19:28:32
The license is here: https://clarvalon.com/documentation/license (https://clarvalon.com/documentation/license)

I should probably flesh the wording out a bit, but the gist of it is XAGE is free for non-commercial use, with a license applicable to the engine for commercial use.  After mulling over lots of options (https://www.reddit.com/r/gamedev/comments/7n999n/how_to_launch_a_tenyearinthemaking_niche_engine/) this felt like the fairest option while still keeping XAGE as a commercial concern.  License will be percentage based.  The idea is that nobody who chooses to use XAGE should be out of pocket for doing so, which is why there's no up front cost.  It also gives me a bit more leeway in terms of providing support, as I'm doing so in my free time which is sometimes limited for reasons outside of my control.

XAGE requires Visual Studio 2019, but you can use the Community Edition which is free for independent users or small teams.  You can also use the lighter weight Visual Studio Code, though without the editor hooks so you'd have to do a bit more by hand (and also lose some things like being able to edit the code while debugging).
Title: Re: XAGE Development thread
Post by: Joseph DiPerla on Tue 12/05/2020 19:37:46
Very cool. That seems very reasonable. I always thought Visionaire had a decent piece of software, but their licensing options were insane especially considering that AGS and adventure creator are far better. I downloaded Awakener for Android. Works smooth and 100%. Keep it up!
Title: Re: XAGE Development thread
Post by: Clarvalon on Tue 12/05/2020 20:00:46
Thanks!  That's running on a very old version of the engine, when it was still built on top of MonoGame.  Things have gotten considerably better since (it's just taken much too long), although I'll probably focus on iOS next ahead of Android as there are so many systemic problems (https://github.com/FNA-XNA/FNA/issues/289) with it.
Title: Re: XAGE Development thread
Post by: Joseph DiPerla on Tue 12/05/2020 20:11:40
I suppose all good things take time. My Star Wars MMORPG sim has been in progress for 7 years and counting. Looking back at what I originally had and seeing how far it has come is like night and day. The same with XAGE, AGS, etc.. all good things take time.
Title: Re: XAGE Development thread
Post by: Clarvalon on Tue 12/05/2020 20:45:41
That sort of longevity means it's a labour of love (or indicative of a masochistic streak).
Title: Re: XAGE Development thread
Post by: Kweepa on Fri 15/05/2020 01:09:34
If I ever get around to writing another adventure game I'll probably try using this instead of AGS, because C# and proper debugging.
Looking forward to a public release!
Title: Re: XAGE Development thread
Post by: Clarvalon on Fri 15/05/2020 13:08:08
Locals and Edit & Continue are two things I really miss whenever I go from Visual Studio to debugging in AGS. 

I've updated the list of items that need to be addressed before going public with v1:  https://github.com/clarvalon/XAGE-Public/projects/1

Most of these should be fairly straightforward, though the big ones are:
My dayjob is going through a busy spell, so it's hard to put an ETA on it, but at least there is some visibility of current progress.
Title: Re: XAGE Development thread
Post by: Joseph DiPerla on Sat 16/05/2020 23:47:34
I have to say that what i have tried is very impressive and very reminiscent of AGS. I havent tried the conversion yet. But if it wasnt for the fact that it has a commercial license(Not complaining about it, but the current AGS project license wouldnt really allow for commercial charge i dont believe) attached, i feel XAGE would make the ultimate successor to AGS.
Title: Re: XAGE Development thread
Post by: Clarvalon on Sun 17/05/2020 10:33:26
Glad it's going ok so far.  Let me know if anything goes wrong with the conversion - it's reasonably stable as a fair few games have gone through it, though sometimes the process falls over when something unexpected comes up.  There is usually also scripting issues to fix - for the most part these are simple things like typing issues (where AGS allows bools to be used as ints and vice versa, where C# is much stricter), but sometimes more complicated modules take a bit of rework to get running.

After playing around with the AGS template games yesterday I'm wondering whether caching a known good C# version of common AGS modules might be a good idea, to limit the amount of rework developers may need to do.  The only downside with this is that they'd need to be kept up to date with any of the AGS equivalents.  XAGE has zero telemetry in it, but this is one area where I could see it being useful.  On the whole I think I'd rather stay clear of any data privacy issues though.

To clarify, I don't see XAGE as a successor to AGS.  The model AGS uses - an all-in-one program that handles everything for you - is compelling, and both the engine and editor tools are very mature.  XAGE is aimed at people who want a comfortable AGS-esque experience but also want the benefits of using Visual Studio and C#, and the platform publishing mechanisms it offers.
Title: Re: XAGE Development thread
Post by: Snarky on Sun 17/05/2020 17:51:54
Quote from: Clarvalon on Sun 17/05/2020 10:33:26
To clarify, I don't see XAGE as a successor to AGS.  The model AGS uses - an all-in-one program that handles everything for you - is compelling, and both the engine and editor tools are very mature.

Discussion of the future of this model in AGS has been merged (https://www.adventuregamestudio.co.uk/forums/index.php?topic=57990.msg636620547#msg636620547) with the AGS Project Goal thread.

/moderator
Title: Re: XAGE Development thread
Post by: Clarvalon on Sat 23/05/2020 21:22:37
Today I implemented Sliders.

(https://i.imgur.com/wTdMTD5.gif)
Title: Re: XAGE Development thread
Post by: Joseph DiPerla on Sun 24/05/2020 03:13:05
Cool!
Title: Re: XAGE Development thread
Post by: eri0o on Sun 24/05/2020 12:49:35
It's so magical to see it working Clarvalon! Keep going!  :-D
Title: Re: XAGE Development thread
Post by: Clarvalon on Mon 01/06/2020 21:52:44
A quiet week due to my dayjob (and lockdown picnics), though TextBox is now mostly complete.  This will be finished off once ListBox has been implemented and the two are confirmed to play nicely together, per the AGS Sierra template.

I've also created a Discord server:  https://discord.gg/wQNnz5g

Primary use will be webhook notifications for automated builds, but Discord will also be the quickest way to get help with anything XAGE-related, although emails/DMs are still fine too.  Alpha access is also still available to anyone who is interested.
Title: Re: XAGE Development thread
Post by: Joseph DiPerla on Tue 02/06/2020 15:26:51
Excellent! XAGE is developing nicely.
Title: Re: XAGE Development thread
Post by: Clarvalon on Fri 05/06/2020 22:08:49
The Discord server is useful for stream-of-consciousness type updates that don't necessarily fit on twitter or on forums. 

This evening I ported seven AGS games from scratch and got all up and running in XAGE, albeit with various degrees of success: AeroNuts, Byte of the Draculator, OpenQuest, Eternally Us, Dog From Hell, Ortis, Odot Tamat On.

It's a useful exercise as it helps keep on top of any regressions that may have been introduced as part of other changes.  For instance, this shadow effect is a bug I've not encountered (or noticed) previously:

(https://i.imgur.com/qGDHmP8.png)

It's also rewarding to see each game incrementally improve as the conversion process and engine runtime both mature.  Every so often I'll scour the forums and github for open sourced AGS games I may have missed, as each one helps move the needle forward.
Title: Re: XAGE Development thread
Post by: eri0o on Sat 06/06/2020 01:34:00
This is awesome work Clarvalon!

I have some AGS related open source stuff on GitHub, if you ever find something you need help understanding, feel free to ask. :)

Love your work. Keep at it!  ;)