什麼是遊戲伺服器
遊戲伺服器是遊戲用戶端用來玩多人遊戲的本地或遠端伺服器。大多數通過
什麼是遊戲用戶端?
遊戲用戶端是連接配接到遊戲伺服器的軟體程式。伺服器提供連接配接并向用戶端發送資訊包。許多用戶端可以同時連接配接到伺服器,并将保持對遊戲世界的概覽。每個客戶都有自己獨特的視訊遊戲世界視角。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iY4E2N0YzNkhDNxMzLcFTMyIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
大多數客戶是遊戲用戶端-伺服器架構和點對點的混合體。
視訊遊戲是為娛樂而建立的計算機程式,基于一個或多個人與執行視訊遊戲的電子裝置之間的互動,該電子裝置可以是計算機、街機系統、遊戲機、手持裝置或移動裝置電話。
在許多情況下,視訊遊戲會重制虛拟環境和情境,玩家可以在其中控制一個或多個角色(或該環境的任何其他元素),以通過某些規則實作一個或多個目标。
通過電視、PC 顯示器或投影儀等視訊輸出裝置觀看遊戲進行互動,其中節目記錄在錄音帶、CD光牒、磁盤、存儲卡、特殊遊戲或線上上。
玩家通過鍵盤和滑鼠、遊戲搖桿、操縱杆甚至運動感應裝置等外部裝置與遊戲互動。遊戲在一個人與機器或
遊戲分為幾類,最具代表性的有:動作類、角色類、政策類、模拟類(種類繁多)、運動類和冒險類。通過最新的遊戲引擎技術和0年代後期特别受歡迎,盡管一些專業球隊将他們的名字借給了他們運動的這些視訊版本。
專門銷售視訊遊戲的機構是全球休閑行業的經典之作。90 年代初推出的 16 位系統顯着提高了視訊遊戲的普及率。随後使用 CD-ROM,因為它的容量比錄音帶更大,因為它們已經達到了技術極限,然後批量生産更便宜。目前系統使用大容量DVD,由于價格高、藍光、容量大,使用頻率不高。目前,使用高清電視和電信線路傳輸此類視訊遊戲有助于進一步提高其遊戲水準和逼真度。
遊戲伺服器托管
遊戲伺服器提供商是租用遊戲伺服器的公司。遊戲部落通常會為您玩的遊戲租用一台或多台伺服器,成員會幫助支付租金。遊戲伺服器提供商經常提供工具來控制和配置Web 伺服器
專用遊戲伺服器
大多數遊戲都使用專用的伺服器應用程式。該程式跟蹤玩家并将其分發給其他玩家。這比點對點更高效,但需要一台單獨的計算機來托管伺服器應用程式。這台額外的計算機是伺服器。
網絡帶寬,帶寬的上升往往是托管遊戲伺服器時的主要限制因素。具有家庭帶寬的
遊戲伺服器類型
遊戲伺服器可分為監聽伺服器和專用伺服器。在伺服器上監聽,伺服器與遊戲用戶端在相同的過程中運作,允許玩家同時托管和參與遊戲。但是當關閉用戶端時,伺服器也會這樣做。
Listen 伺服器主要由個人操作,最常見的是 LAN 方而不是 Internet,并且由于在一台機器上運作的伺服器和用戶端需要大量的處理要求和帶寬,是以通常隻有少數玩家。
專用伺服器是獨立于用戶端運作的伺服器。這些伺服器可以由個人操作,但通常在位于資料進行中心的專用計算機上操作,這些計算機可以提供更高的帶寬和專用的處理能力。
專用伺服器是大多數營運的專用伺服器上運作,允許他們控制和更新内容。在許多情況下,它在叢集中工作以允許巨大的環境和大量的玩家。
從遊戲玩家之間的互動形态出發
單機遊戲:一個人在機器上玩。
聯網遊戲:同時玩的範圍比較小,比如8-10個人。
網絡遊戲:在遠端有許多機器跑一個很大的系統,可以有幾千幾萬幾十萬甚至更多的玩家連進來一起玩。
2,遊戲服務是網際網路服務的一種
常見的其他網際網路服務有:搜尋、電商、即時通訊、郵件、視訊等
3,遊戲服務的基本職能有哪些?
網絡連接配接和資料收發:TCP收包打包分包。
資料存取
邏輯計算
狀态保持:上下文、内部驅動等等。
4,遊戲伺服器:嚴格說是一個硬體概念
常見種類:機架式伺服器,刀片機,小型機。
會根據遊戲類型或運作程式的不同,在CPU/記憶體/硬碟上有所側重。
5,遊戲伺服器開發
從遊戲互動形态,看遊戲開發分工
遊戲背景開發==遊戲伺服器開發
6,“遊戲伺服器”到底指什麼?
承載遊戲服務的硬體;
提供遊戲服務的軟體;
開發遊戲服務的程式員。
二、遊戲服務的特點及應對
1,遊戲服務要解決的核心問題
滿足海量遊戲使用者的穩定和高品質的服務需求
海量
穩定
高品質
2,遊戲服務與其他網際網路服務的差別?
延遲敏感
實時互動遊戲一般需要網絡延遲在300ms以内才能保證體驗。
實時的高強度互動
單個終端高頻發送請求;
單次請求引發多處資料改變;
業務邏輯複雜,内部耦合度高
[延遲敏感+高強度互動]同時作用下,[狀态維護]往往成為必需;
複雜遊戲服務的實作代碼,可達百萬行量級。
變更頻度高,幅度大、變更幅度,包含内容和邏輯。
系統層面
(1)對作業系統基礎知識的了解
處理器管理
程序管理
線程排程
記憶體管理
IO管理
權限管理
(2)對Linux作業系統的了解
- 核心
- 使用者管理
- 檔案系統
- 程序、線程
- 程序間通信
- 網絡
- 信号處理
- 權限等
3,開發工具
- 對編譯器gcc的了解
- 對調試器gdb的了解
- 對文檔工具ar的了解
- 對autotools的了解
- 對Makefile的了解
- 對性能分析工具的了解
- 對記憶體洩露調試工具的了解
- 對samba檔案共享的了解
- 對版本管理工具(cvs/svn/cc)的了解
4,語言
(1)選擇程式設計語言的幾個因素
- 業務複雜度
- 執行效率VS開發效率
- 開發人員和團隊能力
(2)C/C++技能要求
- 對C/C++的文法非常了解
- 對Ansi C庫函數非常了解
- 對指針有正确而且牢固的認識
- 對STL庫非常了解
- 對C/C++語言的記憶體配置設定機制非常了解
- 對第三方架構的了解(如ACE/ICE等)
5,腳本語言
(1)Shell腳本
- Linux下的程式開發,學會使用shell腳本會大大的提高工作效率;
- 一些工作适合用shell來完成,開發效率更快;
- shell腳本常常被用來做一些內建的工作。
(2)程式内嵌腳本語言
- 了解腳本(解釋性語言)的優缺點;
- 腳本在遊戲開發中的适用範圍;
- Lua/Python/自定義腳本。
6,軟體設計技巧
(1)化繁為簡的重要途徑:區分“變化性”是其中的關鍵。
(2)設計原則 - SOLID
- 單一責任原則
- 開發-封閉原則
- 裡氏替換原則
- 依賴倒置原則
- 接口分離原則
(3)設計模式:可以視為設計原則的應用。
7,Linux下的常用工具
- 系統管理工具:ipcs/ps/top/...
- 檔案系統工具:ls/find/where/which/locate...
- 檔案處理工具:sed/grep/...
- 性能檢測工具:iostat/memstat...
- SSH工具:ssh/ssh2/sshd/ssh2d/scp/...
(1)關系資料庫
- 對資料庫原理的了解
- 常見DBMS:mysql:了解mysql的安裝和簡單管理;性能調優的房;指派;備份和恢複。
- 對SQL語言的了解及使用
- 對資料庫表結構設計的了解
(2)NoSQL
- KV型的資料存儲方式
- CAP & BASE
- Redis/MongoDB
(3)檔案
- 了解TCP/UDP協定
- 了解HTTP協定
- 底層網絡程式設計接口:BSD SOCKET
- 網絡多路處理機制:signal/select/poll/epoll/...
- C10K ~ C1000K
- Google Protobuf