一個(gè)單機(jī)游戲常用的流程框架如圖:

將輸入交給邏輯,邏輯處理后交給場(chǎng)景管理器進(jìn)行圖形設(shè)定。
類(lèi)似的,一個(gè)網(wǎng)絡(luò)游戲的流程框架也可以采用近似的模式:

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

2. 純邏輯代碼可以無(wú)需修改的應(yīng)用在服務(wù)器和客戶(hù)端部分,你不需要再寫(xiě)什么XXXC類(lèi),XXXS類(lèi)這樣的東西了。
3. 只要設(shè)計(jì)得當(dāng),你應(yīng)該可以立即將一個(gè)網(wǎng)絡(luò)游戲轉(zhuǎn)換成一個(gè)單機(jī)游戲,通過(guò)去掉代理對(duì)象;或者做相反的事情。
posted on 2007-05-07 09:58
LOGOS 閱讀(1198)
評(píng)論(0) 編輯 收藏 引用