All Projects → McFunkypants → CYOAwesome

McFunkypants / CYOAwesome

Licence: MIT license
An easy-to-use html5 text adventure game engine. PLAY THE DEMO:

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to CYOAwesome

terminal.land
A boundless world of interactive fiction
Stars: ✭ 37 (+54.17%)
Mutual labels:  interactive-fiction, text-adventure
text-engine
A browser-based text adventure game engine and sample game
Stars: ✭ 146 (+508.33%)
Mutual labels:  text-adventure, adventure-game-engine
limnoria-plugins
Limnoria plugins I wrote or forked.
Stars: ✭ 35 (+45.83%)
Mutual labels:  interactive-fiction
deadline
Deadline by Marc Blank (Infocom)
Stars: ✭ 102 (+325%)
Mutual labels:  interactive-fiction
minizork-1987
Sampler Edition of Zork (1987 Version) (Infocom)
Stars: ✭ 39 (+62.5%)
Mutual labels:  interactive-fiction
vorple
JavaScript libraries for Vorple
Stars: ✭ 41 (+70.83%)
Mutual labels:  interactive-fiction
leathergoddesses-gold
Leather Goddesses of Phobos Gold Edition, by Steve Meretzky (Infocom)
Stars: ✭ 73 (+204.17%)
Mutual labels:  interactive-fiction
wishbringer-gold
Wishbringer: The Magick Stone of Dreams (Solid-Gold Edition) by Brian Moriarty (Infocom)
Stars: ✭ 45 (+87.5%)
Mutual labels:  interactive-fiction
seastalker
Seastalker, by Stu Galley and Jim Lawrence (Infocom)
Stars: ✭ 52 (+116.67%)
Mutual labels:  interactive-fiction
narrator
The Ink language parser and runtime implementation in Lua.
Stars: ✭ 78 (+225%)
Mutual labels:  interactive-fiction
DungeonsAndDirectories
A text adventure that you play in your file browser
Stars: ✭ 36 (+50%)
Mutual labels:  text-adventure
borogove-ide
Borogove online IDE for IF languages
Stars: ✭ 15 (-37.5%)
Mutual labels:  interactive-fiction
frobtads
Linux and macOS development tools and text-mode interpreter for TADS adventure games.
Stars: ✭ 41 (+70.83%)
Mutual labels:  interactive-fiction
zorkzero
Zork Zero: The Revenge of Megaboz, by Steve Meretzky of Infocom (1988)
Stars: ✭ 114 (+375%)
Mutual labels:  interactive-fiction
DreamForgerJS
Interactive Fiction JS library
Stars: ✭ 14 (-41.67%)
Mutual labels:  interactive-fiction
journey
Journey, by Marc Blank, Illustrated by Donald Langos (Infocom)
Stars: ✭ 54 (+125%)
Mutual labels:  interactive-fiction
ink-soaked
A template for Twine-like hypertext using inkle's ink scripting language and ink.js
Stars: ✭ 23 (-4.17%)
Mutual labels:  interactive-fiction
starcross
Starcross by Dave Lebling
Stars: ✭ 73 (+204.17%)
Mutual labels:  interactive-fiction
metaparser
INSTEAD module to create games with text input
Stars: ✭ 18 (-25%)
Mutual labels:  interactive-fiction
reinstead
RE:INSTEAD - Lightweight INSTEAD metaparser-only player
Stars: ✭ 15 (-37.5%)
Mutual labels:  interactive-fiction

WRITE A STORY, MAKE A GAME

CYOAwesome is a game engine that runs on text. It's perfect for interactive fiction, visual novels, and gamebooks where you choose your own ending.

No coding required: just type a story in plain text. Great for writers.

You can write a story and it will auto-magically create a multiple-choice adventure game for you. You can optionally sprinkle in a bit of logic inside square brackets to handle keys, stats, quests, sound, and images.

GETTING STARTED

Games all have scenes and items. Between scenes, the game waits for the player to make a choice. Once you change scenes, all past options become unavailable, except if a scene has no choices in it. In this case, the text is used to add to events taking place in the current scene.

HOW TO WRITE A SCENE

Simply type your story in the body of index.html. The engine will parse it, then hide it and run the game. Linefeeds and blank lines matter. Capitalization does not.

To start a new scene, just type a line of text that is ALL CAPS. To link to it in your story, type that same string of character with any capitalization. This makes story creation fast; you can stay in the creative flow.

TIP: Don't use common words or you may get links you don't intend.

EXAMPLE SOURCE CODE

Here is a simple adventure game to use as an example:

ROOM

You see a door and a key.

DOOR

[has key?] You escaped! Congratulations.
[else] The door is locked. 

KEY

[get key] You now have [key] key[s].

MULTIPLE CHOICE BUTTONS

If you don't want "automatic" linking in the text, just name your scenes with words that won't appear in the text (MY_SCENE_NAME with underscores, for example) and add multiple-choice buttons instead:

- description of choice 1 [SCENE_IF_CLICKED]
- description of choice 2 [ANOTHER_SCENE]

DIALOG

If a line starts with a double quote " character, the text is styled differently. Anything on that line is considered part of character speech, including any [image.png] logic, which is perfect for adding visual novel style facial expressions. For example:

"What are you talking about?" [betty_angry.png]

HOW TO ADD GAME LOGIC

To set or check a variable, all you need is to put your logic inside square brackets. The code gets run at the moment the text rendering gets to it. Here are some examples:

[get gold]
[gold + 1]
[has 5 gold?]
[drop 2 gold]
[no gold?]
[saw scenename?]
[imagefile.jpg]
[soundfile.mp3]
[1st]
[else]

QUICK LOGIC TIPS

TIP: items (gold, key, kisses) have to be only one word.

TIP: the SAW command checks our scene visit count.

TIP: to allow backtracking, set things only once with [1st]

TIP: else is run if the previous ? condition was false

MORE EXAMPLES

I tried to make it pretty permissive of coding style, so you can also type stuff like this!

[if you have the key]
[if the player has a key]
[do we have the key?]
[got a key?]
[pick up 250 silver!]
[grab an apple]
[lose 5 hp]
[hp++]

CONDITIONAL LOGIC

With the else command, you can react to booleans (yes/no):

[1st time?]
[else]
[has key?]
[else]
[if saw monster]
[else]

ITEM QUANTITIES AND PLURALS

You can write quantities in the story like this:

You are holding [gold] gold coin[s].
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].