Very simple cutscene

A bunch of things these last couple of weeks. The main bit of work was on things related to ... cutscenes. Basically now there is a way to have scripted events happening, like taking some actions, saying something, manipulating the camera, playing a few effects etc. As a test drive for this, see the short silly video above, and if you're curious, here's the data-driven specification. It should come as no surprise that a GUI tool is in the (brain) works.

A cutscene is basically defined as a set of action sequences, linked via IDs (for dependencies). Each action sequence contains a number of actions. Each action is a console command, that, in terms of game time, has either an instantaneous result (e.g. camera movement, entity animation or efect) or is a proper action (do something, say something, etc). The types of actions can be anything: it's any ability that an entity can do, but also it can be an a behavioural action, as a bot would take given a behaviour. So, it can be a mix of something completely predefined ("cast fireball there") to something loosely defined "run a tick() for the FollowLeader/GoToLocation behaviour". One action sequence is marked as ending, so that when it ends, the cutscene stops. It works alright after quite a bit of work and debugging, and I need to test some more complex scenarios

Since a lot of this is powered by console commands, and since my system for executing console commands was a bit DIY, which was simple but not super robust, well a better solution was needed. I migrated to System.CommandLine, which has apparently identical verbosity (after porting, my 2K LoC became ... 2K), but is far more robust, with better error messages and handling, so I'm quite happy about it.

On a different note, I managed to also migrate the website from Github Pages to my own domain, which was a first for me, and it went ... kinda smoothly. It's exactly the same website, but I now have more control over it, plus it's a "proper domain"