First of all, the CYS editor is great! Seriously. It allows anyone to create great games easily.
But it is far from perfect.
This thread might be interesting to those authors who:
1. Use a lot of complex scripting in the advanced editor. In particular, generate pages by scripts.
2. Find the editor limiting or inconvenient.
After I tried and failed to create a game using the editor, I made a small JavaScript storygame engine that allows you to use JS instead of the editor scripting language and run an entire game inside a single page.
If at least one good author wants to use it, I'll write a reference and release its source.
The key differences with the stories created in the editor (what are pros and cons - decide for yourself)
1. There is no editor graphical interface. You write everything in text files.
2. All related texts, links, variables, conditions, etc. are visible in one place - no need to open and close many windows.
3. With JS you can do anything!
4. You can run it on this site, other website or on a computer without internet.
5. You use a browser console and debugger to find and fix problems. The good thing is that you have a debugger (the CYS editor has none). The bad thing is that you will probably have to use it often.
6. Saved games are stored on your computer instead of this site. You can have multiple saves for one game and even transfer data to the next part of a series.
7. A user can access your entire game code and cheat.
8. There is no standard inventory system and I don't want to implement it anytime soon because stories that I like don't need it. Maybe someone else implement it as a plugin.
9. It seems the site might auto-ban a user for a few minutes after pasting many KB to the editor.
10. The game length is calculated incorrectly.
How hard is it to use?
Not very hard. Here is an example of a non-scripted page:
addScene("town square",
"You are standing on the main square. It is crowded. <ln> There are shops nearby.",
"go to the armory", "> armory",
"go to the apothecary", "> apothecary");
Here is an example of a simple scripted scene:
addScene("town square", function() {
ln("You are standing on the main square. <ln> There are shops nearby.");
if ( time == "day" ) {
ln("The square is crowded.");
if (naked) ln("Everyone is looking at you.");
link("go to the armory", "> armory");
link("go to the apothecary", "> apothecary");
} else ln("The square is empty and the shops are closed.");
if (has_friend) ln(friend_name + " is standing near looking at the sky.");
if (naked) link("put on your clothes", {naked: false} );
else link("put off your clothes", {naked: true} );
} );
No knowledge of HTML, CSS, DOM, or anything more complex than conditional statements is required. If you have no problems with the editor scripts, you will likely have little problems with these scripts too. The hardest thing to learn is probably how to use a browser console and debugger to find syntax errors and bugs.
The source code of a bigger example showing advanced features and more JS syntax is here: http://pastebin.com/zSUsjpXe
you can test it here (it is not published): http://chooseyourstory.com/story/javascript-cys-game-engine-demo
The story is stupid, it's just a technical demo. And the engine is unfinished, of course.