到目前為止,Orleans7的核心概念基本已經學完,我準備使用Orleans7做一個專案實戰,來總結自己的學習效果。
專案效果
透過Orleans7來完成一個貪吃蛇遊戲,要求如下:
- 可以多人線上玩
- 貪吃蛇可以上/下/左/右改方向
- 貪吃蛇吃完食物,身體長度+1
專案暫定架構
初步設想,此遊戲包括一個Orleans7 Server端,和一個或多個Winform遊戲客戶端。
Orleans7 Server需實現以下功能:
- 實現GameGrain,和SnakeGrain。其中GameGrain中包含可多個Snake。
- SnakeGrain每隔0.5s讓所有Snake朝其當前方向走1步。
Winform遊戲客戶端需實現以下功能:
- 需要使用IClusterClient建立SnakeGrain
- 讓SnakeGrain加入GameGrain。
- 透過輪詢/websocket,獲取snake資料
- 將透過websocket獲取到的資料,透過Graphics將遊戲介面/Snake/食物畫出。
- 可透過IClusterClient實現上下左右修改方向。
架構圖
之後會按照以下架構圖,實現此小遊戲。