LayerTrace のキービジュアル
Featured

LayerTrace

Upper / Lower、2つの層を行き来しながら道をつなぐ3Dパズルゲーム。歩いた軌跡は「Trail」として残り、接続になると同時に自分の進路をふさぐ障害物にもなります。どこを通り、どこにつなぐかを考えてExitを目指そう。

WebPC
UnityPuzzleStrategic

作品紹介

概要

Upper / Lower、2つの層を行き来しながら道をつなぐ3Dパズルゲーム。

歩いた軌跡は「Trail」として残り、接続になると同時に自分の進路をふさぐ障害物にもなります。

どこを通り、どこにつなぐかを考えてExitを目指そう。

スクリーンショット

(この下にNotionの画像ブロックを2〜5枚追加。タイトル画面/プレイ中/特徴的な場面など。各画像に短いキャプションを付ける。画像がなければこの見出しごと削除)

特徴・見どころ

  • ① 引いた線が障害物になる、独自の配線パズル

    プレイヤーが歩いた軌跡は「Trail(配線)」として残り、装置同士をつなぐ一方で、通れない障害物にもなります。どこを通るかだけでなく、「どこを通れなくするか」まで考える必要があります。

  • ② 表と裏、2つの世界を行き来する3Dパズル

    青いUpperと赤いLower、2つの盤面をPortalで行き来できます。片方の盤面だけでは解決できない状況も、もう一方の盤面を利用することで突破できるなど、立体的な経路設計が楽しめます。

  • ③ 一手先ではなく、未来の盤面を考える面白さ

    目の前の装置をつなげても、その配線が後の移動を妨げ、行き詰まることがあります。配線する順番、移動経路、仕掛けの操作を組み合わせ、試行錯誤しながら解法を発見する達成感が魅力です。

遊び方・操作方法

WASD / 矢印キー:移動

Enter:決定 / インタラクト

マウス:カメラ操作

Undo・Retryなどの操作はゲーム内UIから行えます。

キー設定はSettingsから変更できます。

配布・プレイについて

  • 対応環境: PC(Windows / macOSなどのWebGL対応ブラウザ)
  • 配布形式: ブラウザゲーム(ダウンロード・インストール不要)
  • 料金: 無料
  • プレイ時間: ステージごとに異なります。短時間で遊べるステージから、じっくり考える高難度ステージまで用意しています。
  • 操作方法: キーボード・マウスを使用。WASDキーや矢印キーで移動し、マウスでカメラを操作できます。
  • 注意点:
    • 3Dゲームのため、PCの性能やブラウザによって動作が異なります。
    • セーブデータはブラウザ側に保存されるため、サイトデータを削除すると進行状況が失われる場合があります。
    • スマートフォン向けのタッチ操作は対応を検討中です。

技術・開発

使用技術

  • エンジン/開発環境:Unity
  • プログラミング言語:C#
  • ライブラリ・サービス:
    • Google Analytics 4(プレイヤー行動・ゲーム進行の解析)
    • Google BigQuery(プレイデータの集計・クリア率に基づくステージスコア算出)
    • GitHub Actions(CI/CD・自動テスト・ステージスコアの定期集計)
    • GitHub Pages(ステージスコアデータの配信)
    • Ad-Virtua(ゲーム内広告・収益化)
    • Unity Input System(キーボード・マウス入力管理)
    • Unity Localization(日本語・英語対応)
    • TextMeshPro(UIテキスト描画)
    • Newtonsoft.Json(JSONデータのシリアライズ・デシリアライズ)
    • MCP for Unity(AI AgentによるUnity Editor操作)

設計・実装の工夫

独自の2層パズルシステム

Upper / Lowerの2層を行き来し、プレイヤーの移動経路がTrail(配線)として残る独自のゲームシステムを設計しました。Trailは装置間の接続であると同時に、移動を妨げる障害物にもなります。Portal、Box、Triggerなどが複雑に相互作用するため、ゲームの状態遷移と3D描画・演出を分離し、一貫したルールで動作する構造にしました。

Solverを活用したステージ制作・検証

幅優先探索やDijkstra法などを利用したSolverを実装しました。ゲーム本体と共通の状態遷移処理を使用し、ステージのクリア可能性や想定解法を自動検証しています。

さらに、単に「解ける」だけでは面白いパズルにならないため、ステージごとの発想、解法の種類、ギミックの必要性、他ステージとの類似性を分析する仕組みを整備しました。手数や盤面サイズではなく、プレイヤーの試行錯誤や発見から難しさを生み出すことを重視しています。

AI Agentを活用した開発体制

AI Agentを活用し、GitHub Issue単位で仕様策定・実装・レビュー・テストを進めました。GitHub ActionsによるUnityの自動テストも導入し、多数の機能を並行して開発する際の品質管理を工夫しました。

苦労した点と解決方法

  • 課題: 複雑なステージでは探索すべきゲーム状態が爆発的に増加し、従来のSolverでは探索時間やメモリ消費が大きくなる問題が発生しました。Solverの性能上限に合わせてステージを単純化すると、パズルの面白さや難易度が制限されてしまいます。
  • 工夫・解決: プレイヤーやBoxの位置を整数に符号化し、Trailの占有状態をビットセットで表現することで、探索状態を圧縮しました。また、重複状態の効率的な判定や、親ノードをたどる解法復元、探索目的に応じたアルゴリズムの使い分けを導入しました。ゲーム本体と共通の状態遷移を使用し、最適化後も正しい解が得られることを自動テストで検証しました。
  • 結果: 同一条件での性能比較において、代表的な高難度ステージの探索時間を約9.47秒から約4.69秒へ短縮しました。探索の正しさを維持しながら、より複雑なステージの制作・検証に取り組める基盤を構築できました。

課題: 2層構造の3Dパズルという特性上、盤面の視認性を保ちながら、必要な操作や情報を分かりやすく提示することが難しかった。

工夫・解決: ゲームプレイ中の思考を妨げないよう、HUDの情報量や配置を調整しました。使用頻度の低い操作はメニューへ集約し、必要な情報を必要なタイミングで表示するなど、視認性と操作性の両立を意識して設計しました。

結果: 盤面を中心としたシンプルなUI構成を実現しました。現在も文字のコントラストや操作の分かりやすさを改善し、初めて遊ぶ人でも迷わず操作できる体験を目指しています。

課題: 開発者自身のプレイテストだけでは、初めて遊ぶプレイヤーがどこでつまずき、なぜゲームから離脱するのかを客観的に把握することが難しかった。

工夫・解決: Google Analytics 4(GA4)を導入し、ゲーム開始・ステージ開始・クリア・離脱などを計測する仕組みを実装しました。プレイヤーの進行状況やステージ別のクリア率を分析し、難易度調整やUI改善に活用する方針です。

結果: プレイヤーの行動を定量的に把握するための計測基盤を構築しました。現在は実際のプレイデータを活用し、離脱要因の分析や改善施策の検証を進めています。


ニュース・実績

制作の裏話

電子工作でプロトタイプ作成時に主に用いられる「ブレッドボード」というものをみてたら思いついた

プロトペディアというサイトを見ていたら思いついた

またこのゲーム以降からアドバーチャ広告などで収益化を開始しています。