敵12種・3ボスへのコンテンツ拡張Expanding the Content to 12 Enemies and 3 Bosses

開発ログ / ゲームデザイン / 弾幕設計Development Log / Game Design / Bullet Pattern Design

初期のVOID STRIKERは、dart(直進)・sine(サイン波)・orbiter(旋回して撃つ)・turret(自機狙い)という基本4種の雑魚敵と、tank・carrierという中型2種、そしてボス1体(現在の vanguardアーキタイプ)だけで構成されていました。ワンプレイが数分で終わるカジュアルな縦シューティングとしてはこれでも成立していましたが、繰り返し遊んでもらうにはパターンの引き出しが少なすぎました。そこで「敵コンテンツ大幅拡張」と題した一連の作業で、敵を6種類追加して合計12種に、ボスを3アーキタイプに増やす拡張を行いました。

Early versions of VOID STRIKER consisted of four basic minor enemies: dart (moves straight), sine (follows a sine wave), orbiter (circles and fires), and turret (aims at the player); two mid-sized enemies, tank and carrier; and a single boss, now the vanguard archetype. This was enough for a casual vertical shooter where a run lasted a few minutes, but it offered too few patterns to sustain repeat play. In a series of changes called the major enemy-content expansion, I added six enemies for a total of 12 and expanded the bosses to three archetypes.

先に弾幕の「部品」を増やすExpanding the Bullet-Pattern Building Blocks First

新しい敵の動きを考える前に、まず取り組んだのは弾のプリミティブ(部品)を増やすことでした。それまで敵弾は直進・自機狙い・扇状・全方位リングの4パターンしかなく、これだけでは「機雷を踏むと危険」「時限爆弾が破裂する」といった駆け引きを表現できません。そこで G.Bullets モジュールに、時限で炸裂してリング状に弾をばらまく orb、その場に静止して起爆する mine、自機をゆっくり追尾する homing、隙間のある弾の壁を生成する wall という4つの新しい生成関数を追加しました。既存の弾は基底の {x, y, r, dead, type, grazed} という形を守っていたため、これらの新しい弾も同じ形を維持することで、グレイズ判定やボムでの一掃処理、円同士の衝突判定といった既存の仕組みにそのまま乗せることができ、衝突判定を担当する main.js側は一切変更せずに済みました。

Before designing new enemy movement, I first expanded the bullet primitives, the building blocks of the patterns. Enemy bullets had previously supported only four patterns: straight, aimed, fan, and radial ring. That was not enough to express choices such as the danger of triggering a mine or a timed bomb bursting. I added four generators to the G.Bullets module: orb, which bursts on a timer and scatters bullets in a ring; mine, which stays in place before detonating; homing, which slowly tracks the player; and wall, which creates a bullet wall with gaps. Existing bullets followed the base shape {x, y, r, dead, type, grazed}. Keeping the new bullets in the same form let them use the existing grazing, bomb-clearing, and circle-collision systems unchanged, with no modifications to the collision handling in main.js.

新しい敵を「役割」で設計するDesigning New Enemies Around Roles

弾の部品が揃ったところで、新しい敵タイプを追加しました。高速ジグザグで avoidしにくい weaver、テレグラフ(予告)を挟んでから高速弾を連射する sniper、倒すと分裂する splitter、時限爆弾を落としていく bomber、被ダメージ半減のシールドを持つ重装甲の aegis、機雷を設置して離脱する miner の6種です。それぞれ単に見た目や数値を変えるのではなく、「プレイヤーに要求する行動」がなるべく被らないよう役割を意識して設計しました。例えばsniperは「見てから避ける」反射神経、weaverは「追わずに待つ」我慢、splitterは「倒した後の分裂を見越した先読み」というように、覚えることが増えるほどプレイに深みが出るよう意図しています。

With the bullet building blocks in place, I added six enemy types: weaver, whose fast zigzag movement is difficult to avoid; sniper, which telegraphs before firing a burst of high-speed bullets; splitter, which divides when defeated; bomber, which drops timed bombs; the heavily armored aegis, whose shield halves incoming damage; and miner, which deploys mines and withdraws. Rather than changing only their appearance or stats, I designed their roles so that the action demanded from the player overlaps as little as possible. The sniper tests reactions by asking the player to dodge after seeing its cue, the weaver tests patience by asking the player to wait instead of chasing, and the splitter tests anticipation by asking the player to plan for the split after the kill. The intent was for the growing set of lessons to deepen play.

解禁のタイミングとウェーブの3幕構成Unlock Timing and a Three-Act Wave Structure

12種類の敵を最初から全部出してしまうと初見のプレイヤーには情報過多です。そこでステージごとに解禁ロスターを分け、序盤(ステージ1)は基本4種のみ、ステージ2でweaver・sniper、ステージ3でsplitter・bomber、ステージ4でaegis・minerが加わり、以降は全12種が混在するようにしました。さらに1ステージの中でも、序盤35%・中盤40%・終盤25%という3幕構成にウェーブを分割し、幕ごとに異なる抽選プールを使うことで、同じステージの中でも徐々に密度と種類が濃くなっていく体感を作っています。

Showing all 12 enemies from the start would overload first-time players. I therefore divided the unlocked roster by stage: stage 1 has only the four basic types; stage 2 adds weaver and sniper; stage 3 adds splitter and bomber; stage 4 adds aegis and miner; and all 12 types appear together afterward. Within each stage, waves are also divided into three acts: the opening 35%, middle 40%, and final 25%. Each act uses a different selection pool, creating a gradual increase in density and variety even within a single stage.

ボスを3アーキタイプへExpanding Bosses to Three Archetypes

雑魚敵の拡張と並行して、ボスも1種類から3アーキタイプ(vanguard/serpent/fortress)へ拡張しました。既存のvanguard(メカ機動型)の挙動は変えず、新たに機動力で押す serpent (リサージュ曲線の軌道+ホーミング弾)と、火力と設置物で攻める fortress (弾の壁+時限弾+機雷)を追加し、ステージ番号に応じて3種が順番にローテーションする形にしました。フェーズ構成(3段階のHP帯)やフェーズ移行時の無敵演出といった共通の骨格は3種で揃えつつ、移動パターンと攻撃の組み立てだけをアーキタイプごとに変えることで、実装コストを抑えながらもプレイ体験にはっきりとした違いを出せたと思います。

Alongside the minor-enemy expansion, I expanded the bosses from one type to three archetypes: vanguard, serpent, and fortress. The existing vanguard, a mobile mechanical type, kept its behavior. I added serpent, which pressures the player with mobility through a Lissajous-curve path and homing bullets, and fortress, which attacks with firepower and deployed hazards through bullet walls, timed bullets, and mines. The three rotate in order based on the stage number. They share a common framework of three HP-based phases and an invulnerable phase-transition effect, while movement patterns and attack composition vary by archetype. This kept implementation costs controlled while producing clear differences in play.

バランスを支える難易度スケーリングDifficulty Scaling That Supports the Balance

敵の種類とボスの種類が増えたことで、単純にステージを進めるだけでもコンテンツの物量が倍増しました。これに合わせて、有効ステージ S = min(stage, 8) を軸にした難易度スケーリング(敵HP・弾速・発射頻度・出現数の倍率)も導入し、8ステージ相当で強化が頭打ちになるようにしています。この設計のおかげで、コンテンツを拡張しつつも「進めば進むほど手に負えなくなる」という詰みを避け、エンドレスに遊び続けられるバランスに落ち着きました。詳しい数式は 難易度スケーリング解説 で、敵・ボスそれぞれの詳しい挙動は 敵図鑑ボス攻略 で紹介しています。

Increasing the variety of both enemies and bosses doubled the amount of content encountered simply by progressing through stages. To support this, I introduced difficulty scaling based on the effective stage S = min(stage, 8), with multipliers for enemy HP, bullet speed, firing frequency, and spawn count. The increases cap at the equivalent of stage 8. This design expands the content without creating an unwinnable spiral where advancing makes the game increasingly unmanageable, settling into a balance that supports endless play. The formulas are covered in the difficulty scaling guide, while detailed enemy and boss behavior appears in the enemy compendium and boss strategy guide.