看板 GameDesign 關於我們 聯絡資訊
現在Unity3D免費,更多人使用它,因為開發容易而且跨平台 但是我覺得它不適合開發純2D遊戲 所以我的想法是 Unity3D適合開發3D遊戲 Flash適合開發2D遊戲 我想請問大家意見的是 如果要開發純2D的遊戲,為何我選擇/不選擇Flash來開發呢? 是這樣的,我本身是有C/C++、Unity3D、Flash開發的經驗 而公司開發行動平台遊戲一向以Unity3D做為開發工具 不論2D/3D都是,但是我在評估2D的案子,甚至是使用Unity3D做prototype後 都覺得使用Flash開發會產生的問題較少,速度也會比較快 我曾試著用Flash的Starling Framework來做一個prototype (如果不用Starling Framework我完全不考慮使用Flash) 然後給老板看,但總是會有幾個回應 「Unity3D不是更適合做遊戲嗎?」 「Flash效能不好吧」 「Flash不是專門做遊戲的工具,開發會不會有一堆問題」 「又聽說誰誰誰又放棄了Flash了,為何選擇要被放棄的東西」 「我無法信任Flash這個東西」 就算解釋了這些都不是問題,但只要不是很熟悉的人,總是會有所擔心 這邊我想幫Flash說明的幾點 * Flash在AIR3.2之後提供stage3d api,starling framework更是在此之上開發的 2d game framework,繪圖效率大為提升,在行動平台上的效能也完全不是問題 * Adobe也有Gaming SDK將各個3rd party函式庫包進來提供給大家開發遊戲 * iOS與Android原生功能也可透過adobe native extension來執行 * 雖然Flash Player只在desktop有所更新,其它平台已被放棄 但Adobe在AIR上的仍然持續發展與更新,特別是行動平台上 * 工具的開發成本雖然Unity3D是免費,但如果做為主要開發工具也是不少公司會直 接購買pro版 adobe creative cloud一個月一千多元可以使用所有adobe的軟體 * 使用Flash Professional可以讓美術直接製作2D bone animation的動畫 大概是因為這幾點,我認為Flash在製作遊戲上也有優勢的原因 那大家會因為什麼原因會去選擇/不選擇Flash開發2D遊戲呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.153.218
chenglap:不用的原因: FLASH 在 mobile 上即使能跑效能也太低. 06/02 01:02
chenglap:就算要兼容 flash, 我也會選擇用 HAXE 去生成. 06/02 01:06
chenglap:是否「行動平臺上效能也不成問題」, 沒有測試數據我不會 06/02 01:08
chenglap:立即就相信. 06/02 01:09
chenglap:而且沒記錯連 adobe 也不打算在行動平臺上鑽研下去了吧. 06/02 01:10
http://blog.juiceboxmobile.com/2013/03/06/2d-gaming-mobile-performance-starling-air-vs-unity-3d/ 縮址 : http://ppt.cc/SBfJ 這邊有篇文章正好提到這個部分,Unity3D的效能較好 當然我本來就相信使用Unity3D效能一定比AIR還要好 但我認為只要夠用我仍可以去考慮使用AIR 我無法放棄的主要原因,是AIR提供的API對於跨平台有更好的支援 例如字型、存取檔案、網路還有很多其它的都很好用,不單單是繪圖而已 當然,最主要是我在Unity3D使用一些3rd的2d framework使用 挫折感不少,有的是效能更差,有的是好用,但無法用系統字,要再打包一個 中文bitmap font就佔了不少空間 我有在iPad1寫一個Prototype,使用AIR+Starling Framework 使用一隻2D bone animation的角色 + 三層捲動背景 + 一個火焰的Particle + 10隻怪物 FPS穩定60 由此我自認為效能不是問題,很抱歉我的確是沒有測試數據就相信了它 另外AIR最近仍然還是一直在更新,我想AIR應該是沒有問題 至少我沒有看到什麼消息說Adobe的AIR要停止對行動平台的支援這樣的事
VVll:都說做行動平台了 還用flash找死 根本不能跨平台 06/02 01:12
VVll:可以用簡單的方法 去增加使用量 不是很好嗎 06/02 01:12
你好,其實我最初的方案是cocos2d-x與Unity3D 其實使用AIR在我的心裡其實是排在它們二個之後的 但由於跨平台的原因,我選擇Unity3D/Flash 而為了做2D game更方便快速,我希望能選擇Flash
littleshan:2D手機遊戲請愛用Corona 有免費版 06/02 01:31
zeldein:蠻輕鬆的。 06/02 01:53
Corona SDK我也有survey過一段時間,只是Corona SDK對於它沒有的功能我無法擴充 在AIR與Unity3D 我仍可以透過Native的方式來撰寫原生程式碼完成 而cocos2d-x更沒有擴充的問題
zeldein:呃 上面沒po好。我沒flash做遊戲經驗,無法比較,不過用 06/02 01:54
zeldein:Unity開發2D遊戲其實蠻輕鬆的。 06/02 01:55
gonzdevour:這個問題你要問兩種都有做過的人才知道。 06/02 04:30
gonzdevour:目前台灣用AIR做行動平台的開發者寥寥可數, 06/02 04:32
gonzdevour:所以應該也不用太期待能得到一針見血的答案。 06/02 04:33
gonzdevour:就行動平台APP來說,AIR目前應該是全跨, 06/02 04:53
gonzdevour:而且Flash的CreateJS還比Unity多了一個mobile web, 06/02 04:54
gonzdevour:以及絕對優勢的PCweb平台~ 06/02 04:56
gonzdevour:不過開發工具的選擇....這種事本來就很難是客觀的。 06/02 04:58
你好,由於我有傳統FlashWeb開發經驗,也有AIR+Starling的開發經驗 而原本的C/C++上也有使用OGRE/Gamebryo上開發 而原生的Xcode+Objective-C & Android上使用Java開發我都有過經驗 所以我才會希望可以選擇一個可以跨平台的工具 (當然目前不考慮console) 我除了這此,我也試過Moai 它跟Corona SDK比較像,是透過它們自己的Script來撰寫,而Moai可以擴充 所以與Corona SDK相比,我會比較願意使用Moai,重點也是它完全免費 我相信AIR效能上當然是比不過Unity3D,所以我的想法是 Unity3D的2D framework大部分的不夠好用, 在效能可以接受的情況下,為何我不選擇AIR+Starling 有2D bone animation可以用,解決spirte sheet檔案較大的問題 有系統字型可用,不需為了多國語言處理字型的問題 有跨平台的API,socket、IO存取都是相同的介面來使用 ※ 編輯: tainjoy 來自: 111.250.153.218 (06/02 09:52)
BF109Pilot:Cocos2d-html5透過JSB來跨平台有人玩過嗎??? 06/02 10:39
viceversa56:AIR or Unity,現在都有很多不錯的軟體,可去下載比較 06/02 12:07
viceversa56:我覺得這些都只是工具,哪個熟悉就用哪個 06/02 12:07
viceversa56:至於效能是可以從內部程式碼改善. 06/02 12:08
viceversa56:unity 和Flash這兩套軟體都算很上面層的程式語言 06/02 12:10
chenglap:FLASH 的效能不可能超過 cocos2d-x 06/02 12:10
chenglap:對我來說 FLASH 並不是一個多平臺的選擇. 06/02 12:10
chenglap:我並不是 Unity 派, 但 Unity 明顯就是為 3D 而生的. 06/02 12:12
viceversa56:和底層程式開發一定比不過,有一失必有一得 06/02 12:12
chenglap:如果我並不打算用 3D, 我不會用 Unity. 06/02 12:12
chenglap:如果我要用 2D, 我會用 cocos2d-x 06/02 12:12
chenglap:還是那句, 真的要用 flash, 何不用 Haxe? 06/02 12:17
chenglap:另一個問題自然是開發者的人數少, 僱請程設的困難度增. 06/02 12:25
chenglap:用一些不流行的工具會有請人難的問題. 06/02 12:25
chenglap:cocos2d-x 本身就接近多平臺, 沒理由一開始就排除. 06/02 12:27
你好,我本身是讚同你的觀點的,當然在開發3D遊戲時,Unity3D也會是我的首選 而我也是同意開發跨平台2D遊戲也會優先使用cocos2d-x 在於高效能與沒有做不到的事情基礎上,我也會推cocos2d-x做為適合開發2d遊戲 而不是Flash,而cocos2d-x在iOS上更是無痛開發,跟用cocos2d沒什麼差別 我的原因在於,AdobeAir就算使用Stage3D做為繪圖API提升效率 但如果開發到中期或後期發現效率不夠好,那就完了 但用cocos2d-x,比較不會有這問題,就算有,也有得救 只是我認為,在能控制並能充分發揮該遊戲效能的情況下 Flash也是一個不錯的選擇,最主要的原因在於跨平台的專案整合 cocos2d-x我第一個就先將他排除,而不是先排除Unity3D 原因在於跨平台專案的整合 cocos2d-x在之前我曾做過一個ios、android、windows提案給客戶用的prototype 在開發的同時,我只能顧及其中一個平台的專案,當我要回過頭為其它二個平台的專案 執行與Debug時,我需要花一堆時間重新整合,我實在無法想像做一個完整產品時要花 多少時間,android在ndk上也有許多的不方便 當然我也能理解要發佈到另一個平台時,本來就需要另外再花時間,只是我覺得能把時 間省下來工作上也會更有效率 另外你提到的Haxe,我查了一下它也有支援AdobeAir的Stage3d 只是我覺得開發flash用actionoscript較好,是因為它已經有很好用的2d game framework與gui 因為用Haxe無法使用其它as3的函式庫會很可惜 (這邊若有錯誤請指正我) 另外是不流行的工具問題 我相信flash開發webgame的人很多,但是不知道為何開發行動平台的很少 我想是在於Adobe在初發展行動平台時沒有Stage3D與行動專用的api不多 在當時在行動裝置上效能差沒有人願意試,所以思考停留在flash還是只適合做webgame 自從有了stage3d,這二年更多了starling專門的2d game framework,它的api介面特地 做得與傳統flash提供的api有90%相似,我相信傳統as3 programmer是很容易上手的 因為我本身也是如此 但是如果直接要求會starling framework的人,的確是很少,你說的沒錯
littleshan:corona 現在可以寫 native plugin 了 06/02 13:07
※ 編輯: tainjoy 來自: 111.250.153.218 (06/02 13:20)
NDark:cocos2d-x的protype經驗我建議你可以整理出來. 06/02 15:51
NDark:這樣才有說服力. 06/02 15:51
cocos2d-x最主要的開發環境我通常是選擇Xcode,使用較親切也比較容易 那專案整合的問題大致上都是在android與windows windows使用visual studio基本上沒什麼問題,該include的該link的設定好即可 但是會遇到一些在mac與windows上所使用第三方函式庫整合方式不同 另外也會有類似strcasecmp與stricmp這樣的問題 在過一段時間回頭整理時,除了上面該做的,也需要一一檢查哪些檔案要拉進專案 Android本身project需設定以外,也需要設定android.mk,我覺得這不是很親切的東西 我本身對compile的底子沒有很深,設定這些需要花一些功夫 當過一段時間回頭整理時,必須再花一時間檢查與設定 另外我覺得ndk不是很親切的東西,就算大部分的東西設定一次就可以,但也是有不少地 方需要設定,ndk-gdb也需要與ide做很多設定才行 這些事說麻煩也沒有那麼麻煩,只是必須一直要花時間去做 其實以程式的角度來說,這些事應該要做的,在以前總是不會想說這些事麻煩 只是工具選擇多了,就會開始考慮,畢竟這些工具都在進步 就會在心裡想,是否值得給它一個機會 ※ 編輯: tainjoy 來自: 111.250.153.218 (06/02 17:23)
vamper:效能部分,數字出來就行了!告知老闆專案成本和風險就足夠了 06/02 20:58
vamper:專案完成時間估出來比較一下.讓老闆只管收錢就行,其他別想 06/02 20:59
leisele:cocos2d-x在跨平台上絕對不可能比AIR來得更好... 06/02 23:18
leisele:先不論效能,光debug,AIR就大勝,而且寫AS的人根本也不少 06/02 23:20
wnt2009:我沒用 Flash 只用過 Unity,Unity 2D 遊戲有 Plugin 的話 06/03 01:08
wnt2009:就沒什麼難度了 06/03 01:08
littleshan:unity 2D 的問題在於場景架構並不是為2D設計的 06/03 10:41
littleshan:其一是你要把某物件搬到另一個物件前,得計算兩邊的Z值 06/03 10:43
littleshan:當兩個物件底下都有children的時候就不是那麼好算了 06/03 10:43
littleshan:其二是無法藉由指定root node alpha讓一群物件變透明 06/03 10:45
littleshan:這點除了讓程式碼複雜化,在拉animation curve也很麻煩 06/03 10:46