見出し画像

会社でシューティングゲームを作りました

みなさんはシューティングゲームが好きですね?

じつは私、シューティングゲームが好きなんです。

はじまり

またやってきました。CAMPFIREアドベントカレンダー
去年はなぜかランゲームをつくりましたが。
今年はなぜかシューティングゲームをつくりました。

今回も、思ったことや雑な記録はこちらの note。
実装にまつわるトピックは Qiita に書き連ねています。

余談

年末ですから。
ゲームについて思う前に、かるく今年を振り返り。
仕事ではやっぱり Web ページを実装していました。

あくまでも私は実装のひと。
制作についてはデザインチームの note が面白いですよ。
明日12/7のアドベントカレンダーでもアワードの話が見られるようです。

シューティングゲーム

さてシューティングゲームです。略して STG。
頻繁に衰退論が唱えられますが、今でも元気なゲームジャンルです。
撃つ。当てる。避ける。やはり根源的な楽しさは不滅ですね。

とはいえシンプルさで言えばランゲームに一歩譲るわけで。
前回より気合いを入れて作りましたが、あれよりはゴチャついたのも確か。
実際、さわってみて前回の方が楽しめたと感じるキモチもあります。

いかがでしょうか。ひと駆け。

モチーフ

前回はクラウドファンディングの表現としてランゲームを選びました。
しかし今回の場合、実は STG を作るという決めが先。
おかげでモチーフの落とし込みには悩みました。
いえ、悩んでいます。今も。

後ほど紹介しますが、キッカケはとあるゲームを遊んだこと。
思うところがあり、自分だったらどう作るだろうかと考えて、優しそうなSTG の案が思い浮かび、ちょっと早いけど候補に入れておこうと、そんな流れ。
ぼんやりとした夏の日のことでした。

その時点で、

  • プレイヤーはハート(敵機)にアピール(弾を当てる)する

  • アピールでハートを満たす(HP を 0にする)と、いいねになる(倒す)

  • あとは、いいね数に応じて時間で金額(スコア)が増えていく

という殺伐感のない STG 案は固まっていました。
しかし問題は相手からのアクション。具体的には飛んでくる弾。
STG 的には敵機と表現するものの、モチーフ的には敵ではありませんから。
攻撃なんて害意を表すのは論外でしょう。

相手の行為がネガティブなものであってはなけない。
だけど当たると悪いものなので避けなければならない。

無理では?
と悩み、軽く相談もしました。今でも正解が分かりません。
とりあえずの案はこんな感じ。

  • 相手は攻撃してこない。地形や第三の要素(避けるべき障害。コロナなど)が邪魔をしてくる

  • 相手の弾はむしろアイテムなので、いっそ逃さず集めるゲームにする

  • 相手の弾は取っても得点になるけど、取らずにおくともっと大きな得点に変えるチャンスがあるので避ける

結論から言えば、諦めて普通に被弾する普通の STG になりました。
いえ、終盤までは3番目の案だったんです。色々と言い訳も立つし。

でもやっぱり明確に失敗が無いと、成功はパッとしないんですね。
プレイの明暗はクッキリさせること。前回も得た教訓でした。
残機の概念がなく、途中でゲームが終わらないのが3案の名残です。

ちなみに表現の言い訳としては、相手の弾も熱意やキモチで、自分に向けられたものではないそれらに当たると、自分も魅了されるというか、よそ見するというか、なんかこう、自滅的な?
そんな感じで夜露死苦!

言葉選び

モチーフの続きみたいな話ですが、だから敵だけど敵じゃないんです。
攻撃だけど攻撃じゃないんです!
それで何が困るって、じゃあゲームをどう言葉で説明するのかという話。
なにしろモチーフ感を壊さないためにも、スコアをスコアと表現することすら躊躇っているレベルなのですから。

なので全力で言及を避けてボカしています。
例えば tips や説明文にある「ハートを射止める」という表現。
これも説明に困って「とにかくニュアンス伝われ!」という苦肉の策。
倒せばいいんです。でも倒すものじゃないんです。

ただ tips で、言葉ではなくアイコンでいけると気付いたのは発見でした。
敵も弾もいいねも全部ハートなので、分かりづらさもあったりしますが。
まさか、こんなにハートまみれなゲームになるだなんて……。

かわったものたち

前回から見て変化したところ。
もちろんそれはゲームのジャンルや技術的なものだけではなくて。

機能の内蔵

外からは分かりにくいかもしれません。
前回、ページ上に置かれてたミュートやリセット、シェアのボタンが、ゲーム内に置かれるようになりました。
これ、結構無念だったんですよね。
後から増やしたものだから仕方なかったんですけど。

ただ、常時押せたものが、そうでなくなったのはマイナスでしょうか。
あとプレイ中のリセットボタンなんて、ほぼ気付かれないレベルですし。
でも結構押せる判定は大きいんですよ。あれ。

ゲームタイトル

気恥ずかしさとスペースの都合ですごく影の薄かった前回のタイトル表記。
今回は堂々とタイトルロゴを表示!
この note のヘッダーもその変形です。

結果的にこうなっただけなんですが。
なんというか。とてもピンクいですね。すっごいハートですね。
実は、コンパイルオマージュなんですという理由を今思いつきました。

実際、私の STG 好きの原点はコンパイルですし、あながち間違いとも言い切れないような? いやどうだろう。

このゲームについて

前回、あのランゲームがアドベントカレンダーの産物だと知らない感じの反応がいくつか見られました。
そりゃ分からないですよね。何も書いてないんですから。
これも結構な心残りでした。

そんな訳で追加。
ボタンを押さないと開かないのであまり読まれなさそう。
しかもそこに操作説明まで入れてしまったのはどうかと思わないでもないんですが。
縦画面のゲームだと置き場に困るんです。スマホを考えると尚更に。

BGM

ついに付きました。鳴りました。
前回のジャンプと着地を BGM 代わりにしている感じも好きでした。
何度も聴く羽目になるのはクドいかなーと思ったのもやめた理由です。
でもやっぱり流したかった。

今回も基本みんな手作りですが、音は全部が素材です。
効果音は引き続きフリー素材で、BGM は昔買ったもの。
クドくなくて、疾走感があり、きっちりと1分で終わる。
これを見つけたことが BGM の実装を決めた面もあります。

BGM が制限時間でちょうど終わると、他に演出がなくても良い。
というか、むしろ無い方がスマートに終わりを伝えられるのは発見でした。

それにしてもやっぱり音選びは苦労しますね。
単純に数が増えたのもありますが、あのハートフルな見た目にどんな音が似合うのか。イメージでの選択ではぜんぜん正解にならないこの難しさ。
仮に選べても、それぞれ単体ではステキだったものがゴチャまぜだとビミョーに聴こえたり。
とにかく調整に次ぐ調整。改めて世の中の音屋さんは凄いですね……。

SNS連携

これは無くなった機能です。
前回、デバイス間でスコアの共有とかあっても良いよね、と付けましたが。
利用率は0.1%でした。

でも、STGならランゲームよりスコアやリプレイの価値も上がるかも?
ただプレイ人口は間違いなく減りますからね。

あきらめたものたち

念願を果たしたものがあれば、無念に消えたものもあり。
だいたいが開発終盤に去っていきました。
みんな STG の仕様的な話です。

ランクシステム

プレイヤーの行動によってゲームの難易度が動的に変化する機能です。
STG に限らないですが、STG ではよく見かけます。そしてよく議論されます。
私も一家言ありますが。それはともかく。

今回、12 種類の敵に難易度がそれぞれ 3 段階用意されています。
拙いプレイには優しく。巧みなプレイには難しく。
そんなふうに変動する予定でした。

しかしランクの判定が本当に分からない。まるで制御できる気がしない!
そもそも 3 段階だけは極端だし、しかも 1 分の間にそれが乱高下する!
そんなの仮にランクの判定ができても適切なゲーム体験が不可能では?

企画バグです。
それに終盤まで気付けなかったのは、なにかこう、夢を見ていたんでしょう。

仕方がないので、単純に周回で難易度が上がるようになりました。
中型x2を倒すと1周します。
インベーダーっぽい小型編隊が周の始まりです。

ただ、おかげで難易度3があまり日の目を見なくなりまして。
せっかく作ったのだから、もっと触れ合って頂きたいとも思いまして。
供養ではないですが、隠しモードでいつでも難易度3を遊べるようにしました。
割とゆかいな動きをする敵もいます。いかがでしょうか。

https://hasegawa-campfire.github.io/fire-shooter-san/?mode=ex

しかし〆間近の時間不足でゴリゴリとシステムを削る中、まさか新モードが増えることになるとは思いませんでした。

周回で敵のHPアップ

ランクとは別に、周回ごとに敵の数やHPが上がっていく予定でした。
敵の数が増える仕様は残りました。HPアップも中型だけ増えます。
でも小型のHPが上がるのは、ただただ障害になるだけでした。

個人的に硬い敵を突破していく感覚は好きだし、せっかく作った敵の動きも見られる前に倒されるのは切ないし、ゲーム的にはHPが素点なので周回する(HPが増える)ほどスコアも増えるという仕組みにしたかったんですが。
最終的にはテンポを取りました。

各種ランダム

一部の敵の出現位置や、敵の種類の順序はランダムになる予定でした。
敵の出現位置の予告も本来はそのためのものです。

しかし開発も終盤になって、難易度を下げようという事になりまして。
敵に振り回されすぎる!
今のままでは稼ぐことに集中なんてしていられない!
そんな理由から、前述のランクや敵HPと併せて削られました。

いえ、正直今でも稼ぎに集中できるゲームとは………言い難いですね。

被弾ペナルティ&クリアボーナス

モチーフでも書いた通り、元々は敵の弾に当たっても無害どころか得点でした。
それが開発終盤、被弾ペナルティとしていいねが半分に減るよう変更。
でもじわじわ増えていくスコアの仕組み上、プレイの終盤で被弾してもあまり被害を受けないから、このままだと終盤テキトーなプレイになってしまうのでは?

ということで最終的ないいねの数だけスコアが激増するクリアボーナスが追加されました。
そして翌日、被弾ペナルティごとその仕様は削除されました。

半減だと、どう遊んでもスコアが均されてしまうみたいなんですね。
そして下手でもとにかく被弾を避ける方が、上手く敵を倒すよりもずっとスコアになる。
できれば攻めるプレイをして欲しいし、頑張っただけ報われて欲しい。
そんな訳で諸々削除されました。

オートショット

元々のアイディアは、プレイヤーは移動操作だけすればいいものでした。
ショットは自動で撃っていて、位置取りだけで攻略していくゲーム。
基本ショットが単発なのはその名残です。

しかし稼ぎのためにあえて敵を放置する。そんなことをする為には、撃たない操作が必要になりました。
スマホにはアーチャー伝説という移動していない時だけ撃つというSTGジャンルもあるので、それに倣おうとした時期もありました。

しかしPC操作で撃たない時だけボタンを押すというのも、PCとスマホで操作を分けるのも、どちらも違和感があります。
特にPCの場合、加減速の操作も出来ればショットボタンと統一したい、という理由もありまして。
なんだかんだ、ありふれたSTG仕様になりました。

おかげで連打で連射する仕様や、連打と長押しでショットを使い分ける仕様も追加。
移動だけよりとっつきは悪くなりましたが、やはりこれが落ち着きます。

ボス

前回は、スコアが100万を突破すると大きくゲームが変化しました。
速度の上限が開放されて、ボーナスステージ的なものに突入して。

今回は、ただコンボの上限が開放されるだけです。
ボスキャラを出すのも面白そうだと思ましたが。どうして目標達成で最大の困難が現れるんでしょうか。と考えてやめました。
これだけは開発初期の話ですね。

参考元いろいろ

ここからは、今回の制作にあたって参考にしたもの(?)の紹介です。

独立理想国家アヴァロン

怒涛の攻勢から拠点を守るタワーディフェンス的なマウス操作 STG。
思考実験的な架空の理想国家と、世界との衝突を描いた独立戦記は必見。
ふりーむにて配信中のフリーゲームです。第13回ウディコン3位。

面白いんですが。とても面白いんですが!
とにかく操作系が合わなくて繰り返されるゲームオーバー!
お、おのれマウサー!

そんな悔しさ(逆恨み)から「自分ならどういう操作やシステムにするだろうか?」と妄想したのが今回のきっかけです。
文字にすると、目を逸らしたくなりますね。

きっかけでしたが、ほぼ原型は残っていません。
名残は自機のショットがホーミングするくらいでしょうか。
オートショットにしたかった原点もここです。

プラズマクラスターシューティング

シャープの公式サイトで公開されている STG です。
操作はマウスのみ。おのれマウス!
もしくはスマホが主なターゲットでしょうか?
特に参考作品では無いですが、企業が STG を繰り出してくる、そんな事もあるんだなあというキモチが今回の決めを後押しした面も多少あります。

キラキラスターナイト

きらめく星々を集めて制限時間内にスコアを稼ぐアクションゲーム。
同人のファミコンソフトで、FC 互換なカートリッジも発売されました。
アーケードでも今年出ています。
敵を倒さない平和的なゲームの参考作品ですね。コンボは大事。

CAMPFIRE(アプリ)

前回に引き続き、UIを参考にしています。
ただ、サクセス表示はちょっと大目に見てくださいという仕上がりに。
もっとドット打ちのちからが欲しい……。

CAMPFIRE(CM)

今回のゲームタイトルは FIRE SHOOTER SAN。
前回の踏襲ですが、前回が CM の踏襲なので、一応間接的には参考扱いということに。

CAMPFIREコミュニティ

継続課金型のコミュニティプラットフォーム。
正直ゲームのモチーフにするまでは参考にしないつもりでした。
でしたが、あの特徴的な点の描写。
自機のショットを考えた時、もう他の選択は考えられませんでした。

CAMPFIREのプレゼンスライド

ゲームの背景でうねうね動いているピンク。
元ネタは社内スライドのテンプレート背景の一部です。
以前開催された Engineer Meetup の 資料スライド でも使われました。
コーポレートサイトのフッターで動いているものとルーツが同じじゃないかと思うんですが。これは何か由来があるんでしょうか?

CAMPFIRE Fireball

ライブ配信の画面上にリアルタイムで支援をお知らせしてくれるサービス。
リザルト画面の BGM は、こちらの通知音楽をお借りする予定でした。

おわりに

1分間で遊ぶミニマムな STG を作りました。
だいぶ力尽きた気がします。
これがもし30分の STG ならこの30倍頑張るのかと思うと、世の中のゲーム開発者の皆様には改めて感謝しかありません。

いつも本当にありがとうございます。
この note が読まれているころ、きっと私は開発で溜まっていたゲームを楽しんでいる事でしょう。

そして来年こそは、きっときっと HTML で ADV を作って公開している事でしょう!!

この記事が気に入ったらサポートをしてみませんか?