客戶端服務器應統一庫的使用
網游服務器和客戶端有許多功能是完全相同的。相關功能的代碼應該是可以共用的。
但是服務器和客戶端使用了一些專門的工具庫,使兩邊的代碼不能直接共用。
如裝備升級功能中,哪個裝備添加哪些材料,花費多少,最終生成哪個裝備,
這些由一個配置文件配置,服務器端和客戶端是一樣的配置文件。
客戶端會預先判斷是否可以升級,然后向服務器請求。服務器會進行同樣的判斷。
配置文件的讀取和條件的判斷這兩個功能服務器客戶端是相同的。
相關功能的代碼應該也是可以共用的。
但是客戶端用的xml解析庫是tinyXml, 服務器用的是其他的xml庫。
客戶端大量使用了引擎自帶的工具庫,如單件,智能指針,
那一套與服務器的工具庫也是不能通用的。
客戶端是Windows平臺的,服務器是Linux的,各自使用了平臺專用的API,
結果也會造成無法通用。
為了能夠一份代碼兩邊共用,需要統一服務器和客戶端所使用的庫。
通用的功能都使用該公共庫,不得使用專用的庫和API。
1. 盡量使用 STL,BOOST 通用庫。
2. 客戶端3D引擎中通用的工具庫共享給服務器使用。
3. 使用平臺通用的庫和API。
(金慶的專欄)
網游服務器和客戶端有許多功能是完全相同的。相關功能的代碼應該是可以共用的。
但是服務器和客戶端使用了一些專門的工具庫,使兩邊的代碼不能直接共用。
如裝備升級功能中,哪個裝備添加哪些材料,花費多少,最終生成哪個裝備,
這些由一個配置文件配置,服務器端和客戶端是一樣的配置文件。
客戶端會預先判斷是否可以升級,然后向服務器請求。服務器會進行同樣的判斷。
配置文件的讀取和條件的判斷這兩個功能服務器客戶端是相同的。
相關功能的代碼應該也是可以共用的。
但是客戶端用的xml解析庫是tinyXml, 服務器用的是其他的xml庫。
客戶端大量使用了引擎自帶的工具庫,如單件,智能指針,
那一套與服務器的工具庫也是不能通用的。
客戶端是Windows平臺的,服務器是Linux的,各自使用了平臺專用的API,
結果也會造成無法通用。
為了能夠一份代碼兩邊共用,需要統一服務器和客戶端所使用的庫。
通用的功能都使用該公共庫,不得使用專用的庫和API。
1. 盡量使用 STL,BOOST 通用庫。
2. 客戶端3D引擎中通用的工具庫共享給服務器使用。
3. 使用平臺通用的庫和API。
(金慶的專欄)