Project Update: Getting it Done

I’ve been almost crushed by the sheer volume of school work I’ve had to do in the past few days, coupled with a couple additional other minor things for school it’s really added up. Fortunately, I’ve still been able to work a little on my project, though mostly not on the XMICYOA side.I made an Edge of the Empire/FFG Star Wars RPG dice roller for fun but also to practice some things. I learned a lot about my tendency to mess up when working on code when off my game, especially with defining things in conditionals. You can check it out here, but it’s not pretty by any means. I hope to add in a toggle to show the results of each die in specific, so you can see what’s going on, but as is it’ll still tell you what you need to know (I debugged using the dice/result table in the book, so I know it works).

I’m nearing the release of XMICYOA to an alpha testing group. I have a little more work to do on attribute checks and rolls, then we’ll release it. Version 1.0.0 won’t feature ABACUS’ combat or an inventory system; simple rolls and status checks will be possible, though. Theoretically you could make states into visible tokens on demand to emulate an inventory, but this requires a lot of syntax-heavy stuff. The inventory system will be in 2.0.0.

Versioning is based on compatibility for XMICYOA. Any time we add in a new set of required tables we increment our large number by 1. The middle number goes up when a new .php file is added, or when a table is extended in such a way that it doesn’t break reverse compatibility unless you use new features. Our small version number changes with feature implementations, and potentially with some bugfixes (hotfixes may be relegated to an appended letter). You should always be able to forward-port content, and most content will fail gracefully if you reverse-port it (for instance, we don’t recognize unknown tags at all, so if you have a hypothetical <item> tag in your XML you’ll be fine if you don’t have the inventory system in).

Most of my work has been on the content side of the demo suite, which will coincidentally also be the first two acts of my honors thesis. This is because the narrative side is what actually counts for my credit for this semester, and the actual XMICYOA codebase is worth nothing (I may change the XMICYOA name, by the way, to XMICAE, short for eXtensible Markup Interfaced Customizable Adventure Engine because it’s smoother and more meaningful than the old name).

The version that first gets released on SourceForge and publicly here is waiting on a couple things beyond the mere feature implementation that the alpha test is waiting on. I’ll be moving from sanitizing my input to using prepared SQL statements, because of the massive superiority of the method both for security and data flexibility (I’d managed to corrupt saving/loading for a minute or two). This is part of the reason why the alpha test is so controlled, because while there shouldn’t be security issues there may be some that slip through the cracks. Interestingly, I think it might be possible to use the prepared statements to allow the platform to set up its own database with the help of a configuration file, which is appealing on a number of different levels; it would be sufficient to just visit something like “install.php” to have it connect to your database and make all the necessary tables automagically. This may be wishful thinking, and it’s low priority until I get some feedback from people who definitely want to use the project.

Leave a Reply

Your email address will not be published. Required fields are marked *