Create Your Own Choose-Your-Own Adventures!

Home Home
News and things!
Browse Browse
Find an adventure to read through!
About About
Learn about the site and its creator!
Forum Forum
Join the dedicated CYOCYOA forum for conversation and help with the site!
Help Help
Read through the site tutorial or learn about specific features!
Register Register
Join the site to make your own Adventures!
forgot password?
Like us (if you like us)
Recent News (most recent)
03-03: Time Marches On...
02-18: Design Post: Inventory, Attributes, and Variables
02-03: February Update
01-06: Wait, where did 2014 go?
12-02: December already?
Recent Updates (view all)
02-10: Registration and the Privacy Policy have been update...
08-18: By popular demand, the Screen Editor has been made l...
06-30: Added a Total Word Count in Screen Editor.
06-26: Updated Screen Editor to show which screens are empt...
njjani presents:
20023263 presents:

Hello, and welcome to Create Your Own Choose-Your-Own-Adventures!

Here, you may browse literally tens of exciting adventures, or register and create your very own!

← Design Post: Inventory, Attributes, and Variables   
Other News

Time Marches On...

Mar 03, 2015 at 18:49

Hey, everyone! Our shortest month is over, and finally it doesn't feel like it's just dark all the time...

This past month has been busy indeed! I've been working with a graphics-savvy colleague (the one who designed the Choosology logo and backgrounds you've seen) to try to tighten up the design of the new site before it gets too far gone in one ugly direction. We've been working on improving the colors, adding some new foreground-background flair (it'll make sense when you see it), and adding smoother/faster loading animations. Plus I added the ability to connect two pre-existing screens in the visual editor as well.

Unfortunately, everything is in a bit of an in-between stage right now, so I don't have much of a screenshot for you. Next time!

As well, I hope you saw the Design Post from the middle of the month. This month, I'll delve into a new topic: Degrees! Degrees are basically the achievements of Choosology, and I'll tell you all about them somewhere around the Ides of March (beware!).

Goodbye for now, and may your choices always lead to the end screen with the most exclamation points!

PS: I realize the month labels on these things stopped being about the last month and started being about the just-started one. Well, it's too late to turn back now! Also, it's a lot easier to make fun titles with the spring months...

- The Grasssmith


Loading comments...
← February Update   
Other News
   Time Marches On... →

Design Post: Inventory, Attributes, and Variables

Feb 18, 2015 at 18:00

Hi, everyone!

As mentioned in a previous news posting, I'd like to talk a bit about plans for the future, focusing on individual features that are currently planned. With any luck, this should help you understand the direction the site is taking and let you give some feedback or suggestions about anything in particular you might notice.

This first post is about Inventory, Attributes, and Variables.

A common request (and one which I'd love to use myself) is the ability to remember certain information about a reader's choices in a particular run-through of an adventure. I'm talking about three different systems here, but at their most basic level, these all derive from the same core functionality--remembering the path which resulted in the current screen being shown. Authors could theoretically already curate their readers' experiences with a complex web of screens, but that would lead to an exponentially complex adventure for the purpose of fast-diminishing gains in quality.

For example, say you're several screens into an adventure and you want to show a different screen based on whether the user picked up a book or a sword back at the beginning. It doesn't matter for a while, but suddenly, this choice comes into play. Perhaps you enter a hut and if the oracle in that hut sees the book, she sends you on a different adventure than if you'd picked up the sword.

Right now, there are two ways to accomplish this:
First, you could create duplicate screens of all the screens in between, changing only the endpoint screen to reflect the different reaction of the oracle. This would mean copy-pasting several screens (and trying to remember to copy any updates you make to them later), and potentially having to do the same for any other branches from those screens. Obviously this is not ideal--it takes more time, takes more database space and loading/saving time, artificially inflates your word count, causes more errors in your intended reading experience, and will most likely just convince you not to do it as much as you'd like, meaning a lower-quality adventure is produced. That's not good for any of us!

The other option I've seen used is to simply ask the reader "Did you pick up the book or the sword back at the beginning?" and treat it as a normal choice from there. This has its own problems; it's clunky, adding an extra choice where there really didn't need to be one, relying on the reader's honesty (or memory), and making the program feel flawed and cheap. Still not good for any of us! All anyone really wants is for a particular choice to be remembered for later. How this manifests itself will differ, however, which leads to the three separate concepts.

1. Inventory

Inventory fits best for the example I gave above. An Inventory system would allow the author to set up several potential Items, including their name and optional icon and description, and then attach them to particular screens. So at the beginning of the adventure described above, choosing the "Pick up book" path would lead to a screen that describes you picking it up, along with a special Action box that says

"You've gained an item: Book."

The user would also be able to see the items in their Inventory on the margins of the page, and click on them to view their descriptions (where the author might hide clues about their potential uses). Later, the author would attach a Condition to choices or blocks of text on other screens. In the screen where you can enter the oracle's hut, the author would actually set up two separate choices that both say "Enter hut." One would be attached to the condition that you currently have the book in your inventory, and the other would check that you have the sword. The two seemingly-similar choices lead to different screens, and the adventure then branches off from there into the different major paths it can take.

Alternatively, an item could just be a red herring, or something included only for humorous purposes. In that case, an author might not be interested in vast structural issues being dependent on the Inventory, but would want to include a short extra paragraph at the end of the adventure if the reader managed to find a particular item along the way. In this case, the author would simply mark a block of text in the final screen with a Condition referring to the item in question.

Inventory is important, therefore, because it allows:
- Better immersion in the story (and less immersion-breaking workarounds to the current lack of an Inventory)
- More options for authors to complicate their stories without too much work involved
- Improved reader experience as they watch their Inventory fill up with reminders of the choices they've made along the way

2. Attributes

Attributes are similar to Inventory (as these all are truly just different sides of the same three-sided coin), but represent qualities of the reader's character rather than physical items. Take our story with the oracle and the book, for instance. Perhaps you want there to be more involved in the oracle's decision than just whether the reader is holding a book or a sword. If the book represents knowledge and the necklace represents strength, then perhaps you want to reward readers who chose to take the book and subsequently made knowledge-seeking choices before meeting the oracle. Then, once she sees your book, she first tests your knowledge before deciding to send you on the TRUE knowledge quest instead of just the normal one.

You could accomplish this with Attributes. The author would again have to set them all up beforehand--let's say there's an "Intelligence" Attribute as well as a "Strength" Attribute. Each of these would have an optional description and icon as well as a starting numeric or text value. The reader would see these Attributes near their Inventory (if they have both).

The author would then attach gains or losses in the Attributes to different choices. If the reader chooses "Ask homeless man about this area" instead of "Push homeless man out of the way," they would gain Intelligence points, or Strength points otherwise. Once the reader got outside the oracle's hut, the author would attach another couple of Conditions to handle which item the reader picked up AND what their Attribute levels are. So now there would be four possible choices:
- Got book, has good Intelligence;
- Got book, doesn't have good Intelligence;
- Got sword, has good Strength;
- Got sword, doesn't have good Strength.
So while the author would still have to make four branching paths from here, they wouldn't have to have weaved a tangled web of semi-copied screens just to get to that point.

Attributes are important, therefore, because they allow:
- Even better immersion options
- More ways for readers to see their choices have a direct effect on the story (when they see "+5 to Intelligence," for example)
- A granular way to track choice tendencies rather than just reflecting a single choice along the way
- Interplay with Inventory in exciting ways (like in the oracle story above; or maybe the reader can only use an item with enough Skill Points; or maybe the reader only gets to pick up the item at all with enough Perception)

3. Variables

Variables, the final system, are really just hidden and more flexible Attributes. A Variable wouldn't need to be set up like an Attribute beforehand, but could be created at any time, and also be altered by the reader's input. The author of our oracle story could insert a text box at the beginning of their adventure asking the reader for their name. Later, the author would use that name Variable to allow
the wizard to say "Hello, [name]! Come into my hut... I have a task for you!"

An author could ask for several words of different sorts during the course of the adventure and end up with a fun Mad-Lib-style ending. Alternatively, the Variable might just be called Points, and silently track the reader's actions in order to provide them with an ending screen reporting their "Final Score."

Plus, of course, the Variables could be used in Conditions like Inventory and Attributes to control whether certain choices or blocks of text are shown.

Variables are important, therefore, because they allow:
- Better immersion through personalized stories
- More options for replayability
- Tracking of values hidden from the reader

And that concludes today's discussion! I hope it all makes sense. Please let me know if you have any thoughts or ideas, or if something could be better explained. At the moment, I'm undecided about whether this will exist at the launch of, but it would certainly be my first post-launch project if not.

- The Grasssmith


Loading comments...
← Wait, where did 2014 go?   
Other News
   Design Post: Inventory, Attributes, and Variables →

February Update

Feb 03, 2015 at 19:44

Happy February! I hope your local weather is not currently attempting to murder you or your loved ones.

January was a fun month, and rather productive! The visual editor now has two of its main functions implemented.

Create Child is back and better than ever!
As you can see in this fancy animated GIF, creating a child now has a satisfying animation associated with it.

And as you can see in THIS fancy animated GIF, the child will place itself wherever it can find a reasonable spot. This is a step up from the current method of picking a location based on how many connections exist already, regardless of where they might be positioned.

Deletion is back and... pretty much the same.

Here you can see that deleting a node will warn you first; if you confirm the deletion, all connections are severed and the node is greyed out. After a few moments (when the adventure auto-saves), that ghost of a screen will disappear, but you will be able to resurrect deleted screens in a future feature.

Next up: Connecting two existing screens, removing the connection between two existing screens, and then, finally, the actual screen editing.

Also: Soon (perhaps next week) I'll post a discussion of my vision about "inventory," "attributes," and "variables." Hopefully this will be the first of a recurring series about upcoming features, where I can get your opinions and suggestions.

- The Grasssmith


Loading comments...
← December already?   
Other News
   February Update →

Wait, where did 2014 go?

Jan 06, 2015 at 18:40

We've thrown away all the old calendars and found ourselves forgetting which year to write... I guess it must be a new year!

2015 promises to be full of exciting fiction developments, not least of which (ok, probably the least of which) is the impending release of Choosology!

It's been over a full year of work on the new site, and though going has been slow at times (including over this past month of work deadlines and holidays and sickness), it hasn't ceased. The visual editor is all coming together, and once it's complete, the rest of the site is just gravy. It's still too early to announce a release date, but I'm confident that "this year" won't turn out to have been a monstrous lie come December 31.

What are your plans for this year?

- The Grasssmith


Loading comments...
← A Late Octoberfest   
Other News
   Wait, where did 2014 go? →

December already?

Dec 02, 2014 at 19:07

Boy, November sure flew by quickly. I hope you are all warm and safe this holiday season, even if you're in the topsy-turvy December summers of the southern hemisphere.

After a long period of difficulties with the visual editor, I've finally gotten it to a stable place and have been able to make more progress than re-doing things over and over. The pie menu from last month's update has been re-worked to look better and be more space-efficient. In addition, the first saving functionality has been implemented, allowing me to update the positions of each screen on the page. I've also figured out a good way to handle small animations without much trouble, which means that the page's responsiveness should be high (in an appropriately subtle way, of course).

You can see the new pie menu here:

The other things aren't really visible, but I'm excited to see what sort of progress I can make this month now that all the groundwork is laid. Hopefully the next update can report that adding and removing screens and connections is complete!

In any case, have a great December and don't forget to make a New Year's resolution to write more!

- The Grasssmith


Loading comments...

Site Updates

02-10-2015, 11:36: Registration and the Privacy Policy have been updated to cover users under 13.
08-18-2013, 08:04: By popular demand, the Screen Editor has been made larger.
06-30-2013, 16:21: Added a Total Word Count in Screen Editor.
06-26-2013, 12:26: Updated Screen Editor to show which screens are empty or not.
05-29-2013, 18:13: Comments on non-public adventures are no longer shown in Recent Comments.
05-27-2013, 18:43: Noticed and sorta-fixed a bug which can make adventure editing impossible.
05-22-2013, 23:11: Added a little button linking to our Facebook page.
05-17-2013, 14:53: Added "Send Message" button to profiles, fixed a couple message bugs.
05-16-2013, 17:25: Added node counter and fixed issue with lingering node highlights.
05-16-2013, 16:28: Added loading overlay to prevent some bugs on adventure editor.
05-15-2013, 23:32: Tweaked adventure saving so large adventures are less likely to break.
04-27-2013, 00:07: Fixed minor issue with Beginning Screen choice with disproportionately major rewrite of the functionality.
04-27-2013, 00:06: Added some controls for publishing to help prevent accidental publishing.
04-24-2013, 23:24: A couple styling fixes, especially with how adventures are shown in Recent Adventures.
04-13-2013, 16:26: Allowed deletion of own comments, and fixed comment display on home page.
04-11-2013, 16:35: Made a few fixes to places that were showing HTML code instead of parsing it.
03-05-2013, 15:56: Made a couple of fixes to ratings and description box errors.
01-11-2013, 09:37: Fixed an issue with saving adventure options with a long adventure title.
11-06-2011, 18:15: The visual editor now has an indicator for when there are non-visible screens.
10-07-2011, 15:44: Fixed issue with universal images being used as adventure images.
06-09-2011, 20:30: Fixed some bugs on the Profile page.
06-06-2011, 18:43: You can now log in with your email OR username.
06-01-2011, 22:29: Fixed some bugs on the Account page.
05-31-2011, 23:32: Added semi-experimental video embedding!
05-31-2011, 19:51: Fixed some screen editor errors.
05-30-2011, 19:22: Made registration a little more helpful on success.
05-30-2011, 00:12: Added a "view full picture" option to Manage Pictures.
05-29-2011, 17:16: Made improvements to Screen Editor usability.
05-28-2011, 17:41: Added some browser detection so it's clearer what you need.
05-28-2011, 17:41: Started adding some helpful popup tooltips.
05-27-2011, 21:28: Added a search box on the Browse page.
05-26-2011, 19:17: Cleaned up AJAX saving so it's less choppy.
05-26-2011, 19:17: Fixed some issues related to Adventure availability.
05-25-2011, 23:53: Various updates to button styles and visual editor usability
05-24-2011, 23:31: Made some fixes and improvements to image-inserting, so that an image uploaded in another window will be available the next time you open an Edit Screen window.
05-23-2011, 19:14: Improved detection of background brightness so site buttons and text are visible.
05-23-2011, 19:02: Updated About page and Terms and Conditions.
05-23-2011, 19:01: Fixed bug with screen editing.
05-22-2011, 22:20: 2.0.1 updated! See news item.
05-20-2011, 14:11: Up. Dated. EVERYTHING.
04-16-2011, 16:38: Fixed an error in viewing adventures.
02-08-2011, 22:15: Added the ability to upload .zip files of images.
08-02-2009, 19:23: Added new image-choosing module in all relevant areas.
08-02-2009, 19:22: Added several helpful messages for creating new adventures.
08-02-2009, 19:22: Divided Adventure Editing page into Info and Style sections.
07-26-2009, 23:23: You can now add a profile picture on your Account page.
07-26-2009, 15:36: Updated Manage Pics page with option to change image names, and some styling changes.
07-25-2009, 01:40: Profile pages updated with fancy search box.
07-24-2009, 00:58: Added proto-profiles.
07-24-2009, 00:57: Cannot register with a name solely comprised of numbers.
07-20-2009, 21:36: Added "view all news" option to front page.
07-17-2009, 12:01: Fixed a bug where you'd be warned about not having written "[[pic]]" even if you had.
07-16-2009, 21:11: added some helpful text.
07-16-2009, 20:38: Added "Restricted Only" option to Browse page for people who have chosen to see such content.
07-16-2009, 20:37: Fixed bug when creating new adventure.
07-16-2009, 00:45: Added an option in the Accounts subsection to allow yourself to see Restricted adventures.
07-16-2009, 00:45: Moved Availability options to drop-down, added "Restricted" and implemented security to enforce it.
07-15-2009, 21:14: Allowed editing adventure details on Public adventures. Still can't change its screens though.
07-15-2009, 21:05: allowed Facebook to access images so you can share adventures there. It's still a little hit-or-miss though.
07-15-2009, 11:47: Update to Privacy Policy to reflect multiple cookies usage. Update to Terms relaxing requirements for Public adventures.
07-15-2009, 11:35: Updated "About" section.
07-15-2009, 10:31: more IE6-centric CSS fixes.
07-15-2009, 00:59: Added an option for persistent logins.
07-14-2009, 16:30: fixed layout issues for IE6. In general, I don't consider IE6 to be something i really support, but in this case it was ridiculous not to.
07-14-2009, 00:36: Made several visual and functional updates to the Browse page.
07-10-2009, 15:50: Prevented trying to preview a screen in progress which hadn't been created yet.
07-10-2009, 11:22: fixed a couple rating-related problems.
07-10-2009, 01:15: Can't rate your own adventures anymore.. also, some CSS fixes
07-10-2009, 00:41: Implemented 5-star rating system.
07-09-2009, 16:37: Fixed style problems on Recent Adventures listing.
07-09-2009, 10:41: Parent listing on screen editing page shows screen name instead of title.
07-09-2009, 01:13: Added a "Recent Adventures" listing on the front page
07-08-2009, 15:59: "" now redirects to the forum.
07-07-2009, 23:33: Forum link added.
07-07-2009, 13:48: fixed a bug where an error message was shown when editing adventures.
07-07-2009, 00:20: Can now put hyperlinks in screens.
07-06-2009, 22:53: fixed a bug with displaying some icons on the Adventure editing page.
07-06-2009, 22:14: You can now reset your password if you forget it.
07-06-2009, 20:42: you can now change a picture's category from the Manage Pictures pages.
07-06-2009, 19:05: Picture sizes are now shown on the Manage Pictures page.
07-06-2009, 00:15: Fixed issue where adventures would try to show an icon even if none was set.
07-06-2009, 00:14: picture alignment and borders are now explicit options. This means the old way ("[[pic|center|2px solid black]]") does not work anymore
07-06-2009, 00:13: warn if picture chosen but "[[pic]]" not written
07-05-2009, 21:21: fixed screen display error with HTML entities
07-05-2009, 16:14: Made this cute little auto-magical update listing.
07-05-2009, 16:13: "Manage Pictures" section now has expandable categories.
07-05-2009, 16:13: prevented hotlinking pictures from this site, also prevented anyone trying to find more pictures by digging through directories