I’ve gotten a lot of work done on XMICYOA, but I’ve also missed a couple blog posts in the past couple weeks. Long story short, I’m planning on downshifting the blog a little; I may drop either a Monday, Thursday, or Friday post on any given week, and I may or may not make them up at my leisure.
Going back to school and having XMICYOA to work on consume a lot of time, (XMICYOA takes several times the time I spent on writing most weeks), so in short expect patchiness for at least the immediate future. I’ll try to keep at least three posts per week, however, and a project update will still be forthcoming every Wednesday I remember to put one up (or as soon as I remember to if I messed up on posting it).
XMICYOA has some major progress updates this week. I went back and did a chunk of work on the save/load process for location, which now works well. It’s now possible to both walk around and be able to load at that position. Combat will disable this (all combats must be completed in one “sitting”, because I don’t think there’s any real practical situation where they would be interrupted, and “sittings” are a long time in PHP $_SESSION land). I’d get more into how sessions and removing them work, but long-story short it’s a PHP backend thing that most people using XMICYOA shouldn’t have to worry about because we don’t have a ton of sessions being used of very much size (at least to a modern system). So far I haven’t had any performance woes, and I don’t think there will ever be any with what I’m doing. More ambitious users might decide to create more taxing modules, but XMICYOA is not a platform that operates in real-time, rather waiting for user requests, which means that you don’t see massive load come up (in theory).
In addition to the save/load functionality I created a random weather system. This will factor into strategy and force the player to consider whether or not they wish to take hazardous outdoors actions when the weather is inclement. It also narrates little scripted monologues to the player, saying things like “There is not even an indication of a breeze; not a single cloud can be seen, but it’s a perfect temperature.”. It’s not perfect, and I’m really not happy with some of the random conjoining elements, but I’m going to let it slide for now and polish it later once I get some end-user feedback.
Another thing I’ve been doing this week is going back and improving the XMI parser to allow for future improvements. I’m moving most of the code into a “xmifunctions.php” while leaving the rest in the core XMI file, which is now strictly going to be for designating the file, saving the user’s location, and calling the appropriate functions, so that it’s a lot neater. This should reduce it from ~150 lines with a mere 6 functions (weather and core display/action functions) to ~80 with the same, and a much better white-space and comment to code ratio.
Fingers crossed, I’m hoping to have alpha testing of XMICYOA up in March, though it may even be “finished” by then as far as core features go (I almost doubt this, but with my progress relative to the timeline it seems possible).