九藏喵窩V5
標題:
HTML5 喵窩房地遊戲GPT版
[打印本頁]
作者:
九藏
時間:
8 小時前
標題:
HTML5 喵窩房地遊戲GPT版
DNAXCAT Town —— 開發企劃(喵幣版 v1.3)
版本:v1.3(整合論壇 SSO+喵幣+UGC+土地交易)
平台:Web(桌機優先,行動相容)
角色:產品/前端/後端(雲端)/UI&美術/QA
1) 產品定位與差異化
**願景**:輕量 2D 建鎮社交遊戲,玩家購地→蓋屋→室內佈置→展示與聊天。
**差異化特色**
� 與 **論壇共用帳號(SSO)**,暱稱/頭像同步;停權可聯動。
� **喵幣**為唯一消費貨幣,**只能透過聯繫官方購買**並由後台結算入帳(無前端充值)。
� **UGC 家具商城**:玩家上傳自製家具→官方審核→上架販售;**創作者 1% 喵幣分潤**。
� **土地市場**:玩家可上架轉售地塊,**自訂售價與介紹**,成交後地塊、房屋、室內擺設一併過戶。
**核心循環**:取得喵幣 → 購地/買家具 → 佈置 → 展示/社交 → 促成再消費與創作。
2) 現況(雛型已完成)
� 前端:Phaser 3(CDN),單檔原型 `index.html`。
� 場景:`TownScene`(小鎮)、`HouseScene`(室內)。
� 功能:WASD、E 購地、Enter 泡泡聊天;室內 12×8
格佈置(椅/桌/床),放置/刪除/旋轉;回鎮落在門口;localStorage 存檔。
3) 範圍(MVP → Beta)
**MVP**
1. 論壇 SSO(共用帳號)
2. 喵幣體系(僅官方結算補值)
DNAXCAT Town — 開發企劃(喵幣版 v1.3) 第 1 頁
3. 雲端保存(購地/房屋/佈置/餘額)
4. 官方商店(扣喵幣、入庫後可擺)
5. 基礎聊天(Realtime,節流/過濾)
**Beta**
� UGC 家具(創作者中心、審核台、1% 分潤)
� 土地市場(上架/瀏覽/成交/過戶、交易歷史)
� 佈置 UX(紅/綠格提示、連續放置、撤銷/重做)
� 社交擴充:拜訪他人房、留言、表情
� 監控儀表與內容擴充
4) 體驗流程(重點)
� **小鎮**:WASD;E 購地;點房屋進室內;返回落在門口;HUD 顯示**喵幣餘額**。
� **室內**:12×8 格;[1][2][3] 選家具;左鍵放置/右鍵刪除/R 旋轉/B
返回;接雲端後僅可放置擁有家具。
� **商店**:縮圖/尺寸/價格/說明/創作者標章;餘額不足灰階;「如何取得喵幣?」→ 論壇工單。
� **UGC**:上傳素材、設定占格與建議價→送審;狀態:草稿→審核中→已上架/退回(含原因)。
� **土地交易**:賣家上架(售價+介紹),買家以喵幣購買;成交後**地塊/房屋/擺設**一併過戶。
5) KPI(示例)
D1/7 留存、付費率、喵幣 ARPPU、UGC 上架通過率、土地成交率、佈置完成率、崩潰率。
6) 里程碑與 DoD(摘要)
� M2.5:SSO+喵幣補值(僅後台結算);餘額跨端一致;`meow_ledger` 可稽核。
� M4:UGC 交易即 1% 分潤入作者、餘額與金庫正確入帳。
� M5:土地交易併發安全,過戶完整,交易歷史可查。--
Part B — 技術規格(Tech Spec)
Tech Spec — DNAXCAT Town(MeowCoin)
1) 前端架構
� **引擎**:Phaser 3(Canvas/WebGL)。
DNAXCAT Town — 開發企劃(喵幣版 v1.3) 第 2 頁
� **場景**:`TownScene` / `HouseScene` / `ShopScene` / `ProfileScene` / `CreatorScene` / `MarketScene`。
� **模組**:
� `PersistenceAdapter`(Local → Supabase 置換)
� `GridPlacer`(占格管理:越界/重疊檢查、旋轉)
� `UI/HUD`(喵幣餘額、提示)
� `Chat`(Realtime)
� **效能目標**:60 FPS(桌機),主迴圈單幀 < 12ms。
2) 型別(前端)
type Profile = { id: string; forum_user_id: string; display_name: string; avatar_url: string; meow_balance: number };
type Plot = { id: string; x:number; y:number; w:number; h:number; price:number; owner_id?:string|null; house_id?:string|null };
type House = { id: string; owner_id: string; name: string; x:number; y:number };
type Item = { id:string; w:number; h:number; price:number; source:'official'|'ugc'; ugc_item_id?:string };
type Inventory = { item_id:string; qty:number };
type Placement = { id:string; house_id:string; owner_id:string; item_id:string; x:number; y:number; rot:number };
3) SupabaseAdapter 介面
export interface SupabaseAdapter {
ensureSession(): Promise<void>;
getProfile(): Promise<Profile>;
getWorld(): Promise<{ plots: Plot[]; houses: House[]; items: Item[] }>;
getHousePlacements(houseId: string): Promise<Placement[]>;
getInventory(): Promise<Inventory[]>;
getMeowBalance(): Promise<number>;
createTopup(amount: number): Promise<{ id: string; status: 'pending' }>;
buyPlot(plotId: string, houseName: string): Promise<{ house: House; meow_balance: number }>;
buyItem(itemId: string, qty: number): Promise<{ meow_balance: number; inventory: Inventory[] }>;
placeFurniture(houseId: string, itemId: string, x: number, y: number, rot: number): Promise<Placement>;
removeFurniture(placementId: string): Promise<void>;
ugcSubmit(item: { id: string }): Promise<void>;
buyItemUGC(ugcItemId: string, qty: number): Promise<{ meow_balance: number; inventory: Inventory[] }>;
createPlotListing(plotId: string, price: number, description: string): Promise<void>;
cancelPlotListing(listingId: string): Promise<void>;
buyPlotListing(listingId: string): Promise<void>;
}
4) 安全與權限
� 關鍵狀態(喵幣、所有權)僅 RPC 改動;前端只畫 UI。
� RLS:本人資產可寫,公開資料可讀;Admin RPC 限管理員。
5) 測試與部署
� **測試**:GridPlacer、Adapter 模擬、RPC 錯誤碼;E2E(購地→進屋→佈置→返回→重整)。
� **部署**:前端 Vercel/Netlify;後端 Supabase(dev/prod);Sentry+Supabase 日誌。
DNAXCAT Town — 開發企劃(喵幣版 v1.3)
6) 里程碑 & DoD(技術)
| 里程碑 | 重點 | DoD |
|---|---|---|
| M1 佈置 UX | 紅/綠格提示、阻擋、平滑輸入 | 放置不可越界/重疊;60FPS |
| M2 商店 | 商品列表/詳頁、餘額顯示、入口文案 | 可購買官方家具(假資料) |
| M2.5 SSO+喵幣 | OAuth、topup/ledger RPC、RLS | 無前端充值;結算入帳;跨端一致 |
| M3 雲端保存 | 所有動作走 RPC | F12 竄改無效;狀態一致 |
| M4 UGC | 上傳/送審/上架;1% 分潤 | 交易即分潤入帳且可稽核 |
| M5 土地 | 上架/成交/過戶 | 並發安全;資產完整過戶 |--
Part C — 資料庫 & RPC(DB Spec + SQL 摘要)
DB Spec + RPC(喵幣版)
本節包含:Schema、RLS、觸發器、RPC、索引與驗收。**餘額一律以 meow_ledger 為準**,實際餘額由
RPC 維持一致。
1) Schema(建立表與初始資料)
**詳見同名 .sql 檔**;要點:
� `profiles`:`meow_balance`、`forum_user_id`;餘額僅能由 RPC 異動。
� `meow_topups` / `meow_ledger`:官方補值與流水總帳。
� `ugc_items`:UGC 家具,審核流轉 `draft → pending → published`(或 `rejected`)。
� `plot_listings` / `plot_trades`:土地上架與成交歷史。
� `items`:來源 `official|ugc`;UGC 通過後同步到此表。
� `placements`:室內擺設;過戶時一併轉移 owner。
2) RLS 原則
� 公開資料可讀;個人敏感/資產資料僅本人可讀寫。
� 關鍵寫入一律走 RPC(buy_* / place_* / remove_* 等)。
3) RPC 目錄
� Topup:`create_topup`(玩家)/`admin_settle_topup`(管理員)
DNAXCAT Town — 開發企劃(喵幣版 v1.3) 第 4 頁
� 遊戲消費:`buy_plot`、`buy_item`
� UGC:`ugc_submit`、`admin_ugc_review`、`buy_item_ugc`(含 1% 分潤)
� 室內:`place_furniture`、`remove_furniture`
� 土地:`create_plot_listing`、`cancel_plot_listing`、`buy_plot_listing`(過戶)
4) 驗收條件(DB/RPC)
� 任一餘額變動均有 `meow_ledger` 紀錄;**餘額=Σ(delta)**。
� UGC 交易即時計入**作者 1%** 分潤,平台收入入 `TREASURY`。
� 土地成交→地塊/房屋/擺設**全部過戶**;雙方餘額正確;有交易歷史。
� 直接 `update` 被 RLS 阻擋,必須透過 RPC。
完整 SQL 參見同資料夾:`DNAXCAT_Town_DB_and_RPC_v1.3.sql
導出來後還真的可以執行!!! 有喵喵有興趣加入開發團隊嗎? 前後端
作者:
MeowJumKun1996
時間:
7 小時前
不幸的是,我使用的是 iOS 模式,因此執行此程式碼可能會有問題 T_T
歡迎光臨 九藏喵窩V5 (https://dnaxcattalk.dnaxcat.net/)
Powered by Discuz! X3.3