鍍金池/ 教程/ iOS/ 設(shè)計優(yōu)雅的移動游戲
與四軸無人機的通訊
在沙盒中編寫腳本
結(jié)構(gòu)體和值類型
深入理解 CocoaPods
UICollectionView + UIKit 力學
NSString 與 Unicode
代碼簽名探析
測試
架構(gòu)
第二期-并發(fā)編程
Metal
自定義控件
iOS 中的行為
行為驅(qū)動開發(fā)
Collection View 動畫
截圖測試
MVVM 介紹
使 Mac 應(yīng)用數(shù)據(jù)腳本化
一個完整的 Core Data 應(yīng)用
插件
字符串
為 iOS 建立 Travis CI
先進的自動布局工具箱
動畫
為 iOS 7 重新設(shè)計 App
XPC
從 NSURLConnection 到 NSURLSession
Core Data 網(wǎng)絡(luò)應(yīng)用實例
GPU 加速下的圖像處理
自定義 Core Data 遷移
子類
與調(diào)試器共舞 - LLDB 的華爾茲
圖片格式
并發(fā)編程:API 及挑戰(zhàn)
IP,TCP 和 HTTP
動畫解釋
響應(yīng)式 Android 應(yīng)用
初識 TextKit
客戶端
View-Layer 協(xié)作
回到 Mac
Android
Core Image 介紹
自定義 Formatters
Scene Kit
調(diào)試
項目介紹
Swift 的強大之處
測試并發(fā)程序
Android 通知中心
調(diào)試:案例學習
從 UIKit 到 AppKit
iOS 7 : 隱藏技巧和變通之道
安全
底層并發(fā) API
消息傳遞機制
更輕量的 View Controllers
用 SQLite 和 FMDB 替代 Core Data
字符串解析
終身學習的一代人
視頻
Playground 快速原型制作
Omni 內(nèi)部
同步數(shù)據(jù)
設(shè)計優(yōu)雅的移動游戲
繪制像素到屏幕上
相機與照片
音頻 API 一覽
交互式動畫
常見的后臺實踐
糟糕的測試
避免濫用單例
數(shù)據(jù)模型和模型對象
Core Data
字符串本地化
View Controller 轉(zhuǎn)場
照片框架
響應(yīng)式視圖
Square Register 中的擴張
DTrace
基礎(chǔ)集合類
視頻工具箱和硬件加速
字符串渲染
讓東西變得不那么糟
游戲中的多點互聯(lián)
iCloud 和 Core Data
Views
虛擬音域 - 聲音設(shè)計的藝術(shù)
導航應(yīng)用
線程安全類的設(shè)計
置換測試: Mock, Stub 和其他
Build 工具
KVC 和 KVO
Core Image 和視頻
Android Intents
在 iOS 上捕獲視頻
四軸無人機項目
Mach-O 可執(zhí)行文件
UI 測試
值對象
活動追蹤
依賴注入
Swift
項目管理
整潔的 Table View 代碼
Swift 方法的多面性
為什么今天安全仍然重要
Core Data 概述
Foundation
Swift 的函數(shù)式 API
iOS 7 的多任務(wù)
自定義 Collection View 布局
測試 View Controllers
訪談
收據(jù)驗證
數(shù)據(jù)同步
自定義 ViewController 容器轉(zhuǎn)場
游戲
調(diào)試核對清單
View Controller 容器
學無止境
XCTest 測試實戰(zhàn)
iOS 7
Layer 中自定義屬性的動畫
第一期-更輕量的 View Controllers
精通 iCloud 文檔存儲
代碼審查的藝術(shù):Dropbox 的故事
GPU 加速下的圖像視覺
Artsy
照片擴展
理解 Scroll Views
使用 VIPER 構(gòu)建 iOS 應(yīng)用
Android 中的 SQLite 數(shù)據(jù)庫支持
Fetch 請求
導入大數(shù)據(jù)集
iOS 開發(fā)者的 Android 第一課
iOS 上的相機捕捉
語言標簽
同步案例學習
依賴注入和注解,為什么 Java 比你想象的要好
編譯器
基于 OpenCV 的人臉識別
玩轉(zhuǎn)字符串
相機工作原理
Build 過程

設(shè)計優(yōu)雅的移動游戲

設(shè)計手機游戲是一個有趣的主意,理論上,做智能手機或者平板電腦游戲與其他平臺游戲設(shè)計沒有根本的不同。手機游戲在傳統(tǒng)系統(tǒng)屬性上與其他類型以及平臺極其相似,無論你想創(chuàng)造一個開心農(nóng)場,使命召喚還是國際象棋。

但實踐中,想要創(chuàng)建一個成功的手機游戲完全是另一回事。有很多其他的顧慮 - 從市場飽和及難以被發(fā)現(xiàn),到玩法定型及設(shè)備的尺寸因素等 - 由于這些原因,作為一個設(shè)計師來說創(chuàng)造一個優(yōu)秀的手機游戲就像在玩“困難模式”。

所有這些不同的因素集合一起意味著最成功的手機游戲傾向于優(yōu)雅的規(guī)則集。也就是說,它們需要努力變得更深刻并有意義,但同時卻需要從一組最小的簡單規(guī)則中產(chǎn)生??隙ㄓ懈A麗的巴洛克式的游戲,但不管你衡量成功的標準是什么,確實很少有成功的手機游戲堅持華麗風格。

那么,我們?nèi)绾卧谖覀兊挠螒蛑袑崿F(xiàn)這些優(yōu)雅的設(shè)計?讓我們來看看手機游戲的兩個特征 — 游戲時長和交互方法 — 另外看下幾種適用于移動平臺的系統(tǒng)設(shè)計方法。

游戲會話時長

玩家玩手機游戲相較于其他平臺有很大不同。玩家需要在碎片化的時間內(nèi)有游戲可玩,比如排隊或者上廁所的時候,但是他們也希望游戲更加有意義,可以長期玩下去。研究表明 iOS 游戲會話時長大多介于一到兩分鐘之間,與此同時,大多數(shù)手機游戲?qū)嶋H在家里玩的時間要比路上更多。想要讓你的游戲這兩種情況下,在樂趣和獎勵機制之間做到平衡是一個極有挑戰(zhàn)性問題。

為了幫我們思考設(shè)計這兩種情況,把游戲想作一組反饋循環(huán)會很有幫助。在任一時間點上,你的游戲都有一個核心的認知模型。在這個基礎(chǔ)上,你需要執(zhí)行一些操作,讓游戲給你反饋,這反過來又會影響這個來完善這個模型。

關(guān)于這些反饋循環(huán)的關(guān)鍵一點是,它們是碎片化的;在任何時刻,可能有任意數(shù)量級嵌套的反饋循環(huán)。比如,讓我們思考在玩憤怒的小鳥時發(fā)生了什么。

http://wiki.jikexueyuan.com/project/objc/images/18-1.png" alt="" />

讓我們通過動作來開始,每一關(guān)中彈射小鳥穿過地圖達成預計目標的同時,它也給了你相應(yīng)的反饋:你是否破壞了你想要破壞的箱子或者小豬?小鳥的彈射軌道 (軌道在鳥降落后依然可見) 是否和你所想的一致?這些信息將影響你未來的彈射。

退一步來說,這個游戲最小的度量單位是關(guān)卡。每個關(guān)卡還充當它自己的反饋和獎勵的封閉系統(tǒng): 通關(guān)讓你獲得一到三顆星星,鼓勵你發(fā)展必要的技能來真正 '戰(zhàn)勝' 它。

總體來說,所有這些關(guān)卡本身也形成一個反饋循環(huán)和敘事模式,隨著時間的推移你能清晰地知道整體的進程,另外它們讓你知道相對于整體系統(tǒng),你的技巧處于什么層級。

我們可以繼續(xù)延伸,但我認為基本概念是明確的。再次聲明,這不僅僅是手機游戲才存在的理念。如果缺乏想時時刻刻的玩你的游戲的沖動或是看不到總體意義上的個人發(fā)展,那么可以說無論是在何種平臺,你的游戲還有很大的改進余地。

游戲會話的時長設(shè)計是相當重要的。它可以是一個即時反饋樂趣的游戲,同時還具有足夠長的最小系統(tǒng)性循環(huán),哪怕把玩幾分鐘,依然會讓人覺得有趣。在玩憤怒的小鳥一兩分鐘內(nèi),你就可以體驗游戲反饋循環(huán)的多個完整的迭代,即使是在如此短的會話時長內(nèi)依然給人一種暢快感。同時更高級別的反饋循環(huán)的存在,意味著這些微瞬間的樂趣并不會破壞長期有意義的游戲體驗。

控制器難題

電子游戲的平臺 — 游戲主機,PC 電腦,甚至商場柜機 — 它們相對于智能手機或平板電腦來說有大量的輸入端。許多偉大的手機游戲找到獨特的方式來使用多點觸控或 iPhone 的加速器,而不是把大量的虛擬按鈕顯示在屏幕上,但 iOS 設(shè)備的輸入方式仍然比其他形式的數(shù)字游戲少得多。這造成了一個艱難的設(shè)計挑戰(zhàn):怎么才能讓有限輸入的游戲系統(tǒng)更有趣,更有意義并更深入?這是游戲設(shè)計專業(yè)的學生相討論很頻繁的主題 - 對有抱負的設(shè)計師創(chuàng)建一個一鍵式的游戲是永恒的課題 - 但 iOS 的限制,常常使其不僅是一個學術(shù)問題。歸根結(jié)底,這是一個類似游戲會話時長的問題:你如何創(chuàng)造一個簡單親切的游戲系統(tǒng),而同時又不拋棄其他平臺上的游戲的深度和游戲性。

在游戲中的構(gòu)建交互的一個常用的方法是將游戲的正式的要素減少為 '名詞' 和 '動詞'。 讓我們用超級馬里奧來舉例。馬里奧包含兩個‘動詞’:他可以。馬里奧的挑戰(zhàn)來自于游戲引入并組織了一系列名詞,用來給提供給動詞發(fā)揮的空間。這些名詞構(gòu)成了不同的障礙物,你必須使用這兩個動詞的有趣并唯一的組合來克服這些障礙物。

當然,馬里奧如果只會跑或者跳那將非常無聊。但是即使只需要 6 個按鍵 (4 個方向鍵和跑跳鍵) 就能玩轉(zhuǎn)的馬里奧這樣的游戲,想在觸屏上理想地實現(xiàn)也在很多方面非常復雜,這也就是為什么很少有 2D 平臺類游戲能在 iOS 平臺上成功的原因。

所以如何讓游戲在有限的輸入下更有內(nèi)涵也更復雜?在這個名詞和動詞為框架的前提下,基本上有三種方式來增加游戲復雜性。我們可以添加一個新的輸入,我們可以使用現(xiàn)有的輸入添加一個新的動詞或者我們可以把現(xiàn)有的動詞賦給更多的名詞,用新的意義來渲染動詞。第一個選項是通常會增加我們所不希望看到的復雜性,但是其他兩個處理恰當?shù)脑捒梢苑浅S行?。讓我們看看一些手機游戲的例子,使用這些方法后在沒有改變核心游戲交互情況下增加了額外的深度。

Hundreds

Hundreds [附 1] 就是一個在不增加游戲動詞復雜性下增加新的動詞的很好的例子。

http://wiki.jikexueyuan.com/project/objc/images/18-2.png" alt="" />

最初,”觸摸氣泡使其增長?!笔俏ㄒ灰粋€需要處理的動詞,隨著游戲的發(fā)展,介紹了新類型的對象:慢慢地隨著時間時間推移而縮小的氣泡,會刺穿觸碰到的物體的齒輪,會將氣泡凍結(jié)在原地的冰球等。這些東西很容易變得非常復雜,但至關(guān)重要的是,它們都沒有打破“點擊一個對象去做什么的規(guī)則”,盡管可能的動詞數(shù)量會相當大,但它們通過簡單的方式保持一致。它們之間的交互非常豐富,比如使用冰球凍結(jié)危險的齒輪,使其無害。這種交互令人很滿意,同時與系統(tǒng)交互的基本方法依然相當簡單。

Threes

益智游戲 Threes [附 2] 體現(xiàn)了另一種方法,不去改變?nèi)魏文阍谟螒蛑心茏龅氖虑?,但卻在復雜度和策略層級上進行管理。

http://wiki.jikexueyuan.com/project/objc/images/18-3.gif" alt="" />

在這個游戲中,它的規(guī)則保持不變。從開始到結(jié)束,唯一的動詞是“滑動滑塊”,除此之外沒有任何變化。因為系統(tǒng)規(guī)則是以可預測的頻率出現(xiàn)新的物體,所以游戲展現(xiàn)出的復雜度是隨著進程而發(fā)生的自然結(jié)果。當游戲開始的時候屏幕上只有少量小數(shù)字的方塊,做決定非常容易。當你開始平衡底層數(shù)字建立新的更高數(shù)字的時候,同樣一個動詞背后突然就有了更多意義和細微差別。

這兩個都是偉大的游戲,它們表面上提供了簡單的玩法,但對在何處如何增加復雜度及動詞的意義這點上,它們進行了極有深度的處理。兩者之間的方法可能不同,但都做一個值得稱贊的工作,那就是將一些復雜性從入門的關(guān)卡中轉(zhuǎn)移出來,這使它們更容易上手。

優(yōu)雅

現(xiàn)在我們已經(jīng)通過兩個不同的角度探索了設(shè)計游戲。思考你系統(tǒng)的反饋循環(huán),以及管理相對長度的迭代,可以幫助設(shè)計不管是10秒鐘還是1個小時都很有趣的東西。認識到你可以通過處理游戲里的動詞來增加游戲復雜度,可以幫助你在不犧牲獲取新玩家的同時,增加游戲的策略深度。

最終,這兩個概念展示了類似的結(jié)果:游戲的深度和系統(tǒng)性的復雜性,雖然相關(guān),卻不一定需要等價。關(guān)注在你的游戲的復雜性在于可以幫助使你的游戲盡可能多的獲得新玩家,并鼓勵游戲拿起就玩卻不失深度或者犧牲長時間娛樂性。

再次聲明,這些概念在游戲設(shè)計世界并不是新東西。特別是,設(shè)計博客作者 Dan Cook 在他的文章 "The Chemistry of Game Design" 中談到了很多嵌套反饋循環(huán)以及 Anna Anthropy 和 Naomi Clark's book 的書 "A Game Design Vocabulary" 中深入探索了游戲的動詞概念化背后意味著什么。

但這些問題在移動平臺更惡化了。在移動平臺的背景下,保持盡可能簡短并自我包含的游戲最低層級循環(huán)是非常重要的,但與此同時還不能喪失更大愿景的游戲深度。觸摸屏控制的實用性使得在輸入層級上增加的復雜性和微差別十分困難,因此在更高層級的系統(tǒng)上也能為富有經(jīng)驗的玩家提供高級的游戲體驗比以往更加重要。手機游戲的嚴苛特性意味著優(yōu)雅的設(shè)計不僅僅是理想狀況,而是必要的特性。認識到簡單并不等于膚淺,是設(shè)計好的手機游戲所至關(guān)重要的。