"Le butin du Capitaine Verdeterre" by Ryan Veeder
[TC: Throughout the source, comments with indenting and starting by TC will be "Translation Comments", i.e. comments that I’m making, as per Ryan’s request, about the translation itself, comparing both languages. Enjoy :)]
[AC: comments on my comments by the author start with AC]
[TC: Note: I had to translate the names of the objects, because Inform uses them as recognized inputs that reference to them; however I did not translate the name of the rooms, using "the printed name of '....' is '...' instead", because rooms are everywhere in the source code, and I'd have to understand what is a region, and a room, and stuff like that (I don't code in I7). This seemed like the easiest way to do it.]
[TC: there's a few typos throughout the code; when I could notice them, I used the word 'typo' in a comment, so look for that word to see them. Some of them are actually bugs!]
[AC: ON THE ISSUE OF TYPOS: This is actually a lot more complicated than it should be. Sorry in advance for going on so long...
The original competition version of the game was really buggy. For example, when you tried to walk down to a lower deck that was already completely flooded, the message saying "You can't go down there, it's flooded" would display, but then you'd walk down there anyway! I fixed that particular bug in an in-competition release, because it was embarrassing.
But that was after a guy submitted an unthinkably high score of about $1800—a score that was only possible if you "exploited" that exact bug! I don't think the guy knew he was exploiting a bug, though; he only used it very late in the game, and I think after playing the game so many times to optimize his score he had started to ignore most of the the cosmetic messages about water level.
I felt really lousy when I finally figured this out, because I wanted to give the guy credit for his efforts, but nobody who played the revised game could ever match that score. That's a terrible thing, to be trying to set a high score on a game when the score at the top of the leaderboards is literally impossible to reach.
So, the leaderboard at my website has a note about how this is the high score in the old version, and this is the highest score that person, using their strategy, could reach in the current version. It's not elegant, but at least it's fair.
Then I got an email from a guy who said he could beat the lower of those two scores, in the version where he couldn't exploit the flooded deck bug. But when I checked his solution, I realized he was exploiting yet another bug! I won't say what it is here, but it's pretty ridiculous.
I was embarrassed again, but then I was weirdly amused. I had wanted the game to capture the feeling of speedrunning in a platformer like Super Metroid, where success depends not only on your button-pressing skills but on your ability to prioritize and optimize, and there's always the possibility that a better solution is out there. A big part of speedrunning in Super Metroid is sequence-breaking: getting the super missiles or whatever before you're supposed to, and using them to traverse areas faster or skip them entirely. I thought that element could never apply to IF, because this medium is so cut-and-dry: It's not like if you type "climb bookcase" a certain way, it'll suddenly work when it's not supposed to, and let you get to the attic faster. IF doesn't have the rough edges a platformer has.
But apparently it does! You can "sequence break" in Verdeterre by exploiting the bug this guy found, or any number of bugs I don't even know about! I realized I had to leave that bug in, not just so that future players would have the same chances that this high-scorer had, but because I had accidentally succeeded in creating the experience I thought I could never create, of learning a game so well that you're able to out-play its programmer.
That was a dangerous decision to make, though, because now I had to make decisions about other bugs. It's possible, and actually fairly easy, to get the "THIS SHOULDN'T HAPPEN, SEND A BUG REPORT PLEASE" message to trigger, simply by climbing the rigging. Should I do another release where I fix that, but don't fix the exploitable bug (or bugs)? And what about all these typos?
I've thought a lot about it, and I keep changing my opinion, but for the forseeable future I've decided to leave things the way they are.]
Use MAX_VERBSPACE of 8192.
[TC: I don't know why, but it doesn't want to compile without it. Probably because of the French library?]