CYOAとはCreate Your Own Adventures
の略です。
このリポジトリではインターネットみんなで作るテキストアドベンチャーの実験をしています。
単純な命令のみが利用できるゲームエンジンを用意しましたので、テキストアドベンチャー参加に協力してみたい人はお気軽にPRしてみてください
ここからmasterブランチのアドベンチャーゲームが遊べます→ https://inajob.github.io/cyoa-experiment/
index.htmlに変更を加えその内容をPRしてください。 ゲームエンジン自体へのPRはしばらくの間はリファクタリングのみ受け付けます。
何が起きるかわかっていませんが、ひとまずは@inajobがレビュー後、勝手にマージします。
実験としてやりたいのは「1つのアドベンチャーゲームをみんなで作る」ことですが、このエンジンを使って独自に物語を作るのも自由です。 その場合はPRではなくForkなどするのが良いと思います。
みんなで1つの物語を作るという試みです。
単純に1つのストーリをみんなで作るのは意見が分かれてしまい大変そうですが、いわゆる「テキストアドベンチャー」形式であれば、このような議論が発生しても比較的簡単に落としどころが見つけられるのでは?と考えています。
誰でも簡単に参加できるようにするために「ラベルID,変数IDはUUIDベースにし、命名規則などで揉めないようにする」「ゲームエンジンの機能を極限まで削り、演出など細かな部分での議論が発生しないようにする」などの制限を設けています。
また、この実験の成果をCC BY-SA 4.0とすることで、誰でもストーリを利用することができるようになり、例えば本として出版したり、オリジナルのゲーム機やゲームエンジンに移植するなど、新しいコラボレーションが生まれることを期待しています。
この試みを見て「これは面白い!」と思った方はぜひ、git clone
して、あなたのストーリを追加してPRを送ってほしいです。
加えて、この試みをより多くの方に広めることで、「作る人」「遊ぶ人」を増やしてもらえるとありがたいです。
このプロジェクトのために、非常にシンプルな言語を設計しました
この言語では下記をサポートしています
- 選択肢
- ラベル
- フラグ設定
- フラグによるジャンプ
:ボタン名,飛び先ラベルのID
選択肢を表示します
*ラベルID,ラベル名
- 選択肢によりジャンプする先となるラベルを宣言します
- ラベル名は人間がわかるように記述してください(今は制御に利用していません)
- ラベル名はほかと被っても問題ないです
- この命令まで一度も選択肢がない場合は「次へ」を表示し、次へジャンプできるようにします
# コメント
コメントです。画面に表示されません
% 命令
%end
- ゲームオーバーです。「次へ」が表示されません
%set 変数ID, 値, 変数名
- 変数をセットします。
- 変数名は人間がわかるように記述してください(今は制御に利用していません)
- 変数名はほかと被っても問題ないです
%eqif 変数ID, 値, 飛び先ラベルのID
- 変数IDの値が指定したものと一致した場合制御が指定したIDのラベルに移動します
上記以外です
テキストとして画面に表示されます
ブラウザで開発者ツールを開いて、コンソールにgenerateLabelId()
と入力しEnterを押すことでラベルIDが生成できます。
ラベルを作成する際に利用してください
ブラウザで開発者ツールを開いて、コンソールにgenerateVariableId()
と入力しEnterを押すことで変数IDが生成できます。
このリポジトリに含まれるプログラム(JavaScript部分)はMITライセンス、ストーリ部分はCC BY-SA 4.0です。
PRやForkする際はライセンスを確認したものとみなします。