XAGE Development thread

Started by Clarvalon, Fri 09/08/2019 22:49:37

Previous topic - Next topic

Clarvalon

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 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 - hopefully this showcases the current state of the engine.

XAGE - Cross-Platform Adventure Game Engine (alpha)

Crimson Wizard

#1
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)

Monsieur OUXX

#2
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?
 

Clarvalon

#3
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 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.
XAGE - Cross-Platform Adventure Game Engine (alpha)

Clarvalon

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:



Having uploaded a handful of prototype/showcase games there already, 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.



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.
XAGE - Cross-Platform Adventure Game Engine (alpha)

Clarvalon

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

Packaging games as single executable files is a nice novelty.

XAGE - Cross-Platform Adventure Game Engine (alpha)

eri0o

Is XAGE available for download?

Clarvalon

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  :)
XAGE - Cross-Platform Adventure Game Engine (alpha)

Clarvalon

Getting started with XAGE in two minutes ... ish:

XAGE - Cross-Platform Adventure Game Engine (alpha)

Joseph DiPerla

Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

Clarvalon

Earlier versions of XAGE were built upon Monogame which supported Android (see Awakener).  However I've since switched to FNA, which does not yet officially support Android.  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
XAGE - Cross-Platform Adventure Game Engine (alpha)

Clarvalon

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 looked good, and tests on real world examples even better.  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.

XAGE - Cross-Platform Adventure Game Engine (alpha)

Mehrdad

Hi @Clarvalon

Isn't any beta link .exe file for test your engine? Or what is your estimate time for the first beta release?
My official site: http://www.pershaland.com/

Clarvalon

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

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!
XAGE - Cross-Platform Adventure Game Engine (alpha)

Mehrdad

Oh sorry, I missed this in discord. I'll try it. Thanks a lot.
My official site: http://www.pershaland.com/

Clarvalon

#15
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

More recently I've gotten the AGS SpeechBubble module converting across:



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).

XAGE - Cross-Platform Adventure Game Engine (alpha)

Snarky


Clarvalon

A port of AGS game Space Pool Alpha has been completed:  http://clarvalon.blogspot.com/2020/04/space-pool-alpha.html

The C# source is also available on GitHub:  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.
XAGE - Cross-Platform Adventure Game Engine (alpha)

Clarvalon

Last 'n Furious got the same treatment:  https://github.com/clarvalon/LastAndFurious



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.
XAGE - Cross-Platform Adventure Game Engine (alpha)

Clarvalon

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.
XAGE - Cross-Platform Adventure Game Engine (alpha)

SMF spam blocked by CleanTalk