mid-Parsercomp development/bugfix update
Some potential spoilers for solving the game are below!
I let myself get in a time crunch before the start of ParserComp. As a result, I was confident I'd fixed the major bugs, but given all the moving parts, I wasn't surprised things slipped in. Some, I thought of and wished I'd had more time for. Others blindsided me, and I didn't feel too bad about them. Many were a result of tying to make things more efficient for the player.
Eddieriofer's bug reports helped make this a solid update. At first I felt bad I missed so much, but the assistance was invaluable to help me unlock other things. Some are new content, so they'll wait.
Github has the full technical goods: https://github.com/andrewschultz/you-wont-get-her-back/commits/main
Most of the bugs found right away (by whomever) were things I should've seen, but I'd kept trying to pack in features that "couldn't miss that badly." So I wound up drawing the chessboard with row 1 on top and 8 on the bottom for the first build. Or I assigned "W [number]" to adjusting square width, but it turned out to wipe out "W" going west, which is actually not critical to win. But it's still a bug, and I should've quickly checked my assumption that "W" to go west would not be wiped out.
Some other interesting bugs popped up while testing the simple ones: the player could originally not get 2 achievements in one pass through, even though they deserved it.
A lot of these were one line fixes and of the "oh, of course, now I see it" variety. One amusing bug was that I'd always spelled Saavedra "Saaverda." The second seemed easier to pronounce. After fixing this in the main story.ni code file (I used a local script to find everything there,) I neglected to search the entire repo on GitHub. So I missed some test scripts--which the player will never see, but still, I realized I could have been more thorough.
And another bug involved not being able to change the default promotion back to a queen. This very-soft-locked you out of one ending if you didn't get it. Of course, I'd made sure to check promoting to rook, bishop and knight, but not queen. While you could type c8q, that'd just be a nuisance. Again a conflict arose as "q" also means quit the game in Inform. I found two more obscure run-time errors in addition to one reported.
All of this was on my local machine, but I didn't divide it into commits until 9 days after the previous code fixes.
Maybe I should have cleared it earlier, but two big things loomed. First, locking the player out of some special achievements was a result of trying to help them not flail among the possible endings too much. The game sorted, at the start, the list of similar squares. Each room had a property called "flee-state," and the game rotated flee-states each time you won. So you could get all the endings. But you didn't know which flee-states were useful. I got the bright idea to 1) keep it simple for the first run-through, 2) add flee states once you won, and 3) delete them as you achieved flee state-specific bad endings. The problem was, 2) missed a line saying "put this state back in!" I never saw it, because the scripts I ran blew past the rotating list of flee states to make sure that if the rook was on one square, you could get this ending. But the game never put the rook there.
This opened up a whole bunch of possibilities, and I wanted to write a test script to get all achievements without using test commands. I still had to hack some things. I did not randomize the flee-state order at the start, or after 2). And I had to write a test command to say "change the square the rook flees to, but only to one of the same type." So for instance g4 and h4 are identical, but g4 and a8 are not. So my command "RF" forced the rook to flee to a certain square, but the modified "RFA" (rook force alike) checked for the type of possible endings.
This wasn't esoteric, but it was complicated, and it paved the way for post-release features.
Oh. There was one other omission. The biggest thing from scratch was a walkthrough for the achievements. I'd considered this but didn't want to spoil things totally for those who didn't want it. The compromised I arrived on was to use a Caesar cypher (shift letters X forward or back) for each line, incrementing the index. ROT13.com lets you see a chunk of text, and this would only spoil one line at a time. The Python code was fun to program, and once I wrote in a few options and a small meta-language (e.g. what parts to rotate, output file name, etc.) it was good to go. As it isn't game content, I included it.
Finally, having the pressure off helped me with one thing I always want to do, but I always procrastinate: cover art. I hope you find it amusing.
These are good strong fixes, I think, and if there are more bugs, I figure I can slow-walk them. I feel good enough about this that I can open up a post-comp branch to start tackling the new features that popped up. If you're curious, they're here.
Files
Get You Won't Get Her Back
You Won't Get Her Back
A classic chess puzzle set to a story.
Status | Released |
Author | Andrew Schultz |
Genre | Interactive Fiction |
More posts
- final ParserComp bug fixesJul 31, 2022
Leave a comment
Log in with itch.io to leave a comment.