網絡遊戲核心技術與實戰 网络游戏核心技术与实战 (图灵程序设计丛书)

中嶋謙互

  • 出版商: 人民郵電出版社
  • 出版日期: 2014-04-01
  • 定價: $594
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 443
  • ISBN: 7115349355
  • ISBN-13: 9787115349354
  • 相關分類: 遊戲設計

立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

<內容簡介>

中嵨謙互編著的《網絡遊戲核心技術與實戰/圖靈程序設計叢書》從遊戲策劃與編程、系統架構、服務器運維、開發團隊管理等方面全景展現網絡遊戲核心技術。作者使用大量圖表,生動翔實地描述了網絡遊戲的特點和架構,並以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  本章小結
  專欄  網絡遊戲開發的成本