Skip to content

戦国オンライン・マップエンジン 開発タスク一覧 #1

@otspace0715

Description

@otspace0715

hex-shogun-map / Issue Backlog

戦国オンライン・マップエンジン 開発タスク一覧


Phase 1 — 基盤データ整備

hex-shogun-map 単独で進められる作業

#1 · feat/geo-data|68令制国の地理JSONデータ整備

優先度: 🔴 高

sengoku_hex_data_v2 を全68国分に拡充する。
各国の hex_idterrain_typeelevation_mis_river フィールドを統一フォーマットで定義。現状の伊豆・壱岐データをベースに標準化する。

Labels: geo-data, data


#2 · feat/meta-index|全国メタインデックスサーバーの構造定義

優先度: 🔴 高

68国のL2チェーン情報(chain_id, rpc_url, province_name, hex_data_url)を束ねるメタインデックスJSONのスキーマ設計と初期データ作成。L2間の接続トリガー条件もここで管理する。

Labels: architecture, multi-server


#03 · feat/land-nft-schema|領地NFTのオンチェーンデータ構造定義

優先度: 🔴 高

スマートコントラクトに記録する LandDNA 構造体の設計。

struct LandDNA {
    string  hex_id;           // ヘックスID(例: "izuno_001")
    address owner;            // 所有者
    uint256 pop_score;        // 人口スコア
    uint256 eco_score;        // 経済スコア
    uint256 mil_score;        // 軍事スコア
    uint256 tech_score;       // 技術スコア
    uint256 season_id;        // シーズン番号
    uint256 last_updated;     // 最終更新タイムスタンプ
}

CharacterDNA(USL側)との接続を考慮したフィールド設計を行う。

Labels: NFT, architecture, USL連携


Phase 2 — USL連携インターフェース

Universal-Soul-Logic との接続部分

#04 · feat/action-event-interface|キャラクター行動イベントの受信スキーマ定義

優先度: 🔴 高

USL(soul-engine.js)が発行する行動イベントの受信インターフェースを定義する。
以下の形式をJSONスキーマとして確定し、両リポジトリで共有できるドキュメントにまとめる。

{
  "actor": {
    "token_id": "USL-0042",
    "occupation": "samurai",
    "ap_modifiers": { "military_train": 0.7 }
  },
  "action": "military_train",
  "ap_spent": 50,
  "hex_id": "izuno_001",
  "province": "伊豆",
  "timestamp": 1742300000
}

Labels: interface, USL連携


#05 · feat/score-mapping|行動 → 複合スコア変換ロジックの実装

優先度: 🟡 中

受け取った行動イベントを複合スコア(人口・経済・軍事・技術)の増減値に変換する score-mapping.json とエンジン実装。職業・AP消費量を係数として反映する。

変換例:

action 人口 経済 軍事 技術
cultivate +2 +1
military_train +3
trade_buy +2
education +1 +2

Labels: score, USL連携, logic


#06 · feat/server-connection-trigger|複合スコア閾値によるL2間接続トリガーの実装

優先度: 🟡 中

隣接する令制国サーバー間で、複合スコアが一定閾値を超えた際にL2チェーン間の接続(ブリッジ)を自動生成するロジック。地理的隣接データ(adjacency_map)の整備も含む。

Labels: L2, multi-server, trigger


Phase 3 — シーズン制・描画拡張

ロードマップ記載分の具体化

#07 · feat/season-snapshot|シーズン終了時の領地スナップショット機能

優先度: 🟡 中

シーズン終了時に各領地NFTの複合スコアと所有者を静的JSONとしてIPFS等に保存する凍結処理。tokenURI を動的APIから静的URLへ切り替えるメカニズムも実装する。武将カード発行(USL側)との同期タイミングを設計書に明記する。

Labels: season, NFT, USL連携


#08 · feat/3d-diorama-skin|Three.js 対応 ThreeDioramaSkin の追加

優先度: 🟢 低

現在の2D描画に加え、Three.js(r128)を使った3Dジオラマ表示用Skinを実装する。標高データを高さに変換し、地形・建物・部隊をヘックス上に3Dオブジェクトとして配置。Skin差し替えインターフェースの互換性を保つ。

Labels: rendering, Three.js, enhancement


#09 · feat/evm-l2-connector|各地方L2チェーン(EVM互換)との接続インターフェース実装

優先度: 🟢 低

ethers.js 等を用いて各L2のRPCエンドポイントに接続し、領地NFTの所有者・スコアをリアルタイム取得する仕組みを実装。ウォレット接続(MetaMask等)とトランザクション発行フローも含む。

Labels: blockchain, EVM, L2


サマリー

# タイトル フェーズ 優先度 USL連携
#1 68令制国の地理JSONデータ整備 Phase 1 🔴 高
#2 全国メタインデックスサーバーの構造定義 Phase 1 🔴 高
#03 領地NFTのオンチェーンデータ構造定義 Phase 1 🔴 高
#04 キャラクター行動イベントの受信スキーマ定義 Phase 2 🔴 高
#05 行動 → 複合スコア変換ロジックの実装 Phase 2 🟡 中
#06 複合スコア閾値によるL2間接続トリガー Phase 2 🟡 中
#07 シーズン終了時の領地スナップショット機能 Phase 3 🟡 中
#08 Three.js 対応 ThreeDioramaSkin の追加 Phase 3 🟢 低
#09 EVM互換L2チェーンとの接続インターフェース Phase 3 🟢 低

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions