Posted on 2008-01-25 11:27
Fox 閱讀(1553)
評論(4) 編輯 收藏 引用 所屬分類:
G游戲編程
Author: Fox
終于趕在周末之前調通了,現在來總結一下我這個項目中對于異步回調的應用背景。
這個項目的內容就是在游戲中使用第三方庫為所有玩家提供更好的服務,當server啟動后,加載dll,初始化該模塊,當server退出時,結束模塊功能,卸載dll。
當玩家提出請求后,server在main thread中通過lib轉發玩家請求,lib處理完畢,在其獨立thread中回調server為其實現的callback function。此時,server需要將返回的result轉到main thread中對result及其相關的玩家數據進行處理。
第三方庫的需求是很明確的,在合適的地方發送請求,在合適的地方處理響應。
Joe對我的要求也是很明確的,響應處理時采用server當前架構(這個架構在上一篇文中有提到),使我的編碼不涉及任何游戲功能邏輯處理,并使整個處理流程細節對后續應用開發透明。
二者結合起來,就為這個項目融入整個server的架構提供了完美的需求,也為我的編碼提供了最小限度的選擇空間:(,好處是后續功能開發可以完全無視我的編碼,只需實現對回調響應后的功能,只有server底層知悉如何調用。
給出序列圖:
?
為了保持對上層開發透明,OnCallback需要封裝。
//-------------------------------------------------------------------------------
// 一年來,我主要參與了兩款游戲,確切的說是半年,前面半年并沒有真正涉及運營產品的開發,只是做工具。
// 現在這個模塊是我做的最快,也是壓力最大的一個。現在想來,原因在于此模塊涉及到游戲主邏輯底層和
// 第三方動態鏈接庫的通信及處理。
// 在短短幾天的時間內讓你的設計滿足第三方庫的應用需求并符合游戲自身底層邏輯的設計風格,的確有些痛苦,
// 好在有Joe的指點,讓我在完成工作的同時又學到了一些方法:)。
//-------------------------------------------------------------------------------