国产亚洲人成在线视频网站

<th id="ssz4z"></th>
  • <th id="ssz4z"></th>

    1. 您現在的位置:CDN高防 > 服務器租用幫助 > 手機游戲服務器該如何開發呢?

      手機游戲服務器該如何開發呢?

      發布時間:2020-02-12 12:00:01 ??文章來源:未知 ??作者:admin
      本文由admin編輯,關鍵詞:手游服務器,標題:手機游戲服務器該如何開發呢?,主要內容講解的是:春節以來新型肺炎蔓延全國,而為了防止病毒的傳播,各地封路封城,國民基本都是宅在家里面足不出戶,受此影響國內養殖、娛樂、零售、旅游、餐飲等眾多行業都遭受到重創。不過有一個行
      春節以來新型肺炎蔓延全國,而為了防止病毒的傳播,各地封路封城,國民基本都是宅在家里面足不出戶,受此影響國內養殖、娛樂、零售、旅游、餐飲等眾多行業都遭受到重創。
      不過有一個行業卻在這個假期迎來了爆發。
      什么行業呢?既然只能在家,那么精神方面的娛樂就便不能少。于是在國內許多行業受疫情影響處于低迷之時,游戲行業卻逆勢實現了增長。畢竟無聊的時候,打游戲是不錯的選擇。
      手機游戲服務器該如何開發呢?
      手游上線,手游服務器也要與時俱進,及時做好數據備份工作。那么,手機游戲服務器該如何開發呢?
      下面CDN高防小編就隨便聊聊手機手機游戲服務器開發需要的技術。
      一.聊聊手游服務器開發有哪些東西要考慮。
      1.開發語言的選擇:
      工欲善其事,必先利其器,選擇一門適合的開發語法對后期開發有著事半功倍的作用。
      業界主要的是c/c++ + Python/lua模式做手機游戲服務器。c/c++做網絡通訊數據傳輸,python/lua做業務邏輯。這樣既保持了網絡傳輸的效率(c++),又提升開發效率(Python/lua),同時也支持熱更新。
      當然,也有其他服務器開發語言,erlang(沒用過,頁游公司用的多),c#(大棒子國喜歡用,神奇的民族),Java(第一次聽說時我驚呆了),node.js(少量游戲用的,還有一個node.js寫的引擎叫pemolo),php(做http協議通訊的游戲時php+mysql也不失為一種好選擇)
      看過兩個手機游戲服務器引擎
      1.firefly(9秒社團開發的一款python手機游戲服務器框架)
      2.kbengine(按bigworld的架構來設計的,c++ + python的)
      2.數據庫
      現在比較流行的兩種數據庫,關系型數據庫mysql和非關系型數據庫mongodb。這是我用的最多的兩個數據庫。
      關于兩者之間的各種比較,網上有很多,當然你也可以用其他數據庫,至于sql server,不怕被坑你就用吧(我向來對微軟的東西沒好感)。
      3.服務端架構
      講一下我用過的其中一種架構模型,也是公司按照bigworld架構設計的:
      1.Gate:首先要有一個Gate(網關)服務器,負責客戶端連接及消息轉發到Game(游戲服),保持客戶端到服務端的連接
      沒有任何邏輯,只做消息加密和解密,以及客戶端和服務器消息的轉發(相當于兩者之間的橋梁).
      2.GameServer:GameServer是游戲進程,提供游戲邏輯功能(采用單進程(或者單線程)模型,手機游戲服務器的瓶頸從來不在CPU,所以只做邏輯功能的話單線程足夠了,在這里沒必要用多線程或多進程)。
      3.DBManager:實現數據庫的讀寫,方便Game服務器異步讀寫數據庫的數據(有些把數據庫讀寫放在游戲服,沒有單獨的服務器,那恐怕游戲服單進程就不夠用了)。
      4.GameManager:負責管理所有的GameServer,GameServer之間消息轉發,提供廣播到所有Game的功能。
      4.協議
      客戶端與服務器之間協議通信,可以用tcp或者http。主要看游戲模型,如果是那種弱聯網單機玩法,用http足夠了,像天天酷跑之類,只在需要的時候處理一條http請求響應。
      不過tcp用的比較還是比較多的?,F在的網絡游戲大多數都是tcp,像MMORPG類游戲。我們現在的游戲就是同時用了http和tcp,客戶端和游戲服采用http協議。只有多人戰斗轉向戰斗服才采用tcp長鏈接。
      udp:其實游戲是有udp的,在一些高效率的場景下比如pvp即時戰斗,tcp的擁塞控制和超時重傳并不適合,有些就用的udp,然后自己做丟包重發,拿網絡公平性換游戲局部的效率。
      現在參與開發的游戲就同時使用了http協議和tcp協議,在游戲服是單機玩法用http協議,戰斗服需要長連接保存協議狀態,用的tcp。
      5.存盤
      有數據庫就肯定有數據庫讀寫操作,最主要的還是存盤(save),周期存盤還是即時存盤
      即時存盤就是每一次操作數據都進行存到數據庫,當然這樣會導致對數據庫的操作過于頻繁,畢竟這是效率的瓶頸之一。
      周期存盤也叫固定存盤,就是每隔固定時間存盤一次,比如10秒或者15秒,這樣數據庫的壓力就會小很多,當然自己就要在內存中做好數據操作,防止數據污染或者存盤不上導致回檔。
      手機游戲服務器該如何開發呢?
      CDN高防游戲服務器解決方案圖
      二.開發一個手機游戲服務器需要掌握的開源技術
      1.libevent,boost.asio等網絡庫,網上有很多開源網絡庫,與其自己造輪子,不如就用開源網絡庫作為自己服務器的通訊庫。最出名的就屬libevent和boost.asio了。
      Boost的ASIO是一個異步IO庫,封裝了對Socket的常用操作,簡化了基于socket程序的開發。支持跨平臺。
      libevent是一個C語言寫的事件驅動的開源網絡庫。
      至于二者之間的效率,仁者見仁。
      當然還有很多:比如云風寫的skynet(c + lua),陳碩寫的muduo(c++)。都寫得很好,云風寫的東西簡單好用,陳碩在秀他的c++技術。
      2.protobuf:全稱Google Protocol Buffers,是google開發的的一套用于數據存儲,網絡通信時用于協議編解碼的工具庫。它和XML或者JSON差不多,也就是把某種數據結構的信息,以某種格式(XML,JSON)保存起來,
      protobuf與XML和JSON不同在于,protobuf是基于二進制的。主要用于數據存儲、傳輸協議格式等場合。
      protobuf他的優勢是對于傳輸比較大的數據產生的數據很緊湊很小,可以明顯減小傳輸量。
      而且處理速度也比較快,又有各種編程語言的實現,例如C++,Java,PHP等等。
      缺點是不能明文編輯(數據是二進制的)。
      用protobuf rpc進行數據傳輸很方便,所以是一個不錯的選擇。google protobuf只負責消息的打包和解包,并不包含RPC的實現,所以需要自己實現。
      3.zeromq:消息隊列,一個穩健,簡潔的多進程通訊方案的基礎。ZeroMQ 并不是一個對socket的封裝,不能用它去實現已有的網絡協議。它有自己的模式,不同于更底層的點對點通訊模式。它有比 tcp 協議更高一級的協議。(當然 ZeroMQ 不一定基于 TCP 協議,它也可以用于進程間和進程內通訊。)它改變了通訊都基于一對一的連接這個假設。
      在這里它更適合服務器與服務器之間的通信,比如邏輯服和戰斗服之間進行通信。
      4.memcached:一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。
      可以用來做緩存,比如客戶端本來每次操作都需要操作數據庫,會嚴重影響效率,這時在中間加一層緩存系統,就提升了性能?;趆ttp協議的通信用memcached是一個不錯的選擇,如果是tcp長鏈接,直接維護一個在線的內存對象就可以了。
      類似的技術還有redis等。
      5.glog/zlog:你肯定需要記錄日志,看愛好嘍。
      6.tcmalloc:內存性能分析
      7.distcc:分布式編譯工具,之前每次修改代碼都要make半個小時,用distcc進行多臺電腦同時幫你編譯,快很多。
      CDN高防擁有超15年游戲運營經驗,全球50+ CN2頂級網絡,1300+個CDN節點資源,包括并不僅限于中國香港,美國,日本,韓國,新加坡,馬來西亞等10多個國家直接CN2高速專線接入。無條件免備案,提供智能化DDOS防護升級,負載均衡優化,數據庫集群服務及建議,高防CDN節點布局優化等一系列高品質服務,打造適合企業穩抓客戶布局全球的全能型游戲解決方案。詳詢CDN高防客服QQ:317197518 。
      本文tag: 游戲服務器 手機游戲服務器 手游服務器
      本文鏈接:http://www.salomontrails.com/news/881.html
      下一篇:手游服務器租用多少錢,手機游戲服務器價格表
      上一篇:租用游戲服務器需要注意哪些?

      相關推薦:

      隨機推薦:

      QQ:317197518

      電子郵箱:317197518@qq.com

      公司業務:我們提供海內外服務器租用,公司產品豐富:獨立服務器、虛擬主機、ADSL撥號、VPS云主機等,價格便宜,歡迎選購

      公司地址:重慶市渝北區賽迪路2號金山商業中心A座6F

      CDN高防:一家全國領先的真實硬防服務器的提供商
      Copyright 2018-2020 ? www.salomontrails.com All Rights Reserved.

      分享按鈕 国产亚洲人成在线视频网站
      <th id="ssz4z"></th>
    2. <th id="ssz4z"></th>