網絡游戲核心技術與實戰

網絡游戲核心技術與實戰
定價:594
NT $ 517
 

內容簡介

從游戲策划與編程、系統架構、服務器運維、開發團隊管理等方面全景展現網絡游戲核心技術。作者使用大量圖表,生動翔實地描述了網絡游戲的特點和架構,並以C/S MMO游戲和P2P MO游戲為例,通過實際代碼告訴開發者如何應對實時、大數據量通信的挑戰,在不使用昂貴的中間件的基礎上,從零開始實現趣味性強的多人網絡游戲系統。此外,《網絡游戲核心技術與實戰》還從游戲運營和基礎設施建設等角度,向讀者展現了網絡游戲技術的全貌。
 

目錄

第0章 [快速入門] 網絡游戲編程網絡和游戲編程的技術基礎
0.1 網絡游戲開發者所需了解的網絡編程基礎
0.1.1 網絡編程是必需的
0.1.2 網絡編程與互聯網編程
0.1.3 互聯網編程的歷史和思想
0.1.4 OSI參考模型——透明地處理標准和硬件的變化
0.1.5 網絡游戲系統及其層次結構
0.1.6 套接字API的基礎知識
0.1.7 網絡游戲和套接字API——使用第4層的套接字API
專欄 網絡編程的特性和游戲架構的關系
0.2 套接字編程入門——處理多個並發連接、追求性能
0.2.1 通信鏈路的確定(復習)
0.2.2 套接字API基礎——一個簡單的ECHO服務器、ECHO客戶端示例
0.2.3 TCP通信鏈路的狀態遷移和套接字API
0.2.4 處理多個並發連接——通向異步套接字API之路
0.2.5 同步調用(阻塞)和線程
0.2.6 單線程、非阻塞、事件驅動——使用select函數進行輪詢
0.2.7 網絡游戲輸入輸出的特點——單線程、事件驅動、非阻塞
0.2.8 網絡游戲和實現語言
0.2.9 充分發揮性能和提高開發效率——從實現語言到底層結構
0.2.10 發揮多核服務器的性能
專欄 輸入輸出的實現方針和未來提高性能的可能性
0.2.11 多核處理器與網絡吞吐量——網絡游戲與小數據包
0.2.12 簡化服務器實現——libevent
0.3 RPC指南——最簡單的通信中間件
0.3.1 通信庫的必要性
0.3.2 網絡游戲中使用的RPC的整體結構
0.3.3 [補充] UDP的使用
0.4 游戲編程基礎
0.4.1 游戲編程的歷史
0.4.2 采用「只要能畫點就能做出游戲」的方針來開發入侵者游戲
0.4.3 游戲編程的基本剖析
0.4.4 游戲編程精粹——不使用線程的「任務系統」
0.4.5 兩種編程方法的相似性——不使用線程
0.5 小結
專欄 確保開發效率和各平台之間的可移植性
第1章 網絡游戲的歷史和演化游戲進入了網絡世界
1.1 網絡游戲的技術歷史
1.1.1 網絡游戲出現前的50年
1.1.2 世紀50年代前:計算機誕生
1.1.3 世紀50年代:早期的電子游戲
1.1.4 世紀60年代:各種頗具影響的機器登上歷史舞台
1.1.5 世紀70年代:網絡游戲的基本要素
1.1.6 世紀80年代:網絡對戰游戲登場
1.1.7 世紀90年代:游戲市場擴大
1.1.8 本世紀前10年的前期:網絡游戲商業化
1.1.9 本世紀前10年的後半期:基於Web瀏覽器的MMOG在商業上獲得成功
1.1.10 年之後:究竟會出現怎麽樣的游戲呢?
1.2 從技術變遷看游戲文化和經濟圈
1.2.1 解讀技術發展圖
1.2.2 個圈(三大范疇)
1.2.3 兩個游戲經濟/文化圈
1.2.4 文化、經濟與技術的關系
1.3 小結
專欄 成為出色的網絡游戲開發程序員的條件
第2章 何為網絡游戲網絡游戲面面觀
2.1 網絡游戲術語的定義
網絡游戲的4個層面
2.2 網絡游戲的物理層面
2.2.1 物理構成要素
2.2.2 物理模式/物理上的網絡構成
2.3 網絡游戲的概念層面
2.3.1 網絡游戲及其基本結構
2.3.2 游戲進行空間——進行游戲時所需的所有信息
2.3.3 游戲的進展——游戲進行空間的變化
2.3.4 共享相同的游戲進展
2.4 網絡游戲的商業層面
2.4.1 商業層面的要求
2.4.2 有效地招募測試玩家——網絡游戲與測試
2.4.3 不斷更新——網絡游戲的運營和更新
2.4.4 節約服務器數量和帶寬——網絡游戲開支的特殊性
2.4.5 從小規模開始,確保可擴展性—— 將風險降到最低,不要錯過取勝的機會
2.4.6 提供多種收費方式——收費結算方式的變化
2.4.7 低價、快速地根除攻擊者——攻擊、非法行為及其對策
2.4.8 減少服務器停止的次數和時間——不要讓玩家失望
2.4.9 反饋游戲結果——日志分析和結果的可視化
2.4.10 更容易地與其他玩家相遇——玩家匹配
2.5 網絡游戲的人員和組織
2.5.1 與網絡游戲服務的運營相關的人員
2.5.2 網絡游戲服務運營的3項專門職責
2.5.3 開發團隊
2.5.4 運維團隊
2.6 網絡游戲程序員所需的知識
2.6.1 網絡游戲程序員所需的技術和經驗
2.6.2 各種網絡游戲開發知識
2.7 支持網絡游戲的技術的大類
支持網絡游戲的技術的4種形式
2.8 影響開發成本的技術要素
2.8.1 網絡游戲與如今的開發技術
2.8.2 支持網絡游戲主體的3大核心
2.9 小結
專欄 網絡游戲編程的最大難點
第3章 網絡游戲的架構挑戰游戲的可玩性和技術限制
3.1 游戲編程的特性——保持快速響應
3.1.1 響應速度的重要性——時間總是不夠的
3.1.2 將數據存放在內存中的理由——游戲編程真的有三大痛苦嗎
3.1.3 A 每16毫秒變化一次——處理的信息及其大小
3.1.4 B 大量對象的顯示——CPU的處理能力
3.1.5 C 無法預測玩家的操作——游戲狀態千變萬化
3.1.6 必須將游戲數據放在CPU所在的機器上
3.2 網絡游戲特有的要素
3.2.1 通信延遲——延遲對游戲內容的限制
3.2.2 帶寬——傳輸量的標准
3.2.3 服務器——成本、服務器數量的估算
3.2.4 安全性——網絡游戲的弱點
3.2.5 輔助系統(相關系統)
3.3 物理架構詳解——C/S架構、P2P架構
3.3.1 基本的網絡拓撲結構
3.3.2 物理架構的種類
3.3.3 C/S架構——純服務器型、反射型
3.3.4 P2P架構
3.3.5 C/S+P2P混合型架構
3.3.6 ad-hoc模式
專欄 游戲客戶端是什麽
3.4 邏輯架構詳解——MO架構
3.4.1 MO、MMO是什麽?——同時在線數的區別
3.4.2 MO架構、MOG
3.4.3 同步方式——獲得全體玩家的信息後,游戲才能繼續
3.4.4 同步方式/全網狀結構的實現——所有終端都擁有主數據
3.4.5 同步方式/星型結構——暫時將輸入信息集中到服務器上
3.4.6 異步方式——接受各終端上游戲狀態的不一致
3.4.7 三大基本要素:自己、對手、環境——異步實現的指導方針
3.4.8 A 自己和對手——對戰游戲和玩家之間往來數據的抽象程度
3.4.9 保持結果一致性的方法——兩種覆蓋方式
3.4.10 B 自己和環境——可使用物品的格斗游戲和互斥控制
3.4.11 互斥控制的實現——采用與同步方式類似的機制來實現異步方式
3.4.12 狀態會自動變化的環境——靜態環境和動態環境
3.4.13 C 對手和環境的關系
3.5 邏輯架構詳解——MMO架構
3.5.1 MMO架構、MMOG——在大量玩家之間共享長期存在的游戲過程
3.5.2 MMOG的結構
3.5.3 大型多人網絡游戲(MMO)
3.6 小結
專欄 設法改善網頁游戲的畫面顯示間隔
第4章 [實踐] C/S MMO游戲開發長期運行的游戲服務器
4.1 網絡游戲開發的基本流程
4.1.1 項目文檔/交付物
4.1.2 開發的進行和文檔准備的流程
4.1.3 技術人員的文檔/交付物
4.2 C/S MMO游戲的發展趨勢和對策
4.2.1 C/S MMO游戲的特點
4.2.2 C/S MMO架構(MMO架構)特有的游戲內容
4.3 策划文檔和5種設計文檔——從虛構游戲K Online的開發中學習
4.3.1 考慮示例游戲的題材
4.3.2 詳細設計文檔
4.3.3 MMOG龐大的游戲設定
4.3.4 種設計文檔
4.3.5 設計上的重要判斷
4.4 系統基本結構圖的制定
4.4.1 系統基本結構圖的基礎
4.4.2 服務器必須具有可擴展性——商業模式的確認
4.4.3 各種瓶頸——擴展方式的選擇
專欄 MMO客戶端特有的渲染性能瓶頸
4.4.4 解決游戲服務器/數據庫的瓶頸
4.4.5 什麽都不做的情況(1台服務器負責整個游戲世界)
4.4.6 空間分割法——解決游戲服務器的瓶頸
4.4.7 實例法——解決游戲服務器的瓶頸
4.4.8 平行世界方式——解決數據庫瓶頸
4.4.9 同時采用多種方法——應對越來越多的玩家
4.4.10 各種方式的引入難度
4.4.11 各個世界中數據庫(游戲數據庫)服務器的絕對性能的提高
4.4.12 K Online的設計估算——首先從同時在線數開始
4.4.13 根據游戲邏輯的處理成本來估算——敵人的行動算法需要消耗多少CPU
4.1.14 根據游戲數據庫的處理負荷進行估算——找到「角色數據的保存頻率」與「數據庫負荷」的關系
4.4.15 可擴展性的最低討論結果,追求進一步的用戶體驗
4.4.16 服務器的基本結構,制定系統基本結構圖
4.5 進程關系圖的制定
4.5.1 進程關系圖的准備
4.5.2 服務器連接的結構——只用空間分割法
4.5.3 服務器連接的結構——使用平行世界方式和空間分割法
4.5.4 使用平行世界方式進行擴展的關鍵點
4.6 帶寬/服務器資源估算文檔的制定
4.6.1 以進程列表為基礎估算服務器資源
4.6.2 以CPU為中心的服務器和以存儲為中心的服務器
4.6.3 服務器資源的成本估算——首先從初期費用開始
4.6.4 帶寬成本的估算
4.6.5 帶寬減半的方針——首先是調整策划,然後在程序上下功夫
4.6.6 策划內容的分析對帶寬的降低很有效
4.7 協議定義文檔的制定——協議的基本性質
4.7.1 協議定義文檔基礎
4.7.2 「協議的基本性質」的要點
4.7.3 協議的種類、以及進程之間關系的種類
4.7.4 種類型的協議
4.7.5 C/S MMO采用TCP
4.7.6 與「協議的基本性質」的對應
4.8 協議定義文檔——協議的API規范(概要)
4.8.1 協議的實現原則
4.8.2 種協議的功能/形式概述
4.9 協議定義文檔——協議的API規范(詳細)
4.9.1 協議API規范(詳細)的制定
4.9.2 API的函數定義
4.9.3 常量定義
4.9.4 API的調用時序
4.9.5 時序圖制定的要點
4.10 協議定義文檔——數據包的格式
4.10.1 C/S MMO主要采用TCP(復習)
4.10.2 C/S MMO使用包含專用字節數組的二進制協議
4.10.3 二進制協議的實現——首先從術語的整理開始
專欄 C/S MMO的壓縮和加密
4.11 數據庫設計圖
4.11.1 要在編程之前進行對重要的表進行設計
4.11.2 C/S MMO中的數據庫實現的歷史變遷
4.11.3 整理K Online所需的表
專欄 百花繚亂的KVS
4.11.4 數據庫性能預測
4.12 服務器/客戶端軟件+中間件——實踐中不可或缺的開發基礎
4.12.1 網絡游戲的中間件
4.12.2 開發的基礎軟件——可以立刻嘗試的C/S MMO開發體驗
4.13 程序開發中的基本原則
4.13.1 如何開始編程、如何繼續編程
4.13.2 數據結構優先原則——基本原則
4.13.3 實現數據結構之前的討論——出現在畫面上和不出現在畫面上的元素
4.13.4 維持可玩狀態的原則——基本原則
4.13.5 後端服務器的延後原則——基本原則
4.13.6 持續測定的原則——基本原則
4.14 C/S MMO游戲K Online的實現——編程開始!
4.14.1 開發的安排
4.14.2 K Online中的分工計划
4.14.3 K Online中「框架階段」和「原型階段」的區別
4.14.4 [步驟1~2] 框架~原型階段
專欄 每一步的進度管理形式
4.14.5 「不實際運行起來是不會理解的!」——游戲開發的特殊性
專欄 C/C++以外的語言
4.14.6 框架的整體結構
專欄 VCE是什麽
4.14.7 以怎樣的順序來編寫代碼
4.14.8 首先編寫協議定義文件k.xml——開發流程
4.14.9 協議定義的要點
4.14.10 通信連通確認:ping函數
4.14.11 賬戶登錄和賬戶認證:signup函數、authentication函數
4.14.12 角色創建:createCharacter函數
4.14.13 登錄:login函數
4.14.14 在地面上移動:move函數、moveNotify
4.14.15 編寫gmsv/Makefile——開發流程
4.14.16 從示例中復制gmsv/climain.cpp和gmsvmain.cpp——開發流程
專欄 dbsv服務器代碼的自動生成
4.14.17 自動測試客戶端autocli的實現——開發流程
專欄 gmsv中線程的使用
4.14.18 圖形客戶端cli的創建和運行確認——開發流程
4.14.19 框架之後的開發——開發流程、後續事項
4.15 總結
第5章 [實踐] P2P MO游戲開發
沒有專用服務器的動作類游戲的實現
5.1 P2P MO游戲的特點和開發策略
5.1.1 P2P MO和動作類游戲——游戲的狀態頻繁發生改變
5.1.2 RPC和共享內存
5.1.3 P2P MO游戲的特點——和c/s MMO游戲的比較和難點
5.1.4 P2P MO游戲的優點
5.1.5 從概要設計開始考慮[多人游戲模式]
5.2 J Multiplayer游戲開發案例的學習——和K Online的不同
5.2.1 J Multiplayer——和K Online的比較
5.2.2 P2P MO游戲開發的基本流程
5.2.3 P2P MO游戲開發的交付產品——開發各個階段需要提交的資料
5.2.4 和C/S MMO的數據量/規模的比較
5.3 P2P MO游戲的設計資料
5.3.1 系統基本結構圖
5.3.2 進程關系圖
5.3.3 帶寬/服務器資源計算資料
5.3.4 通信協議定義資料和API 規格
專欄 什麽是「游戲邏輯」
5.3.5 帶寬消耗量的估算
5.3.6 其他資料
5.4 客戶端/服務器軟件+中間件、基本原則
5.4.1 P2P MO開發的最終交付產品
5.4.2 P2P MO中使用的中間件
5.4.3 編程時應該注意的基本原則——針對P2P MO游戲
5.5 P2P MO游戲J Multiplayer的實現——正式開始編程
5.5.1 J Multiplayer的編程計划
5.5.2 開發流程——K Online的回顧
5.5.3 J Multiplayer開發階段——開發順序和內容
5.5.4第1階段的要點
5.5.5 客戶端程序的開發案例
5.5.6 「共享內存方式」的實現——開始編碼
5.5.7 P2P MO游戲開發中該如何防止發生競爭狀態
5.5.8 共享內存開發方式該如何編碼——共享內存開發方式和RPC開發方式的比較
5.5.9 SyncValue類
專欄 數據中心的地理位置分布
5.6 支持C/S MO游戲的技術[補充]
5.6.1 C/S MO和NAT問題
5.6.2 什麽是NAT問題
5.6.3 NAT遍歷——解決NAT問題建立通信路徑的技術
5.6.4 NAT問題的實際解決方法
5.6.5 中繼服務器
5.6.6 中繼服務器的折衷方案
5.7 總結
第6章 網絡游戲的輔助系統完善游戲服務的必要機制
6.1 輔助系統需要的各種功能
6.1.1 現有服務提供的輔助系統功能
6.1.2 現有服務的功能一覽
6.1.3 網頁游戲開發方法和客戶端游戲的開發方法
6.2 交流/ 通信功能
6.2.1 玩家匹配P2P MO
6.2.2 游戲大廳P2P MO
6.2.3 中繼服務器P2P MO
6.2.4 聊天P2P MO C/S MMO
6.2.5 郵件P2P MO C/S MMO
6.2.6 好友列表P2P MO C/S MMO
6.2.7 玩家狀態P2P MO C/S MMO
6.2.8 加鎖服務器P2P MO C/S MMO
6.2.9 黑名單P2P MO C/S MMO
6.2.10 語音聊天P2P MO C/S MMO
6.3 游戲客戶端實現相關的輔助系統
6.3.1 玩家成績管理P2P MO C/S MMO
6.3.2 存儲功能P2P MO
6.3.3 (游戲客戶端)更新P2P MO C/S MMO
6.3.4 排行榜P2P MO C/S MMO
6.4 運營輔助系統
新聞發布P2P MO C/S MMO
6.5 付費相關的輔助系統
6.5.1 付費認證P2P MO C/S MMO
6.5.2 虛擬貨幣管理P2P MO C/S MMO
專欄 C/S MMO游戲的收入
6.6 其他輔助功能
6.6.1 游戲數據瀏覽/查詢工具P2P MO C/S MMO
6.6.2 敏感詞過濾P2P MO C/S MMO
6.7 本章小結
第7章 支持網絡游戲運營的基礎設施架構、負荷測試和運營
7.1 基礎設施架構的基礎知識
7.1.1 C/S MMO和P2P MO的基礎設施(概要)
7.1.2 基礎設施架構需要進行的工作——從開發整體來看
7.1.3 基礎設施的成本估算
7.1.4 成本的概念、單位
7.1.5 網絡游戲服務器在一定程度上可以接收的條件
7.1.6 硬件、信息設備
7.1.7 軟件
7.1.8 數據中心相關的成本
7.1.9 服務費(數據中心以外)
7.1.10 網絡帶寬費
7.1.11 電費
7.2 開發者需要知道的基礎設施架構技巧
7.2.1 服務規模的擴大/縮小——用戶數和需要的基礎設施規模
7.2.2 典型的環境
7.2.3 負荷曲線
7.2.4 面向開發者的基礎設施架構要點
7.2.5 服務器部署
7.2.6 登台環境
7.2.7 服務器的監控、生死監控
7.2.8 日志輸出/管理
7.3 K Online 、J Multiplayer游戲的基礎設施架構
7.3.1 K Online的基礎設施
7.3.2 J Multiplayer的基礎設施
7.4 負荷測試
7.4.1 負荷測試的准備
7.4.2 K Online在生產環境的負荷測試
7.4.3 負荷測試時使用的服務器監控命令
7.4.4 J Multiplayer在生產環境下的負荷測試
7.5 游戲上線
7.5.1 游戲上線前——從確認安全設定開始
7.5.2 游戲上線後——系統監控
7.5.3 服務器的組群化
7.5.4 故障發生時的應對
7.6 本章小結
第8章 網絡游戲的開發體制團隊管理的挑戰
8.1 游戲的策划內容和開發團隊 網絡游戲特有的挑戰
8.1.1 游戲的策划內容是團隊管理的關鍵
8.1.2 游戲數據的持久化
8.1.3 游戲中玩家之間的關系
8.1.4 游戲結果的共享范圍
8.1.5 聊天系統的內容
8.1.6 維護和升級的計划
8.1.7 代碼規模——如果需要迭代的代碼過多就會遇到問題
8.2 網絡游戲開發團隊的實際情況——和一般軟件開發相同的地方
8.2.1 工作分配
8.2.2 持續提升網絡游戲程序員技能的方法
8.2.3 項目管理術——游戲開發和Scrum
8.2.4 開發環境的選擇
8.2.5 項目的移交——理所當然的事情也需要仔細歸納總結
8.3 本章小結
專欄 網絡游戲開發的成本
網路書店 類別 折扣 價格
  1. 新書
    87
    $517