
18か月掛けてシューティングゲームを作った軌跡と感想
こんにちは、ゲーム制作VTuberの夢乃つぐみです。
かねてから作成していたSTG「EpicRecovery」をリリースすることが出来たので、それまでの軌跡と苦労した点等々を紹介したいと思います。
こちらから遊べますので興味がある方はこちらからダウンロードできますので、よろしくお願いします。
過去に弾幕STGのシステム(弾が出るだけ)を作ったことはあったのですが、ゲームとして完成させたことが無かったです。
なのでゲームとして必要な、ちゃんとしたグラフィック、UI、シーン遷移、コンフィグ、キーコンフィグ、音楽、ストーリー等のところで苦労しています。
そんな苦戦した点を当時のツイートを見ながら振り返ってみましょう。
2020年12月 開発スタート
何を思い立ったのか、突然STGを作ろうと考え始める。
この時点でおおよその構成はあったので、配信しながらシステム構築を実施。
②枠目
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) December 17, 2020
12/20(日) 14:00~
UnrealEngineからいったん離れてC++でガチ実装します!!
ゲーム制作VTuberとして実力を見せる時ですねっ😤#ゲーム制作 #ゲーム作成 #STG
縦STG作るよっ!!https://t.co/SGTLNwTj5Z pic.twitter.com/VWh5s3l0u2
2021年1月~4月 STGのシステム作成
毎日1~2時間の作業でまったり作りました。
※現在GitHubは非公開です
今日の成果です😄
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) December 24, 2020
敵と移動コンポーネントの実装出来ました😤
あと角度制限弾(Caveの戦車がよく打ってくる弾)も出来ました!
ソースコードはコチラ(https://t.co/mKx11Dae3Q)#ゲーム制作 #ゲーム作成 #gamedev #STG pic.twitter.com/7W81LJRgL8
宇宙の背景や、敵画像は以下のサイトで購入しました。
2Dグラフィックのアセットは数千円なのでそこまで高くなかったです。
https://itch.io/game-assets
今日の成果です😆
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) January 10, 2021
大型機を倒したときに弾消しが起きて、アイテムじゃらじゃら~ってやったんですけど、なんだかイマイチって感じがしてます🤔
疑似処理落ちとか沢山のエフェクトを表示しないとですねっ#ゲーム制作 #ゲーム作成 #gamedev #STG
プログラムはこちら↓https://t.co/mKx11Dae3Q pic.twitter.com/X7SLmgRTJi
こんな感じで敵のパターン(入場方法、攻撃方法、動き方)をたくさん作りました。
ここはゲームとして大事なところなので、いろんな種類を作ることを意識しました。
今日の成果です😆
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) March 23, 2021
「敵α」の編隊出現パターンを少し追加しました!
一番目にする機会が多いシンプルな時期狙い敵なので沢山パターン作りたいですね
プログラムはこちらhttps://t.co/mKx11Dae3Q#ゲーム制作 #ゲーム作成 #gamedev #STG #つぐみクリエイト pic.twitter.com/0XeRr3ZEhe
2021年5月~7月 UI、メインメニューの作成
ここから自分の慣れない作業の始まりです。当時のツイートも苦戦している様子が伺えます。
あとPhotoshopのサブスクプラン(1000円/月)に加入しました。
フォトショはいろいろなフォントが使えますし、2DSTGの素材を自分で使えるので重宝しました。
ゲームのUIに使うフォントを探していますが、悩みまくってます pic.twitter.com/L5BJuGHkXd
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) January 22, 2021
ゲーム終了時のリザルト画面のデザインを考えてます!
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) June 29, 2021
宇宙背景に惑星をドーンって置いとけばそれっぽいでしょという感じでゴリ押しています😆#ゲーム制作 #gamedev #STG #つぐみクリエイト pic.twitter.com/8XCfUIu6V6
慣れないPhotoshopの機能に苦戦しつつも、それっぽさを目指して試行錯誤してます
タイトル画面を作ってみました😆
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) June 13, 2021
Photoshopの適当な機能で作ったロゴを適当なアニメーションで表示して誤魔化しました‼️
それっぽくなったかなと思います(たぶん)
プログラムはこちらhttps://t.co/mKx11Dae3Q#ゲーム作成 #gamedev #STG #つぐみクリエイト pic.twitter.com/eWtGoGTzAy
2021年8月~12月 ゲームにストーリーを付けたくなる
ストーリーを考える
7月時点でSTGとしてはある程度遊べれる状態になっていて、完成度としては70%ほど。
あと音楽を付ければゲームとして完成しますが、何を思ったのかストーリーを付けたくなったのです。
この選択がリリースを大幅に遅らせる要因になるとは知らずに。。。
EpicRecoveryは短いステージを何度も繰り返して、残機が無くなるまでスコアを稼ぐゲームシステムです。
ゲームシステムは既に決まっていたので、それに合わせたストーリーを考えるのにとても苦戦しました。
具体的には以下の懸念点がありましたが、いろいろな方に相談に乗って頂いてなんとかストーリーのあらすじを考えました。(皆様本当にありがとうございました)
・このゲームはゲームクリアが無く、最後は被弾して終わる
・しかし、搭乗している主人公は生還して、ハッピーエンドを迎えて欲しい
・なんども同じステージを繰り返している理由をストーリーで説明したい
ストーリーが決まったら、イラストをどこで表現するかを考えました。
怒首領蜂最大往生やエスプガルーダのようにステージの合間にイラストを表示するというのも考えましたが、何度も同じステージを繰り返すゲーム性なので止めました。
またSTGゲームがメインですので、それを阻害したくもありませんでした。
結局、STGとは独立してノベルゲームのようなシステムでストーリーを表現することにしました。
ノベルゲームのシステムにはイラストとテキストが必要ですが、私はそのような技術を持ち合わせていません。
なのでSKIMAにて、イラストとシナリオテキストを書いて頂ける方を探しそれぞれ依頼しました。
イラスト依頼
イラストの雰囲気が作品にマッチしているということでKurageさんにご依頼しました。
ゲームのイラストを今まで依頼したことがなかったので、自分の頭の中にある情報をすべてテキストに起こし整理した後、主人公の年齢や特徴をお伝えしキャラデザをして頂き、それぞれのCGのイメージをお伝えして書いて頂きました。
本当にこんな拙いイメージから、素敵なイラストを仕上げて下さって本当にありがとうございました。(大変な無理難題だったと思います。。。)


シナリオ依頼
CGのラフが完成したところで、シナリオをyumimeiさんにご依頼しました。
こちらも自分の頭の中にあるストーリーや世界観をお伝えし、そのCGがどのような状況であって、どういうシナリオを書いて欲しいかをお伝えしました。
(前略)
ストーリーの時系列
1.主人公が盗みをしてしまい、奴隷商人に売られる
★ 2.奴隷となり、見世物小屋に買われてしまう … CG1
★ 3.他の奴隷と一緒に軌道エレベーターで宇宙基地に連れていかれる … CG2
4.そこは戦闘機に乗せられて無人戦闘機と戦わされる見世物小屋であった
(中略)
CG2
少女の心情:地球から離れて二度と帰れないだろうかという不安
似た境遇の奴隷が複数人居る(人数、年齢は未設定)
ほぼ何も情報が書かれていない依頼文から、主人公の心情に差し迫るシナリオを書いて下さり本当にありがとうございます。
ノベルシステム作成
お二人に依頼している間に、ストーリーをサウンドノベル形式で表現するためのノベルシステムの実装していました。
文字の表示等のSTGとはまったく別の領域だったので、いろいろ大変でした。
文字を表示するだけなのに結構大変です!
ノベルゲーム的な文字送りシステムがおおむね出来ました😆
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) October 4, 2021
スクロールやスキップとかまだまだやることありますけど、順調順調です😤#ゲーム作成 #ゲーム制作 #gamedev #STG #つぐみクリエイト pic.twitter.com/UakVBrZdJ2
UI刷新
ストーリーが決まると、ゲームで使っていたUIが相応しくなく感じてきて作り直しました。
UI作り直すのは結構大変です。ゲーム内の文字はすべてPhotoshopで作っていたため、1つ1つ作り直しでした。
※このやり方だと、多言語対応するときにも困る予感がしています。
自作STG
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) September 13, 2021
ストーリーが決まったので、フォントや色に悩んでます#ゲーム作成 #ゲーム制作 #gamedev #STG #つぐみクリエイト pic.twitter.com/OcCOVCsA4w
弾の画像も刷新しました。フォントや画像はゲーム全体の世界観や雰囲気に関わるので、頑張って統一しました。
今日は弾を自作していました😆
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) February 3, 2022
今まではフリー素材やアセットで統一感が無かったので、全部自分で作って統一感ある配色になりました‼️#ゲーム作成 #ゲーム制作 #gamedev #STG #つぐみクリエイト pic.twitter.com/p3SPxFEX2Z
2022年1月~2月 BGM/SEをつける
BGMをつける
ストーリにあったBGMをつけたいと思い、フリーBGMや有料サービス(Artlist)でゲームに合いそうなBGMを探しまくりました。
最終的にDLSiteにて販売されていたSOUND AIRYLUVSさんの楽曲を全て購入させて頂いて、その中からゲームに合うBGMを探しました。
SOUND AIRYLUVSさんの販売されている楽曲は、どれもカッコイイ曲で一発で惚れた上に、ogg形式でDXライブラリならループが標準で可能である点が決めてでした。
※全アルバムで再生時間が合計9時間程あったので、使うBGMを決めるだけでも大変でした。
ネームエントリーの曲設定しました😆
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) March 30, 2022
STGのネームエントリーといったらこんな感じですよね
※音鳴ります#ゲーム作成 #ゲーム制作 #gamedev #STG #つぐみクリエイト pic.twitter.com/kTOxUtg768
SEをつける
最後にSE(効果音)を付けました。
効果音はhttps://itch.io/game-assetsで効果音セットを購入し、その中から相応しい効果音を探しました。
効果音セットには効果音が4000個ほど含まれており、1つ1つ聞いてました。頭がおかしくなるかと思いました。
※EpicRecoveryの効果音は最善を尽くしたつもりですが、完璧に納得のいった効果音には出来ませんでした。効果音難しいですね。
BGMやSEを少しずつ設定していっていますが、それだけでも雰囲気がグッと良くなりますね😆
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) March 22, 2022
※音鳴ります!#ゲーム作成 #ゲーム制作 #gamedev #STG #つぐみクリエイト pic.twitter.com/RQgiiIK8Q8
※リリース直前なのに、まだタイトルが決まってないのです。
2022年3月 最終調整
BGMの読み込みを追加したことによる問題発生
ゲームにBGMを取り込む様にしてから、ゲームの起動に3~4秒掛かるようなってしまいました。
ゲームを起動ボタンを押してから起動するまでに4秒も掛かるは致命的です。
ゲームのリソース(イラストやBGM)の読み込みを直す必要があり、自作のマルチスレッドで読み込みしてもうまく読み込めなかったりエラーになったりして大変でした。
結局のところ、DXライブラリに用意されていた非同期読み込み処理SetUseASyncLoadFlagを使うことで解決しました。
スペックが低いパソコンだと処理落ちする問題発生
お友達にテストプレイをしてもらっている時に判明した問題です。
自分のパソコンでは処理落ちしないのに、他のパソコンでは処理落ちしているという致命的な問題が発生しました。
インテルグラフィックス 630だと処理落ちしてFPSが30前後まで落ちる模様😥
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) March 13, 2022
3Dゲームでも動作するインテルグラフィックスなのに、2DSTGで処理落ちするのは間違いなく自分の所為ですけど、原因が不明すぎて困ってます💦
加算合成が遅いんですかね・・・? pic.twitter.com/lqoRaujx5b
DXライブラリの描画回数を調べるGetDrawCallCount関数を使いながら原因を調べたところ、マスクスクリーンの影響だということがわかりました。
マスクスクリーンを使わないようにすることで、友達のパソコンでも処理落ちしなくなりました。
自分のパソコンだと処理落ちしないので、原因追及にはかなり苦労しました。解決して良かったです。
遅い原因がわかって来ました!!
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) March 15, 2022
マスクスクリーンがあると描画数が3倍に跳ね上がる
マスクスクリーン無しの状態で同じ画像を連続描画すると超早い pic.twitter.com/u3etgIOduI
ゲームタイトル決定
命名凄く苦手なんです。大事なゲームタイトルを決めるのなんて至難の業。
こういう本を読んだり、厨二ワードで検索してみたり候補は沢山出ましたが、最終的には起死回生の意味がある「EpicRecovery」にしました。
STGのテクニックである「切り返し」が必須である本作ですが、切り返す時は追い詰められている時=つまり起死回生のタイミングということになります。
「切り返しで起死回生をする」という意味でEpicRecoveryというわけですね。
ストーリーもそういう内容にしているので、そういう意味でも適切な名前だと思います。
2022年4月~5月 Steamに登録
ゲームが完成したのでいよいよSteamに登録です。
名前、住所、銀行口座、マイナンバーカードetcを入力して登録します。
承認されるまで1週間掛かりました。

承認されてば、1万円払ってアプリを登録します。
これでリリース出来るぞと思ったら2つの問題が発生しました。
ストアページ作成が結構大変
事前に準備をしておけばよかったのですが、Steamのストアページに必要な情報は多岐にわたります。これらを作成するのに結構時間が掛かってしまいました。
「この画像どこで使われるの?」って感じで用途が不明なものが多かったです。いまだにわかってないですし。



アプリレビューが時間掛かる
作ったゲームをSteamに提出して内容をチェックしてもらう必要があります。
そのチェックが3~15日くらい掛かるため、チェックでNGを貰ってしまうと修正して再チェックしてもらうのに結構時間が掛かってしまいました。
今回だと2回NGを貰ったため、リリースが1か月ほど遅れました。
2022年6月 リリース
2回のレビューを経て、リリースが出来るようになりました!!!
あっという間の18か月でした。
感想
1年ぐらいで完成させれるかなぁ~って思っていたのですが、余裕でオーバーしました。
途中でストーリー追加したり、(記事には書かなかったですが)トレーニングモード追加したり、要素を増やしてしまったことが原因ですが、ゲームとしての完成度が上がったのでヨシっとしましょう。
掛かったお金は全部で15万~20万円くらい(フォトショ代、2Dアセット、イラスト、シナリオ、BGM、Steam登録料)。
掛かった期間は前述の通り18か月で、実作業時間は測っていないですが1000時間くらいですねたぶん。
お金と時間は掛かりましたが、自分が考える最高に面白いSTGを作れたので大満足しています。
今後の展望
次回作はステージ式のSTGをUnityで作ろうと考えています。
こうご期待!
次回作のシステムをざっくり実装してみました!
— 夢乃つぐみ@ゲーム制作VTuber (@YumenoTsugumi) May 26, 2022
①赤レイヤーと青レイヤーがあり、プレイヤーは自由に切り替えれる
②赤レイヤーは密度が高い、青レイヤーは速度が速い
③逆の色のレイヤーの弾には被弾しない
④同じレイヤーに居続けると浸食率が上がって、難易度が上がる
的なのを考えてます! pic.twitter.com/DeElxXDLxe
