Joined: 4/20/2005
Posts: 2161
Location: Norrköping, Sweden
Very interesting! I think I'll give this a try once the hyperlinks are working (too much of a hassle for me to switch pages manually each time). Good job completing such a big project, it must have taken a long time. How much time did you invest in this project?
Thanks.
Try the HTML version now.
A few full days, I think. It does not contain nearly 3322 pages of unique stuff; many of it is duplicated, because it e.g. tracks your inventory and all. It's a story built into a deterministic finite-state machine.
There was a bug in the book -- namely, at a given point in the story the book would forget that the protagonist has no pants (if the player chose to sacrifice them).
The bug has been fixed in the HTML version, but the DOC/PDF versions are not updated yet. I took them offline.
Hah! I think that's my favorite bug description ever. :)
On the topic of interactive fiction (including CYOA) games that let you sacrifice your pants, have you played Lost Pig?
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
You know what I really miss from the good old days (ie. the 80's and the so-called 8-bit computers)? Graphical text-based adventure games. They were once really popular and pretty high-sellers, but somehow they just completely died at some point. And I mean totally. I don't think there has been made even one such game since then.
And no, I don't consider text adventures (ie. pure text and little else) to be the same thing. Nor the so-called interactive fiction (which often seems to be even poorer in playability than text-based adventures, often concentrating more on the story and leaving the playability as a completely secondary minor feature).
The difference between a pure text adventure and a graphical text adventure is that the latter has images for each room (usually the screen is split in about half so that the upper half is the image of the current room and the lower half contains all the text and the input prompt).
Not only that, but the image can actually have a role: If you see eg. an apple in the image, it may well be that it's not described in the default room description text, but you can write "examine apple" (or whatever) and you will get a description of it. And if you "take apple", it will actually disappear from the image. If there's a door and you "open door with key", the image of the door changes to reflect that change. That kind of graphical text adventure.
I was quite a fan of such games in the 80's, and have missed them since then. Nobody makes such games anymore. Text-only games yes, but they tend to be a bit boring.
Close, but not quite. In text adventures you write what you want to do, and there's a lot of flexibility in what you can do. You can write rather complex commands and combine almost everything with everything else. Think of batmud, only with graphics.
It remember me an another html game in french.
I don't know how hard you set up the game, but I love this kind of game.
EDITH:
This wasn't bad, thought I was on page 3265, does there are different "winning" ending?
I love these kinds of games!
I did find a minor bug, though (spoilered so it doesn't give anything away):
If you take the mop, then open the crate, drop the sausage, run away, and hide in the closet with the mop, the mop is still there despite it being in your inventory. Page 1877 -> "Look at the closet" -> Page 1876 -> "Take the mop". This doesn't seem to have any effect on your inventory.
Bisqwit: Lost Pig is an IF (Interactive Fiction) game in the style of Zork, etc. The secondary program you need is the interpreter for the game content, which is used for most IF games. It's definitely worth checking out. Generally the award-winning IF games are all quite good; in the past fifteen-twenty years, we've identified the stuff that makes IF games unplayable (generally things like "guess the verb" and "you forgot to get the towel in scene 2 so scene 36 is unwinnable"), so you can bet that the award-winners don't have those issues. :)
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Thanks. I have fixed it.
BadPotato: There is only one "good" ending in this book. Congratulations for being the third person to find it!
----
This was more of a proof-of-concept, or exercise, of the state-machine as a story-book concept. It involves a DFA where each input state is the entire union of inventory and plot counters and the selected choice, and which is ultimately optimized using OpenFST to produce the least number of unique states (pages) possible. The page content are constructed with IF statements depending on the current variables. Still, it involves lots of repetition. For example, the inventory page (look at pockets) has to be duplicated for every possible combination of inventory items times the number of plot situations it can be invoked in, excluding those combinations that are impossible to reach.
But with these tools, it would be easy'ish to write another book. The routes of the maze near the end of the game were synthesized with a program.
Ack! I thought you had far too much time in your hand to write a 3277 pages long Choose your own adventure book.
Then I realized you generated it with a tool, and the game isn't really that long, heh. :P
I got killed by everything. I'm so awful at this.
Joined: 11/27/2004
Posts: 688
Location: WA State, USA
Tool-assisted book writing? Interesting...
Anyways, I beat it (same ending as everybody else). I liked the sense of humor, and it was quite fun. Granted, I had to commit suicide a couple times after realizing that I had worked myself into a dead end (although I'll admit that liberally used my browser's back button (like I used to do with my thumbs while reading real Choose Your Own Adventure books when I was younger)).
As a random note, I found the maze part to be very reminiscent of the original Metroid. By that I mean I very meticulously made a map of the whole area only to have it run off the paper. :P At least everything appears to match up in a nice and Euclidean fashion.
Also, I have few minor questions:
1. Does the number on the apparatus the man gives you represent the distance from the exit? (I ask this mostly because I thought it was a bomb with a timer at first, but found that was not the case after doing some experimentation after finishing the game.)
2. Do the light switches actually do anything?
3. Do you mind if I link to this on other forums?
I was indeed somewhat hoping that people would solve it in that manner :)
For the record, the source code of the program that generates the maze, excluding the interchanges with the gardener man is just 233 lines of PHP code.
1. Yes, it represents the distance from the exit. The idea of time bomb did not even occur to me. Perhaps the next book ;)
2. No, they don't do absolutely anything. They're just a plot advancement device for the character to stumble upon the crate. At that point of writing, I had yet no idea what I was going to write, and it shows.
3. Not at all.
I also completed it, although I might have cheated a bit at the maze, where I just randomly clicked the links that I hadn't clicked before (which was quite effective).
It think there is a mistake.
You try hard to break the matchbox into two, and you manage to rip
it into two pieces. But the flow of matches is not unhindered!
Joined: 2/28/2006
Posts: 2275
Location: Milky Way -> Earth -> Brazil
I played until the maze part, which is was totally unecessary and boring then I suddenly realized the best way out was clicking the red x in the top-right corner of the tab.
Verily, that was a good ending.
"Genuine self-esteem, however, consists not of causeless feelings, but of certain knowledge about yourself.
It rests on the conviction that you — by your choices, effort and actions — have made yourself into the
kind of person able to deal with reality. It is the conviction — based on the evidence of your own volitional
functioning — that you are fundamentally able to succeed in life and, therefore, are deserving of that success."
- Onkar Ghate
Thank you! It has been fixed.
For those interested, here is the source code of the program that generates the maze near the end of the game. http://bisqwit.iki.fi/jsgames/choosestory/the_mop_is_the_key/maze_gen.phps
Remove the final s from the URL, and you get to see its result (the state machine that forms the maze).