Game A Week 振り返り(12/14〆 DYPING Roguelike ※未完成)
毎週ゲームを作る、Game A Weekの振り返り記事です!
作ったやつ
※未完成のため、わかりづらい箇所や不備のある箇所が多いです。
https://unityroom.com/games/dyping_roguelike
アイデア
先週作って大変好評だったDYPINGの発展形を、将来的に作りたい。
発展させるにあたり、2時間くらいは楽しめるゲームにしたい。
現状のDYPINGの面白いポイントは、第四の壁破壊系びっくり箱要素。(時刻を入れると文句を言われる、入れた名前を覚えられる、左目をあげますとタイピングすると本当に取られる、等)。10分くらいのゲームで10個くらいのびっくり箱がある。
この路線だと、楽しめる時間を110分増やすには、110個びっくり箱を考えないといけないが、現実的ではない。
Inscryptionも同様の要素が面白いポイントだが、ゲームプレイ時間の大半を占めているのはローグライクカードゲーム部分。
なので、メカニクス単体としてある程度面白いシステムを作るのがよい。
タイピングをするという根幹は変えずに、使用リソースを使いまわせて、面白そうなゲームとして、ローグライクタイピングゲームにしたいと思った。
(発展形でお披露目したいので、詳細は伏せるが)単語を入れ替えられる形だと将来的なフレーバーとのかみ合わせがいいので、それでメカニクスを組んでみた。
うまくいったところ
ゲーム全体
・単語を変えて、カオスになっていくのはよかった。
・制限された文字を回避する気分の良さがあった。
・Act、Wave、Stageの実装をするときに、あらかじめ設計をしたため、実装が早く済んだ。
課題
全体
製作に対して集中力を欠いてしまっていた…。
DYPINGがバズり、うれしく、SNSを見る頻度が上がった。
適切な距離感を保とう。
企画
現状だとまだまだ面白いとは言えない。問題は主に以下:
▼スキル周り
・どのカードを選ぶべきかの指針が見えてこない
- カードのスキルを追加する(例えば、Bob: bの文字のボーナスポイント2倍 とか)と見えてくる可能性はある。あとは取ったカード一覧機能の追加
・カードを取ることが、制限文字に対する対応になってるかが分からない
- ゲームをとても熟練すれば解決する可能性はあるが、触って数十分のプレイヤーの不満解消の術は見つかってない
・交換できるものの種別(人名、動物とか)が被ると、価値がない
- 種別を増やせば解決はする。
が、今度は取ってもその種別が出てこないから価値がない、という問題になってしまう
・不可避の死がある
- タイピングがめっちゃ得意! でない人にもクリアできるようにすることを考えると、不可避の死があること自体は仕方ない。
Slay the SpireやBalatroでも不可避の死がある(または、人間の知性では回避方法にたどり着くことができない死がある)はずだが、それほどストレスは感じない…気がする。分析が必要
▼操作性周り
・文字制限のない文章が出てくると、文字制限の意味がない
- 文章抽選アルゴリズム改善、文章の幅を広げれば解決はする。
ただしコストがそれなりに高そう。
・タイピングが早くて、選べるはずだった選択肢が選べないことがある
・IとIssacなど、置換先の文字列と置換元の文字が同じで、変えられない
- この辺は適切な対応入れればOK
▼その他
・英語であることが受け入れられるのか、という懸念
実装
実装のスピードも遅かった。
DYPINGと合体させることを考えていたため、DYPINGのシステムの上に乗っかり、DYPINGの挙動を維持したままこのゲームの実装を行った結果、
DYPING部分をリファクタして共通化できるようにする実装コストや、こっちのコードをいじってはDYPINGの挙動を見たり…というデバッグコストが多くかかった。(結果、途中からDYPINGの挙動維持はあきらめた)
元々DYPINGはGame A Weekの作品だから、それほど拡張性の高いコードにはしていなかったし、今回作ったものを全部破棄する可能性もまあまああるのだから、整合性のところは考える必要がなかったと思う。
(一応プログラミングの習作的な位置づけもあり、DYPINGも拡張しやすいようにしたつもりではあったが…。であれば、継承を使わずインタフェースに寄せて実装するべきだった)
得られたもの
・制限文字をつけて、単語の入れ替えができるようになるだけでは、それほど面白くないという知見
・スキルの実装と、抽選方法のブラッシュアップをすれば面白くなるかもしれないという期待
・実装の設計の重要性の理解
・プロトタイプは捨てる前提で実装をすべきという理解
・エクセルを新しく開くと参照切れる問題の解消
- 違うシートへの参照は、エクセルを開きなおすと死んでしまう
次回に向けて
・実装の設計をする
・バグの出た回数と原因をメモっておきたい。(再掲)
いつかやりたい課題
・DomainLoad無効化してバグが出ないようにする
- なんか出たり出なかったりになった
・IDisposable完全に理解する
・タッチ機能スマホ対応
DYPING関連の課題
・新しいメカニクスを考える
- スキル実装をする、でもいいが……。
・不可避の死への不快さをどうごまかしているかの理解
- Slay the Spire、Balatroあたりをもうちょっとやって言語化する
- 選択肢がいっぱいあって、序盤の楽しさがいっぱいあれば、解決しそうな気もする