基本信息
書名:全新正版 遊戲編程模式
定價:69.00元
作者: Robert Nystrom 尼斯卓姆
齣版社:人民郵電齣版社
齣版日期:2016-09-01
ISBN:9787115426888
字數:
頁碼:
版次:1
裝幀:平裝
開本:128開
商品重量:0.4kg
編輯推薦
前EA傑齣遊戲工程師經驗凝結4大類13種遊戲編程模式精彩呈現多數遊戲程序員所麵臨的挑戰就是實現他們的遊戲。許多遊戲在其高度復雜的代碼庫中摺戟沉沙,沒能問世。本書是為解決此問題而生。本書作者在多年的遊戲開發工作中,收集瞭許多已經證實的設計模式來幫助解構、重構以及優化遊戲。通過閱讀本書,你將深刻理解經典的設計模式是如何應用於遊戲之中的,學會如何編寫一個健壯的遊戲循環、如何應用組件來組織實體,並利用CPU緩存來提升遊戲性能。本書包含的4大類13種遊戲編程模式包括:序列型模式● 雙緩衝● 遊戲循環● 更新方法優化型模式● 數據局部性● 髒標記模型● 對象池● 空間分區行為型模式● 字節碼● 子類沙盒● 類型對象解耦型模式● 組件模式● 事件隊列● 服務定位器
內容提要
遊戲開發一直是熱門的領域,掌握良好的遊戲編程模式是開發人員的應備技能。本書細緻地講解瞭遊戲開發需要用到的各種編程模式,並提供瞭豐富的示例。全書共分20章,通過三大部分內容全麵介紹瞭與遊戲編程模式相關的各類知識點。首部分介紹瞭基礎知識和框架;第二部分深入探索設計模式,並介紹瞭模式與遊戲開發之間的關聯;第三部分介紹瞭13種有效的遊戲設計模式。本書提供瞭豐富的代碼示例,通過理論和代碼示例相結閤的方式幫助讀者更好地學習。無論是遊戲領域的設計人員、開發人員,還是想要進入遊戲開發領域的學生和普通程序員,都可以閱讀本書。
目錄
目錄
篇 概述
章 架構,性能和遊戲 3
1.1 什麼是軟件架構 3
1.1.1 什麼是好的軟件架構 3
1.1.2 你如何做齣改變 4
1.1.3 我們如何從解耦中受益 5
1.2 有什麼代價 5
1.3 性能和速度 6
1.4 壞代碼中的好代碼 7
1.5 尋求平衡 8
1.6 簡單性 9
1.7 準備齣發 9
第2篇 再探設計模式
第2章 命令模式 13
2.1 配置輸入 14
2.2 關於角色的說明 16
2.3 撤銷和重做 18
2.4 類風格化還是函數風格化 21
2.5 參考 22
第3章 享元模式 23
3.1 森林之樹 23
3.2 一韆個實例 25
3.3 享元模式 26
3.4 紮根之地 26
3.5 性能錶現如何 30
3.6 參考 31
第4章 觀察者模式 33
4.1 解鎖成就 33
4.2 這一切是怎麼工作的 34
4.2.1 觀察者 35
4.2.2 被觀察者 35
4.2.3 可被觀察的物理模塊 37
4.3 它太慢瞭 38
4.4 太多的動態內存分配 39
4.4.1 鏈式觀察者 39
4.4.2 鏈錶節點池 42
4.5 餘下的問題 43
4.5.1 銷毀被觀察者和觀察者 43
4.5.2 不用擔心,我們有GC 44
4.5.3 接下來呢 44
4.6 觀察者模式的現狀 45
4.7 觀察者模式的未來 46
第5章 原型模式 47
5.1 原型設計模式 47
5.1.1 原型模式效果如何 50
5.1.2 生成器函數 51
5.1.3 模闆 51
5.1.4 頭等公民類型(First-class types) 52
5.2 原型語言範式 52
5.2.1 Self 語言 53
5.2.2 結果如何 54
5.2.3 如何 55
5.3 原型數據建模 57
第6章 單例模式 61
6.1 單例模式 61
6.1.1 確保一個類隻有一個實例 61
6.1.2 提供一個全局指針以訪問實例 62
6.2 使用情境 63
6.3 後悔使用單例的原因 65
6.3.1 它是一個全局變量 65
6.3.2 它是個畫蛇添足的解決方案 66
6.3.3 延遲初始化剝離瞭你的控製 67
6.4 那麼我們該怎麼做 68
6.4.1 看你究竟是否需要類 68
6.4.2 將類限製為單一實例 70
6.4.3 為實例提供便捷的訪問方式 71
6.5 剩下的問題 73
第7章 狀態模式 75
7.1 我們曾經相遇過 75
7.2 救星:有限狀態機 78
7.3 枚舉和分支 79
7.4 狀態模式 82
7.4.1 一個狀態接口 82
7.4.2 為每一個狀態定義一個類 83
7.4.3 狀態委托 84
7.5 狀態對象應該放在哪裏呢 84
7.5.1 靜態狀態 84
7.5.2 實例化狀態 85
7.6 進入狀態和退齣狀態的行為 86
7.7 有什麼收獲嗎 88
7.8 並發狀態機 88
7.9 層次狀態機 89
7.10 下推自動機 91
7.11 現在知道它們有多有用瞭吧 92
第3篇 序列型模式
第8章 雙緩衝 95
8.1 動機 95
8.1.1 計算機圖形係統是如何工作的(概述) 95
8.1.2 幕,場 96
8.1.3 迴到圖形上 97
8.2 模式 98
8.3 使用情境 98
8.4 注意事項 98
8.4.1 交換本身需要時間 98
8.4.2 我們必須有兩份緩衝區 99
8.5 示例代碼 99
8.5.1 並非隻針對圖形 102
8.5.2 人工非智能 102
8.5.3 緩存這些巴掌 106
8.6 設計決策 107
8.6.1 緩衝區如何交換 107
8.6.2 緩衝區的粒度如何 109
8.7 參考 110
第9章 遊戲循環 111
9.1 動機 111
9.1.1 CPU探秘 111
9.1.2 事件循環 112
9.1.3 時間之外的世界 113
9.1.4 秒的長短 113
9.2 模式 114
9.3 使用情境 114
9.4 使用須知 114
9.5 示例代碼 115
9.5.1 跑,能跑多快就跑多快 115
9.5.2 小睡一會兒 115
9.5.3 小改動,大進步 116
9.5.4 把時間追迴來 118
9.5.5 留在兩幀之間 119
9.6 設計決策 120
9.6.1 誰來控製遊戲循環,你還是平颱 121
9.6.2 你如何解決能量耗損 121
9.6.3 如何控製遊戲速度 122
9.7 參考 1
作者介紹
Robert Nystrom是一位擁有2 0 年以上職業編程經驗的開發者,而他在其中大概一半的時間從事遊戲開發。在藝電(El e c t r o n i c Arts)的8年時間裏,他曾參與勁爆美式足球(Madden)係列這樣龐大的項目,也曾投身於亨利·海茨沃斯大冒險(Henry Hatsworth in the Puzzling Adventure)這樣稍小規模的遊戲開發之中。他所開發的遊戲遍及PC、GameCube、PS2、XBox、X360以及DS平颱。但他引以為傲的,是為開發者們提供瞭開發工具和共享庫。他熱衷於尋求易用的、漂亮的代碼來延伸和增強開發者們的創造力。Robert與他的妻子和兩個女兒定居於西雅圖,在那裏你很有可能會見到他正在為朋友們下廚,或者在為他們上啤酒。
文摘
序言
這本書所帶來的驚喜,在於它能夠讓你以一種全新的視角去審視遊戲開發過程。之前我可能更多地關注於實現具體的功能,而這本書則讓我開始思考代碼的結構、模塊的劃分、以及如何讓整個項目保持一個清晰、易於理解的狀態。它就像一麵鏡子,照齣瞭我代碼中可能存在的“壞味道”,並提供瞭改進的藥方。我發現,很多時候,我們之所以會在某個功能上卡住,或者發現代碼難以修改,並不是因為我們不夠聰明,而是因為我們沒有采用一種恰當的設計模式來組織我們的代碼。這本書就像是為我提供瞭一套“設計工具箱”,讓我能夠在麵對不同的編程挑戰時,能夠從中選擇最閤適的工具來解決問題。我非常欣賞書中關於“有限狀態機”的詳細闡述,這對於很多需要處理復雜邏輯的遊戲角色行為或者UI交互來說,都至關重要。總而言之,這是一本值得反復閱讀、並從中汲取智慧的寶藏。
評分這本書的魅力遠不止於其內容本身,更在於它所營造的那種氛圍。當你沉浸在書中,你會感覺自己不僅僅是在閱讀一本技術書籍,更像是在與一位經驗豐富的遊戲開發者進行一場深入的對話。作者的語言風格非常接地氣,沒有那種空洞的理論說教,而是充滿瞭實際的例子和生動的比喻,仿佛他就在你身邊,手把手地教你如何解決實際問題。我特彆喜歡他在講解某些抽象概念時,會引用一些經典的遊戲作為參照,這瞬間就把那些枯燥的技術術語變得鮮活起來。比如,他在描述某種交互模式時,會提到《魂鬥羅》裏的子彈發射方式,或者《星際爭霸》裏單位的移動邏輯,這種關聯性一下子就讓你明白瞭這個模式在實際應用中的意義。這種寓教於樂的方式,大大降低瞭學習門檻,也讓整個學習過程變得更加有趣和高效。我迫不及待地想去實踐書中提到的各種“模式”,看看它們如何在我的項目中落地生根,開花結果。
評分不得不說,這本書在結構上的安排非常巧妙,讓人有一種循序漸進的學習體驗。作者似乎非常有條理地將遊戲編程中那些核心的設計思想,像剝洋蔥一樣一層層地展現齣來,既不會一開始就拋齣過於復雜的內容讓人生畏,也不會過於淺嘗輒止。我尤其欣賞它對於每一個“模式”的講解方式,通常會先用一個相對簡單易懂的例子引入,讓你先建立起一個基本的概念框架,然後再逐步深入到更復雜的應用場景和優缺點分析。這種由淺入深、由點到麵的講解邏輯,對於我這種並非科班齣身、但又對遊戲開發充滿熱情的自學者來說,簡直是福音。很多時候,我在網上看到一些零散的編程技巧,但總是缺乏一個整體的認知,這本書就像是給我提供瞭一張地圖,讓我能夠清晰地看到這些技巧是如何融入到整個遊戲開發的龐大體係中的。我還在期待著書中關於“對象池”模式的闡述,因為在處理頻繁創建和銷毀的遊戲對象時,性能優化一直是一個繞不開的話題,相信這本書會有獨到的見解。
評分這本書的封麵設計就足夠吸引人瞭,那種深邃的藍色背景,搭配上簡潔卻又不失力量感的字體,讓人一眼就能感受到它所蘊含的專業與深度。拿到手裏,紙張的觸感也很棒,不是那種光滑得有點廉價的印刷紙,而是帶有微微紋理的,翻閱起來有著一種沉甸甸的實在感。我當初決定買這本書,很大程度上是因為它背後那群遊戲開發愛好者的推薦,大傢都在討論著其中的“模式”如何改變瞭他們的編程思路,如何讓他們寫齣更優雅、更易於維護的代碼。我個人非常喜歡這種由實踐經驗沉澱下來的智慧結晶,尤其是在遊戲開發這個日新月異的領域,那些經過時間檢驗的經典設計思想,其價值是無可估量的。雖然我還沒有開始深入閱讀,但光是目錄就已經讓我充滿瞭期待。裏麵的章節標題,比如“實體組件係統”、“狀態模式”、“發布/訂閱模式”等等,每一個都觸動著我作為一名程序員的好奇心。我常常在開發過程中遇到一些棘手的代碼結構問題,或者感覺自己的代碼越來越難以擴展,這個時候,我就需要這樣一本能夠提供係統性解決方案的寶典。我希望這本書能夠真正地啓發我,讓我看到那些彆人已經走通的、高效的編程路徑,並且能夠融會貫通,應用到我自己的項目中去。
評分說實話,在翻閱這本書的過程中,我時不時會停下來,陷入沉思。它不僅僅是教你“怎麼做”,更重要的是引導你去思考“為什麼這麼做”。作者通過對不同設計模式的對比分析,讓你深刻理解每種模式背後的權衡和取捨,以及在不同場景下選擇哪種模式是最優的。我常常會在寫代碼的時候,腦海中浮現齣書中某些章節的畫麵,然後開始反思自己之前的實現方式是否足夠優雅、是否具有良好的擴展性。這種由內而外的自我審視,比單純地模仿彆人寫好的代碼更有價值。我尤其期待書中關於“行為樹”的講解,在AI設計方麵,行為樹一直是我比較感興趣但又覺得難以深入掌握的領域,希望這本書能為我打開一扇新的大門。總而言之,這本書給我的感覺是,它不是那種“速成”的教程,而是能夠幫助你建立起紮實的編程內功,讓你在未來的開發道路上走得更遠、更穩。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有