一個單機游戲常用的流程框架如圖:

將輸入交給邏輯,邏輯處理后交給場景管理器進行圖形設定。
類似的,一個網絡游戲的流程框架也可以采用近似的模式:

左邊是客戶端部分,右邊是服務器部分。其中InputProxy和ScnMgrProxy均是代理,這是仿照于RPC的設計思想,能在上層概念上隱藏網絡層的內容。而不帶箭頭的連線則表示非請求被確認后才執行的游戲邏輯路徑,這是APRG常有的事情,不可能什么事情都等待服務器確認后才處理。
代理的作用就是發送網絡消息包,而被代理者的作用就是接受網絡消息包,并執行相應的任務。
這樣的設計有以下幾個好處:
1. 組件有更高的絕緣性:你不需要像以前一樣把網絡相關的代碼散布到邏輯代碼的各處,并且你可以肯定網絡發包就在代理對象下,而代理對象提供的是具有更高邏輯抽象的接口,更具可讀性。

2. 純邏輯代碼可以無需修改的應用在服務器和客戶端部分,你不需要再寫什么XXXC類,XXXS類這樣的東西了。
3. 只要設計得當,你應該可以立即將一個網絡游戲轉換成一個單機游戲,通過去掉代理對象;或者做相反的事情。
posted on 2007-05-07 09:58
LOGOS 閱讀(1194)
評論(0) 編輯 收藏 引用