iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
SideProject30

placeholder系列 第 14

30天打造線上多人桌遊網站-Day 14-遊戲進度保存

  • 分享至 

  • xImage
  •  

0. 前情提要

  1. 昨天完成了 Action Cable 的串接,讓使用者不用重新載入頁面,卻可以即時收到新的訊息。
  2. 今天想要談遊戲的相關資訊如何保存。

1. 一場遊戲的生命週期

遊戲開始 -> 玩家輪流行動 -> 當結束條件滿足時 -> 遊戲結束

遊戲開始前還會需要一個遊戲房間的概念,等待玩家到齊後 -> 開始遊戲

2. 遊戲狀態

這裡我想將所有會改變遊戲的狀態視為一次事件,按時間記錄下來,如此

  1. 重頭執行所有事件,便可以達成重播遊戲的效果。
  2. 針對事件發出廣播,有訂閱的瀏覽器(玩家、旁觀者)便可據此更新畫面、做出動畫。
  3. 可針對玩家發出廣播,例如只有自己看不見自己抽起的牌的資訊。
  4. 遊戲的最新一次事件更新到遊戲 model 上,讓斷線重連進來的玩家可以直接接上進度。

這裡就可以參考之前 Event Storming 中捕捉出的 Domain Events。

3. 設計 Model

下集待續..


上一篇
30天打造線上多人桌遊網站-Day 13-Action Cable
下一篇
30天打造線上多人桌遊網站-Day 15-找出第一版的 happy path
系列文
placeholder20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言