開場
恭喜各位忠實讀者,撐過各項基礎技術如 Robot Framework、WebSocket、Protobuf 的介紹環節,接著就是待測系統的部分,這是一個為了喝杯牛奶養了一條牛的故事。
遊戲主流程
為了簡化整體程式碼架構,我們設計一個最簡單的示範用遊戲,叫做「丟一顆骰子」猜結果。
押中最後開獎數字即可獲得六倍回報,身為佛心且熱心公益的莊家,完全不考慮莊家抽成 (運營成本) 與 Jackpot 獎池抽水積累的部分。
整體的流程就是:
- 玩家端連線登入
- 等待伺服器通知開局
- 玩家下注並發送完成信號
- 莊家開獎,決定中獎號碼
- 莊家計算派彩並通知玩家更新帳號餘額
- 回到步驟一,等待下一次開局
贏分規則與試算
一個骰子有六面,骰一次有 1~6 六種結果,每一個結果機率剛好是 1/6
在不考慮其他因素的簡化版本,押重開獎數字就給六倍,結束
遊戲服務內部樣貌
實際上,伺服器內部展開會比上述複雜得多,必須包含以下組件:
- WebSocket 的底層連線處理,主要負責底層 I/O 通訊的部分
- Protobuf 協議訊息的編碼解碼或者稱序列化與反序列化處理
- 遊戲核心邏輯引擎,主要處理遊戲邏輯與運算
- 狀態機,負責協調整體服務內部狀態
- 使用者帳務管理,負責管理目前使用者的登入 session 跟帳戶餘額等
- 遊戲桌/遊戲房間管理,負責各個遊戲房間的目前運作狀態
這跟測試沒有直接關係,不過若以白盒或者灰盒測試的角度來看,懂點內部實作更有利於針對性設計檢驗的測試項目
客戶端的流程
對應的客戶端跟上述差不多,不過玩家端只需要以下三部分:
- WebSocket 連線
- Protobuf 協議處理
- 遊戲邏輯
剩下的其他部分,大多是等伺服器通知,不需處理。
SDD 規格驅動開發
有了上述基本少設計之後,套用 AI 時代最紅的 SDD 規格驅動開發,亦即有規格就有 AI 代理會幫忙最終成果
步驟如下:
- 建立一份空白內容的 Readme.md
- 大略描述需求規格
- 開啟喜歡的 Vibe Coding 助手如 Claude Code 或 OpenAI Codex CLI
- 請它對於大略版本 README.md 做補全
- 人工審閱並給予修改意見
- 重複步驟 4-5 直到大致規格符合需求為止
- 這時候我們就有了 PRD 專案需求文件
- 然後請它基於 README.md 這份 PRD 長出對應的技術規格書
- 這裡就是 AI 可以全力發揮的地方,可以把各種細部規格都規畫出來
- AI 規劃一個版本後自動存檔
- 人工一樣做一次審閱,給予修改意見
- 重複步驟 10-11 直到滿意為止,或是 token 用完強制 CD
- 到這跟 AI 就協作完成詳細技術規格書 functional_spec.md 跟 產品高階規格 README.md
小結語與下一步
有了詳細技術規格書 functional_spec.md 跟產品高階規格 README.md,今日目標就達成了
接著我們會花幾篇把這頭牛從概念、需求文件變成有血有肉真的可以執行的伺服器程式碼,敬請期待!