Most of all I remember "Creature of Havoc" ( https://en.wikipedia.org/wiki/Creature_of_Havoc ) as being amazing and extremely hard. Instead of being an adventurer you play a monster with limited IQ forced to unravel the mystery of your own existence. It employed various techniques that prevented cheating like "If you have the key, add the number written on the key to this page number to open the door". One of those puzzles still has people discussing it http://laurencetennant.com/bonds/creatureofhavoc.html ( contains spoilers ). At 13 years old it took me and a friend 2-3 months to finally crack it.
It employed various techniques that prevented cheating like "If you have the key, add the number written on the key to this page number to open the door".
In computer science terms, that would be an "indirect jump" or "computed goto"; and somewhat relatedly, indirect jumps/calls are for the same reason a little trickier to deal with when reverse-engineering --- without keeping track of other state, it's hard to determine where one will go.
The biggest one I ever was was the (planned) 12-book Fabled Lands series (of which 5 were published), where you'd be directed to pages in other volumes as you roamed the land, and you had to keep track of code words (i.e., boolean flags) as you did things.
Project Aon has all the Lone Wolf books in a variety of formats, including a machine readable format, which they have used to produce similar diagrams of the books' structures. Joe Dever have them permission to distribute the books for free some years ago (you can also now buy them as ebooks, I think). They're all at https://www.projectaon.org/
The differences are interesting, like which are more linear and which are more branching; some have relatively early choices that fork into two long separate branches.
> It employed various techniques that prevented cheating ...
Now I wonder if Third Planet from Altair did that. As a kid, I was frustrated to never get to the best ending, so tried to backtrack the references. I was stumped to find that no page seemed to take you there.
One of my GrailQuest books had an error that prevented you from continuing. I carefully determined the correct page number and edited the book to fix the issue. I can only assume that dead-ends like these arise regularly during development, but most are eliminated by editing and playtesting.
If your nostalgia makes you yearn for this type of game with relatively limited choices, the "80 days" game (perfect for the iPad but now also PC/android) is fantastic: it's a Steampunk twist on the Vernes story (so rockets are a valid form of transportation!) and has excellent world building and great writing -- as good as my other verbose favorites: Witcher 3, Planescape Torment and Betrayal at Krondor.
A play-through can be attempted very quickly, every time experiencing something new -- you are racing through the world attempting to return to London in 80 days.
The creator, Inkle, have a more traditional RPG, Sorcery. Also good for re-creating feel of a classic D&D adventure, but I enjoyed encountering automatons in Vienna in "80 Days" more.
I want to write a book about crypto for kids using the similar idea.
The map will be more linear-ish, or rather one mail path with side loops -- imagine passing levels in a game, you are provided ways to practice a new skill until you are able to pass to new level.
More interestingly, the progress through the book can be itself constrained by a kind of crypto.
The chapters in the book will be numbered and ordered at random. At the end of each chapter it will say "goto chapter 234." or "goto chapter 34 mod 12"
Now imagine the player wants to cheat and starts with a random chapter in the middle of the book. He won't be able to find previous chapter (it's kind of a one-way function). Morever, if progress to chapter N+1 is gated by a puzzle that requires skill learned in chapter N-1, he can't move forward either.
Very cool idea. I've often thought this approach would work best for teaching kids programming. Instead of "Chapter 1: Strings" present programming bit-by-bit as a mystery (detective or spy) story - you need to write simple bits of code to proceed to the next step
BTW have you looked at tools like http://twinery.org/ ? I might help you organise the content (although perhaps not with random ordering)
Back in the day there was a kids' book called I believe Chip Rogers: Computer Whiz. The kids in the book were amateur detectives with computing as a hobby. One of them, the titular Chip Rogers, would write a BASIC program -- the text of which is in the book -- to analyze the clues and logically deduce the culprit of the crime. You could keep reading, or enter the program yourself to solve the mystery before the protagonists do.
Their recent work also illustrates CYOA is again becoming a hot area. With the next major generation of consumer VR likely to have eye tracking (to conserve GPU), videos and games that choose narrative based on inferred user interest seem likely to become a thing. 'Oh, you like that character do you... then we'll tell the story emphasizing them... or their flaws... or maybe kill them off early'.
This seems likely to arise in education as well. Not merely spoken dialog systems, but mentors that watch you and adjust to your interests. Not just show a youtube science video, but use eye tracking to identify what aspects were of interest, and follow up on them. 'Was it the nanoparticles, the microscope, the chicken, the laser, cancer, or the friendly graduate student? Well, here is some related content.' Done well, science education is like studying history - it's such a densely interwoven tapestry, that good advice is to start with what interests you, and by pulling that thread, pull in the world.
It raises some interesting questions. To vizualize a program in a useful way, is it an exercise in what you can take away? Take away everything so all you are left with is text nodes and links, and that is something easy to visualize.
This is all so obvious but it never solidified concretely like this for me until now.
The following domains have a bunch of stuff taken away from them, you're left with a narrow domain of very few concepts, and once narrowed it is intuitive to make a visual tool:
webforms - google forms
relational forms - airtable
computer aided design
music - OneNote
mathematica
video games - unity
website - squarespace
crud app - hyperfiddle.net
world wide web - internet explorer, or html
Functional programming may be a way to narrow down the set of "all programs" to a few primitives that can be modeled visually, but not take away so much that it is not useful for general purpose programs. Maybe visualizing pure expressions as a tree of function calls or as an execution graph. IDEs can already do this for imperative & object oriented programs, but you end up with a hairball, the visualization is not useful enough that we no longer need, for example, to write code in files.
What other ways can we attack a large domain like "enterprise business apps" and take things away until left with a few simple composable primitives?
I once wrote a static analysis tool that simply made 2 lists for every function. What Object-function it called, and what Object-functions called it. It only mapped around 98% of all calls, but ended up being extremely useful abstraction when handed a huge code base without much documentation or access to the old team.
Meanwhile began as a series of seven increasingly complex flowcharts. Once the outline of the story was structured, a computer algorithm determined the most efficient way to transfer it to book form, using a system of tabs to interlink the panels and pages. The problem proved to be NP-complete; it was finally cracked in spring of 2000, with the aid of a V-opt heuristic algorithm which ran for twelve hours on an SGI machine.
As a kid, I played 'City of Thieves' by Ian Livingstone. When entering that city, there is a crossing and one can pick three roads, all leading to the same city market.
I always wondered: what is the best route of the three?
To do so, I first ported 'City Of Thieves' to console and desktop and Nintendo DS (after mailing the book company for permission, which I got). Then I wrote an AI that assigns payoffs to the different chapters. Not only did this result in such a map, but also the payoff it assigns to each chapter: https://github.com/richelbilderbeek/CityOfThieves/blob/maste...
The question is still unsolved though, as I do not trust the implementation of the AI :-)
My school had the 'Accelerated Reader' program; read a book, take a test. Teachers started making it so your grade for reading was based on how many AR points you collected.
Problem was, I was reading mostly adult books at that point, and they didn't have any tests for those.
However, I realized that the tests were both multiple choice, and -didn't penalize you for wrong answers- (or if they did, it was fractional, i.e., 4 possible answers, a wrong one was -1/4, a positive one was +1, so doing just slightly better than random chance would give you a positive score). So I started taking them for books I'd never read, and just guessing.
At one point I searched for the book worth the most points in our system, and it was Les Miserables, at around 125 points. That was more than twice the value of any other book and enough points for the whole year with a good score on the test. So I went out and got the full unabridged hardcover version - a stupidly massive and ponderous tome for a 5th grader - and I didn't even make it past the opening digression to where the plot actually starts.
I then picked up a little abridged version, breezed through it, and easily passed the simple multiple-choice test. Looking back, there was really no reason for that book to be in there.
It's interesting to me how infrequently different paths link up. Alhough this is obviously the point of the book series, it still embodies a set of assumptions about free will vs. predestination/inevitability. Maybe there could be some choose your own crime books where a lot of the outcomes end in jail.
I only read a few of these way back when, so I don't remember exactly if this happened, but another possible take would be a sort of 'where were you when the big [whatever] happened'. How do different choices early on determine how you're affected by the Plague/ day Dublin's streets ran with Guinness/ Chicxulub impact.
I'm not really that familiar with CYOA books, but couldn't they not have different outcomes end in jail, which are still different pages, just described differently (if told through the eyes of the main character, for instance depending on their previous experiences)? The outcome would be basically the same, but the book would offer a richer reading experience for it, and you wouldn't see any linked up graphs.
I spent some time a while ago developing my own system to create CYOA books based on Markdown (called Ficdown). The goal was to develop a simple way to write books without having to write code, and that could be exported to normal e-book formats like epub, mobi, or html with clickable links used to make your decisions as you read the book.
I ran into a lot of unexpected technical complexities in the compilation step, for example trying to remove unreachable branches of the story, and optimizing situations where branches merged back together, or removing variables that were being tracked that no longer had any effect on the story from that point on. It was a fun exercise. It makes me wonder how earlier CYOA books and series were actually written. How hard was it to keep track of the various branching plot lines? Were there ever cases where "bugs" were published? I was a massive fan of CYOA, especially Steve Jackson and Ian Livingstone's Fighting Fantasy series.
Not a "bug" but a feature: Inside UFO 54-40 had an ending that you couldn't reach by the normal means. You had to just flip through (cheat?) to find it. The ending was:
"No one can chose to visit Ultima," says Elinka. "Nor can you get here by following directions. It was a miracle you got here, but that is perfectly logical, because Ultima is a miracle in itself." The End
Japanese Visual Novels are basically CYOA with pictures. The number of decision points varies depending on the book in question, but the basic structure is still there.
Twine [1] is a system that allows you to create stories, essentially CYOA but with the option of adding variables. For instance, you could have an option that is only selectable if you found a key earlier. This bridges the gap between CYOA and classic text adventure. Since Twine outputs HTML it is also easy to port wherever you want.
Finally, there are a number of online community CYOA. This being the Internet, the quality is varied and many of them are pornographic. Probably the biggest is Addventure[2]
Inspired by this type of book, I used to write BBC BASIC adventure games in the late 1980's at school. It was great fun planning the structure of them on paper and coming up with the graphs first.
So much of the computer adventure gaming / MMO style could benefit from understanding how these books worked. Everything is so linear these days with no failed paths. While some games may present choices you can usually find a strategy guide that shows all the ones that will fail as everything is fixed.
Still the maps match up with a lot of the examples I have seen of flow charts/maps/grids from authors who scope out their stories and then fill in where its important and interesting with the actual text we get to read
Have you played a game called Heavy Rain?
It has multiple protagonists that can die during the course of the story and the plot will continue moving forwards.
But also there's scenarios where you have to convince a person to take your side and it's possible to fail.
I didn't play their later game but I hear that their new one 'Detroit' is going to really build on the idea of failure and continuation.
I remember at least one of the old SSI D&D games had moments where if you failed to do the right thing the game was unbeatable. Not sure how that sort of thing would fly these days.
I always thought it was a matter of economy more than anything else. If all you need to do is produce text it's very "easy" to build a massive branching storyline with lots of failure conditions and truly modifying developments since text is cheap. When each of these branches also need additional hours of voice acting, more characters to design and animate, more locations to model, etc it becomes increasingly expensive to make a storyline that has strongly branching paths. There was a time where there was a nice sweet spot that allowed for a decent amount of creativity and branching and opportunity for failure, but as games started to have more and more of these details, developers started making choices more minor, making choices that are illusory, and building at most 2-3 endings that only really branch very late game or mostly rely on mechanics (oftentimes how many people you killed) so that there is less that needs to be adjusted in terms of plot.
Secondarily, you also likely have pressure to make a game that is enjoyable for as long as possible and caters to as many people as possible, which discourages building/allowing critical failure points like the pie in King's Quest V, and maybe also discourages branching too hard so that all content that can be experienced is mostly easily digestible in one playthrough (the subtext being, if you're only ever going to be paid once per user in the context of a single player game, that any path not explored by most people is essentially a massive waste of money so the experience should be streamlined to a tunnel as far as possible to a cost limit the minimum expected adventure).
Nearly the entire Lone Wolf saga (20+ books) was donated and made freely available on https://www.projectaon.org, along two other minor series by the same author (one "Mad Max"-style postapocalyptic, and the other military-themed).
Lone Wolf was one of the best series in this genre back in the 1980's, and doesn't get nearly enough mention in comparison to the CYOA or Steve Jackson stuff.
They are long out of print, but I still have a soft spot in my heart for the GrailQuest series... a very loosely King Authur-themed series with a much more whimsical and campy style. I remember mailing the author a fan letter when I was about 10 years old, and receiving a very nice handwritten reply from Ireland (which I probably still have tucked in an old photo album somewhere). In the age of email, social media, and $50 autograph lines at cosplay conventions, younger people will probably never know the magic of contacting a favorite author and unexpectedly receiving a tangible reply later on.
I've not read it yet, but the pop-culture/horror writer (and film critic) Kim Newman has a choose your own adventure book called Life's Lottery that lets you make life desicions for the protagonist as he grows up starting from childhood in 1960s England. It gets good reviews on Amazon and his stuff is usually good.
I highly recommend Life's Lottery. It's a nostalgic return to 80's Britain that should be entertaining even for anyone who didn't live through those years.
The fact that you control the choices of a person from childhood to adulthood, with astonishingly different outcomes depending on those choices, has the sublime effect of making you consider the direction your real life is going, and how your everyday trivial decisions shape it. Sometimes what appears to be a minor choice or even an evil decision can lead to a better outcome than the alternative.
New paperback and ebook editions were released a few years ago.
I don't know about _book_ books, but if I take your question more generally to mean any interactive fiction, then I would heartily recommend Counterfeit Monkey from Emily Short, or the 80 Days from Inkle. Both are a beauty in their respective styles, and was great fun to play with.
Any of Sherwin Tija's books are humorous, well-illustrated takes on the genres that are definitely not for kids. Plus most of them feature cats! (The original is "You Are a Cat")
As a kid I began to map my CYA books in a similar fashion. I wanted to write my own and so would mimic the structure of the books I had. Twelve year old me would have loved nice clean maps like these. I'm sure mine were nowhere as neat.
If you like CYOA and programming, you should check out Ren'py. It's a python engine for creating digital CYOA stories. Wikipedia tells me that over a thousand games have been created with it.
I loved the CYOA books of my youth, and still enjoyed some Fighting Fantasy books as an adult (Sorcery! for iOS and The Forest of Doom for Linux are great), but I find Japanese "visual novels" dreadfully boring. The ones I've played consist mostly of dialogue of endlessly repeating "...", and almost no choice at all, just clicking some predetermined dialogue to advance the story. Usually with terrible writing, too. Neither games nor novels -- the worst of both worlds, in my opinion.
I loved these books as a child. I had always wanted to play a video game that worked this way; which I guess is why I am such a fan of the BioWare style of games.
There was another CYOA series called Way of the Tiger by Mark Smith and Jamie Thomson where you played a ninja. They were pretty unforgiving and graphic. My younger self enjoyed those enough that I was inspired to convert the first one into a web application a few years ago: https://ropable.com/avenger/
Seeing discussions here, I now realize that one could write a work of fiction firstly as though it were a CYOA, allowing the writer to explore various potential threads and ultimately choose to present in a final copy the chosen path (chosen due to its degree of intrigue/drama/oddity/etc.). I have attempted to write stories before but I would get stuck with thinking "OK, where should I go from here?", which I see, from this CYOA perspective, is more of an editor's perspective than a creative perspective; the creative perspective can be allowed for with the exploration of various tracks/paths and the editor perspective can come into play once those have been fleshed out.
Write it as a CYOA. Then, have it web hosted. Have your test readers go through it. Track their choices. Publish a book based on selecting only the highest trafficked choice for each node.
Choose Your Own Adventure and text-based adventure games you type into your computer (with BASIC) really got me into computers as a kid back in the late 80s/early 90s.
I wrote my own gamebooks using a simple notepad and "turn to page XXX"-style narratives. In the end, they are just programs that you follow. :)
To this day, I'm still fascinated by them and recently wrote some sites that let you create CYOA-style adventures yourself and with others; http://www.thiswayorthat.club is one of them.
For a long time I've thought about having a similar map but for research. Imagining seeing which work builds on what, how they relate and easily scroll to the right to see the latest topics in that field.
I was thinking rather sadly recently that I'm probably in the last generation that has heard of these and will get the reference. The Choose Your Own Adventure books are a great analogy for certain programming topics but if young people have never heard of them it doesn't do much good. That said, they were pretty mediocre fiction as I recall it.
I had forgotten all about COYA books until recently, when I was at a yard sale and found Twist-a-Plot's "Calling Outer Space". I had never heard of it but instantly knew I had to have it as soon as I saw that crazy cover.
I've had a blast reading this together with my 7 year old son.
It's interesting that almost all choices in "Choose your own adventure" are binary. They are, with few exceptions, binary trees. There can only be more than 2 choices if children of the node are leaf nodes (endings). A very simple way to keep number of branches reasonably low.
> There can only be more than 2 choices if children of the node are leaf nodes (endings).
Huh? Lets say each node is a page, and the book is 256 pages. I don't see why the graph could be any (cyclic) or not graph? True, binary choices probably makes it easier to make an easy, and natural feeling narrative - but I don't see this as a hard limitation?
I mean, in the extreme case (with one very long first page) you could have a "2-page" story with beginning, and 255 alternate endings? And you could modify that, so that 254 lead back to the first page, with an additional hint...
[ed: See the map for "cup of death" for an actual book that uses "four road fork".
It is curious that all of these concrete books seem to use binary choices. I can't remember the CYA books I read when I was a kid (Author, name of series) - but I seem to recall there was frequently three, four choices - often one or more choice would loop back (often literally, as in a path that forked around and led you back to an earlier fork in the road...).]
When I was playing/reading these (e.g. Livingstone's) as a child I found a pattern. Always choose the lower number if you are unsure. (Or higher if that worked, and if it does work, stick with it). I'd like to compare those maps now.
I bought Choose Your Own Adventure books when they first came out. I went through my old book collection and it turns out I have Cave of Time, First printing. Obviously worthless but still a testament to how memorable it was for a kid.
It's fun to look for cycles. Looks like "Space and Beyond," "Journey under the Sea," and "By Balloon to the Sahara" could each provide a lifetime of reading...
Similarly, I remember one of them having an unreachable node (graph theory: "a second component") so you had to "win" by finding the award page directly and just reading it, where it congratulates you for thinking outside the box.
Most of all I remember "Creature of Havoc" ( https://en.wikipedia.org/wiki/Creature_of_Havoc ) as being amazing and extremely hard. Instead of being an adventurer you play a monster with limited IQ forced to unravel the mystery of your own existence. It employed various techniques that prevented cheating like "If you have the key, add the number written on the key to this page number to open the door". One of those puzzles still has people discussing it http://laurencetennant.com/bonds/creatureofhavoc.html ( contains spoilers ). At 13 years old it took me and a friend 2-3 months to finally crack it.