版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2018.02.06 |
前言
GameplayKit框架缘眶,構(gòu)建和組織你的游戲邏輯。 整合常見的游戲行為滩字,如隨機(jī)數(shù)生成造虏,人工智能,尋路和代理行為麦箍。接下來幾篇我們就一起看一下這個框架漓藕。
Overview
下面先看一下該框架的基本信息。
GameplayKit是一個面向?qū)ο蟮目蚣苄眩瑸闃?gòu)建游戲提供基礎(chǔ)工具和技術(shù)享钞。 GameplayKit包含用于設(shè)計具有功能性,可重用架構(gòu)的游戲的工具诀蓉,以及用于構(gòu)建和增強(qiáng)諸如角色移動和對手行為的游戲玩法特征的技術(shù)栗竖。
下面看一下該框架的基本結(jié)構(gòu)。
Getting Started with GameplayKit - GameplayKit開始
GameplayKit涵蓋游戲設(shè)計和開發(fā)的許多方面渠啤。 有關(guān)游戲設(shè)計模式的更深入討論狐肢,您可以使用GameplayKit,以及說明使用GameplayKit功能構(gòu)建游戲的教程沥曹,請參閱GameplayKit Programming Guide份名。
Related Sample Code - 相關(guān)示例代碼
要實(shí)驗(yàn)GameplayKit
碟联,請參閱以下示例代碼項目:
FourInARow: Using the GameplayKit Minmax Strategist for Opponent AI
DemoBots: Building a Cross Platform Game with SpriteKit and GameplayKit
Topics
1. Entities and Components
用于設(shè)計可組合的,可重復(fù)使用的游戲邏輯的通用架構(gòu)僵腺。
-
- 與游戲相關(guān)的對象鲤孵,其功能完全由一組組件對象提供。
-
- 抽象超類辰如,用于創(chuàng)建將特定游戲玩法功能添加到實(shí)體的對象普监。
-
- 為指定類的所有組件對象管理定期更新消息。
2. State Machines
用于定義狀態(tài)相關(guān)游戲邏輯的模塊化系統(tǒng)琉兜。
-
- 抽象超類凯正,用于將狀態(tài)特定的邏輯定義為狀態(tài)機(jī)的一部分。
-
- 一個有限狀態(tài)機(jī) - 一個狀態(tài)對象的集合呕童,每個狀態(tài)對象定義了游戲玩法的特定狀態(tài)的邏輯和狀態(tài)之間轉(zhuǎn)換的規(guī)則漆际。
3. Spatial Partitioning
數(shù)據(jù)結(jié)構(gòu),組織游戲世界中的對象夺饲,以快速搜索位置或鄰近度。
-
- 用于根據(jù)二維空間中的位置來組織對象的數(shù)據(jù)結(jié)構(gòu)施符。
-
- 用于管理在四叉樹中組織的對象的輔助類往声。
-
- 用于根據(jù)三維空間中的位置來組織對象的數(shù)據(jù)結(jié)構(gòu)。
-
- 用于管理在八叉樹中組織的對象的輔助類戳吝。
-
- 一種數(shù)據(jù)結(jié)構(gòu)浩销,根據(jù)二維空間中的位置自適應(yīng)組織對象。
4. Strategists
用于計劃的AI形式在回合制游戲中移動听哭。 通過創(chuàng)建采用游戲模型協(xié)議的類來描述您的游戲玩法慢洋,然后使用這些類與策略對象來創(chuàng)建AI玩家或建議移動。
-
- 提供人工智能的對象的一般接口陆盘,用于回合(和類似)游戲普筹。
-
- 使用確定性策略選擇回合制游戲的人工智能。
-
- 使用概率策略選擇回合制游戲的人工智能
-
- 實(shí)施這個協(xié)議來描述你的游戲模型隘马,這樣一個戰(zhàn)略對象可以計劃游戲的移動
-
- 執(zhí)行這個協(xié)議來描述你的回合制游戲中的一個玩家太防,這樣一個策略對象可以計劃游戲的移動。
-
- 實(shí)施這個協(xié)議來描述在你的回合制游戲中的一個移動酸员,以便一個策略對象可以計劃游戲的移動蜒车。
5. Decision Trees
定義一系列問題和可能的答案,最終采取行動幔嗦,或根據(jù)您提供的數(shù)據(jù)自動構(gòu)建預(yù)測模型酿愧。
-
- 一個數(shù)據(jù)結(jié)構(gòu),模擬一系列具體的問題邀泉,他們可能的答案嬉挡,以及一系列答案中的后續(xù)行動钝鸽。
-
- 用于手動創(chuàng)建決策樹的節(jié)點(diǎn),代表特定的問題和可能的答案棘伴,或回答其他問題后的操作寞埠。
6. Pathfinding
創(chuàng)建圖形,模擬您的游戲世界的導(dǎo)航性焊夸,允許GameplayKit規(guī)劃游戲角色的最佳路線仁连。
-
- 描述游戲世界的可導(dǎo)航性并提供尋路方法來搜索通過該空間的路線的節(jié)點(diǎn)的集合。
-
- 2D游戲世界的導(dǎo)航圖形創(chuàng)建了一個最小的網(wǎng)絡(luò)阱穗,用于在障礙物周圍進(jìn)行精確的路徑查找饭冬。
-
- 2D游戲世界的導(dǎo)航圖形創(chuàng)建了一個空間填充網(wǎng)絡(luò),可以在障礙物周圍進(jìn)行平滑尋路揪阶。
-
- 2D游戲世界的導(dǎo)航圖昌抠,其中運(yùn)動被限制為整數(shù)網(wǎng)格。
-
- 導(dǎo)航圖中的單個節(jié)點(diǎn)用于尋路鲁僚。
-
- 導(dǎo)航圖中的一個節(jié)點(diǎn)炊苫,與連續(xù)2D空間中的一個點(diǎn)相關(guān)聯(lián)。
-
- 導(dǎo)航圖中的一個節(jié)點(diǎn)冰沙,與連續(xù)三維空間中的一個點(diǎn)相關(guān)聯(lián)侨艾。
-
- 導(dǎo)航圖中的一個節(jié)點(diǎn),與離散二維網(wǎng)格上的位置關(guān)聯(lián)拓挥。
7. Agents, Goals, and Behaviors
通過結(jié)合高層次的目標(biāo)唠梨,例如移動到目標(biāo),遵循路徑或避開障礙侥啤,將自主移動添加到角色和其他游戲?qū)ο蟆?/p>
-
- 根據(jù)一組目標(biāo)和現(xiàn)實(shí)約束來移動游戲?qū)嶓w的組件当叭。
-
- 在二維空間中操作的代理。
-
- 在三維空間中運(yùn)作的代理
-
- 激勵一個或多個代理人移動的影響盖灸。
-
- 一套共同影響代理人運(yùn)動的目標(biāo)蚁鳖。
-
- 一組行為,每個行為都是一組目標(biāo)糠雨,共同影響一個代理人的行動才睹。
-
- 一個代理可以跟隨的多邊形路徑。
-
- 實(shí)現(xiàn)這個協(xié)議來同步一個代理的狀態(tài)和它在游戲中的可視化表示甘邀。
8. Obstacles
在游戲世界中模擬不可訪問區(qū)域的類琅攘,用于Pathfinding和Agents。
-
- 游戲世界中代表不可訪問區(qū)域的對象的抽象基類松邪。
-
- 代理要避免的一個循環(huán)不能通行的區(qū)域坞琴。
-
- 代理應(yīng)避免的球形不可通過的體積。
-
- 2D游戲世界中的多邊形不可通行區(qū)域逗抑。
9. Procedural Noise
生成相干隨機(jī)噪聲的場剧辐,然后用它們來創(chuàng)建類似云或木紋等自然現(xiàn)象的紋理圖像寒亥,建立無限大小的程序游戲世界等等。
-
- 噪聲生成器的抽象超類荧关。
-
- 由噪聲源產(chǎn)生的程序性噪聲溉奕,可以用來處理,變換或合并噪聲忍啤。
-
- 程序噪聲數(shù)據(jù)的樣本加勤,您可以從中直接讀取噪聲值或創(chuàng)建噪聲紋理。
-
- 產(chǎn)生相干噪聲的程序噪聲發(fā)生器的抽象超類同波。
-
- 一種程序噪聲發(fā)生器鳄梅,其輸出是一種具有平滑特征的分形相干噪聲。
-
- 一種程序性噪聲發(fā)生器未檩,其輸出是一種類似于云和地形等自然現(xiàn)象的分形相干噪聲戴尸。
-
- 程序噪聲發(fā)生器,其輸出是一種具有明確定義的特征的多重分形相干噪聲冤狡。
-
- 一個程序性噪聲發(fā)生器孙蒙,其輸出(也稱為沃利噪聲或蜂窩噪聲)將空間劃分為圍繞隨機(jī)種子點(diǎn)的離散單元。
-
- 程序噪聲發(fā)生器悲雳,其輸出是同心圓柱殼的3D場马篮。
-
- 程序噪聲發(fā)生器,其輸出是同心球殼的3D場怜奖。
-
- 程序性噪聲發(fā)生器,其輸出是交替方形模式翅阵。
-
- 程序噪聲發(fā)生器歪玲,輸出一個單一的恒定值的字段。
10. Randomization
標(biāo)準(zhǔn)算法的強(qiáng)大而靈活的實(shí)現(xiàn)掷匠,讓您在不影響可測試性的情況下增加游戲玩法的不可預(yù)測性滥崩。
-
- GameplayKit中的所有隨機(jī)化類(或可用)的通用界面。
-
- GameplayKit中所有基本隨機(jī)化類的超類讹语。
-
- 實(shí)現(xiàn)ARC4算法的基本隨機(jī)數(shù)生成器钙皮,適用于大多數(shù)游戲機(jī)制。
-
GKLinearCongruentialRandomSource
- 一個基本的隨機(jī)數(shù)生成器實(shí)現(xiàn)線性同余生成器算法顽决,比默認(rèn)的隨機(jī)源更快但更少隨機(jī)短条。
-
- 一個實(shí)現(xiàn)Mersenne Twister算法的基本隨機(jī)數(shù)生成器,它隨機(jī)性更強(qiáng)才菠,但比默認(rèn)隨機(jī)源慢茸时。
-
- 用于隨機(jī)數(shù)的發(fā)生器,落在特定的范圍內(nèi)赋访,并在多個采樣中顯示特定的分布可都。
-
- 用于隨機(jī)數(shù)的生成器缓待,它跨多個采樣,遵循高斯分布(也稱為正態(tài)分布)渠牲。
-
- 一個隨機(jī)數(shù)的生成器旋炒,它是在許多采樣中均勻分布的,但是類似值的短序列是不可靠的
11. Rule Systems
將游戲設(shè)計從可執(zhí)行代碼中分離出來签杈,以加速游戲的開發(fā)周期瘫镇,或者實(shí)現(xiàn)模糊邏輯推理,為游戲添加真實(shí)的行為芹壕。
-
- 在規(guī)則系統(tǒng)的上下文中使用的規(guī)則汇四,要測試謂詞并在測試成功時執(zhí)行操作。
-
- 在使用Foundation NSPredicate對象評估自身的規(guī)則系統(tǒng)中使用的規(guī)則踢涌。
-
- 規(guī)則列表通孽,以及用于評估和解釋結(jié)果的上下文,用于構(gòu)建數(shù)據(jù)驅(qū)動的邏輯或模糊邏輯系統(tǒng)睁壁。
12. Xcode and SpriteKit Integration
支持使用Xcode中的SpriteKit場景編輯器輕松創(chuàng)建和編輯GameplayKit功能的類和協(xié)議背苦。
-
- 用于將GameplayKit對象與SpriteKit場景相關(guān)聯(lián)的容器。
-
- 標(biāo)識支持嵌入的GameplayKit信息的其他框架的場景類潘明。
-
- 管理SpriteKit節(jié)點(diǎn)的組件行剂。
13. Reference
14. Classes
后記
本篇已結(jié)束,后面更精彩~~~