Alexaスキル「すごろく脱出ゲーム」ができるまで(1日目)
こちらでご紹介したAlexaスキル「すごろく脱出ゲーム」。(β版)
完成までのフローをまとめたいと思います!
Contents
1日目:チーム作り
チーム作りの流れ
ハッカソンにおけるチーム作りの流れは、このような感じでした。
- 1.アワードのテーマから連想される絵を描いて、説明とともに自己紹介
- 2.絵を元にスキルのアイデアを付箋に書きなぐる(元は変わってもいい)
- 3.付箋のアイデアを1軍2軍に分ける
- 4.1軍を清書する(スキル名、カテゴリ、詳細、グラフィック)
- 5.清書した1枚を持って会場を回ってアイデア披露タイム
- 6.気になるアイデアに集まってチーム結成
私は最初、今まで作ったことが少ない「子供向け」スキルのアイデアを絵に描きましたが、本当に作りたいと思っていたのはアイテムを使ったゲームスキルでした。
すると偶然にも、隣に座っていた方がとあるキーワードを放ったのです。
それが、「ボードゲーム」でした。
キタコレと思った瞬間でした。
そこから自分もボードゲームを作りたいと思っている旨を伝えた後、アイデア披露タイムでもう一人「すごろく」というキーワードでアイデアを描いている人を見つけました。
葛藤
チーム決めの時間、一瞬ですが、正直私は葛藤していました。
本当に、この2日間だけでボードゲームを作れるか。
ですが、隣の方に「一緒にやりませんか?」と言われて、一瞬で決断。そして迷わず、もう一人の方にも声を掛けて、晴れて3人チームが誕生しました。
チームメンバー
今回集まった私を除く2人のメンバーは、motounagiya さん と ひらさく さん。
お二人共エンジニアでしたが、インフラエンジニアとエンジニア(Alexaスキル開発経験無し)とのことで、私はコーディング担当に。ハッカソン初のエンジニア参加!(過去に一度参加したハッカソンでは、デザイナーでした)
役割分担
これは最初にすべて決めたわけではなく、随時決めた結果ですが、まとめるとこんな感じでした。
私
- コーディング
- 効果音変換
- メインプレゼンター
- 動画撮影
- アイコン作成
motounagiya さん
- コンテンツ作成(クイズ、イベント)
- 買い出し
- ボードゲーム工作
- スライド作成
ひらさくさん
- ストーリー文章作成
- 効果音収集
- ボードゲームグラフィック作成
- スライド作成
アカウント
Alexaスキルの共同開発では(やったことないですけど)、誰のアカウントでスキルを作るか、というのを決めなければいけません。今回はAlexaスキル開発経験者が私のみだったので、私のアカウントになりました。
1日目:ハッカソン開始〜時間割
お昼ご飯を食べながらチームで自己紹介。
「すごろく」「ボードゲーム」という言葉で集まったメンバーだったので、ここで When in Rome や Audio Labyrinth、強欲なうさぎの迷路 など既存スキルの紹介をしながらもぐもぐ。(When in Rome の実物も出していただきました…!感謝!!)
ご飯食べ終わり、この時点で13時半頃。
いざハッカソン開始です!
作成するスキルの発表
まず、チーム名とスキル内容の発表でした。現在想定している仕様を付箋に書き出し、画用紙に貼って発表。
準備はできていたので一番に手を挙げるも、うっかりチーム名を忘れていたので、すごろく(仮)で発表しましたw
1日目の時間割
どんな順序で何をやるべきなのか、具体的に頭になかったので、画用紙に書き出しながらひとつひとつまとめていきました。
まずは、1日目の時間割。
- 14:00〜15:00 すごろくのイメージ合わせ
- 15:00〜18:00 分担して作業
1時間でイメージを合わせてから、実際の作業に移りましょうと話してました。
お昼終了時点で、「すごろく型の脱出ゲーム」で「複数人プレイ」ということは決まっていたので、その内容を詰めていきました。
1日目:すごろくのイメージ合わせ
なぜ脱出しないといけないのか?
一番最初に、やはりゲームのストーリーを考えたいなと思い、このお題を掲げました。
なぜ脱出しないといけないのか?
脱出ゲームであるからには、何かしら脱出する必然性があるわけです。このストーリーを考えれば、全体のゲーム設計もやりやすいのでは?と思って、このお題にしました。
ちなみに、最初は「なぜ閉じ込められているのか?」と書いてしまったのですが、これだと発想が限定的になってしまうので、「なぜ脱出しないといけないのか?」に変更しました。
例えば、主人公の設定が怪盗だったら警備員等に見つからないように逃げる=脱出する、という意味になりますし、必ずしも「閉じ込められている」という前提があるとは限らないと気づいたからです。
アイデア出しは各自が述べるだけだと言いづらかったりテンポが悪くなったりするので、ここは3分測って付箋に書き出し方式にしました。やはりこの方式は有効。
こんな感じで出しまくって、グルーピング。そして投票してイメージすり合わせ。(多数決ではなく、複数のアイデアをマージすることも)
今回は、「夢の中」「仮想世界」「目が覚めたら」というワードがキーとなり、「目が覚めたら変なトコロにいた」という話に落ち着きました。
ループ型か一直線型か
すごろくの形状として、一般的な人生ゲームみたいなスタート・ゴールのある一直線型の形状にするのか、モノポリーのように同じところをグルグル回るループ型にするのかを、ここで話しました。
一致した方針としては、あまり長いゲーム=冗長にしない方がいいよね、ということ。
「一直線型だと、ゴールにたどり着いた時に脱出条件を満たしていなければ、どうするのか?」という意見に対して、スタートに戻ってもう一周するのは長すぎるが、必ずしもスタートに戻る必要はない、という話になり、結局ベストな解法が見つかりませんでした。
正直どちらでもやりようはある、ということで、今回は決めの問題と、ループ型にすることにしました。
決まらないものはどちらでもやりようがあるということ。それならこういう場ではまずシンプルなものにサクっと決めてみるのがよいのだなと、学びになりました。悩んでる時間がもったいない!そのためのプロトタイプ!
脱出するために必要なもの
次に話したのは「脱出するために何が必要なのか(What)」。
まず単純に考えるなら「ドア」です。ですが他にも候補はあって、「排気口」だったり(メモに書いてる漢字間違ってらぁw)、「ワープ」だったり、「警備員」、そこから派生して「門番」「ケルベロス」だったりと、色々案は出てきました。
どれを選ぶかを決める時に、それぞれ「どうやって脱出するのか(How)」を考えました。
- ドア:暗証番号、呪文、鍵
- 排気口:ドライバ(金網を外して出るために)
- 警備員:武器、言葉で攻撃
- ケルベロス:言葉で手なづけ
- 隠し扉:スイッチ
- ワープ:?
選ぶ時は、「声で出来ること」と「2日間で作れる・設計できること」という条件で絞って、一番シンプルな「ドア」にしました。
もちろんどれでも出来るんですけれど、せっかくの音声なので、アイテムよりは声で解決出来る方がいいよね、というのと、2日間しかないので、仕組みをしっかり考えないといけない言葉攻撃は、いったんお預けにしようか、ということになりました。
マスの中身
次に、ドアを開けるための、マスの中身について話し合いました。
つまり、どうやって呪文を得るのか、ということ。
まず、クイズに正解すれば呪文を得られるようにすればどうか、という話になり、これはうんうんそうだよね、と満場一致。そして、すべてクイズだけだと面白くないなぁと、クイズ以外のイベントが発生する要素も欲しい、となりました。
ですが、これらを分ける必要はあるのか?というのと、難易度調整で確率を導入するために、クイズもイベントの一部ということで、イベントマスに統一することにしました。
「難易度調整で確率を導入」とは?
イベントマスに止まった時に、クイズを出すのか、クイズ以外のイベントを発生させるのかを確率で調整できれば、難易度を調整しやすいのでは?という意味です。実際出来上がった時のテストで何度か試した結果、イベント発生:クイズ出題の確率を1:1や1:2、2:3などで試しましたが、結局1:1が一番バランスが良かったので1:1にしました
ということで、マスは以下の通り、全部で4種類になりました。
- スタートマス
- イベントマス
- ドアマス
- 何もないマス
そしてこの時適当に描いたすごろくがベースとなって、マスの数が19マスに決まり、スタートマスとドアマスの位置が決まりました。
イベントマスと何もないマスの位置は、後々決めればいいやと、この時は決めずに置きました。マスの数や位置についても難易度調整に使えるので、ある程度出来てから決めることに。
その他
その他、全体のルールとして決めたことはいくらかありました。
- 複数人(2〜4人)プレイが可能
- プレイヤーの識別は色で行う(名前を登録すると前置きが長くなる)
- プレイヤー毎に部屋を分ける(同じ部屋より競争感があるから)
- 各部屋は全く同じ間取り
- ゴールに必要な呪文は2つ
- 早くゴールしたもの勝ち
1日目:分担作業
すごろくのイメージアップができたところで、分担作業に入りました。
- 私:コーディング
- motounagiya さん:コンテンツ作成(クイズ・イベント)
- ひらさくさん:ストーリー文章作成
計画の時点では、コーディング、クイズ・イベント作成、すごろく盤の作成に分かれましょう、と言っていたのですが、この時「すごろく盤=絵を描く」という思考になってしまい、絵を描くのはちょっと…となったので一旦お預けして、それより「ストーリー文章」を作りましょう!ということになりました。
今まで複数人で開発をしたことのない私。他人に頼るのも苦手だったのですが、そうだ、こういうのは頼ればいいではないかと、思えたのが今回の収穫。
こういうところでこんな文章が必要なので作って下さいとか、クイズやイベント、呪文などコンテンツを作って下さいとか、こんな効果音を収集して下さいとか、分担できることの素晴らしさを知りました。
ファイル受け渡し用に Slack を作り、そこで各成果物を共有しながら進めました。
1日目:終了時に、残る不安
17:15になり、1日目も終了というところで中間報告。
コーディングの私はもくもく開発していたわけですが、1日目の終了時点で出来上がったのはこれくらい。
- プレイ人数選択
- プレイ順番決め
- サイコロ回してプレイヤーの位置移動
- 移動した位置のマス情報を取得する
つまり、移動はできてもその移動先のイベントは発生しない状態。例えば、2マス進んでイベントマスに止まった時、「2マス進みます、イベントマスです(終了)」という感じでした。
やばい、一人で作り切れる気がしないwww
もはや100個作った時より不可能性を感じていたんじゃないかと思いますw
セッションに保存するステータス管理が煩雑で、変数の命名ルールなど設計もちゃんと紙に起こしたいと思いつつ、そんな暇ねぇ!!と思いながら、「あぁまた変な名前つけちゃった…」と落ち込みながら、コーディングを進めていました。
1日目:放課後
(放課後ってw)
解散後、私たちは目の前のアトレに入っている有隣堂へ。畠中さん直伝ののりパネと、その他備品をチェックしに行きました。
のりパネとは、ボードを作るための土台になる発泡スチロール。
他にもコマとなるような何かが必要だったので、何があるかな〜と下見をしました。
1日目:帰宅後
当日は1時半くらいまで家でもくもく。ちょうど旦那氏も別件(家のIoT化)でもくもくしていたので、二人してもくもくタイム。
サブディスプレイも使えるし、使いやすい大きめ Macbook Pro も使えるし、困ったら隣に聞ける人がいるし、家はなかなかコーディングに向いている環境。
1日目の失敗は、まさかがっつり開発屋になるとは思わず、小さい Surface 3 (キーボードは正規品の平たいやつ)で臨んだことですww 生産性の低さよ!!15インチの Macbook pro かつ デュアルディスプレイで VScode で開発できる素晴らしさを実感しました。
どうにかこうにか粘りに粘り、なんとか寝るまでに、「イベント発生」「クイズ正解時に呪文ゲット」「ドアで呪文照合」できるくらいまで仕上げることができました。(若干のバグを残しつつ)
あれ、これ行けるんじゃないか…?
「できる気がしません…」
「スキルリリースはできないかもしれません…」
会場退室時に、こんな弱音を吐いていましたが、寝る前には絶望が希望に変わっていました。
おかげで翌朝は足取り軽い状態で、再び AWS loft に足を踏み入れることができました。
もちろん、Macbook pro を抱えてww
続く
最新情報をお届けします
Twitter でaoxaをフォローしよう!
Follow @a093_jp