網路遊戲公司成長到一定的階段,會有一些經驗和技術的積累,這些積累會在日後的遊戲開發使用,但如果揹負了過重的歷史包袱,就應該丟棄,開發一套全新的架構在適應現在的遊戲開發技術需要。
而我,最近就在考慮乙個可復用的伺服器框架,這個問題思考已經不是一天兩天的事情了,但還未正式開始實施。
框架設計目的
1:加快遊戲開發過程,縮短開發周期——設計和**的復用
2:提高產品質量——由所謂的「精英」程式設計師開發和維護
要提高效率,必須要能有效的復用,整理了一下思路,把復用分成了幾個層次
1:最低層:源**級別的復用,提供諸如常見的佇列,buffer,序列化,記憶體,執行緒等等基礎設施的封裝
2:元件層:該層提供二進位制復用模組,如網路模組,ipc通訊等
3:框架層:該層採用底下幾層的**和元件,搭建乙個框架,比如直接把底層的網路訊息對映到上層指令碼系統,執行緒的控制,訊息驅動,起到總體排程的作用
4:指令碼層:該層主要編寫遊戲邏輯,由指令碼支援元件和指令碼**構成
5:最高層:編輯器,編寫各種各樣的編輯器——任務編輯器,物品編輯器,技能編輯器等等,通過生成的指令碼或資料和它的底層互動。
基於這種構想,如果底層提供了良好的設計,理想情況下更多應該是策劃使用編輯器構建遊戲
結合伺服器架構:
以上的層次劃分只是針對最複雜的邏輯伺服器,這裡不談伺服器的架構設計,每個伺服器總能使用其上層次的部分。
人員考慮(看起來像招聘資訊:d)
源**層:需要多年的c++開發經驗,對常用的程式庫比較熟悉,尤其是泛型程式設計,其他不做太多要求
元件層:具備一定的介面設計能力
框架層:具備一定的介面設計能力
指令碼層:需要大量遊戲開發經驗,對遊戲邏輯和策劃溝通方面相當了解
編輯器:通常不需要太高的技術要求,能按照設計實現就行
實施過程:
理想是美好的,現實是殘酷的。不得不考慮一些風險,首先考慮公司現狀是否需要這麼一批人做這樣的一件事,其次是否具備這樣的研發能力,是否具備上述的各種技術人才,其三如果失敗,那麼會有什麼得失。
搭建可復用的遊戲伺服器框架的思路
網路遊戲公司成長到一定的階段,會有一些經驗和技術的積累,這些積累會在日後的遊戲開發使用,但如果揹負了過重的歷史包袱,就應該丟棄,開發一套全新的架構在適應現在的遊戲開發技術需要。而我,最近就在考慮乙個可復用的伺服器框架,這個問題思考已經不是一天兩天的事情了,但還未正式開始實施。框架設計目的 1 加快遊...
c 遊戲伺服器框架
2 muduo是乙個基於 reactor 模式的 c 網路庫 3 boost asio 是乙個非同步的網路框架 官網 第三方教程 4 libevent 官網 5 ace是乙個很成熟的中介軟體產品,為自適應通訊環境,但它過於巨集大,一堆的設計模式,架構是一層又一層,對初學者來說,有點困難。pss開源框...
遊戲伺服器框架 Leaf go
leaf 是乙個使用 go 語言開發的開源遊戲伺服器框架,注重執行效率並追求極致的開發效率。leaf 適用於幾乎所有的遊戲型別。其主要的特性 乙個 leaf 開發的遊戲伺服器由多個模組組成 例如 leafserver 模組有以下特點 leaf 不建議在遊戲伺服器中設計過多的模組。遊戲伺服器在啟動時進...