紀錄一些查資料過程中讓我蠻困惑的事情,同時也在思考關於遊戲流程的進行用什麼方式會比較好?
一開始我的想法是類似sever-client之間互相呼叫的感覺,後來發現不太對,server不會主動發送訊息給client。所以「系統通知玩家回合開始」這件事情在sever-client不可能發生,server一直都是被動等待client呼叫才回應。
web 為了解決這樣的問題,出現了以下技術:
但是我目前的語言方案還是python,就算有web可用方案,在web重寫一次還是要花時間orz 可能等之後有機會,會重新在web上面再實作一次遊戲吧。
以目前來說,用python本身的socket功能,實作遊戲資料傳輸會是比較實際的做法。
系統發出的事件:
回合開始
更新資料,[場面資料]
廣播訊息,[封裝字串]
玩家抽牌,[卡牌資料]
回合結束
用戶端送出的事件:
玩家行動,組合ID,陣法ID
//TODO 未來會有職業能力行動階段,可選性。
玩家棄牌,組合ID
以我自己socket的開發經驗比較不足,所以想這部份真的沒什麼頭緒,可能還是先試著寫看看。看能不能讓這過程串起來?
另外因為系統、玩家兩邊都蠻依賴對方送來的資料才能往下進行。例如在「回合開始」狀態下,系統只會接收「玩家行動」的事件,然後系統送出相關回應之後,下一個需要等待的是「玩家棄牌」。可以動態增加移除事件監聽的方式來管理遊戲進程。
大概是降,這部份算我比較弱的一環,先想清楚再寫也不遲。