作者:(美)亞曆山大 編,史曉明
出版社:人民郵電出版社
出版日期:2006-12-1
ISBN
7115152675
字數:627000
印次:1
版次:1
紙張:膠版紙

內容提要
本書是一本系統介紹MMP(大型多人,Massively Multiplayer)在線遊戲開發知識的文集,彙集業內最優秀的遊戲開發人員智慧的精華。本書不僅從MMP遊戲的角度對客戶端技術進行了討論,還深入剖析了MMP遊戲設計、架構、服務端開發、數據庫技術以及MMP遊戲核心系統等特定于MMP遊戲的知識。對于廣大MMP遊戲開發人員來說,本書是不可多得的參考資料。

目錄
1章 MMP設計技術
1.1
 《卡通城在線》:面向大衆的大型多人遊戲 Mike Goslin 2
1.1.1
 遊戲設計問題 2
1.1.2
 社會性問題 10
1.1.3
 總結 13
1.2
 每個人都需要某個人:怎樣讓在線遊戲玩家進行合作 Derek Sanderson 15
1.2.1
 玩家不會進行合作,除非他們必須合作 16
1.2.2
 角色扮演是主流:玩家間的合作在玩家可以提供獨特的功能時最爲有效 17
1.2.3
 提供功能:預先定義還是通過能力定義 17
1.2.4
 爲遊戲角色提供挑戰 18
1.2.5
 保持功能的完整性 19
1.2.6
 幫助玩家彼此找到對方 20
1.2.7
 幫助玩家進行交流 21
1.2.8
 總結 21
1.2.9
 參考文獻 22
1.3
 MMP遊戲中的遊戲平衡 Ben Hanson 23
1.3.1
 爲遊戲中的數值建立基線(baseline) 23
1.3.2
 爲數值編寫模擬程序 24
1.3.3
 建立遊戲中的度量(Metric) 26
1.3.4
 內部和外部測試 26
1.3.5
 在發布後對遊戲進行平衡 27
1.3.6
 對新功能進行平衡 28
1.3.7
 總結 28
1.4
 使用支付矩陣來設計遊戲平衡和AI John M. Olsen 29
1.4.1
 什麽是支付矩陣? 29
1.4.2
 “War”紙牌遊戲 30
1.4.3
 囚徒困境(Prisoner's Dilemma) 31
1.4.4
 簡單的格鬥遊戲 31
1.4.5
 不對稱的能力 33
1.4.6
 延遲和停止 34
1.4.7
 自動化 34
1.4.8
 總結 36
1.4.9
 參考文獻 37
1.5
 使用用例來描述遊戲行爲 Matthew Walker 38
1.5.1
 什麽是用例? 38
1.5.2
 爲什麽要使用用例來開發MMP遊戲? 38
1.5.3
 怎樣編寫用例? 39
1.5.4
 如何識別用例? 39
1.5.5
 用例中的元素:一個標准模版 40
1.5.6
 漂亮的圖表 45
1.5.7
 開始實現 46
1.5.8
 用例的指導方針 50
1.5.9
 總結 54
1.5.10
 參考文獻 54
1.6
 使用生命值來設計轉換因子 John M. Olsen 55
1.6.1
 武器的價值 55
1.6.2
 治療、防具和減輕傷害 58
1.6.3
 從NPC獲得的戰利品 59
1.6.4
 制造業 60
1.6.5
 無關物品 61
1.6.6
 檢驗 61
1.6.7
 總結 61
1.7
 在MMP遊戲設計中加入故事情節 Paul McInnes 62
1.7.1
 爲了一個更有意義的MMP 62
1.7.2
 遊戲與故事情節:尴尬的結合 63
1.7.3
 故事情節在計算機遊戲中的功能 63
1.7.4
 挑戰更多的認知能力 64
1.7.5
 使用有意義行動的最佳場所 65
1.7.6
 爲MMP遊戲模式加入故事情節 66
1.7.7
 公共目標 68
1.7.8
 總結 69
1.7.9
 參考文獻 69
1.8
 客戶服務和玩家聲望:一切都和信任有關 Paul D. Sage 70
1.8.1
 搗亂(grief) 70
1.8.2
 規則只是工具 71
1.8.3
 意圖 72
1.8.4
 當前的服務部門正在這樣做,或許他們還沒有意識到 72
1.8.5
 聲望 73
1.8.6
 正當行爲 73
1.8.7
 惡意行爲 74
1.8.8
 多樣性導致了所有的差異 75
1.8.9
 當前使用的行爲模式跟蹤方法 75
1.8.10
 更多的問題 76
1.8.11
 使用聲望 76
1.8.12
 總結 76

2章 MMP體系結構
2.1
 爲MMP遊戲制作仿真框架,第一部分:結構建模 Thor Alexander 80
2.1.1
 體系結構縱覽 80
2.1.2
 支持類 81
2.1.3
 核心類 83
2.1.4
 管理器類和工廠類 87
2.1.5
 仿真類 88
2.1.6
 總結 89
2.1.7
 參考文獻 89
2.2
 爲MMP遊戲制作仿真框架,第二部分:行爲建模 Thor Alexander 90
2.2.1
 把用戶和行動者關聯起來 90
2.2.2
 動作請求 90
2.2.3
 動作調度 92
2.2.4
 事件廣播和處理 92
2.2.5
 服務端事件處理 93
2.2.6
 客戶端事件處理 94
2.2.7
 客戶端代理 94
2.2.8
 仿真與表示分離 95
2.2.9
 總結 96
2.3
 爲遊戲腳本創建一個“安全沙盤” Matthew Walker 97
2.3.1
 腳本語言與MMP開發 97
2.3.2
 使用沙盤的理由 98
2.3.3
 安全沙盤的設計 99
2.3.4
 在安全沙盤中編寫遊戲代碼 106
2.3.5
 總結 108
2.3.6
 參考文獻 108
2.4
 大型多人遊戲中的單元測試 Matthew Walker 110
2.4.1
 爲什麽MMP遊戲需要單元測試 110
2.4.2
 單元測試的定義 111
2.4.3
 單元測試框架 114
2.4.4
 測試先行的設計 117
2.4.5
 實用因素 118
2.4.6
 總結 121
2.4.7
 參考文獻 121
2.5
 使用Twisted框架進行MMP服務整合 Glyph Lefkowitz 123
2.5.1
 DIY(Do It Yourself)所帶來的問題 124
2.5.2
 付費找別人來做帶來的問題 124
2.5.3
 問題小結 125
2.5.4
 構造一個解決方案 125
2.5.5
 簡介:通用的延遲執行機制 125
2.5.6
 高層網絡服務:全景代理 127
2.5.7
 基于Web的工具 135
2.5.8
 整合獨立對象 137
2.5.9
 底層整合:協議與網絡 139
2.5.10
 開發社區 141
2.5.11
 總結 141
2.5.12
 參考文獻 142
2.6
 Beyond 2:構建虛擬世界的開源平台 Jason Asbahr 143
2.6.1
 縱覽 143
2.6.2
 服務端架構 144
2.6.3
 客戶端架構 146
2.6.4
 仿真模型 146
2.6.5
 總結 148
2.6.6
 參考文獻 149
2.7
 使用並行狀態機來創建可信的角色 Thor Alexander 150
2.7.1
 狀態模式(State Pattern) 151
2.7.2
 並行(Parallel)狀態層 152
2.7.3
 狀態管理器 158
2.7.4
 跨層阻止(Cross-Layer Blocking) 159
2.7.5
 總結 160
2.7.6
 參考文獻 160
2.8
 在MMP服務中使用觀察者/可觀察者設計模式 Javier F. Otaegui 161
2.8.1
 觀察者/可觀察者設計模式 161
2.8.2
 基本架構 162
2.8.3
 服務端架構 162
2.8.4
 客戶端架構 166
2.8.5
 增強 170
2.8.6
 總結 171
2.8.7
 參考文獻 171

3章 服務端開發
3.1
 無縫服務器:優點和缺點 Jason Beardsley 174
3.1.1
 殺死怪物不止一個方法 174
3.1.2
 無縫世界模式的原型 176
3.1.3
 無縫世界模式的優點 178
3.1.4
 無縫世界的缺點 179
3.1.5
 總結 184
3.2
 服務端對象的更新頻率 John M. Olsen 186
3.2.1
 視覺連貫性與精確度 186
3.2.2
 需要發送哪些數據 187
3.2.3
 帶寬限制 187
3.2.4
 每個用戶在服務端需要的數據 188
3.2.5
 管理數據大小 188
3.2.6
 更新隊列 189
3.2.7
 缺省的更新頻率 190
3.2.8
 計算範圍 190
3.2.9
 調整優先級 190
3.2.10
 調整隊列 191
3.2.11
 總結 192
3.3
 MMP服務器開發和維護 William Dalton 193
3.3.1
 基本問題 193
3.3.2
 對複雜度進行管理 196
3.3.3
 總結 199
3.4
 小型入口:使用手持設備來接入MMP遊戲世界 David Fox 200
3.4.1
 無線設備和網絡 200
3.4.2
 J2ME 201
3.4.3
 BREW(二進制的無線運行時環境) 202
3.4.4
 無線界面和遊戲設計總覽 202
3.4.5
 對象設計 203
3.4.6
 網絡設計:使用代理服務器 208
3.4.7
 總結 208
3.4.8
 參考文獻 208
3.5
 使用Python進行精確的遊戲事件廣播 Matthew Walker 209
3.5.1
 事件驅動編程 209
3.5.2
 延遲調用 211
3.5.3
 事件廣播 215
3.5.4
 精確的事件廣播 220
3.5.5
 總結 226
3.5.6
 參考文獻 226
3.6
 在MMP遊戲中實現移動和物理模塊的注意事項 Jay Lee 228
3.6.1
 我們可以發布這個遊戲了嗎? 228
3.6.2
 這是一場戰爭 229
3.6.3
 服務端永遠是對的 229
3.6.4
 移動的代價 230
3.6.5
 移動速度 232
3.6.6
 玩家可以從這裏到那裏嗎? 232
3.6.7
 碰撞檢測 234
3.6.8
 物品放置 236
3.6.9
 侵入檢測(Hack Detection) 237
3.6.10
 總結 238
3.6.11
 參考文獻 238

4章 客戶端開發
4.1
 客戶端移動預測 Mark Brockington 240
4.1.1
 遊戲的開發需要良好的移動預測 240
4.1.2
 命令時間同步 241
4.1.3
 合並路點 242
4.1.4
 插值和推導 244
4.1.5
 爲瞄准延遲使用反向仿真 246
4.1.6
 總結 247
4.1.7
 參考文獻 247
4.2
 保持流暢:異步客戶和時空穿梭 Jay Patterson 249
4.2.1
 共享狀態的基本問題 250
4.2.2
 航位推測法:時空探索者會做得更好 251
4.2.3
 仿真時間表示:爲時空穿梭建立通道 252
4.2.4
 直接操縱時間 253
4.2.5
 總結 255
4.2.6
 參考文獻 256
4.3
 使用程序生成遊戲世界:避免數據激增 Sean O'Neil 257
4.3.1
 運行時生成的優點 257
4.3.2
 運行時生成的缺點 258
4.3.3
 地形生成算法的分類 259
4.3.4
 修改程序生成的地形 261
4.3.5
 高效地渲染程序生成的地形 264
4.3.6
 生成貼圖 266
4.3.7
 在程序生成的地形進行碰撞檢測 267
4.3.8
 大型遊戲世界中的比例問題 267
4.3.9
 總結 270
4.3.10
 參考文獻 270
4.4
 爲固定大小的對象編寫一個高速有效的分配器 Tom Gambill 272
4.4.1
 C++中的內存分配 272
4.4.2
 一個簡單的向量分配器 273
4.4.3
 用戶友好的分配器模板 275
4.4.4
 降低分配器的內存開銷 277
4.4.5
 總結 279
4.5
 使用貼圖定制三維角色 Todd Hayes 280
4.5.1
 角色定制的類型 280
4.5.2
 貼圖合成簡介 282
4.5.3
 分層 283
4.5.4
 貼圖定制模版和樣本 284
4.5.5
 樣本集合 285
4.5.6
 總體實現 286
4.5.7
 對定制系統的進一步改進 288
4.5.8
 系統的局限性 289
4.5.9
 總結 289
4.6
 遊戲機平台上MMP遊戲的獨特挑戰 John M. Olsen 290
4.6.1
 環境 290
4.6.2
 登錄 291
4.6.3
 分辨率 291
4.6.4
 聊天頻道 291
4.6.5
 選擇目標 293
4.6.6
 菜單 293
4.6.7
 背囊管理和交易 294
4.6.8
 持久化存儲空間的問題 295
4.6.9
 補充界面 295
4.6.10
 總結 296

5章 數據庫技術
5.1
 關系數據庫管理系統入門 Jay Lee 298
5.1.1
 表 298
5.1.2
 數據查詢和關聯 298
5.1.3
 關系類型 300
5.1.4
 屬性 301
5.1.5
 正規化 302
5.1.6
 操縱數據 302
5.1.7
 總結 303
5.1.8
 參考文獻 303
5.2
 使用關系數據庫管理系統來編寫數據驅動的MMP

arrow
arrow
    全站熱搜

    baosell 發表在 痞客邦 留言(0) 人氣()