Skip to content

Repository files navigation

Sequence Decipher:序列破譯

一款以 8×8 棋盤消線驅動戰鬥的 Godot 4 直立式放置 RPG。AI 會自動放置方塊,玩家則負責角色養成、晶片配置、技能策略與長線推進。

公開版包含遊戲原始碼、場景、資料、測試、原創美術與音效。廣告帳號、廣告單元、內購商品、Play Games、後端網址、簽章與商店發布資料均未包含,所有商業服務預設停用。

序列破譯戰鬥畫面

遊戲在玩什麼?

《序列破譯》把方塊消線、角色技能與放置養成疊在同一個自動戰鬥循環中:

  1. AI 在 8×8 棋盤上選擇位置並自動放置方塊。
  2. 棋盤完成橫列或直行時清線。
  3. 清線會觸發普攻,並依顏色累積技能能量。
  4. 黃色對應攻擊、粉色對應治療、青色對應防禦。
  5. 技能能量達標後,依玩家設定的優先順序自動施放。
  6. 擊敗怪物後取得貨幣、角色碎片與晶片,繼續挑戰更高序列。
  7. 玩家死亡時關卡回到起點,但角色、晶片與主要養成進度保留。

每 100 關會遇到 Mini Boss,每 500 關會遇到 Major Boss。遊戲重點不是手速,而是觀察自動戰鬥、調整角色與晶片配置,讓同一套棋盤規則能推進得更遠。

主要內容

系統 說明
8×8 棋盤 邏輯與顯示分離,支援自動放置、橫直清線、連消與能量轉換。
自動戰鬥 棋盤結果驅動普攻、技能、怪物反擊、勝敗與下一場戰鬥。
三系技能 攻擊、治療、防禦各自有能量槽與自動施放條件。
角色養成 多角色、等級、經驗、品質碎片、技能組與角色切換。
晶片系統 9 個裝備格、五色晶片、T 階、附屬性、升級、分解與配置組。
無限推進 普通怪、Mini Boss、Major Boss 與序列縮放規則。
目標與收藏 每日/每週/成長/關卡目標及收集進度。
掛機省電 保留相同戰鬥計算,降低畫面更新與特效成本。
多語系 UI 目前具備繁體中文、英文、日文與韓文介面。
存檔 JSON 存檔、版本欄位、角色/晶片/設定/進度保存。

更細的現行規則與數值可參考 目前版本遊戲規則與數值。部分舊開發文件保留了設計演進脈絡;若文件與程式行為不同,以目前原始碼及測試為準。

技術概覽

  • 引擎:Godot 4.6
  • 語言:GDScript,Android 原生橋接使用 Java
  • 主場景:scenes/BattlePage.tscn
  • 目標版面:直立 941×1672,使用 canvas_items 拉伸
  • 主要平台:桌面開發環境與 Android
  • 額外套件:Poing Studios Godot AdMob Plugin(已隨原始碼保留,但公開版停用)
  • 後端範例:Cloudflare Worker + D1 的 Google Play 購買驗證範例

專案結構

assets/                         原創角色、怪物、棋盤、UI、音效與字型
addons/admob/                   第三方 Godot AdMob 外掛,公開版預設停用
android/build/                  自訂 Android Billing / Play Games 橋接原始碼
backend/cloudflare-iap/         可選的購買驗證 Worker 範例
resources/                      角色、怪物、技能、晶片與方塊資源
scenes/                         BattlePage 與可重用 UI / 戰鬥場景
scripts/autoload/               全域遊戲狀態、存檔、戰鬥、晶片與平台服務
scripts/board/                  BoardEngine、BoardAI、BoardView
scripts/battle/                 棋盤結果到戰鬥流程與演出
scripts/config/                 品牌、廣告與示範商品設定
scripts/data/                   資料模型、清單與素材索引
scripts/test/                   不依賴額外測試框架的 Godot smoke tests
scripts/tools/                  視覺、資料與公開快照檢查工具
docs/                           設計、規則、QA 與架構文件
project.godot                   Godot 專案入口

核心責任大致如下:

  • BoardEngine.gd:棋盤狀態、放置與清線規則。
  • BoardAI.gd:在手機成本可控的前提下選擇合法落點。
  • BattleEngine.gd:把清線結果轉成能量、攻擊與技能事件。
  • BattleService.gd:角色/怪物戰鬥狀態、勝敗、獎勵與關卡推進。
  • GameState.gd:玩家進度與跨系統資料的主要擁有者。
  • SaveService.gd:存檔讀寫與恢復入口。
  • ChipService.gd:晶片取得、裝備、升級、分解與效果彙整。
  • BattlePage.gd:主畫面流程與既有 UI 元件的協調者。

快速開始

需求

  • Godot 4.6.x Standard 版
  • Git(若要複製倉庫)
  • Android Studio/JDK/Android SDK 只在要自行匯出 Android 時需要

在 Godot 執行

git clone https://github.com/guangyuspace/sequence-decipher.git
cd sequence-decipher
godot --editor --path .

也可以直接在 Godot Project Manager 匯入根目錄的 project.godot,再按 F6/F5 執行。首次匯入大量 PNG 與字型時需要等待 Godot 建立 .godot/ 快取。

公開版不需要 Node、npm 或雲端帳號才能執行核心遊戲。

測試

測試是獨立的 SceneTree 腳本,不需要安裝 GUT 或 GdUnit4。以下命令假設 godot 已在 PATH:

godot --headless --path . --script scripts/test/Phase1SmokeTest.gd
godot --headless --path . --script scripts/test/Phase10SmokeTest.gd
godot --headless --path . --script scripts/test/IAPCatalogFulfillmentTest.gd
godot --headless --path . --script scripts/test/OpenSourceConfigurationTest.gd
powershell -ExecutionPolicy Bypass -File scripts/tools/verify_open_source_snapshot.ps1

可選的 Worker 測試:

cd backend/cloudflare-iap
node --test test/worker.test.mjs

Godot smoke test 成功時可能仍會在程序結束階段看到既有的 ObjectDB/資源清理警告;請以測試退出碼與 PASS 訊息判定,並歡迎協助清理這些警告。

Android 匯出

公開快照刻意不包含 export_presets.cfg、keystore、密碼、正式套件簽章、AAB/APK 或商店帳號設定。

若要自行匯出:

  1. 在 Godot 安裝與 4.6.x 相符的 Android export templates。
  2. 依 Godot 文件設定 JDK 與 Android SDK。
  3. 在 Editor 內建立自己的 Android export preset。
  4. 把套件名稱改成你控制的唯一名稱。
  5. 只在私人環境配置 keystore 與密碼,不要提交到 Git。
  6. 若只想玩核心遊戲,維持 AdMob、IAP 與 Play Games 空白即可。

廣告、內購與線上服務

公開版採 fail-closed 設定:

  • scripts/config/AdMobConfig.gd 的 App ID、Ad Unit ID 與測試裝置 ID 全部為空。
  • addons/admob/android/config.gd 預設不打包 Ads library。
  • project.godot 的購買驗證後端與排行榜 ID 為空。
  • android/build/res/values/play_games_services.xml 不含 Google Play Games project ID。
  • scripts/config/IAPCatalog.gd 只使用 demo_* 本機測試鍵,並非商店商品 ID。
  • backend/cloudflare-iap/ 只提供未部署、未綁帳號的範例。

若你要在自己的 fork 重新啟用商業服務,請使用自己的帳號與商品,並在私人分支完成隱私、同意、購買驗證、恢復、退款/撤銷、acknowledge/consume 與 Google Play 測試軌驗證。不要把服務帳號、私鑰、purchase token、正式 Worker URL、keystore 或密碼提交到公開 Git。

素材與授權

除非檔案或資料夾另有標示,本專案的原創程式碼、原創遊戲美術、動畫影格、UI、音效與文件均依 MIT License 開放使用、修改與再散布,包括商業使用。

第三方內容維持原授權:

  • addons/admob/:Poing Studios Godot AdMob Plugin,MIT。
  • assets/fonts/NotoSansTC-VF.ttf:Noto Sans CJK TC,SIL Open Font License 1.1。

詳情請見 THIRD_PARTY_NOTICES.md字型授權。使用者仍需自行確認其新增素材、商標、商店內容及服務條款。

目前限制

  • 公開快照沒有正式廣告、內購、Play Games 或雲端服務設定。
  • 沒有可直接上架的 Android export preset 或簽章成品。
  • 商店中的 demo_* 商品僅供本機邏輯與測試,不會產生真實交易。
  • 部分長期開發文件的數值可能落後於現行程式碼。
  • 真機觸控、背景恢復、長時間耗電/溫度與 Play 安裝行為仍需要各 fork 自行驗證。
  • 目前 UI 與素材量較大,第一次匯入與低階 Android 裝置需要額外耐心。

歡迎貢獻

適合的第一批貢獻包括:

  • 修正文件與現行規則的差異。
  • 增加不依賴商業服務的棋盤、戰鬥、存檔與 UI 測試。
  • 改善低階 Android 的載入、記憶體與長時間效能。
  • 補強無障礙、鍵盤操作、色彩辨識與多語系品質。
  • 增加原創角色、怪物、技能、晶片或關卡內容,並清楚標示授權。

送出 PR 前請先執行最相關的 Godot test 與 verify_open_source_snapshot.ps1。任何 PR 都不得包含廣告/內購帳號、API key、服務帳號、後端正式網址、購買 token、keystore 或密碼。

English summary

Sequence Decipher is an open-source portrait idle RPG built with Godot 4. An AI places pieces on an 8×8 board; completed lines trigger attacks and charge attack, healing, or guard skills. The repository includes the complete game source and original game assets. Advertising, billing, Play Games, backend, signing, and store identifiers are intentionally absent and disabled by default.

License

Original project code and original game assets: MIT. Third-party components retain their own licenses as listed in THIRD_PARTY_NOTICES.md.

About

Godot 4 直立式 8×8 消線自動戰鬥放置 RPG,含完整原始碼、美術、音效與測試。

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages