Histera
Histera
Platform: PC
Engine: Unity 3D
Duration: 8 years (I worked an entire year until the release)
Team size: >70
Role: Game Design
FPSタイトルのリリースを達成しました.
「Histera」は、独自の要素と特殊なメカニクスを備えたFPSタイトルです。プロジェクト自体は2016年に始動しましたが、私はリリース直前となる2023年から2024年にかけて参加し、2024年7月20日のリリースまで開発に携わりました。
ゲームのコア部分は既に完成していましたが、私は新たなアイデアの導入やライブサービスとしての運営業務のために採用されました。新機能の設計、システムの構築、および競技性を重視したゲームバランスの調整を担当しました。
主な担当業務:
ゲームプレイシステム:企画・設計・実装
アビリティシステム(データ駆動型):企画・設計・実装
武器:設計・実装・バランス調整
データプランニング、作成および実装
競技性を重視したゲームバランスの設計および調整
進行システム(プログレッション)およびそのバランス調整
ゲームモードの設計(PvPvE用のAIを含む)
ゲーム概要
「Histera」は、対戦中にマップの構造が変化するマルチプレイヤーFPSです。
異なる時代が融合した世界観が特徴で、弓を持った原始人とレーザー武器を操る未来の防衛アンドロイドが戦うといったシチュエーションが生まれます。
また、武器やアビリティの多彩な組み合わせが可能であり、キャラクターに縛られることなく、プレイヤーそれぞれのスタイルで楽しむことができます。
アビリティシステム
市場の動向に合わせたコアゲームの再構築
コアとなるゲーム部分は既に完成していましたが、既存のループを壊すことなく、その上に新たなゲームシステムを設計する業務を担当しました。当時のゲームは「バニラ(標準的)なFPS」にステージの変化という単一の機能がある状態であり、より深み(フレーバー)が求められていました。
ヒーローシューターが最も人気の高いサブジャンルであることを踏まえ、私はアビリティシステムを企画・設計・実装することを決断しました。このシステムは、量産を想定して拡張が容易であり、可能な限りモジュール化され、非常にスケーラブルかつ効率的であることを重視して設計されています。
詳細な情報やデザインドキュメントの全容については、NDA(守秘義務契約)に抵触するため、直接メールにてお問い合わせください (shocsey@gmail.com)。
アビリティ設計における基本事項と柱(ピラー )
アビリティはセット形式で構成されています。各セットには、固有のパッシブアビリティとアクティブアビリティが紐付けられています。
アビリティが持ちうるすべての機能は、可能な限り最小単位のパーツに分解して設計する必要があります。
各セットは、FPSにおける4つの役割(ロール)(スナイパー/ステルス、ブローラー、スピーダー、サポート)のいずれかを象徴するように設計されています。
既存の実装済み機能を最大限に活用し、最小限の変更で新たな要素を実現します。
データ駆動型(データドリブン)による面白さとモジュール化の両立
アビリティはハードコードを避け、データテーブルで作成することで、プランナーによる再現性と作成の容易さを確保しています。これにより、プログラミング、制作、VFXなど他チームの工数削減とリソースの最適化も実現しました。
ワークフローの概要: プランナーは固定フィールドを持つデータテーブルを受け取り、そこにデータを入力してゲームにインポートするだけです。システムはこのデータを細分化して読み込み、適切な順序でコードを実行します。これにより、再現とテストが容易になります。
実際の例: 以下のような機能を持つアビリティセットを作成する場合を考えます。
パッシブアビリティ:「スライディング」(しゃがみやダッシュのような移動アクション)の使用時、2秒間ダメージが5%増加する。効果は重複しない。
アクティブアビリティ:15秒間透明化し、移動速度が30%向上する。ダメージを与えると2秒間姿が露出する。
このセットは以下のようになります:
各アビリティは最大3つのエフェクト(拡張可能)で構成されています。 各エフェクトには、それぞれ異なる値が設定されています:
Effect - どのアフェクトを有効にするか(DamageBoost, MoveSpeed, Slow...)
Trigger - エフェクトを発生させるトリガー(契機)
Time To Activate - 即時発動か、一定時間後に発動するか
Value - エフェクトの補正値(例:5% DamageBoost)
Duration - エフェクトの持続時間
Target - エフェクトの対象(自分自身、敵、味方チーム...)
画像には含まれていませんが、以下の項目も必須となります:
Sound - アビリティ発動時に再生される音声ファイル
VFX - アビリティ発動時に表示される視覚効果
Icon - UI上に表示されるアビリティのアイコン
開発面に関しては、プログラムが必要な(または既存のコードから抽出可能で、デザイナーが調整可能な)要素のリストがあります。これらの要件は、以下の2つのシンプルなカテゴリーに分類されます:
エフェクト(効果):細分化されたパーツとしてプログラムされる、あるいは他の機能から抽出・修正される実体的な要素です。これら小さなパーツを組み合わせることで、前述のような複雑なアビリティを構築できます。
トリガー条件:エフェクトを呼び出すタイミングをプログラムに通知する、シンプルで小さなコード群です。例:特定のキー入力時、HPが30%以下になった時など。
以下の画像は、既存の機能を流用・修正して作成できるリスト、および他の機能を再利用して作成可能な「スペシャル」要素のリストです。例えば、「周囲への爆発」という機能は、すでに手榴弾のメカニクスとして実装済みのものを活用しています。
ゲームモード
飽和した市場における独創性の追求
私がプロジェクトに参画した当初、存在していたゲームモードは「8対8のチームデスマッチ(75キル先取)」のみでした。ゲームにはさらなる刺激(スパイス)が必要であったため、独自性を持ちつつ競技シーンにも適応できる、複数の異なるゲームモードを追加することに決めました。最大の挑戦は、マップの形状を変化させる「グリッチ(Glitch)」メカニクスと、これらの要素をいかに融合させるかでした。ここでは、私が企画・設計したゲームモードのひとつを紹介します。
詳細な情報やデザインドキュメントの全容については、NDA(守秘義務契約)に抵触するため、直接メールにてお問い合わせください (shocsey@gmail.com)。
ゲーム機能に関する留意事項と設計方針
ゲームの核となる機能(コア機能)である「グリッチ」は、約60秒ごとに発生します。
チーム編成およびサイズは、既存のゲームモードと同様の8対8を維持する必要があります。
他のゲームモードが抱えていた課題を解決し、ニーズを満たすものである必要があります。
試合の所要時間は、他のゲームモードと同程度に設定します。
使用するマップはデフォルトのマップに限定します。つまり、このモードのために専用の特殊なマップを作成してはいけません。
ゲームモードの概要
「グリッチ・ガーディアン(Glitch Guardian)」モードでは、マップがシフト(グリッチ)するたびに、そのエリアに巨大な中立のAI制御ガーディアンが出現します。グリッチが発生している間、各チームはガーディアンにダメージを与えることでその**「加護(favour)」を得ることができます。最も多くのダメージを与えたチームがガーディアンを獲得**し、次の「グリッチ」が発生するまでガーディアンはそのチームの味方として戦います。
ガーディアン
「グリッチ・ガーディアン」モードでは、マップがシフトするたびに、巨大な中立のAI制御ガーディアンが出現します。その間、各チームはダメージを与えることでガーディアンの**「加護」を得ることができ、最もダメージを与えたチームは次の「グリッチ」までガーディアンと共に戦う**ことになります。
概要
ガーディアンは最初のグリッチで出現し、「グリッチを引き起こす」存在となります。
グリッチフェーズ中であれば、どのチームでもガーディアンを仲間にする(リクルートする)ことが可能です。ガーディアンを仲間にしたチームはブースト(強化効果)を受け取ります。ガーディアンを仲間にするためには、プレイヤーはガーディアンにダメージを与える必要があります。
ガーディアンのアビリティ
サブタイトル:ガーディアンは「突進(Charge)」と「武器投げ(Weapon Throw)」の2つのアビリティを所持しています。
突進(Charge):
敵の地点まで突進し、近接武器で攻撃します。
実行するには、そこに至るまでの経路(パス)が存在する必要があります。
ターゲットとガーディアンの間に小さな障害物(ジオメトリ)がある場合、その物体を**「グリッチ(テレポート)」**して通り抜けることができます。
突進中、プレイヤーの移動に合わせて軌道が更新されることはありません。
ヒットした敵に100ダメージを与えます。
ターゲットへの移動中、進路上で接触した他のプレイヤーにも75ダメージを与えます。
武器投げ(Weapon Throw):
「射程範囲(Throwing Range)」内にいる敵を選択し、その地点に向かって武器を投げます。
武器は巨大な当たり判定(ヒットボックス)を持ち、接触した全員に90ダメージを与えます。
地形に接触するまで停止することはありません。
投げられた武器は着弾した場所に一定時間(1〜2秒)留まります。
その間、武器に触れたプレイヤー全員にグリッチダメージを与えます。
その後、武器は「グリッチ」して消え、再びガーディアンの手元に出現します。
武器が何らかのジオメトリ(地形・障害物)に衝突した場合、そこに突き刺さります。
ガーディアンの振る舞い(Guardian Behaviour)
ガーディアンが 脆弱状態 になるのは「グリッチ準備」から「グリッチ終了」までの間、グリッチが発生しているエリア内にいる時のみです。
撃破された後、ガーディアンは次のエリアへの移動を開始します(グリッチ間のインターフェース中)。
グリッチフェーズ中:
ガーディアンはグリッチエリア内を移動します。その際、ゾーンの境界線に対してわずかな余白(マージン)を持って動きます。
ガーディアンは 両チームのプレイヤーを攻撃します。
周囲に敵がいない場合、グリッチエリア内をランダムに低速でパトロールします。
ターゲットの選択と攻撃方法:
自身が立っているグリッチエリア内のすべての敵を検知します。
エリア内にいる敵の中からランダムにターゲットを選択します。
ターゲット決定後の攻撃選択基準は以下の通りです:
ターゲットが 「チャージ射程内」にいる場合、突進(Charge)を行います。
ターゲットが「チャージ射程外」にいる場合、武器投げ(Weapon Throw)を行います。
すべての攻撃の間隔には2秒のクールダウンが設定されています。
インターフェース(中継フェーズ)中:
ガーディアンはリクルートされると、次のエリアへ移動してグリッチを引き起こします。
この間、ガーディアンはいかなるダメージ源からも**無敵(ダメージを受けない)**状態になります。
敵プレイヤーを攻撃しますが、使用するのは武器投げ(Weapon Throw)のみです。
これにより、突進(Charge)による予期せぬバグを回避します。
ガーディアンをリクルートしたチームに「ガーディアン・ブースト」を付与します。
ダメージシステム:
戦闘をより戦術的にするため、ガーディアンは命中した部位に応じて異なるダメージを受けます:
正面からのダメージ:90%カット(減少)
側面からのダメージ:50%カット(減少)
背後からのダメージ:25%カット(減少)
頭部には小さな弱点(ウィークスポット)があり、どこから撃っても100%のヘッドショットダメージを与えられます。
ゲームプレイ・ループ
グリッチとガーディアンのタイムライン :
グリッチとガーディアンのタイムライン(Timeline of the Glitch + Guardian)
グリッチ開始
ガーディアンがグリッチエリアに出現
プレイヤーはガーディアンを撃破する必要があります
ガーディアンを撃破(最も多くのダメージを与えた)したチームが、自チームにリクルートし、スコアを獲得します
リクルートするために、必ずしもガーディアンを完全に倒し切る必要はありません
ダメージ量が同点の場合、ガーディアンに「とどめ(Executing hit)」を刺したチームが獲得します
次のグリッチを待つ間、リクルートされたガーディアンはそのチームを援護します
ガーディアンは移動しながら敵プレイヤーを攻撃します
新しく変化した時代(Era)に基づいたブーストを付与します
例:PRE(石器時代)なら各弾丸に「毒」を1スタック付与、FoH(未来)なら「サーマルビジョン」を追加など
このブーストには持続時間があり、概ね次のグリッチが発生するまで継続します
ブーストはリクルートしたチームの全員に付与されます
次のグリッチ開始
ここから、最大スコアに達するかタイムアップになるまで、各チームは戦い続ける必要があります
解決される課題と、なぜこのモードは他と違うのか?
「明確な目的」がないという課題を解決します。
フェーズとゲームプレイ・ループをより明確に規定します。
プレイヤーがマップ内を移動することを強制し、一箇所に留まる(キャンプする)ことを防ぎます。
多様な戦略の幅を広げます:敵の排除に集中する、ガーディアンのリクルートを優先する、戦略的ポジションを封鎖するなど。
プレイヤーはこのモードに最適化するために異なるアビリティや武器を使用するようになり、従来の「敵を倒すだけ」のメタゲームに留まらない、より広いゲーム体験を提供します。
(管理されたパラメータにより)明確な試合時間を設定します。
多様な勝利条件に対応:スコア獲得はガーディアンだけに限定されませんが(プレイヤーキルでもポイント獲得可能)、ガーディアンを中心に立ち回ることで勝利がより容易になります。
このモードはゲームのメタナラティブ(背景物語)と容易に結びつけることができます。新しいイベントの創出、ガーディアンのロア(伝承)の変更、既存の各時代(Era)への紐付けなどが可能です。
動いている敵プレイヤーを撃つよりもガーディアンに当てる方がはるかに簡単なため、初心者プレイヤーも参加しやすくなります。
ガーディアンを「ヒューマノイド(人間型)」にすることで、既存のアニメーションを流用でき、開発コストを抑えることができます。槍を投げる・突くといった動作は既にゲーム内に存在していました。この開発コストは「安価」であり、必要なのは少数のVFXと「キャラクタースキン」のみです。主な作業負荷は「ボットシステム」の一部を利用できるAIのプログラムと、その設計・バランス調整のみで、プロジェクトの現段階では低コストで実現可能です。
A "balance" in a real life is no more than a tool, so why do not start with that?
In order to have a proper balancing system I did create a tool via Excel that helps to compare values among weapons.
The game at that point was not data-driven so I started to create systems with a data-driven approach to make it easier to balance the existing weapons and to design and implement new ones. The first step was to unify all the weapons and their values into Data Tables.
Once the data is in the Data Tables I just created different sheets:
The Full Weapon Data -> The one that contains all the information of the current live version of the game
The Weapon Comparision -> Here the fields got the data from the Full Weapon data by default but those values are tweakable.
Damage Calculator -> Tool that gets data from the other sheets and can modify some variables to see the expected damage output in different situations.
A How To Use Guide -> This may be obvious. But I'm here to state the truth so I have to say that it exists :P
After Creating the spreadsheet it required some tools to make it visual so I created the weapon comparison which basically reads the data and shows it into a graph, being multiple stats able to be compared. For instance, we can see visually how the dmg reduction by distance scales on every weapon comparing the mid-range damage reduction and long-range damage reduction
Damage Calculator tool: Basically it calculates how much potential damage a weapon can do. Given the plain data from weapons, take into account different situations such as a combat that last 10s, 15s, etc. It calculates the time required to empty the charger, the reload time, etc and gives a DPS amount. There are some modifiers as well such as "distance to the target", Headshot percentage (this is useful as with the data collected from gameplays we can know the % of headshot accuracy so place it there), accuracy percentage (same as the headshots). So many situations can be "manually compared" and tried to adjust the numbers. The fun & game feel are not in this tool.
What problems did this solve?
Unification of all the data in a live-document outside of the game build.
A clear and visual representation of the weapons (in game design terms).
Easy comparison and replicable.
Easy to test and compare so many things without having to create a build to run a playtest which would involve many players.
Data that is "actuable" so it is registered.
No need to enter to the game to calculate the output of simple situations
Other things that I worked on:
Please, in case you are interested on knowing how I tackled the things mentioned earlier or these other different aspects, contact me at shocsey@gmail.com as all of the detailed information is under NDA.
Progression Systems and Balancing
Game Core Loop
Retention Systems
Mission / Quest Design
Weapons Design
Data Analysis
UI/UX
Tool Design (Gameplay)
Narrative Design
Events Design
Note: This gameplay is not mine nor from any developer, just a real random Gameplay without commentary from "Game Mojo"
Thanks for reading this far, hope you have a good day :)