FPSを無性に作りたいという話
最近また、Unityでゲーム開発を始めました。ジャンルはファーストパーソンシューティングゲーム、いわゆるFPSゲームと呼ばれるゲームです。
FPSゲームを作りたくなった経緯や、僕のFPSゲームに対する認識、作りたいFPSゲームの構想などを紹介します。
かなり雑談的で、ものすごく僕の主観が多く入った話なので悪しからず。
はじめてのUnityはFPSからだった
僕がFPSゲームを作りたくなった理由の一つとして、Unityで初めて作ったゲームがFPSだったことからです。
Unityを触り始めて、ゲーム制作に興味を持ったきっかけは、工業高校での課題研究授業でFPSゲームを作ったことでした。友人たちとチームを組み、クオリティはまだまだとしても、だたゲームを作るだけでなく、Wiiリモコンを改造して、エアガンと組み合わせた銃型のコントローラも友人が電子工作で作り上げ、操作できるようにしたこともありました。
ですが、その当時から約2年半、FPSというジャンルのゲームを作ることは、ほとんどありませんでした(プロジェクト所属時期に、ミニゲームとして作ったことはありますが)。
それよりも、FPSゲームをプレイすることのほうが多かったため、この度またがっつりFPSを作ろうと思ったのです。
FPSもいろいろ♪
高校を卒業して大学生になり、一人暮らしが始まってPCを買い替えてから、友人に勧められてレインボーシックスシージ(R6S)や、コールオブデューティーブラックオプス4(COD BO4)、バトルフィールドⅤ(BF5)といくつかのFPSゲームをPC版でプレイしてきました。最近僕がプレイしていたFPSでいえば、ライアットゲームズが開発したタクティカルFPSのVALORANT(ヴァロラント)もあります。記事を書いている現在では、コールオブデューティーブラックオプス コールドウォー(COD BOCW) がそろそろ発売される頃かと。
画像引用元:ツイッターアカウント@VALORANTjp ツイートより
https://twitter.com/VALORANTjp/status/1234391451645005824?s=20
僕が大学生活が始まるころには、PUBGやフォートナイトをはじめとした、バトルロワイアル(通称バトロワ)のジャンルが流行りだした時期でもありました(同級生の間でも、APEXとかがかなり流行っている気がします)。
画像引用元 :『ファミ通.com』より
https://www.famitsu.com/news/201806/21159623.html
FPSというゲームのジャンルでも、対戦する相手によって大きく二つ分けられますが、いろんなアイディアにより、多種にわたってFPSゲームが存在します。
◆ オンライン上のプレイヤー同士の対戦(PvP)
5対5や6対6などのチーム戦で、目標を確保したり防衛したり、もしくは爆弾等で対象を破壊するルールなど様々。最近では100人が広大な同じフィールド上で戦い合い、最後まで生き残ることができれば勝利というバトルロワイアルなルールがトレンドに。
◆ コンピュータの操作する敵との対戦(PvE)
ストーリーで展開されることが多く、強大なボスをオンラインでほかのプレイヤーと協力して戦うゲームが多い。ローグライクやハクスラ要素も追加され、一人で黙々とやるようなものもあれば、ある種のMMORPGのように展開していくゲームも多い。
大きくはこの2つに分類されることが多いですが、中には対戦するプレイヤーにコンピュータキャラが混じったような(PvPvE)ゲームも存在しているので、FPSのすべてがこれに2分されることはないようです。
PvP系FPSが人気
実際FPSゲームのなかで、圧倒的にPvPが主流で人気であると感じる方も多いでしょう。そのわけは、eスポーツの注目と競技性にあると感じています。
画像引用元 :bauhutte 公式サイト より
https://www.bauhutte.jp/bauhutte-life/e-sports/
PvP系FPSは競技性のあるルールを持つことがほとんどで、最近日本でも大会等が開催され始めて注目度が高まり、プレイ人口の増加に一役買っています。
また、競技性があると、他人と競争する楽しさや仲間と協力する楽しさだけでなく、個人のプレイングスキル(技術)の向上を感じやすく、自己超越する面でも楽しさが倍増していくため、人気になるのも分かるでしょう。
楽しいけど、作るには...
PvP系FPSはものすごい魅力があります。
が、作るとなると小規模でも、ものすごい労力が必要です。しかも、僕は今年度から、大学のプロジェクト活動から脱退しており、個人開発しかできません。(プロジェクト活動に関しては、また別の記事にしたいくらい、いろんなことがありましたw)
PvP系FPSの開発が大変な理由は大きく2つあります。
開発が難しい理由『オンラインマルチプレイ』
画像引用元 :ファミ通.com より
https://www.famitsu.com/news/201111/14005457.html
PvP系FPSはプレイヤー同士の対戦は最低条件ですが、ローカルマルチプレイは今や時代遅れと言っていいでしょう。こうなると、自ずとインターネットによる、オンラインマルチプレイが必要になってきます。
ですが、オンラインマルチとなると、プレイヤーの動きを同期する外部の固定サーバーを確保する必要があります。しかも、プレイヤーの人数が100人規模のバトルロワイアルだと、通常よりも高負荷に耐えられるようなサーバーでなくてはなりません。レンタルサーバで運用する、もしくは個人でサーバを作るようになると、お金がかかってくるため、個人開発の自分の財力では厳しいと感じられます。
このような運用が難しけれは、一部のプレイヤーのコンピュータをホストサーバとして使う方法もありますが、ホストの通信環境が悪いと、接続しているプレイヤーすべてに影響を及ぼすため、リアルタイムに近い形でプレイヤーの同期を要求されるFPSゲームでは、この方法も厳しい考えられます。
開発が難しい理由『ゲームバランス』
プレイヤー同士の対戦であるFPSゲームであると、マップのサイド(チームの自陣)位置など、対戦するチーム同士の優劣を限りなく平等にしなければなりません(写真のマップは、FPSゲームのバトルフィールドVのマップですが、チームそれぞれが始めの出撃位置が地形による優劣が大きく、かなり不評の多かったマップでした)。
画像引用元 :『【BF5】海外勢のマップ評価【BFV】』 より
http://battlefield-soku.blog.jp/archives/28573276.html
例えば、チームAとチームBでの対戦で、もし確保する必要のある場所が、チームAが出撃する位置に近く、チームBの出撃する位置に遠いとなると、チームAが有利になってしまい、ワンサイドゲーム(一方のチームが無双するゲーム)になりがちで、不利側となったプレイヤーのストレスなりかねません。
上記のようなマップの構造上で起こる優劣は、マップを計算して作ることができれば、平等にしやすいですし、プレイヤーの出撃位置が、戦ううちに変化するよう工夫することも考えられますが、このほかにも、武器バランスも考慮する必要があります。
画像引用元 :『【COD:BOCW】テストプレイでわかったことまとめ~武器編~【オープンALPHAテスト】』 より
https://hokkaido-gamesclub.com/codbocw-alphatest-01/
例えば、ある武器がものすごく使いやすく、しかもものすごいダメージがあるような、いわゆる特質した「強武器」があり、そのほかのどの武器も勝らないとすると、強武器以外を使った戦い方をする意味がほとんどなくなってしまいます。そうなってしまうとプレイヤーのほとんどが同じような戦い方になり、代わり映えしないゲームにプレイヤーは飽きてしまうでしょう(かなり極端ではありますが)。
もし、複数種類の武器を用意する場合、これらの武器バランスをよくするためには、どの武器にも一長一短のあるような性能にしなければなりません。CoDやBFシリーズなどは、複数種類の武器を用意しつつも、性能が細かく変わるアタッチメントが存在し、カスタマイズできて個人のプレイスタイルが反映しやすいように工夫されています。
このようにPvP系FPSでは、マップによる優劣や武器バランスなど、ゲームバランスをよくしなければ、プレイヤーにストレスとなってしまったり、プレイしていてもすぐに飽きてしまうようになってしまいますが、このバランスを調整するにも時間がかかります。
マップの数や武器の種類を増やせば、その分、マップを平等にする調整や、武器同士のバランス調整する量が増えることになります。かといって、調整する時間を減らすべく、コンテンツ量を減らすと、代わり映えしないゲームにプレイヤーが飽きてしまいます。コンテンツ量と、その調整時間およびコストはトレードオフといったところでしょう。しかも、開発の中でテストを行い、そこそこバランスを調整したとしても、他の人にプレイさせると、意外な不具合やバランスの穴が見つかることもあると思うので、リリースの前後の調整も長期化するでしょう。
しかも個人(ボッチ)開発では、まずそもそも、テストプレイをする人間が傍にいないし、オンライン上で行うテストもしづらいので、なお時間がかかります。
とまあ、こんな感じに長々と説明しましたが、個人開発の自分にとっては、PvP系FPSは開発が本当に難しいジャンルです。挑戦してみるのもいいですが、小規模であっても開発時間がかなりかかると思われます。
それでもFPSは作りたい!!
それでも、FPSは作りたいという気持ちが落ち着くことはなく、僕が思ったのは、「個人開発で、PvP系が無理なら、PvEなら行けんじゃね?」と。
画像引用元 :『【2020年版】PS4で買うべきFPS/TPSゲームのおすすめソフト40選』
https://sakidori.co/article/321211
ただ、もちろんPvEでも難しい部分はあります。
敵AI(対戦相手)の動きのパターンをたくさん考え、実装を行う必要がありますし、対戦する難易度を調整しないと、結果として、難しすぎてプレイヤーが萎えてしまったり、逆に簡単すぎて作業的になりプレイヤーが飽きてしまうため、その点ではかなり時間をかけて調整する必要があります。しかし、プレイヤーが飽きないような難易度調整をする方法が、ある程度確立していますし、個人でも調整が比較的しやすいことから、開発難易度はPvPに比べて非常に低いです。
んじゃあ、どんなFPSを作りたいのだ?
PvE系で、ただ、コンピュータの操作する敵を倒すだけでは、やはり面白みがもちろん無い。
どのようにしてゲームを面白くしていこうかと考えるとき、僕がコンセプトやアイディアを考える時に参考にしているのが、ロジェ・カイヨワが著書で提唱する「遊びの4要素」です。
ロジェ・カイヨワ著書「遊びと人間」ー 遊びを4つの要素に分類できる ー
競争 ー 力比べや、速さ・高さ・長さ・量などを比べる
偶然 ー 運試しやおみくじ、ガチャとか
模倣 ー ものまね、ままごと、仮装、ミニチュアや模型、フィギュアなど
めまい ー 日常では体験できないような、スピード、ヒヤリとする体験
ゲームに限らず、いろいろな遊びは上の4つの要素に分かれていたり、組み合わさって作られていると言われています。
FPSゲームは戦いであるため、対戦相手との競争の要素のあるゲームといえるでしょう。PvP系ではまさにこの要素が強い。
そして、今回自分がこのFPSにある要素を付け加えたいと思っています。
FPS×偶然で戦場に不確定要素を
今回開発するFPSに付け加えたい要素は「偶然」です。偶然という要素は、サイコロや運試しなどのランダムな要素のことを指します。
このランダム要素を付け加えたFPSゲームが、PvP系では既に存在しています。それは、Giant Enemy Crabという海外のインディーズゲーム制作チームが発表した、『Due Process』というゲームです。
画像引用元 :EAA‼記事『【マップが自動生成されるタクティカルシューター『Due Process』アルファテスト募集開始 「マップ知識は不公平」』より
https://fpsjp.net/archives/324016
このゲームは、警察の特殊作戦をモチーフにしたPvP系のFPSで、強盗チームと警察チームに分かれ、5対5で対戦します。
このゲームに盛り込まれているランダム(偶然)の要素というのは、戦うマップがランダムで決まるため、ほぼ、一つとして同じ戦場で戦うことはありません。壁や通路、破壊目標などの位置を含めて、あらかじめ設定したアルゴリズムを基に戦うマップはすべてランダムに自動的に生成しているのです。
競技性のあるPvP系FPSでは、マップが固定されている場合、どうしてもマップの構造を覚えたもの勝ち、になってしまいます。プレイヤーの経験というのはバラバラであるため、プレイ経験が勝敗を左右するのは不平等と感じるプレイヤーも少なくありません。
マップを自動生成し、毎回異なる戦場で戦うことになるため、プレイヤーは従来よりもより臨機応変に動く必要があり、チームとの連携もより一層重要になってきます。また、新鮮な戦場でプレイするアイディアは、不確定な要素によって、より緊張感も得られてより面白く感じられます。これはPvEでも同様だと考えられます。
だた、数式を用いて何らかの法則に従ってあらかじめ準備しておいて自動的に処理するような、プロシージャル処理というのには、限界が存在し、乱数とアルゴリズムで自動生成を行うと、たまーにプレイヤーが明らかに不利なマップというのも生成されてしまいます(バグる可能性も否定できません)。そのためゲームバランス調整に手間がかかってしまう欠点があります。
ですが、ある程度は工夫次第で調整できると思っているので、ある意味プログラマーとしての挑戦だと思って頑張って実装したい部分ではあります。
もう一つのモチーフ
マップを自動生成するのも、かなりインパクトがあって面白い要素ですが、もうちょっといい要素をプラスしたいと思い、あるFPSの要素を取り入れたいと思っています。それは、「Escape from Tarkov」という作品です。
画像引用元 :Unity公式サイト『Escape from Tarkov 制作者: Battlestate Games』より
https://unity.com/ja/madewith/escape-from-tarkov
Battlestate Gamesというロシアのゲーム開発チームが公開しているタクティカルFPSゲームです。
なんとこのFPSはUnity製! 同じUnity開発というリスペクトも含めてですが、このゲームの要素で参考にしたいのはサバイバルな要素です。
このゲームは、マップにある装備を収集し、戦いをくぐり抜けながらエリアからの脱出を目指すゲームです。しかも、このゲームは対戦する相手はオンライン上のプレイヤーだけでなく、コンピュータの操作する敵も混じっていて(PvPvE)、かなり混沌とした戦場になっています。また、自分が倒されてしまうと、準備して装備していたものや、回収していたアイテムのほとんどを失ってしまいます。銃の挙動や体の部位に別々のダメージが発生するシステムなど、非常にリアルな戦場を生き抜くサバイバルな要素がものすごく強く実装されています。PvPvEのシステムを作ることは難しくても、体の部位ごとのダメージ、アイテムのロストなどのサバイバル要素を取り入れ、緊張感やヒヤッとする面白さをプラスしたいと考えています。
最終的な構想・野望
上記でいろいろなFPSゲームのアイディアを挙げて、今回盛り込みたい要素を書いてきましたが、大きく取り入れたい要素はこの二つです。
◆ マップをランダムに自動生成し、常に変化のある戦場
◆ 倒されてしまえばアイテムをロストしてしまうサバイバルな要素
以上の二つの要素を今回作るFPSゲームのコンセプトとしたいと考えていますが、ゲームをより面白くするために、このほかにも要素をつけ足していこうと考えています。
例えば、マップがランダムであるが、その戦場で戦う目的が物資集めだけになってしまうのもつまらないため、いくつかミッションが存在するのですが、そのミッションもマップによって変化するようにしたいと考えています。プレイヤーの主な目的は、エリアにあるいくつかの戦利品を持ち帰り、エリアから脱出することですが、マップによっては、ボスの撃破の任務や、サーバのハッキング、エリアを確保する任務が与えられたりと、脱出以外のの目的を付け加えたいと考えています。
このほかにも、この記事では書ききれないぐらいまだまだ、付け加えたい要素がたくさんあります。ちなみに、これらの要素や具体的な実装内容などは、共有ノートWebサービスであるScrapBoxにまとめたあったりします。(公開プロジェクトとして書いていますが、ここでの公開はまた後日にしたいと思っています。)
また、一気に完成形を作ることはせずに、ラピットプロトタイピングのように、プロトタイプを段階的に作っていきたいと考えています。ちょっとしたミニゲームのようなFPSゲームから、自動生成したマップを適用したり、敵のAIを追加したりと、今あるゲームに要素を追加していくように実装していきたいと考えています。そのほうが、自分のモチベーションの維持にもつながると考えています。
というわけで、どんなFPSゲームを作っていきたいのかなどを長々と書いてきましたが、自分のスキルアップやゲーム作りの感性を鍛えるためにも、頑張って実装していきたいと思っています。
プロトタイプやゲームの公開は今のところは未定です。どのようにしてゲームをリリースするかもいろいろと検討しながら、なるべくいろんな方にプレイしていただいて、より良いゲームに仕上げていきたいと考えています。
僕自身まだまだゲーム作り初心者なので、今回作るゲームのご意見やアドバイスなどをいただけると幸いです。
僕のツイッターでも、進捗状況などを公開していくつもりなので、気になる方はフォローしていただけると良いと思います。
https://mobile.twitter.com/kenjiDeOk
それでは、長くなりましたが、また次の記事で。
この記事が気に入ったらサポートをしてみませんか?