【個人ゲーム開発12日目】戦術SLG制作

サイドパネル実装とグラフィック強化……のはずが、深夜のマゼンタ問題と死闘を繰り広げた1日

個人製作中の2Dタクティカルシミュレーション『Steel Symphony』開発記です。

昨日のメインテーマは「UIの完成度を高めること」と「視覚効果の強化」。サクサク進める予定でしたが、開発の神様はそう簡単に通してくれませんでした。予定外のバグ改修に時間を溶かされつつも、なんとか形にした12時間の記録です。

1. 本日のメイン:サイドパネルの実装とUI刷新

今回の作業の柱は、プレイ中の情報を一目で把握できるサイドパネルの実装です。

  • SidePanelManagerの新設: ターン数、自軍・敵軍の総戦力、ユニット残数をリアルタイムで表示。戦況バーも搭載し、どちらが優勢か視覚的にわかるようになりました。
  • ユニットリストの改良: プレイヤー用とエネミー用のPrefabを分離し、リストから各ユニットへのアクセスを容易に。
  • ウィンドウ演出の強化: 各種ウィンドウにスライドインやスケールアップのエフェクトを追加。右クリックで詳細を閉じられるようにするなど、手触りの部分を徹底的に磨きました。

    まずはスクリプトとの連携確認から始め、数値表示を段階的に仕上げていきました。

右のパネルに無事連携した数値表示を実装完了。

あとは見栄えを良くする「皮」付けて一応の完成!


2. 視覚効果の強化と「エッジスクロール」の導入

2Dゲームとしてのクオリティを一段階上げるため、操作系と演出にも手を加えました。

  • エッジスクロールの実装: 画面端にマウスを動かすとカメラが滑らかに移動する機能を導入。加速処理やUI上での無効化設定など、ストレスのない操作感を目指しました。
  • UIカーソルの連動: リスト項目をホバーした際、マップ上のターゲットを自動追従する仕組みを構築。

3. 【予定外】深夜の「マゼンタ問題」との死闘

UIの実装が一段落し、ビルド確認を行ったところで事件は起きました。戦闘背景が、開発者にとって最も恐ろしい色……「マゼンタ(ピンク)」に染まっていたのです。

泥沼の調査過程

最初はパスの間違いやResourcesフォルダの構成を疑い、数時間を調査に費やしました。しかし、真の原因はもっと根深いところにありました。

  • 原因: 2D Built-Inプロジェクトに後付けでURPを導入したことによる、レンダリングパイプラインの不整合。
  • 結末: Shader Graphがビルド環境で正常に動作していなかったため、急遽、URPに依存しない純粋なHLSLシェーダーを書き下ろすことで解決しました。 Shader Graphはエディタ上では動くものの、ビルド環境ではMainTexが正常に渡らない状態だったため、 シェーダー自体を作り直すのが最も確実な対処でした。 同じ構成(Built-inテンプレート+URP後付け)で詰まっている方の参考になれば幸いです。

不具合改修という「予定外の作業」に想定以上の時間を奪われましたが、結果としてHLSLの知識も深まり、プロジェクトの足腰は強くなった……と自分に言い聞かせています。


4. 昨日の作業履歴まとめ

カテゴリ内容
新規実装サイドパネル、戦況バー、エッジスクロール、ユニット詳細ウィンドウの連続切り替え。
改修・統合SettingsManagerを戦術画面に統合。音量・言語設定・タイトル戻り等を実装。
トラブル解決ビルド時マゼンタ問題の完全払拭。シェーダーをHLSLで再構築。
バグ修正クリック判定のズレ(透明オブジェクト干渉)解決、二重リスナー登録の解除。
環境整備Git導入(GitHub Desktop)。不測の事態に備えリポジトリ管理を開始。

5. 次のステップへ

UIの基盤とグラフィックの表示不具合がクリアになったことで、ようやく「ゲームプレイの調整」に本腰を入れられる状態になりました。

12時間ぶっ続けの作業は堪えましたが、深夜にマゼンタが消え、意図した背景が表示された瞬間の快感は個人開発ならではですね。次回は「SITREPウィンドウ」と「HELPウィンドウ」の中身を実装します。 現状は開閉だけできる空箱なので、ここに実際のゲーム情報を流し込んで 「使えるUI」に仕上げるのが直近の目標です。

個人ゲーム製作の始動に向けて

はじめに

ある程度報告できそうなレベルまで開発が進んだので、本日より、個人でのゲーム製作記録を投稿していきたいと思います。 開発は完全に一人で行う予定です。途中の挫折を防ぐためにも、ここで進捗を公開しながら完遂を目指します。

筆者のスキル・経歴について

まずは、私のバックグラウンドを簡単に紹介させていただきます。 これまでIT企業への勤務やフリーランスを経て、システム開発業務に20年以上携わってきました。実務で経験してきた主な技術スタックは以下の通りです。

  • C/C++:約7~8年
  • C# (.NET系):約5~6年
  • PHP:10年以上(フレームワークに頼らないスクラッチ開発がメイン)
  • フロントエンド:JavaScript (jQuery中心)、HTML、CSS(※CSSは少し苦手意識があります)
  • DB:PostgreSQL, MySQL, SQL Server, Oracle等。チューニングの実務経験もあり。

その他、COBOL、VB、Pythonなど、1年未満の経験を含めると膨大な行数になるため割愛しますが、OSもWindows 95/98時代から最新のWindows 11/Server系まで、Linux(Fedora, CentOS)のCUI環境を含め、幅広く触れてきました。

Unityとの再会

今回、満を持してUnityでの本格的なゲーム制作に着手しました。 実はUnity 4時代にAndroidアプリの「Hello World」レベルを触ったことはあったのですが、当時は本業の忙しさもあり、実務に直結しない技術へ深入りすることなく離れてしまいました。

最新の Unity 6 (6000.0.x) を触ってみた感想は、「昔の印象とは全くの別物」という驚きです。 ダブルバッファリング全盛期で思考が止まっている私にとって、Unityの「コンポーネント指向」という概念には、初日はなかなか馴染めませんでした(笑)。しかし、慣れてくるとその利便性の高さに圧倒されています。

開発タイトル:『鋼鉄の交響曲 -Steel Symphony-』

2026年3月15日より、戦術級シミュレーションゲームの開発を開始しました。 仮題ではありますが、タイトルは『鋼鉄の交響曲 -Steel Symphony-』。

本作は、かつてPCエンジンでリリースされた名作『ネクタリス』(海外名「Military Madness」)へのオマージュ作品を目指しています。ご存じの方もいるかもしれませんが、私はあの作品の「支援効果」と「包囲効果」が大好きでした。少数で多数を打ち破る戦術的カタルシスを、現代の環境で再現したいと考えています。

以下は開発着手から10日目のゲーム画面です。 現在はコアプログラムの実装がメインのため、グラフィックやエフェクトの多くは仮置きの状態ですが、システムとしては一通り動作する段階まで到達しました。

戦闘バランスの微調整や敵AIの高度化など、解決すべき課題は山積みですが、4月末までにはBOOTHフリーゲーム夢現にてデモ版を公開したいと考えています。

何分、完全な個人開発(ぼっち開発)ゆえ、進捗が停滞することもあるかと思いますが、温かく見守っていただければ幸いです。m(_ _)m

『ネクタリス』のような骨太なタクティカルSLGを求めている方に刺さる作品に仕上げていきます。デモ版公開に向けて爆走しますので、応援よろしくお願いします!