← Projects

作品說明

從 Discord 社群延伸出的文字世界

「靈市古玩城」建立在 Discord 社群既有的角色卡、票券與市場登記之上。專案將這些資產接入文字網頁遊戲,讓玩家使用相同身分登入後,就能看見自己的收藏、建立角色,並在不同街區與店舖之間活動,而不需要另外維護一套遊戲餘額。

Supabase 是網站與 Discord 機器人的共用資料來源。網站以 Next.js、React 與 TypeScript 製作,透過 Discord OAuth 辨識玩家,並由 OpenNext 部署至 Cloudflare Workers。

角色、店舖與共同市場

玩家可以提交角色建立申請,通過審核後使用角色卡建立角色。每個角色會保留自己的所在地,能在靈市廣場與四個市場區之間移動、進入玩家店舖,切換角色後也會從原本停留的位置繼續活動。

店舖系統涵蓋商品、庫存、票券交易、店舖搬家與共同持有申請。購買時由資料庫重新檢查商品價格、庫存與玩家餘額,避免前端資料被修改後直接影響共用資產。

以互動解鎖角色故事

角色作者可以設定招呼、每日互動、正負好感、關係類型、條件式劇情、對話選項、路線代碼與情報內容。玩家透過互動累積關係,逐步開啟不同故事節點,使角色不只是靜態設定卡,而能在社群共同世界中持續發展。

安全與交易一致性

角色建立、移動、互動與購買等資產操作透過受控的資料庫函式執行,搭配 RLS、原子交易、資料列鎖與重送識別,降低重複扣款、超賣或只寫入部分資料的風險。Discord 機器人端也建立共用狀態連接層,讓網站與機器人以同一份資料為準。

開發方式與目前進度

我主導第一版產品範圍、世界觀呈現、玩法規則及跨服務設定,並以 AI 協作方式拆解需求、檢閱實作與反覆驗收。封閉測試回饋已用於改善手機版操作、角色建立視窗、店舖提示、角色切換狀態與商品購買流程。

目前專案仍在封閉測試與持續開發階段。程式已通過 lint、正式建置,以及 Discord 機器人共用狀態模組的單元測試;正式環境中的雙帳號端對端流程與權限隔離仍會持續驗證。