[請益] Flash與Unity3D行動跨平台開發選擇

看板GameDesign作者 (WRYYYYYY)時間12年前 (2013/06/02 00:51), 編輯推噓13(13034)
留言47則, 11人參與, 最新討論串1/3 (看更多)
現在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

06/02 01:02, , 1F
不用的原因: FLASH 在 mobile 上即使能跑效能也太低.
06/02 01:02, 1F

06/02 01:06, , 2F
就算要兼容 flash, 我也會選擇用 HAXE 去生成.
06/02 01:06, 2F

06/02 01:08, , 3F
是否「行動平臺上效能也不成問題」, 沒有測試數據我不會
06/02 01:08, 3F

06/02 01:09, , 4F
立即就相信.
06/02 01:09, 4F

06/02 01:10, , 5F
而且沒記錯連 adobe 也不打算在行動平臺上鑽研下去了吧.
06/02 01:10, 5F
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要停止對行動平台的支援這樣的事

06/02 01:12, , 6F
都說做行動平台了 還用flash找死 根本不能跨平台
06/02 01:12, 6F

06/02 01:12, , 7F
可以用簡單的方法 去增加使用量 不是很好嗎
06/02 01:12, 7F
你好,其實我最初的方案是cocos2d-x與Unity3D 其實使用AIR在我的心裡其實是排在它們二個之後的 但由於跨平台的原因,我選擇Unity3D/Flash 而為了做2D game更方便快速,我希望能選擇Flash

06/02 01:31, , 8F
2D手機遊戲請愛用Corona 有免費版
06/02 01:31, 8F

06/02 01:53, , 9F
蠻輕鬆的。
06/02 01:53, 9F
Corona SDK我也有survey過一段時間,只是Corona SDK對於它沒有的功能我無法擴充 在AIR與Unity3D 我仍可以透過Native的方式來撰寫原生程式碼完成 而cocos2d-x更沒有擴充的問題

06/02 01:54, , 10F
呃 上面沒po好。我沒flash做遊戲經驗,無法比較,不過用
06/02 01:54, 10F

06/02 01:55, , 11F
Unity開發2D遊戲其實蠻輕鬆的。
06/02 01:55, 11F

06/02 04:30, , 12F
這個問題你要問兩種都有做過的人才知道。
06/02 04:30, 12F

06/02 04:32, , 13F
目前台灣用AIR做行動平台的開發者寥寥可數,
06/02 04:32, 13F

06/02 04:33, , 14F
所以應該也不用太期待能得到一針見血的答案。
06/02 04:33, 14F

06/02 04:53, , 15F
就行動平台APP來說,AIR目前應該是全跨,
06/02 04:53, 15F

06/02 04:54, , 16F
而且Flash的CreateJS還比Unity多了一個mobile web,
06/02 04:54, 16F

06/02 04:56, , 17F
以及絕對優勢的PCweb平台~
06/02 04:56, 17F

06/02 04:58, , 18F
不過開發工具的選擇....這種事本來就很難是客觀的。
06/02 04:58, 18F
你好,由於我有傳統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)

06/02 10:39, , 19F
Cocos2d-html5透過JSB來跨平台有人玩過嗎???
06/02 10:39, 19F

06/02 12:07, , 20F
AIR or Unity,現在都有很多不錯的軟體,可去下載比較
06/02 12:07, 20F

06/02 12:07, , 21F
我覺得這些都只是工具,哪個熟悉就用哪個
06/02 12:07, 21F

06/02 12:08, , 22F
至於效能是可以從內部程式碼改善.
06/02 12:08, 22F

06/02 12:10, , 23F
unity 和Flash這兩套軟體都算很上面層的程式語言
06/02 12:10, 23F

06/02 12:10, , 24F
FLASH 的效能不可能超過 cocos2d-x
06/02 12:10, 24F

06/02 12:10, , 25F
對我來說 FLASH 並不是一個多平臺的選擇.
06/02 12:10, 25F

06/02 12:12, , 26F
我並不是 Unity 派, 但 Unity 明顯就是為 3D 而生的.
06/02 12:12, 26F

06/02 12:12, , 27F
和底層程式開發一定比不過,有一失必有一得
06/02 12:12, 27F

06/02 12:12, , 28F
如果我並不打算用 3D, 我不會用 Unity.
06/02 12:12, 28F

06/02 12:12, , 29F
如果我要用 2D, 我會用 cocos2d-x
06/02 12:12, 29F

06/02 12:17, , 30F
還是那句, 真的要用 flash, 何不用 Haxe?
06/02 12:17, 30F

06/02 12:25, , 31F
另一個問題自然是開發者的人數少, 僱請程設的困難度增.
06/02 12:25, 31F

06/02 12:25, , 32F
用一些不流行的工具會有請人難的問題.
06/02 12:25, 32F

06/02 12:27, , 33F
cocos2d-x 本身就接近多平臺, 沒理由一開始就排除.
06/02 12:27, 33F
你好,我本身是讚同你的觀點的,當然在開發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的人,的確是很少,你說的沒錯

06/02 13:07, , 34F
corona 現在可以寫 native plugin 了
06/02 13:07, 34F
※ 編輯: tainjoy 來自: 111.250.153.218 (06/02 13:20)

06/02 15:51, , 35F
cocos2d-x的protype經驗我建議你可以整理出來.
06/02 15:51, 35F

06/02 15:51, , 36F
這樣才有說服力.
06/02 15:51, 36F
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)

06/02 20:58, , 37F
效能部分,數字出來就行了!告知老闆專案成本和風險就足夠了
06/02 20:58, 37F

06/02 20:59, , 38F
專案完成時間估出來比較一下.讓老闆只管收錢就行,其他別想
06/02 20:59, 38F

06/02 23:18, , 39F
cocos2d-x在跨平台上絕對不可能比AIR來得更好...
06/02 23:18, 39F

06/02 23:20, , 40F
先不論效能,光debug,AIR就大勝,而且寫AS的人根本也不少
06/02 23:20, 40F

06/03 01:08, , 41F
我沒用 Flash 只用過 Unity,Unity 2D 遊戲有 Plugin 的話
06/03 01:08, 41F

06/03 01:08, , 42F
就沒什麼難度了
06/03 01:08, 42F

06/03 10:41, , 43F
unity 2D 的問題在於場景架構並不是為2D設計的
06/03 10:41, 43F

06/03 10:43, , 44F
其一是你要把某物件搬到另一個物件前,得計算兩邊的Z值
06/03 10:43, 44F

06/03 10:43, , 45F
當兩個物件底下都有children的時候就不是那麼好算了
06/03 10:43, 45F

06/03 10:45, , 46F
其二是無法藉由指定root node alpha讓一群物件變透明
06/03 10:45, 46F

06/03 10:46, , 47F
這點除了讓程式碼複雜化,在拉animation curve也很麻煩
06/03 10:46, 47F
文章代碼(AID): #1HgYQiIJ (GameDesign)
文章代碼(AID): #1HgYQiIJ (GameDesign)