One of the most interesting things to me about this game project is that I am constantly astonished by myself because I was either really smart about something or really stupid about something.
For example, I’ve been working on the rewards for the first challenge and I realized that I was really smart in terms of how I charge my user energy for paddling down the river. I only charge them for it once they answer the question, one way or another. So in building a way to skip a question at no extra cost (but no forward movement), I was like… oh, so I can just generate the new question without including the trigger to charge them until they answer the newly-generated question! Sweet!
(We shall ignore the moment of late-night panic when my brain screeched to a halt and was like WAIT SHOULD THEY EVEN BE CHARGED HERE???? and thank my friend Lisa who helped me logic my way through things at 3am to realize I was, in fact, correct.)
Then, though, then I am faced with my absolutely terrible forward planning skills when it comes to my maintenance routine. Because, you know, I now need to add several changes to the maintenance routine to accommodate the changes brought on by the first challenge. (All the rewards are done, victory stuff is working fine, and even failure stuff is fine. It’s just maintenance that’s killing me now.)
So the main issue is that my original maintenance routine was written, uh, late last August or early September. I was eager to get things working because I wanted to launch the game and maintenance was one of the last things I needed to work on.
Presently, it works via bash script which is automated by a cronjob. So at 07:00 UTC every day it:
- runs Green Game maintenance
- runs Blue Game maintenance
- does a database dump
- uploads the database backup to the S3 bucket
The problem is how it runs Green and Blue maintenances. It just runs these two .php files, each of which define some variables that are specific to the game, and then runs the runMaintenance() function with those variables. In theory, this is super clever. In actuality, the positioning of the files, in order to not make them accessible via the web, confuses matters.
Even apart from that, my runMaintenance() function is also a nightmare because it’s got about 13 function calls within it. So I’m legitimately thinking about ripping out maintenance entirely and starting from scratch, all because it’s just too janky for my liking.
Scope creep is also real and annoying. I have to find a way to add more Fire Opals to the game and not just as a reward for doing well in the first challenge. But I also want the first challenge to be your introduction to them, so I’m going to need to insert random events to come across them if your location is greater than 500km.
Speaking of scope creep, I have to do the same with the companion for your travels, in addition to deciding when the companion decides to leave you.
I’ve rescheduled a potential launch no less than four times in the last month. I am determined to do it this weekend. It’s just going to be a long week before I get there.
Oh, and as to my ponderings about spelling and stuff, I’m going to implement a similarity match of about 90% just on the challenge page to start and we’ll see how that goes. If it goes well, I’ll expand it to the rest of the game. If it doesn’t, I’ll retool it. I’m also going to have Dorene tell you that you spelled it wrong and what the actual spelling is. However, there won’t be any bonuses for someone spelling it perfectly, nor will there be any downside to spelling it wrong (within that ~10% margin of error). More stuff to code if it goes well in the challenge.
It just never ends. Here’s hoping that whatever I come up with for maintenance is less janky and more reliable going forward so that I don’t want to throw the computer out the window when I have to modify it to include the second challenge stuff.