神戸ルル@VTuber ラボ

プログラミング・システム開発・アプリ開発関連のブログ

プログラミング不要でオリジナル化できる脱出ゲームを作ったよ

ヤンデレル ~記憶喪失からはじまる脱出ゲーム~」を公開しました。

f:id:CodeLelou:20200522001515p:plain

プログラミング不要でオリジナル脱出ゲームが作れちゃう、脱出ゲームのサンプルプログラムです。

カスタマイズ・改造方法はネタバレ・攻略法も含むので、サンプルプログラムの難易度や改善点などを客観的に評価できるように初見プレイ推奨です。

ソースコードの解説記事一覧

この記事はこのサンプルプログラムの総合案内となっており、カスタマイズ・改造方法などの記事を追加した時は、この記事も修正し新しい解説記事へのリンクを追加していく予定です。

解説記事はネタバレ・攻略法を含む場合があり、読む前の初見プレイを推奨しています。

カスタマイズ・改造方法

ソースコードの解説

ソースコード一式はGitHubで公開

ヤンデレル ~記憶喪失からはじまる脱出ゲーム~ のGitHubページでサンプルプログラム一式を公開しています。

画像と効果音もこのサンプルプログラム用に新しくオリジナルで作成したものになります。

このサンプルプログラム一式ダウンロードリンクからダウンロードできないような場合は、GitHubページの[Clone or download]ボタンからメニューを開くと現れる、[Download ZIP]ボタンからダウンロードできます。
画像や効果音などをまとめてアーカイブ化したZIPファイル(圧縮ファイル)になっています。

[Clone or download]ボタンは、ソースコード(index.html)・画像フォルダ(img)・サウンドフォルダ(sound)がリストになっている右上付近に、緑色のボタンとして表示されているかと思います。

f:id:CodeLelou:20200522002927p:plain

ダウンロード後にそのファイルを解凍(展開)し、index.htmlファイルをテキストエディタ等で編集することでカスタマイズ・改造できます。

そのindex.htmlファイルをWebブラウザで開くことで動作確認・プレイもできます。

私が公開している脱出ゲームはツイッターへのリンクやフッターの著作権表示があるので、それらがないサンプルプログラム動作確認ページもあるのでチェックしてみてください。

初見プレイ推奨

このサンプルプログラムは脱出ゲームのギミック的要素がメインで、謎解き要素は比較的シンプルです。
オリジナル脱出ゲーム化のために文字(シナリオや謎要素など)や画像を差し替えた場合でも、ギミック的要素は他の人が作る脱出ゲームと共通です。

そこでギミック要素の難易度やシナリオ・謎解き要素の改善案(こうすればもっと面白くなるとか)を意識しながら初見プレイしてみて、オリジナル版の参考にしてもらえればと思います。
通常、開発者自身がユーザーの気持ちを体験できる初見プレイのチャンスはないので、サンプルコードの解説などを読まずに先に初見プレイをしてください。

このサンプルプログラムについて

プログラミングの入門者・初心者の参考になればと思い、このサンプルプログラムを設計・作成しました。
HTML/CSS/JavaScriptで作るHTML5アプリになります。

少し技術的な話になりますが、プログラム部分であるJavaScriptではReactというライブラリを使用しています(jQueryは使用していません)。
Reactでユーザー操作(ボタンのタップなど)・画面遷移(部屋の移動など)を制御しています。

完成したオリジナル脱出ゲームは、Web上にアップロードすることでインストール不要のHTML5アプリとしてプレイしてもらうことができますし、App StoreGoogle Playなどにスマホアプリとして公開することも可能です。

はじめは簡単なカスタマイズ・改造からはじめて、興味があればプログラミングにも挑戦して機能追加や新しいアプリの開発へとステップアップのきっかけになれば嬉しいです。

登録・インストールなしで開発をはじめられる

このサンプルプログラムは、パソコンさえあればOS標準搭載のメモ帳などのテキストエディタで開発することもできます(ただしメモ帳は開発に向いているわけではないのでオススメはしません)。
さらにHTML5アプリのため、Webブラウザでファイルを開けばそのままWebブラウザ上で動作確認・プレイが可能です。

通常、プログラミングの開発を始める場合は、最初に色々とインストール作業など開発環境構築が必要になることが少なくありません。
そこでこのサンプルプログラムは、テキストエディタWebブラウザさえあれば開発できるようにプログラミング言語やライブラリ・フレームワークを選びました。

スマホアプリ化も可能

ただ開発のはじめやすさを追求しただけでなく、HTML5アプリはスマホアプリ化もしやすいメリットもあります。

React NativeやCorodovaなどのフレームワークを使うことで、このサンプルプログラムで作ったアプリをスマホアプリ化することができるようになります。

サンプルプログラムの注意点

今回、サンプルプログラムとしてJavaScriptで開発したわけですが、私はJavaScriptの専門家ではありません。

WebサイトやHTML5アプリ(ハイブリッドアプリ)、Google Chrome拡張機能などを作ることもあるのでJavaScriptは必然的に扱うことが少なくないプログラミング言語であります。

専門的な話になりますが、個人的には静的型言語が好きで動的型言語のJavaScriptである点、Webブラウザの種類・バージョンの影響を受けやすい(特にMicrosoft Internet Explorer)などの理由から極力避けていました。
JavaScript言語が嫌すぎて、わざわざマイナーなHaxe言語(TypeScriptなどのAltJSの1つ)を勉強してJavaScript開発をするくらいです。

ちなみにどのプログラミング言語も書き方やルールが違うだけで、基本的に条件分岐や繰り返し処理などができ、1つの言語をある程度理解できれば他のプログラミング言語の習得はあまり難しくないことが多いです。

ですが今回はプログラミングの入門者・初心者の参考にしてもらうことを目的にサンプルコードを書くということで、最新のJavaScriptもチェックして、できる限り手本になるように心掛けたつもりです(エンジニア同士でもコードの書き方などに主義・主張があり一概に何が正しいかは難しいけれど)。

ただし使用しているJavaScriptライブラリのReactは私自身が完全な初心者で調べながら・勉強しながらだったため、サンプルプログラムがベストな実装方法とは限りません

もしかしたらベターですらもなく、悪い実装方法になっているかもしれません。

もし大幅な機能を追加しようとしたり、ゼロからアプリを作ろうとした時にReactについて調べたらサンプルプログラムでは変な実装をしているなと感じたら、それはサンプルプログラムの方が間違っている可能性があります。
その点はあらかじめご了承と注意をお願いします。

私は今までJavaScriptライブラリはjQueryばかり使っていました。

しかしjQueryだと特に画面遷移を標準でサポートしておらず、今回はjQueryは使用せず、画面遷移などを標準でサポートしているJavaScriptのライブラリ・フレームワークを探しました。

そこで選んだのがReactです。

Reactは画面遷移などを標準でサポートしているだけでなく、さらにこれを発展させたReact Nativeというフレームワークもあります。
このReact Nativeはスマホアプリも作れるので、ステップアップのしやすさを感じました。

 

おうちゲームジャム「ヤンデレル ~記憶喪失からはじまる脱出ゲーム~~」

このページは「おうちゲームジャム」応募用の公開ページになります。

ゲーム概要

ゲーム名

ヤンデレル ~記憶喪失からはじまる脱出ゲーム~

https://mikutch.com/yandereru/

ゲーム制作者名

神戸ルル(コード・ルル)

ゲームのジャンル

脱出ゲーム

ゲームの簡単な紹介

部屋で目が覚めるところからゲームが始まり、ヒントを頼りに脱出を目指します。
クリア時にエンディングが表示されます(シングルエンディング)。
プレイヤーである主人公は記憶喪失で、ノートの説明で治療の一環として脱出することになっています。

ひらめき系脱出ゲームで、知識や謎解きの能力は特に求められません。

特にホラー要素などはなく(ヤンデレ要素も薄いです)全年齢でお楽しみいただけるかと思いますし、広告の表示もありません。

ゲームの遊び方、操作方法

パソコンでもスマホでもWebブラウザからインストール不要でプレイできます(Androidの場合はアクション時にバイブが動作する時があります)。

ホーム画面の「Touch To Start」をタッチ・クリックでゲームがスタートします。
オートセーブのため、誤って閉じたり再読込した場合も、ホーム画面から再度スタートすると、はじめからのプレイか続きからプレイかの選択肢が表示されます。

f:id:CodeLelou:20200522001515p:plain

 画面を闇雲にタップするような脱出ゲームではなく、左右の視点移動と画面正面のドアから別の部屋に移動するアクション、アイテムの「ノート」「スマホ」「リモコン」を使うアクションでクリアを目指します。

f:id:CodeLelou:20200522175918p:plain
f:id:CodeLelou:20200522175410p:plain

なお視点移動などアクション時に効果音は鳴りますが、BGMはありません。
必要に応じて、配信時はフリー音源などを流すと良いかと思います。 

ゲームクリアに要するおおよその時間

最短5分程度~?

※ひらめき系脱出ゲームで謎解き要素はほとんどないため、クリア時間はプレイヤー次第と思われます。

本作品について

この脱出ゲームはGW中に開発をはじめていたもので、条件を満たしているようなので、今回、おうちゲームジャムに応募させていただきました(開発期間は2020年4月26~2020年5月10日のため、特例の時間外枠として応募)。

またプログラミングの入門者や初心者向けのサンプルプログラムとしての公開を目的に開発したものになります。
そのため、シンプルな作りになっています。

プログラミング不要で画像や文字の差し替えでき、見た目やシナリオ(謎解き要素の変更による高難易度化も可)の変更によるオリジナル脱出ゲーム化もできます(カスタマイズ・改造方法はこのブログ内の解説していますが、ゲームの攻略情報などネタバレをを含んでいるため注意してください)。

 おうちゲームジャム企画の配信では難しいかもしれませんが、ゲーム内に登場するキャラクター(開発者である私のアバターを使っています)をご自身のアバターに変更した画像に差し替えるなどして、コラボ配信でお友達のVTuberさんに遊んでもらうなんてことはできるかもしれません。

ゲームのビジュアルイメージ

f:id:CodeLelou:20200522010926p:plain

f:id:CodeLelou:20200522001515p:plain
f:id:CodeLelou:20200522013440p:plain
f:id:CodeLelou:20200522175918p:plain
f:id:CodeLelou:20200522175410p:plain
f:id:CodeLelou:20200522175211p:plain
f:id:CodeLelou:20200522175846p:plain
f:id:CodeLelou:20200522175905p:plain
f:id:CodeLelou:20200522011112j:plain
f:id:CodeLelou:20200522011225j:plain
f:id:CodeLelou:20200522011231j:plain
f:id:CodeLelou:20200522011235j:plain
f:id:CodeLelou:20200522011238j:plain
f:id:CodeLelou:20200522011242j:plain
f:id:CodeLelou:20200522011140j:plain