我正在設計一個僅限網絡遊戲。我想在服務器端和客戶端之間共享存儲在C++類中的遊戲數據。在服務器和客戶端之間使用相同的數據
這具有在同一個地方的數據,從而簡化了維護的益處。但是,我有一個一流的設計問題 因爲:
- 在服務器端只需要邏輯
- 在要畫,呈現在客戶端,而這樣
換句話說,我不想在服務器上安裝圖形庫,反之亦然。
類可能是這樣的:
class Fire : public Spell {
private:
/* some data */
public:
void execute(Player &p)
{
// call server actions
}
void draw(Player &p)
{
// call rendering and such
}
};
執行僅用於服務器的功能和借鑑是客戶端。我真的不想使用 宏來確定數據是在哪一邊,因爲它往往是醜陋的和不可維護的。
我正在尋找一個精心設計的方式來做到這一點。
會怎麼做/使用?