Flash Platform 遊戲開發入門

注:本文的主要面向的讀者是Flash 設計人員、 沒有接觸過Flash Platform的人羣以及評估 Flash Platform遊戲開發的商務決策者。 本文還包括一些對但願進入Flash遊戲開發的、有經驗的ActionScript開發人員的有用信息。 然而,關於遊戲特定的ActionScript 編程技巧,我推薦參閱Gary Rosenzweig的書籍 ActionScript 3.0 遊戲編程大學(ActionScript 3.0 Game Programming University)php

Flash遊戲—利用或爲Adobe Flash platform建立的遊戲—已經遍佈世界。 你能夠在各類遊戲長廊網站發現它們,例如Newgrounds.comAddictingGames.com,等等。 共有數十種遊戲種類可供選擇,其中包括動做、冒險、博彩、猜謎和角色扮演等等。 這些遊戲能夠互動而且支持多種瀏覽器和多種平臺。用戶可以在我的電腦以及移動設備上運行這些遊戲。 它們可以做爲獨立的目標運行,它們能夠爲更大網站添加卓越功能,而且它們可以被嵌入到最流行的社交網絡中,例如Facebook。 目前,仍然有不少人並不知曉,經過使用Adobe AIR 技術,Flash遊戲可以經過Apple應用程序商店(App Store)安裝到iOS設備上。 像Alien Hominid和 Line Rider 等頂級遊戲已經風靡世界,以至它們已經從Flash Platform被移植到Nintendo Wii和Microsoft Xbox 360等控制檯設備。在線休閒遊戲正在迅速流行而且Adobe Flash Platform能夠提供建立和安裝這些精彩內容的工具。html

我設計和開發在線遊戲已經超過十年時間。 我已經在大量的領域與成千上萬的併發用戶進行合做。 在個人開始階段,我使用了許多實用的開發平臺,其中包括功能強大但難以使用的C++ 平臺。 隨着時間的推移,Flash Platform 工具變得更易於使用而Adobe Flash Player 也在不斷演化。 如今,Flash Platform 已經成爲建立在線2D遊戲的事實環境。 隨着 Adobe Creative Suite 5.5的最新發布,Flash 社區正在將引人入勝的內容移植到 手機、平板電腦和因特網電視中。 此外,隨着Stage3D(之前被稱爲Molehill APIs)的即將發佈,Flash Platform可能也將成爲建立在線3D遊戲的首選。ios

在本文中,我將給出在線遊戲潛在功能的概述,展現Flash Platform的能力而且探討端到端遊戲開發的挑戰和解決方案。git

爲何選擇Flash遊戲?

在過去的幾十年中,遊戲行業已經穩步發展,而且它將擁有一個更加光輝的將來。 但面對如此之多的遊戲技術,你可能想知道Flash Platform 是不是正確的選擇。github

遊戲是正規的行業

在線遊戲在20世紀90年代開始流行。 隨着計算機變得更爲功能強大以及因特網接入速度不斷增長,該行業已經得到顯著的增加(參見圖1)。web

2006–2011年每一年在線遊戲的收入(單位:10億美圓)(源自DFC Intelligence)
圖1. 2006–2011年每一年在線遊戲的收入(單位:10億美圓)(源自DFC Intelligence)

在線遊戲市場研究公司DFC Intelligence 預測2011年的休閒遊戲市場的增加速度將會更快:編程

  • 預測2011年全球在線遊戲收入爲100-120億美圓
  • 其中70% 的收入未來自基於 PC的遊戲(與視頻遊戲終端設備相比)
  • 而30% 的收入未來自休閒遊戲(與所謂的Hard-core遊戲相比)

大約30-50億美圓的2011年收入的目標是在線計算機遊戲,例如使用Flash Platform建立的項目。 去年美國人花費的視頻遊戲服務費超過30億美圓。 市場研究公司Pike & Fischer提供的一份新的報告估計到2015年美國人每一年花費的遊戲費用達到50億美圓。vim

根據Gartner研究公司的報告,全球從最終用戶獲取的移動遊戲收入從2009年開始每一年以19%的速度增加,在 2010年已經超過56億美圓。Juniper Research 預測到2015年全球移動遊戲收入將超過110億美圓,由於在遊戲過程當中的購買收入已經超過以每次下載付費方式的收入。設計模式

此外,移動遊戲發展趨勢也引領人們返回到1980年代Atari遊戲的簡單而誘人的遊戲方式。 這樣使得由個體和小型團隊建立的較低成本的遊戲可以在商務上得到成功。瀏覽器

計算機和移動遊戲開發的商業潛在機會是巨大的而且以使人難以置信的速度增加。

Flash Player 的歷史

Flash Player遍佈世界,但它不是惟一的遊戲。 從歷史角度來看,當須要高性能的遊戲時,必須利用功能強大的技術建立在線遊戲,其中包括C++、Java和 Shockwave 3D—以及Torque和 Unity。

在目標爲其它插件的遊戲開發人員必須指望他們的用戶可以耐心地下載必需的播放器的時候,Flash Platform開發人員卻可以期望他們的用戶已經擁有Flash 播放器。 Adobe Flash Player 是世界上最流行的軟件,它在成熟市場的因特網桌面系統中的普及率達到99%而且適用於大量移動設備。 目前,有超過三百萬的開發人員和設計人員使用Flash技術來建立、發佈和銷售跨世界領先的web和移動平臺的富因特網應用程序(RIAs,rich Internet applications)和內容。 利用Adobe Creative Suite,開發人員還可以指望在一種環境中實現工藝圖、聲音和代碼的順利集成。

Flash Player 10 擁有史無前例的各類功能,而Flash Platform 開發環境、Flash Builder 和Flash Professional也是如此。 隨着每一個新版本的推出,它們變得更爲有用和更易於使用。 自21世紀初以來,該軟件的多功能性已經促成其在互動廣告公司(interactive agencies)中的快速應用。 美工人員可使用 Flash Professional爲遊戲菜單和背景工藝圖提供圖解。 動畫繪製人員可以模仿週期行走、爆炸以及任何其它須要的動做。 開發人員也可以使用 Flash Builder或 Flash Professional 編寫整個項目的代碼,而且可以從同事那裏方便地集成本機組件(native asset)。 固然,Photoshop、Illustrator和其它專用工具也可以實現許多角色功能,並且因爲它們均是 Adobe Creative Suite的組成部分,組件集成也是很是簡單的操做。

曾經只是一個單一玩家體驗的遊戲場所,如今Flash技術能夠用於建立擁有成千上萬用戶的生機勃勃的市場。 從Flash Player 6開始,Flash 已經支持至服務器永久鏈接所需的套接字鏈接方式。 這種類型的鏈接容許幾個對幾個(few-on-few)的多玩家遊戲。 Flash Player的最新版本已經具備支持大量多玩家遊戲所需的能力:目前在客戶端側已經不存在瓶頸。 Flash Player 10引入了端到端通訊功能,這也爲多玩家遊戲的實現提供可能性。

業界領先者觀點

Flash Platform已經從大量的遊戲業界領先者那裏得到承認。

Michael Gold是多玩家遊戲工做室Electrotank的CEO,他表示,「因爲Flash Player的普及性和性能,如今Flash 已是基於瀏覽器遊戲的事實標準。」

PushButton Labs 是一個已經從使用 C++轉換爲使用Flash 技術進行遊戲開發的團隊。 PushButton的創始成員來自GarageGames,他們是 Torque 遊戲引擎的開發者。 根據 Ben Garney(開源 PushButton引擎的首席開發師)所述,「Flash 可以提供良好的遊戲體驗,而且你頗有可能在一晚上之間發佈一個面向10億用戶的遊戲。 並且它只會越變越好。」

Omar Gonzalez是Almer/Blank的軟件架構師,他附和道:「Flash Platform使得遊戲變得更爲簡單,由於它具備清晰獨立的邏輯和易於更新的音頻/視頻組件。 它不一樣於任何其它遊戲開發工具套件。」

遊戲基本原理

本節將討論Flash Platform 的基本組成部分以及視頻遊戲理論的基本知識。

工具和運行時

在建立一個 Flash 遊戲以前,你須要瞭解用於建立它的可用選項。 特別地,你必須清楚地瞭解你的每一個項目所需的正確的IDE、運行時和服務器(若是須要)。 入門的最簡單方法是使用 Flash Builder或 Flash Professional開發一個單一玩家的遊戲(即不須要實時多玩家服務器的遊戲),它可以以SWF文件格式發佈而且能夠在你的web瀏覽器中利用Flash Player (運行時) 運行。

隨着開發團隊的不斷成熟,他們可以繼續使用Adobe Flash Professional 進行組件建立,而且可以使用通過優化的 Adobe Flash Builder等團隊友好的工具來支持你跨桌面和各類設備發佈內容。

如需得到更多信息,參見瞭解建立遊戲的Adobe Flash Platform技術(Understanding Adobe Flash Platform technologies for building games)Flash 遊戲開發工具、運行時和服務器(Flash game development tools, runtimes, and servers)

關鍵組件

建立你的第一個遊戲相對來講比較簡單。 你只需安裝 Flash Builder或 Flash Professional便可建立精彩的遊戲。 下面是一個基本遊戲所需的一些關鍵組件:

  • 輸入(Input):輸入涉及到用戶控制遊戲的方式。 休閒遊戲一般經過鼠標、鍵盤箭頭或二者組合進行控制。 在移動設備上,觸摸手勢是最經常使用的input方法,而Flash Platform 具備穩健的觸摸支持功能。
  • 精靈(Sprites): 它們是屏幕中的可視元素,例如一個宇宙飛船的MovieClip或一個飛行遊戲的雙翼飛機。 注意儘管flash.display.Sprite的確是一個Flash類,但這裏的 sprite 是指 sprite的通用視頻遊戲概念。
  • 聲音(Sounds):逼真的聲音能夠強調重要的遊戲事件(例如當一個宇宙飛船移動時) 以便加強遊戲的玩家體驗。
  • 碰撞檢測(Collision detection): 這是可以檢測到任意兩個sprite在屏幕上碰撞動做的代碼,這對大多數面向動做的遊戲是很是關鍵的。
  • 遊戲主循環(Game loop):這是遊戲開發人員有時使用的術語,用於描述控制遊戲體驗的編程邏輯。 ActionScript是在Flash遊戲中用於執行遊戲主循環的編程語言。 在ActionScript 3.0中,共有兩種以特定時間間隔調用函數的方法。 第一種方法是使用互動對象(InteractiveObject)下發的 Event.ENTER_FRAME事件。 第二種方法是使用一個定時器。 ENTER_FRAME 事件方法更爲經常使用,它最好用於極爲頻繁更新的情景,例如動畫、其它渲染更新以及 人工智能(artificial intelligence (AI))例行程序等。 定時器的行爲方式與ENTER_FRAME 事件類似,但它無需與幀速率進行綁定也可以下發事件。 定時器最好用於時長爲數秒或更長的時間週期。 與其它編程語言同樣,ActionScript 也可以提供其它大量技巧以實現遊戲主循環,例如for和 while 循環。 若是你但願開發Flash 遊戲,則你必須學習 ActionScript。 參見下面的步驟2: 開發 章節瞭解更多關於如何開始學習ActionScript的信息。

遊戲開發工做流程

個體開發人員和小型開發團隊在開發新遊戲時將使用相同的基本步驟:

  1. 集思廣益。返回到相應的繪畫板。 爲你的遊戲產生一個構想。
  2. 開發。 你的大部分時間將花費在此步驟。 利用ActionScript 3.0將你的可視和音頻組件進行組合。
  3. 測試和優化。查看你的角度。 測試你的遊戲以確保它不存在軟件故障而且頗有趣。 經過優化改善遊戲性能。
  4. 發佈和收益。 設法將你的遊戲發佈到玩家的手中,而且得到一些收益。
  5. 使用分析。 研究用戶的反饋結果以及遊戲玩法、遊戲時長等度量信息。 改進遊戲的弱點。
  6. 更新。不斷地重複步驟一、二、3和5以便完善你的遊戲而且爲遊戲玩家提供更佳的體驗。

下面的章節將更深刻地討論上述每一個話題。

步驟1:集思廣益

一款完成的視頻遊戲–在呈現方面進行了完善而且玩起來使人興奮–比它表面上看起來要更爲複雜。 較爲聰明的設計人員和開發人員在你與遊戲之間隱匿細節而且展示一條清晰路徑。 一款成功的遊戲是一個偉大的創意和卓越技巧之間緊密結合的結果,或換句話說,它是設計人員的創造力和開發人員紮實的技術技巧之間緊密結合的結果。 但這些偉大創意來自哪裏? 你如何開始構思這些創意?

每一個團隊可能以不一樣的方式構思新的創意,但基本過程應該以下所列:

  1. 提出一個遊戲創意
  2. 建立一個故事板和相應的遊戲world
  3. 在一個遊戲設計文檔中定義你的遊戲

構思創意

有時候我坐下來設計一個遊戲而且開始動腦筋構思全新的創意,但大部分時間個人大腦中已經擁有了許多飄動的創意。

個人遊戲創意能夠來自任何地方:高投入的控制終端遊戲、簡單的移動遊戲、實時遊戲、以及體育、電影、漫畫、書籍、朋友聊天、好夢和惡夢等等。 因爲我身處遊戲設計的行業,故我會隨時隨地快速記下各類創意。 我建議隨身攜帶一個日記本或筆記本電腦,以便在新的遊戲創意在大腦閃現時可以捕捉它們。

若是你可以和我同樣,你也可以擁有不少遊戲創意。 這樣,相應的過程變成縮小創意列表而且選中應該吸引人的創意。

我發現成功遊戲的最實用創意是某些新的理念和某些借用的理念混合產生的創意。 也許你能夠爲一個世界設想一個新的外觀而且建立一個新的角色,但使用像Space Invaders、Frogger或 Pac-Man等傳統遊戲的遊戲機制。 我發現遊戲玩家對可控意外(controlled surprise)反響良好–部分新奇而又部分熟悉而且感受溫馨。

你如何知道遊戲將是有趣的? 很難知道。但相應的直覺來自經驗。 儘管如此,這也不是一種完美的技巧。 若是你剛剛接觸遊戲設計過程,則你應該從一些與你已經知道是很好玩的遊戲類似的遊戲入手。 而後,當你準備將它變得更爲個性化而且爲遊戲玩家提供新鮮的玩法時,你能夠改變相應的創意。

建立一個故事板

在故事板過程期間,你能夠開始爲角色、遊戲屏幕、遊戲組合等繪製草圖。Game 組合 是規則的核心組合,這些規則可以對使得遊戲變爲獨特的元素進行定義。 遊戲可以支持大量合做遊戲機制(例如旋轉、鍵盤輸入、風險和回報(risk and reward)、受限玩家生命值(limited player health)等等)。

在這一階段,相應的思路是不要製做精美的工藝圖(參見圖2),而僅僅直觀地表達你的理念便可。 這對孕育新的創意以及改進現有創意是有幫助的。 在這一階段,你的創意將會不斷演化和成長。 此時對你遊戲的替換、選項、多種解決方案和各個方面進行定奪均是可容許的。 此外,故事板還對團隊通訊具備很是重要的意義。 在共享創意的這一階段,每一個人都應該參與其中,而不只僅是美工人員。

Gaia Online's zOMG的背景草圖(左)和背景最終工藝圖(右)
圖 2. Gaia Online's zOMG的背景草圖(左)和背景最終工藝圖(右)

當建立故事板時,你必須考慮到你的玩家用戶的要求。 有時你的用戶定義你的遊戲,而有時你的遊戲定義你的用戶。 對我來講,二者兼而有之。 若是我感受對個人遊戲創意的各個方面進行折中可以使得遊戲更加引人入勝或便於玩耍,我對此的態度是開放的。 重要的是不要嘗試讓全部的玩家都高興,但一樣重要的是你的遊戲應該廣受歡迎。 所以,應該仔細考慮遊戲的繪圖和玩法的每一個方面。

在你的遊戲理念定型時,將相應的細節添加到遊戲world中。 給出玩家的挑戰描述。 給出相應的回報描述。 你的遊戲包含角色嗎? 相應的情節或故事是什麼? 角色執行任務的動機是什麼? 玩家是從上面或側面觀看動做嗎? 遊戲存在重力嗎? 角色會受傷和死亡嗎? 若是會,受傷和死亡的方式是什麼? 遊戲世界是否真實並不重要,但它應該具備因果關係:它應該具備一個你的用戶可以理解的清晰一致的緣由和結果。 用戶在玩遊戲和了解遊戲世界的過程當中可以快速地創建一個概念上的詞彙表。 他們將開始創建假設。 而且利用這些假設建立引人入勝的體驗。

編寫設計文檔

設計文檔就像一部電影劇本。 這是這一過程當中的關鍵點,今後點開始,你必須對新的創意給出限制條件而且決定遊戲的最終方案。 這也是做出一些可能(更好或更壞地)影響遊戲的艱難決定的最佳時期。

  • 你的目標用戶是誰? 他們指望使用亮色背景或暗色和情緒化的背景? 他們是具備耐心、喜歡高難玩法的有經驗玩家?或是喜歡簡單玩法的休閒玩家?
  • 你的目標設備是什麼? 是大型瀏覽器窗口或小型手機屏幕? 不要僅僅在這些設備上覆制體驗。
  • 考慮每一個遊戲的獨一無二的特徵而且定製遊戲的體驗。
  • 應該包含何種口語? 遊戲的翻譯如何組織? 哪些徽標、圖案、菜單和其它文本將受到影響? 若是遊戲的本地化語言超過一種,你將採用什麼方法來處理它們? 在遊戲已經開發完畢以後來處理這些問題將是很是困難的,所以必須在設計階段考慮如何處理這些問題。

在團隊開發環境中,設計文檔尤爲重要。 由於它可以清晰地列出全部關於遊戲可視組件、遊戲機制和菜單的最終決定,它可以幫助確保全部成員在製做遊戲的過程當中使用相同的指南。 遊戲團隊在設計文檔完成以後不容許對其進行更改,而另外一些團隊在開發期間的一些關鍵點歡迎對其進行更改。

在規劃和開發過程期間,對你的核心理念進行覈查很是重要。 它有趣嗎? 它吸引目標用戶嗎? 它適用於目標設備或其它設備嗎? 確保必定徵求別人對你創意的反饋,特別是你的目標用戶成員。

開發成功Flash遊戲的注意事項

不管你建立遊戲的方式和目的是什麼,你極可能但願你的遊戲玩起來有趣而且不少玩家願意玩你的遊戲。 所以,一個主要注意事項是確保遊戲可以方便地拿起即玩(pick up and play) 用戶應該可以不須要進行冗長複雜的設置便可當即進入玩遊戲的狀態。 考慮提供一個互動遊戲指南,而不是提供告訴用戶如何玩遊戲的整個屏幕文字。

根據Ira Willey(流行遊戲門戶AddictingGames.com的建立者)的見解,若是你經過遵循下列指南提供逼真的遊戲內容和卓越的性能,則你將會吸引那些更願意重複玩你的遊戲的玩家。

  • 選擇一個具備很是吸引力而且易於記住的名稱。
  • 確保它是原創的名稱。 讓你的遊戲與其它遊戲不一樣以便它可以使人難忘。
  • 包含社交功能以支持多玩家遊戲和遠端互動。
  • 在太容易和太挫敗之間找到一個平衡點以便遊戲具備挑戰性。
  • 包含悅耳的聲音和良好的效果;必定包含靜音和音量控制按鈕。
  • 優化遊戲以便下降遊戲的文件大小從而使得它們易於下載。
  • 若是你的遊戲包含註冊功能,則提供一個賓客玩家(play as a guest)選項。
  • 考慮支持用戶建立和共享遊戲級別以增長你的遊戲的玩家人羣。

關於各類絕妙的技巧和建議的更多信息,請參閱 Ryan Wolniak的eBook 讓你的Flash遊戲得到資助(Getting Your Flash Game Sponsored)

步驟2:開發

在製做期間,一個有條不紊和可重複的過程將是很是有益的。 一般,在設計階段,你不知道遊戲的全部細節。 在代碼編寫完成以前,你可能不知道工藝圖的最終尺寸。 你可能知道屏幕上出現10個敵人會顯得人數太多,所以,你將使用8個敵人。但在你對遊戲試玩幾回以前,你不知道遊戲設置的困難。 此外,你可能最終了解你使用的某個聲音效果很是使人厭惡,從而須要更改。 在你的開發過程當中,保持靈活性而且不斷地調整遊戲理念,這樣你纔可能建立最佳遊戲。

下面是利用Flash技術開發遊戲的基本步驟:

  1. 開始編寫一個完整的遊戲設計文檔。包含遊戲屏幕布局和玩法規則,而且不能忘記使遊戲有趣。
  2. 分解遊戲引擎。將遊戲按照許多小的部分進行規劃以便遊戲更易於管理。
  3. 創建小型獨立演示項目。分別對較難以處理的部分進行驗證,例如輸入控件、物理現象和三角函數等。
  4. 建立和集成組件。 利用Flash Professional或其它 Creative Suite產品能夠建立工藝圖,而且經過在線可以以不多費用或免費下載聲音代碼。
  5. 構建菜單。遊戲一般可以支持許多遊戲自身以外的屏幕,例如引導(introduction)屏幕、指令(instruction)屏幕和遊戲結束(Game Over)屏幕。
  6. 試玩遊戲。在開發過程當中測試你的遊戲以確保它有趣而且具備挑戰性。

遊戲開發過程的一個關鍵部分是實際的代碼編寫。 正如我前面提到的那樣,ActionScript是用於對你的Flash遊戲進行編碼的語言。 做爲一種編程語言,ActionScript 一直處於進化過程當中,如今已是它的第三個版本。 要想成爲一個Flash遊戲的開發人員,你必須學習ActionScript 3.0(而不是ActionScript v1或v2)。 不一樣開發人員的學習方式不一樣,所以,你須要找到最適合你的學習策略。 下面是一些入門學習的推薦資料。

一旦你熟悉ActionScript語言,你將會但願學習如何將你的知識應用於Flash遊戲開發,而且但願查看下列諸多的Flash遊戲開發書籍。 其中一些書籍給出ActionScript語言的概述。 而另外一些書籍假定你已經瞭解ActionScrip語言,所以直接討論相應的代碼。

最後,我強烈建議執行繼續教育策略。 你應該跟蹤Flash開發博客,參與ActionScript論壇和Flash 遊戲開發詳細手冊(Flash game development cookbook),訂閱和訪問ActionScript特定的web網站,例如Kirupa.comActionScript.org,以及查閱 Flash Platform Game Developer Center ActionScript Technology Center上發佈的新進程。

在你使用ActionScript開發若干遊戲以後,你可能但願探索如何使用Flash遊戲引擎,這些引擎可以幫助你完成一些通用的編程任務而且爲你的遊戲代碼提供一個框架。 你能夠經過 Flash Platform Game Developer Center的遊戲引擎頁面瞭解Flash遊戲引擎的更多信息。

團隊動態和組織

目前哪些人在建立遊戲呢? 爲了幫助回答這一問題,Mochi Media,一個提供工具幫助遊戲開發人員從他們本身遊戲獲取收益的公司,最近完成了一份詳盡的Flash遊戲市場調查。 相應的調查結果提供了一個關於誰正在開發遊戲以及他們如何開發遊戲的有趣觀點。

下面是一些主要的調查結論:

  • 新的人才正在涌入Flash遊戲開發市場。 幾乎三分之二的響應較快的開發人員已經在過去兩年開始開發遊戲。
  • 開發人員基本上是獨立的,其中只有8%工做於工做室或其它遊戲開發公司。 其中大部分開發人員獨自開發他們的遊戲(60%),另外還有一些重要但數量較少的開發人員工做於獨立的團隊(29%)。
  • 大約35%的開發人員全職開發遊戲。
  • 全部受訪者的20%聲稱每個月可以得到超過$1,000的收益。 只有5%的受訪者聲稱每個月可以得到超過$5,000的收益。
  • 遊戲開發週期較短—大約50%參與調查的開發人員建立遊戲的週期是一到三個月。
  • 大多數受訪者只使用Flash Platform開發遊戲。

很是有趣的是70%的Flash遊戲開發人員將建立遊戲做爲一個愛好或第二職業:這不是他們的主要收入手段。 儘管調查結果顯示60%的Flash遊戲開發人員獨立工做,但我強烈推薦你爲你的遊戲尋找幫助。 不多有人可以在設計、開發和賺錢的商業領域均取得巨大成功。

爲遊戲公司開發遊戲

Flash遊戲業界的許多開發人員均基於合同或做爲全職僱員的方式工做。 這些人員包括遊戲創意的建立者、繪製和使得遊戲組件具備動畫效果的美工人員、聲音設計者、固然還包括Flash和Flex遊戲開發人員,他們可以利用本身的編程技術將上述部分所有組合在一塊兒。 此外,還須要由商業拓展的專業人員執行的工做以便推銷你的遊戲產品。

受僱的工做是養家餬口的一種穩定方式,而且回報豐厚而又有趣。 但爲了保持更具創新的控制以及產生更多可能的收益,我認爲值得冒險去本身建立和銷售遊戲。

創造性的製做過程

當談到Flash遊戲工藝圖製做時,TangledDreams.com 的Autumn Rain Turkel有許多話要說。 根據他多年的經驗,他爲美工人員提供兩個重要技巧:

  • 應該從開始階段介入項目。 美工人員的抽象創新能力在遊戲理念的集思廣益階段很是有用,而且可以利用開發人員的通用分析方法保持良好的平衡。
  • 在你的開發過程當中必須記住目標平臺的侷限性。

開發人員將會感謝像Autumn等美工人員的耐心和團隊協做精神。 開發人員也必須設法以保持原始組件的質量以及維持整個項目的圖像的方式進行組件集成。

創新和技術工做流程的集成

Flash Platform和Adobe Creative Suite的靈活性容許許多工做流程可以將工藝圖集成到你的項目中。 Flash Professional 能夠接受許多流行的圖像、動畫、聲音和視頻格式。 此外,Flash Professional 還可以導入Photoshop和Illustrator文件。

儘管沒有要求,但美工人員在Flash Professional中直接工做的效率將會更高。 即便稍後相應的開發是在 Flash Builder中完成的,但開發人員可以導入美工人員在 Flash Professional中建立的SWF文件。 這樣,你能夠在製做期間方便地往返於工藝圖組件之間,而且能夠在運行時垂手可得地縮放或旋轉這些組件。

在工藝圖完成以後,可使用兩種主要策略將其加載到你的遊戲中。 首先,這些組件可以被嵌入到相應的Flash庫中。 這是最簡單的工做流程,但它增長SWF文件的大小,於是你的用戶須要更長的初始下載時間。 另外一種選擇是,這些組件可以在運行時、在級別之間或在須要更多組件時進行加載。 最佳解決方案將取決於你的項目、組件的數量以及目標設備。

關於更多信息,參見個人博客貼文,其標題爲 在Flash/Flex工做流程中使用Embed & AssetManager(Using Embed & AssetManager for Flash/Flex Workflow)

使用Flash Builder和Flash Professional進行遊戲開發

在個人文章在Adobe Flash Platform上進行遊戲開發簡介(An introduction to developing games on the Adobe Flash Platform)中,我描述瞭如何將遊戲理論應用於實際遊戲。 爲了幫助你們更好地理解該文章,我建立了一款名稱爲Flyer的簡單遊戲。 該遊戲的玩法相似於1980年代的電子遊戲Frogger。 用戶的宇宙飛船從屏幕的底部啓動。 4個箭頭鍵可以移動flyer。 遊戲的目標是到達屏幕的頂部便可獲勝。 在達到屏幕的頂部以前與敵人(雙翼飛機或小型軟式氣艇)相撞,將致使失敗。

步驟3:測試和優化

在整個製做過程當中,特別是在項目完成時,必須對你的遊戲進行測試以便改善和優化遊戲。

測試

依據你項目的大小以及你團隊的人數多少,測試能夠採起許多不一樣形式。 若是你是一個個體開發人員,也許測試過程僅僅是你和若干朋友對遊戲進行試玩。 當你對本身的做品進行覈查時,很難作到客觀公正。 努力經過開放的視野和開放的心態,這樣你才能看到新的問題和新的解決方案。 用戶測試經常可以發現一些你不能預見或考慮到的問題。

較大的遊戲開放團隊一般擁有專門的遊戲測試的質量保證(quality assurance (QA) )團隊。 該團隊將試玩遊戲而且創建一個變動和建議列表。 若是你具備相應的測試預算,另外一個選擇是僱傭一個可以提供Flash遊戲測試服務的公司。

不管開發團隊的規模如何,一個良好的測試過程必須回答下列基本問題:

  • 遊戲好玩嗎?
  • 遊戲是否存在已知軟件故障?
  • 遊戲在全部目標平臺(瀏覽器、桌面、移動等設備)上的表現是否知足要求?

若是你對全部這些問題的答覆爲「是」,那麼很是棒,你的任務已經完成。 該遊戲能夠進行部署。 然而,一般你須要返工來更改工藝圖、編程、渲染和遊戲機制以便對遊戲進行改進。

對於web遊戲來講,能夠在各類計算機和web瀏覽器上進行遊戲測試。 必須確保遊戲可以在全部情形下正常運行。 即便遊戲可以在你的我的電腦上順利運行,你也須要記住你的用戶使用的計算機和設備類型。

對於手機和平板電腦來講,測試將更爲複雜困難。 設備之間的差別(例如屏幕大小、屏幕密度和輸入方案)和現有設備的巨大數量均使得過程複雜化。 Flash Builder和 Flash Professional 發行了一款調試版本的 Flash Player,它可以在你開發和測試遊戲時提供附加信息(例如,輸出跟蹤和重繪區域)。 Flash Professional 還發行了 Device Central軟件,它是一個仿真器包,可以直接在你的計算機上對各類流行的移動設備進行仿真。 儘管這是很是有用的工具,但若是可能,你仍是應該在物理設備上進行相應測試。

可以幫助你實現這一任務的公司是 DeviceAnywhere。 他們具備數千部物理設備,你可使用它們進行遙控測試。 此外,他們還提供測試服務爲你處理一些或所有的QA過程。

經過Flash Builder 4.5,你能夠將你的設備鏈接到計算機上,Flash Builder經過USB可以在計算機上運行而且在開發遊戲的同時在設備上進行遊戲測試。 如需看到遊戲是如何運行的,請觀看 Ed Rowe的視頻,它的標題是利用Flash Builder 4.5進行移動應用程序開發指南(Guided Tour of Mobile Application Development with Flash Builder 4.5)

優化

開發人員Ted Patrick 很早之前即開始使用Flash。 他了解Flash Player的內部構件。 在他的博客中,Ted解釋到他將Flash Player 看做爲一個跑道(參見圖3)。 該跑道有兩個大相徑庭的部分組成,一個用於執行ActionScript語言(帶有一個用於事件處理的子部分),而另外一個用於將內容渲染到屏幕上。 在運行過程當中,Flash Player 以在SWF文件中指定的預設速度圍繞該跑道循環,速度定位是每秒幀數(frames per second (FPS) )。 在整個過程當中,無論Flash Player是否被要求改變速度,它將試圖保持設定的速度。指定的FPS是跑道的最大速度;處理速度決不能高於該限制速度,但能夠低於它。

ted.onflash.org 的Flash Player 代碼執行和渲染程序的圖解
圖3. ted.onflash.org 的Flash Player 代碼執行和渲染程序的圖解

很是關鍵的一點是沒有內置方法可以延緩代碼執行而且也沒有內置方法可以延緩渲染執行。 Flash Player 是無損的播放器。 它將處理在一個給定幀循環中要求處理的全部任務,即便他花費的時間要長於當前幀率設置規定的兩幀之間的時間。 所以,簡單來講,爲了不出現問題,不要讓Flash Player執行它力所能及以外的任務。

你如何知道是否存在問題? 在繁重的代碼執行繁重的渲染執行期間,當Flash Player試圖處理其指令時,Flash Player幀率將會暫時降低(或甚至凍結)。 此時,遊戲的動畫可能變得明顯的斷斷續續,而且遊戲一般會變得行動遲緩和反應遲鈍。 優化是針對自身的一種技術,但上述情形是須要進行優化的基本跡象。

即便在問題出現以前,最好應該思考可能出現的瓶頸。 若是你具備任何計算密集的代碼(物理現象、AI和數據解析)或繁重的渲染任務(3D、像素級的操做和數十個移動sprite),則你能夠爲這些領域的優化配置更多的時間和精力。

下面是一些優化代碼執行的技巧:

  • 創建標杆。 驗證兩種或更多用於解決一個給定問題的方法而且比較每種方法的性能。 找出最有效的解決方案以便最大限度地下降CPU使用率和改善性能。
  • 保留內存。.對可能的最小對象進行例示以便完成相應的任務。 移除事件偵聽器而且刪除沒有使用的對象。
  • 改進AS3性能。 使用 if , break , continue 和其它構造器以免執行沒必要要的代碼。 經過本節後面的連接,你能夠更深刻地探究該話題。
  • 下面是一些優化渲染的技巧:
  • 顯示列表。 Flash Player的顯示列表是一個包含屏幕上全部的DisplayObject實例的本機樹形結構。 全部可見對象都將被渲染,所以刪除不須要改善性能的對象。 關於顯示列表的更多信息,請參見利用ActionScript 3進行顯示列表編程(Display list programming in ActionScript 3)
  • CacheAsBitmap。 每幀的每一個DisplayObject 將被從新渲染,這將致使一些冗餘計算。 在某些情形下,將 DisplayObject.cacheAsBitmap 屬性設置爲true 將可以保存和重用這些計算結果,從而可以改善相應的性能。
  • CacheAsBitmapMatrix。僅適用於某些設備,它的性能甚至優於CacheAsBitmap。
  • 位塊圖像傳輸(Blitting)。 Blitting是使用Flash Player顯示列表的另外一種可選方法。 該過程能夠將你的對象手工繪製到一個圖像中而且只將該圖像添加到屏幕上。 在某些情形下,這將可以顯著改善性能。 關於blitting技術的更多信息,請參見在移動遊戲中渲染動畫模型(Rendering animated models in mobile games)。
  • Stage3D。Stage3D是一個低層、支持GPU加速功能的3D API的集合,它支持經過 Adobe Flash Platform 運行時跨屏幕的高級3D體驗。 關於Stage3D的更多信息, 請參見 使用Stage3D(Using Stage3D)。
  • M2D.這是一個在Stage3D之上創建的2D sprite庫,它是Flash的新的GPU硬件加速API。 關於M2D的更多信息,請參見M2D:Molehill的2D庫(M2D: A 2D Library for Molehill)。.
  • StageVideoStageVideo支持渲染視頻的硬件加速功能。 關於StageVideo的更多信息,請參見使用 StageVideo類(Using the StageVideo class)。

關於該話題的更多信息,參見Thibault Imbert在Flash Platform Game Developer Center上發表的文章AdobeFlash Platform的性能優化(Optimizing Performance for the Adobe Flash Platform)  性能和優化(Performance and Optimization)。

步驟4:發行和收益

休閒遊戲的收入模型之間的差別較大。 在線遊戲一般是免費的,但它們經常在將橫幅廣告放於顯著位置的頁面上運行。 網站擁有者經過將用戶流量驅趕到第三方網站獲取收益。 其它遊戲也是免費的,但它們將產品商標組合到遊戲之中。 這些廣告遊戲(advergame)本質上是一個大型廣告,而且使用與產品植入(product placement)廣告相似的技巧。 電影網站和玩具網站一般將廣告遊戲做爲促銷策略的一個組成部分。 做爲一個相關的範例,請觀看關於Green Hornet遊戲的視頻,它的開發目的是對該電影進行宣傳。

休閒遊戲製做者掙錢的另外一種方法是使用freemium商業模式。 在這一模式中,用戶可以免費玩遊戲的試用版本,但必須付費獲取相應的完整高級版本遊戲。 其它收入方法包括訂閱方式(subscription)和微交易方式(microtransaction)。

你遊戲的發行和收益策略最好在集思廣益階段進行定義。 發行策略將影響你的遊戲,由於屏幕大小和輸入式樣將依據目標設備而變化。 依據你選擇的收益策略,你的遊戲的內容(或至少你的菜單)也將會受到影響。 你可能還須要實現廣告集成、至贊助者的連接或按鈕及虛擬條目銷售等功能。

發行

發行能夠定義你將你的遊戲傳送到玩家手中的策略。 大型項目每每具備精心策劃的營銷活動以便將遊戲帶到新用戶的手中。

基於web的用戶可以在瀏覽器玩中游戲或從任何適宜的網站下載獨立的遊戲。 該市場與移動平臺的應用程序相比相對開放。

在許多移動平臺中,用戶必須進入設備應用程序市場的圍牆花園(walled garden)。 在這裏,設備製造商或移動運營商公司控制該市場,而用戶可以在該市場中購買和下載應用程序。

根據 移動遊戲報告(Mobile Games report)的做者Daniel Ashdown的觀點, 「你的遊戲的可發現性就是一個雞和蛋的問題:高下載量可以使得遊戲引人注目,但得到高下載量主要取決於遊戲是否已經引人注目。 所以,只有少數遊戲得到很高下載量,而大多數遊戲只能得到不多的下載量。」

將你的遊戲推向市場的策略在很大程度上隨着設備而變化,但一般的思路是讓你的遊戲給別人的第一印象就成爲最好的印象–流行遊戲保持流行狀態。 而其它遊戲將會當即從潛在的遊戲玩家眼前消失。

成功發行你的遊戲存在許多挑戰。 但幸運的是,有不少公司可以幫助你。 關於相關的更多信息,參見在Flash Platform Game Developer Center的 發行、測量和得到收益 (Distribute, measure, and monetize)頁面上列出的公司名單。 你的發行策略應該包含一個精心定義的目標用戶羣,他們極可能使用多種設備。 Flash Platform 可以提供大量的開發選項以便觸及到你的目標用戶。

經過Flash Player的Flash Platform部署選項:

  • Web瀏覽器(PC、Mac、Linux、移動)
  • Mobile瀏覽器(Android、BlackBerry)

注: 在本文發表時,Apple iOS Safari web 瀏覽器仍然不支持Flash Player的任何版本。 爲了在iOS設備上安裝你的遊戲,你可使用Adobe AIR將遊戲做爲一個獨立的應用程序進行打包便可。

  • 經過Adobe AIR技術的Flash Platform部署選項
  • 桌面(PC、Mac、Linux)
  • Android(手機和平板電腦)
  • Apple iOS (手機和平板電腦)
  • BlackBerry Tablet OS(平板電腦)
  • 因特網電視和其它家用電器

 

根據你遊戲的需求和架構,你能夠爲全部平臺發佈一次,或進行一些平臺特定的更改。 關於相關的更多信息,參見Christian Cantrell的文章 一款應用程序和五個屏幕(包括iPad)(One Application, Five Screens (Including iPad)) 和Jonathan Campos的文章 爲多種設備設計應用程序的架構(Architecting your application for multiple devices)。.

促銷

一些創造收益的策略(例如爲你的遊戲設置許可)包含發行策略。 但若是你選擇一種不包含發行策略的模型,那麼你如何將完成的產品發行到玩家的手中。

一些較大型社交遊戲公司( 例如 Zynga, EA, 和Playdom))是衆所周知的自我促銷和病毒式營銷的機構。 在Flash遊戲體驗的內外環境中,人們鼓勵用戶向社會大衆推廣遊戲活動和技藝而且邀請朋友加入遊戲。Heyzap是一個Flash遊戲領域的剛起步的新公司,它可以幫助遊戲開發商發行遊戲。 但你也可以進行本身的遊戲營銷。

你能夠經過建立網站和經過使用社交網絡(例如Twitter和 Facebook)來營銷你的項目以便產生流量。像GamerSafe, Heyzap, 和 Mochi Media 等公司也可以幫助你創建和維持與你的遊戲相關的社區。 每一個公司均可以提供具備大量絕妙功能的API和服務,其中包括通用保存的遊戲、勝利評價系統(trophy system)、高分系統(high score)、微交易方式(microtransaction)、病毒式營銷、安全系統,等等。 關於如何將社交網絡集成到你的遊戲中的更多信息,參見頁面 參見頁面發行、測量和得到收益 (Distribute, measure, and monetize).

將你遊戲的視頻添加到 YouTube  Vimeo也是值得推薦的方法。 這能夠幫助遊戲經過口頭傳播產生其本身的動量。

Newgrounds.com 是一個遊戲門戶網站,它是一個特別爲發佈Flash遊戲和收集玩家評論創建的網站。 經過在集成廣告以前發佈你的遊戲,你可以得到有價值的反饋,其中包括玩家評分、評論、非正式的故障報告和性能統計等信息。 即便你只在短期內在該網站上提交一個遊戲,你也可以聚集到許多須要調整和改進的事項。 應該考慮在向許可證頒發者介紹遊戲產品以前解決相應的反饋問題,由於一個更爲完善的遊戲可以賣出更高的價格而且產生更多遊戲玩法。

收益

爲了從完成的遊戲項目中得到收益,共有兩種主要策略:提供免費的遊戲或提供付費的高級遊戲。

下面是幾種從免費遊戲中得到收益的方法:

  • 廣告。在圍繞遊戲的HTML頁面中或在遊戲自身中間放置橫幅廣告。 基於廣告展現的次數(收視次數)或產生的流量次數(點擊數)計算的廣告收益一般將支付給遊戲開發人員。
  • 贊助。在你的遊戲中爲付費的贊助公司放置廣告、連接、徽標和營銷消息。
  • 許可。 在你的遊戲中爲付費的贊助公司放置(一般更爲精巧的)廣告、連接、徽標和營銷消息而且限制遊戲只能在一個單一的網站中運行。 例如, 像Kongregate.com等大型遊戲門戶網站容許將你的遊戲做爲他們的專享內容。

此外,還有幾種經過將高級Flash遊戲直接賣給視頻遊戲社區的賺錢方法。

  • 直銷。 將整個遊戲以預付成本(one upfront cost)賣出。
  • Freemium。 免費提供一個試用或非完整遊戲體驗版本,而後讓用戶交付一個固定費用升級得到相應的完整遊戲版本。
  • 微交易(Microtransaction)。 鼓勵用戶將真實貨幣轉換爲虛擬遊戲錢幣以便開啓角色(character)、能力(ability)、級別(level)或其它內容。 Microtransactionfreemium 遊戲有時候可以同時使用。
  • 訂閱(Subscription)。 若是玩家按期付費(一般按月計算),則他們可以連續玩遊戲。

關於相關的更多信息,參見個人文章如何利用在線遊戲賺錢(How to Make Money with Online Games)和在Flash Platform Game Developer Center中的發行、測量和得到收益(Distribute, measure, and monetize)頁面。

步驟5:使用分析

當你的項目找到用戶時,你將能夠開始接收有價值的反饋。 許多遊戲門戶網站容許遊戲玩家對你的遊戲進行評論和評分。 你應該仔細分析這些信息,由於其中有些信息能夠幫助你改進你的遊戲。

監測什麼人能夠看到、玩耍及重複玩耍你的遊戲是一個良好的開端。 另外一方面,分析這些結果將幫助你在較短的時間內建立更受歡迎的內容。 有些門戶網站能夠爲你保留統計數據,但最好你本身可以收集這些統計數據。 有許多公司可以幫助你完成這一任務。 Mochi Media 能夠提供一個 ActionScript 3 API,它除了提供許多其它服務以外,還提供分析服務。PlayTomic能夠監測標準遊戲事件(例如,遊戲開始、遊戲結束、完成級別等等)以及你可以定義的自定義遊戲內事件。 當你須要解決遊戲的問題時,遊戲的自定義分析測量報告特別有幫助做用。 例如,若是你瞭解到大部分用戶不能在你的遊戲的第10級過關,則你能夠更改遊戲以便它玩起來簡單一些。

步驟6:更新

不管你選擇哪種發行方式,必須確保你可以對更新你的內容擁有控制權。 與可以提供你的遊戲的許多移動市場同樣,全部主要的遊戲門戶網站均容許進行更新。

無論是處理軟件故障、根據分析改進遊戲性能、或添加級別和角色等新內容、以及在遊戲初始發佈以後進行更新,全部這些都是爲了確保遊戲可以具備儘量長的生命週期。 基於訂閱的收益策略一般依賴於可以保持用戶興奮的情節內容(episodic content)。

框架和其它三方庫

框架和其它三方庫 Flash Platform可以提供一個基礎,你能夠基於它開發和渲染各類複雜的遊戲。 Flash 社區資源豐富,它爲 Flash Platform提供了極大的內容補充。 你能夠在線找到許多免費和價格低廉的工具、ActionScript 3.0庫以及可以幫助你開發項目的其它資源。

  • 設計模式。設計模式本質上不是代碼庫。 它們更像菜譜(通用解決方案),你能夠利用它烹調(編程)你本身的菜餚(代碼)。
  • 框架。框架提供一個骨架,你能夠在其之上添加你代碼的食物。 在許多情形下,按照框架編程將可以得到一個更加可讀、可維護和可擴展的項目(特別是針對新的開發人員)。
  • 粒子(Particle)粒子系統可以模仿火焰、爆炸、煙霧、灰塵等現象。
  • 3D。利用三方庫的幫助,你能夠建立軟件渲染和硬件渲染的3D遊戲。
  • 物理學(Physics)。關於在你的遊戲開發中包含物理學知識的重要性的詳細信息, 參見個人文章 利用Adobe Flash Professional開發基於物理學知識的遊戲(Developing physics-based games with Adobe Flash Professional).
  • 實時多玩家。 實時多玩家遊戲支持兩個或更多玩家在獨立的計算機或設備上一塊兒合做或競爭玩遊戲。 在建立實時多玩家遊戲時,一般使用Socket 服務器、Electrotank等服務、LiveCycle Data Service、Flash Media Server或其它服務器側技術。

關於相關的更多信息,參見 Flash Platform Game Developer Center的遊戲引擎、3D和 Stage 3D(Gaming engines, 3D, and Stage 3D)頁面。

多屏設計和移動開發

利用Flash Platform進行互動開發應該從 web 瀏覽器的目標設定入手。 儘管大部份內容仍然能夠利用瀏覽器顯示,但Flash Platform 可以處理更多內容。 利用Adobe AIR,開發人員可以爲桌面設計獨立的應用程序,它們可以在本地計算機上讀取和寫入而且可以全屏運行內容。 在2009年,Adobe與主要移動運營商和設備製造商一塊兒已經將Flash Player 10和Adobe AIR 技術應用於許多devices,從而開啓了移動電話、移動平板電腦和因特網電視等設備的Flash Platform的潛在市場。

如今利用Flash Professional和 Flash Builder,開發人員可以使用ActionScript 3.0在他們的項目中爲許多設備設計遊戲。 然而,多設備的設計和開發將遇到一些新的挑戰。

影響範圍和生產率

傳統上來講,對於每種設備或平臺,開發團隊均須要重起爐竈,例如重新的代碼、新的API、甚至新的編程語言開始。 尋找可以容許代碼從一個單一的代碼基發佈到許多設備的平臺便利工具一直是開發人員的夢想。 利用Creative Suite 5.5和 Flash Builder 4.5,Flash Platform使得遊戲開發人員離這一夢想更近一步。

助力開發人員更方便地製做跨設備的內容也爲設備製造商和運營商帶來益處。 Open Screen Project是一個業界創新項目,它由 Adobe統領而且得到業界其它領先者的支持,全部這些領先者均共享一個清晰的願景:讓用戶在任何設備上、在任何地點均可以無縫享受豐富的因特網體驗。

正如我在前面說起的那樣,Flash Platform 開發人員可以將但願寄託於他們的用戶,這些用戶已經佔據成熟市場的99% 的因特網桌面系統和各類不一樣的設備市場。 儘管iOS 設備目前不能使用Flash Player運行內容,但你仍然可使用Flash開發你的遊戲而且利用 Adobe AIR 技術將它們部署到iOS設備上。 關於如何進行這一操做的更多詳細信息,參見Flash Professional CS5.5 – 將內容發佈到 iOS設備(Flash Professional CS5.5 - Publishing content to iOS devices)利用AIR for Mobile 2.6爲iOS開發應用程序(Developing for iOS with AIR for Mobile 2.6)

爲多屏幕尺寸設計應用程序

當你建立目標爲多屏幕尺寸的應用程序時,你遇到的障礙看起來使人畏懼。 簡單縮放內容以適應整個可用區域極可能不能知足你遊戲的需求。 文本必須可讀,即便在很小的設備上也應該如此。 此外,按鈕的尺寸必須合理以便可以使用手指而不是鼠標進行激活。 甚至在一個單一設備中,用戶也可以選擇以橫向(寬)或縱向(高)模式顯示。 是否及如何支持該功能則是另外一種決定。 關於相關的更多信息,參見Allen Ellison的精彩文章Flash 縮放指南:讓Flash 適用於移動設備(Flash sizing Zen: Making Flash fit on mobile devices)

爲移動設備設計應用程序

Flash Platform 工具能夠將你的項目從一個平臺從新部署到另外一個平臺。 然而,簡單地移植項目的效果是不理想的。 爲了建立最引人入勝的體驗,最好的方法是單獨地處理每一個目標平臺,其中包括每一個設備的輸入方案和其它功能等。 至少,你應該計劃針對各類目標設備和現狀因素(手機、平板電腦和計算機顯示器具備不一樣的現狀因素)對你的遊戲進行測試。

輸入方法

輸入方法已經演化。 儘管適合在計算機瀏覽器和桌面運行的內容僅僅關注鍵盤和鼠標輸入,但其它設備在這方面差別很大。 早期的移動設備具備較小的鍵盤,所以它要求新的輸入解決方案。 在2007年,iPhone 引導人們進入觸摸屏輸入的時代–使用你的手指做爲輸入設備。 移動平板電腦設備也充滿挑戰和機遇。 有些設備支持專用的Back按鈕和音量控制,而有些設備不支持這些功能。 儘管在許多流行設備中的輸入模式之間存在某些共性,但我建議考慮每種設備使用相應的最佳輸入解決方案而且根據須要定製你的遊戲。 目前Flash Platform在瀏覽器的Flash Player 10.1或更高版本中支持多點觸控和手勢功能,支持爲 iPhone 或iPod touch發佈的SWF內容,以及 AIR 2 或更高版本的內容。 關於該話題的更多信息,參見 Christian Cantrell的文章 Flash Platform的多點觸控和手勢支持功能(Multitouch and gesture support on the Flash Platform)和Mike Jones針對 觸控設備的虛擬控制器(Virtual Controllers for Touch-based Devices)的系列文章。

其它功能

除了創新的輸入模式以外,許多設備具備其它可以用於遊戲的功能。 下面是一些主要功能以及每一個功能的一些注意事項。

  • 加速計。一些設備使用加速計自動檢測它們的旋轉角度。 你能夠將它用做輸入設備。 關於如何在你的Flash 遊戲中充分利用加速計的更多信息,參看此視頻
  • 應用程序多任務功能。 在最小化和最大化時,你的遊戲的行爲方式是什麼? 若是它是一個移動遊戲,它可以在手機來話時自動暫停嗎?
  • 隨意鏈接性。 用戶一般不老是鏈接到因特網。 你的遊戲要求持續的鏈接嗎? 它具備離線模式和在線模式嗎?
  • GPS/地理位置定位。 具備地理位置定位功能的設備知道本身位於地球的位置。 你能夠利用這一功能改變遊戲體驗、開啓內容或邀請相互距離很近的玩家加入遊戲。
  • 圖片、視頻和音樂庫。 你可使用庫爲角色定製導入媒體、利用玩家的喜好聲道增長你的遊戲聲道以及進行其它操做。
  • 麥克風。可使用聲音做爲一個輸入。關於如何在你的遊戲中訪問設備的麥克風的信息,參看此視頻
  • 持續機制。許多移動用戶在很短的時間段玩遊戲,他們只能在閒暇時才能啓動遊戲。 若是你的遊戲可以保存本身的進程,這將會幫助用戶快速跳回到原先的遊戲動做。
  • 睡眠模式。 當處於非使用狀態時,一些設備進入睡眠狀態。 你的遊戲的反應方式是什麼? 若是用戶變得心煩意亂而且關閉設備,遊戲可以暫停嗎?或繼續消耗電池能量?
  • 照相機(前置或後置)。你可使用相機讓用戶將本身的面容或其它圖像添加到你的遊戲中。 關於如何在你的遊戲中添加相機輸入功能,參看此視頻
  • 視頻錄製。 使用視頻做爲輸入設備,例如Sony的EyeToy 或Microsoft的 Kinect
  • 視頻輸出。一些設備可以鏈接監視器或HDTV顯示器。

其它注意事項

依據你選擇的目標設備,你可能須要特別許能夠便使得用戶可使用你的遊戲。 一般,你必須在線申請開發人員(個體或公司)的身份,而後得到一個安全證書,該證書能夠保證提交的內容來自你本身。 在某些情形下,你可能須要付費。 這是每一個設備的一次性設置。 並非你建立的每一個遊戲均有此要求。 最後,這將爲購買的玩家建立一個更爲可信的環境,所以他們將喜歡你的遊戲。 這一過程可能花些時間,所以最好在你的開發過程當中儘早申請。

移動遊戲優化

因爲移動設備與功能強大的計算機相比具備較小的處理能力,所以對目標爲移動設備的項目進行優化特別重要。 爲了最大程度提高遊戲的性能,你須要在目標設備上進行標準測試而且對相應代碼和渲染程序進行優化。 關於相關的更多信息,參見步驟3:測試和優化

此外,參見Mobile and Devices Developer Center爲移動瀏覽器優化Flash內容 (Optimize Flash content for mobile browsers)適用於電視的Flash Platform(Flash Platform for TV)

Flash遊戲安全性

本節中的術語安全性是指保護你的知識產權以及防止有人針對你的遊戲的欺詐行爲。 當建立遊戲時,安全性是一個熱點話題,它涉及你的編譯代碼的安全以及在用戶體驗過程當中你的代碼的安全。

編譯代碼安全性

Flash 遊戲一般被編譯爲 SWF 格式,所以與查看和複製 HTML頁面的源代碼相比,獲取它相對困難。 然而,有一些反編譯器可以獲取你的代碼。 與大多數客戶端側技術相同,Flash易於受到逆向工程(reverse engineering)和黑客的攻擊。 經過查看你的源代碼,惡意玩家可以找到在你的遊戲中進行敲詐的方法。 基於你的商業模型,這可能不是一個值得關注的問題。 但對於具備社交社區、高分跟蹤或虛擬貨幣的許多較大型公司來講,安全性是很是重要的。 將遊戲數據保存在服務器側是一個首選的解決方案,由於在那裏可以得到更好的保護措施。 此外,也有可以幫助你鎖定SWF文件的工具。 由Amayeta等公司建立的這種工具可以限制但不能徹底阻止黑客行爲。 組合技術可以使得客戶端內容更爲安全。 Roguish的負責人Elliot Mebane表示:「咱們已經發行了包裹於 C++ 殼中的SWF遊戲,它們的表現與咱們利用 C++本機開發的遊戲相同,而且具備版權管理等安全優點。」

運行時安全性

惡意玩家可以使用sniffers 和其它工具監測來往你的遊戲的網絡流量。 這使得他們可以利用他們本身的訪問來哄騙合法的訪問,從而爲僞造高分提交、過早解鎖內容等操做打開了大門,一種防範的方法是加密全部傳輸的數據。

此外,利用Cheat Engine Quick Memory Editor 等工具進行RAM黑客行爲也很是流行。 用戶可以在他們的Flash遊戲玩耍體驗過程當中使用這類工具。 這類工具可以分析計算機的RAM而且找到他們的當前得分、生命數量或其它重要信息。 爲了實現這樣的操做,用戶必須知道當前的值是多少(若是得分在屏幕上顯示,則很容易知道此值)而且該值必須隨時間變化。 而後,用戶可以人工改變他們的得分,而無需在遊戲中實際掙分。 爲了使得這一操做難以實現,你必須對在屏幕上顯示的任何變量的值進行加密,不然用戶可以垂手可得地知道這些值。

下一步閱讀方向

雖然該文章涉及了很大的範圍,但仍然還有許多問題須要進一步討論。 按照本節上面給出的許多連接參考進一步鑽研是一種繼續學習的好方法。

Adobe Developer Connection的Flash Platform Game Technology Center 是全部技術水平的web遊戲開發人員尋找文章、教程和其它有趣內容的好地方。 若是你剛剛入門,則它是學習和得到靈感的好去處。 即便你是一個有經驗的開發人員,你也可以找到能夠幫助你開發更引人入勝的遊戲的新資源—而且你可以利用這一機會撰寫一篇文章,而後將其回投到社區中。

實踐經驗不可替代。 啓動你的第一個遊戲多是使人畏懼的,但重要的是你已經入門。 選擇一個小型項目,就像上面討論過的Flyer遊戲,而且在建立你的第一個Flash Platform遊戲過程當中尋找樂趣。

我將引用Say Design CEO John Say的一段話來結束本文:「自從Flash在1990年代後期第一次 引入ActionScript,它已經慢慢地變得成熟,從橫幅廣告演化到更多、更多技術領域。 如今,十年以後,我確信Flash將會顯著改變在線和跨平臺遊戲的景觀,由於它在性能和功能方面均在繼續提高。」

利用Adobe Flash技術建立的遊戲的確隨處可見,而且休閒遊戲行業的前景看起來一片光明。 Flash Professional和Flash Player 10 是目前爲止最好的軟件版本,它們可以實如今開發人員願望列表中給出的大部分(但不是所有)需求。 經過了解這些休閒互動遊戲背後的基本理論以及如何應用它,你能夠看到入門是如何的簡單。 所以,趕忙行動起來吧。

鳴謝

我但願藉此機會感謝全部爲本文提供有價值觀點和專業知識的社區領導者,並且特別感謝全部遊戲設計人員和開發人員,他們天天都可以使我感到快樂而且得到靈感。

相關文章
相關標籤/搜索