fixed expiring sessions by modifying my php.ini to add session.gc_maxlifetime = 3600 and then adding some stuff to my pages that set the original lifetime of the session to 3600 seconds (1 hour) and then some math on each other page to determine if it’s been more than an hour since the session was last active. If so, it redirects you to a logged out page where it explains what happened. Very proud of this one!

refactored my change password function so that I could then implement a forgot password function. Which, you know, I had forgotten to implement in the first place! Whoopsiedoodle.

I did a couple of other things, which also included adding 100 Star Wars questions (no spoilers for The Rise of Skywalker, I promise!) and 100 questions on Human Biology.

Will Wright, in case you’re unaware, is responsible for the Sim-type games. SimCity, SimAnt, SimCity 2000, The Sims, Spore. The list goes on. I have, legitimately, spent hours, perhaps weeks or months of my life playing this man’s games. Certainly, he knows stuff that I don’t.

I decided to go with the “all-access” pricing, because $120 CAD for a single class versus $240 CAD for a year of access to every single class was just a no-brainer. They have Shonda Rhimes, Aaron Sorkin, Garry Kasparov, Malcolm Gladwell, David Sedaris, Neil Gaiman, Margaret Atwood and so many more that I’d love to learn from, particularly when it comes to writing. But it was Will Wright teaching a class that got me to pony up the cash.

This isn’t sponsored in any way, I promise. I am just blown away with how detailed and what high quality the class is. It’s amazing. There are workbooks! Exercises! Homework! (I admit, I have not delved deeply into the homework side of it yet.) But just the lectures alone are amazing. My brain is teeming with ideas on how to refine my game just from the perspective of play. Like, what would make things more engaging for the players? What would allow them to feel more in control of their time on the river? Super exciting to be feeling so creative right now, let me tell you.

One of the things I’m thinking of adding is a daily game with your guide on the river, Dorene. If you can answer her question correctly (or win her game or something like that), you have a chance to win a reward of your choice, with one of the rewards being a surprise.

That surprise can be good or, because Dorene is a water nymph and is mischievious, it could be bad. I’ve already come up with the different options with 10% chance for two of the best things and 25% chance for the third-best thing, with a combined 55% chance for the two bad things. I actually cackled while writing it all down.

Then, thinking about random happenstances made me remember some of the Legend of the Red Dragon random events. I would love it when I came across a horse, for example, or got refreshed (max HP) or any number of little things like that, so I’m going to add in at least one of those, too — probably a 1% chance to occur when you’re foraging for food and have under a certain amount of energy.

Of course, the big question is “when”. hahaha, yeah, I have a lot of work to do already, so we’ll see where I can put in some of this more compelling gameplay stuff. Some bits would be easy to implement, some would be harder. I also deliberately wanted to be vague about how the game works, to let people figure it out for themselves, the way I had to when I was a kid playing Trade Wars 2002 and Legend of the Red Dragon and Sky Mountain. I can always add information or warnings or clarifications or notices to the game, but I can’t remove the information once they’ve taken it in, which would ruin some of the fun of discovering things.

As Will Wright puts it, it’s about finding the state of flow. If it’s too hard or unnecessarily punishing or complicated, then people will never gain interest in it. If it’s too easy or too simple or too boring, people will tire of it easily because they’ll master it quickly. (Think of tic-tac-toe — adults have no interest in playing because we’ve mastered it, but a 5yo would love it. Note to self: play tic-tac-toe with eldest nephew next you see him.)

The ideal state is the state of flow, where it’s hard enough but doesn’t punish you unnecessarily. Humour helps and so does the feedback you receive when you fail. After all, so much of playing a game is failure and learning how to do things better.

When I played World of Warcraft quite seriously, my favourite thing to do was to raid. I loved being in a group of 40 or 25 people and taking down a difficult encounter. (But honestly, I never again want to hear Sindragosa threaten me as my pathetic magic betrays me.) But I didn’t mind wiping over and over again, as long as we gained more information on the encounter. Like “oh my god why did we all just blow up???”, figure it out, fix the problem, then don’t get blown up and progress in the fight. Except then something else would occur, inevitably, hahaha.

One of my toughest learning encounters in World of Warcraft was the 25-man Heroic Blackthorn, in the Dragon Soul raid. The entire encounter takes place on an airship and the first phase is brutal. The second phase is worse. But the worst part for us was everyone dying in the first 30 seconds of the encounter. Something would be missed and we’d take damage. Or someone wouldn’t hug their buddy and the buddy would die. Or someone fell off the airship. It was maddening because we couldn’t progress far enough to figure out what the hell all the different problems were. (There were three separate issues that we had to iron out, as it happens.) We eventually got through it and the footage of us all dying constantly was pretty hilarious, in retrospect. At the time, though, that felt punishing. It felt hard for no reason. It made all of us want to give up in a way I hadn’t felt for a long time. (Did I mention the airship was on fire for the majority of the fight and the fire was buggy as all get out? Lord.)

Anyway that’s kind of where I think my game is at right now. The questions are a little hard and players don’t have quite enough agency. So on one hand, my game is a little too punishing (for no reason) and on the other, it’s kind of simple and boring.

It’s a very interesting problem to have and it’s a fascinating balance to want to strike.

All right, it’s late. I need to sleep. Back to work on Monday after 16 days off in a row. Hopefully I’ll still be able to work regularly on the game and get mobile responsiveness done for January 25…