[請益] Flash與Unity3D行動跨平台開發選擇
現在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
06/02 01:02, 1F
→
06/02 01:06, , 2F
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
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
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
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
06/02 01:54, 10F
→
06/02 01:55, , 11F
06/02 01:55, 11F
推
06/02 04:30, , 12F
06/02 04:30, 12F
→
06/02 04:32, , 13F
06/02 04:32, 13F
→
06/02 04:33, , 14F
06/02 04:33, 14F
→
06/02 04:53, , 15F
06/02 04:53, 15F
→
06/02 04:54, , 16F
06/02 04:54, 16F
→
06/02 04:56, , 17F
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
06/02 10:39, 19F
→
06/02 12:07, , 20F
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
06/02 12:10, 23F
推
06/02 12:10, , 24F
06/02 12:10, 24F
→
06/02 12:10, , 25F
06/02 12:10, 25F
→
06/02 12:12, , 26F
06/02 12:12, 26F
→
06/02 12:12, , 27F
06/02 12:12, 27F
→
06/02 12:12, , 28F
06/02 12:12, 28F
→
06/02 12:12, , 29F
06/02 12:12, 29F
→
06/02 12:17, , 30F
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
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
06/02 13:07, 34F
※ 編輯: tainjoy 來自: 111.250.153.218 (06/02 13:20)
推
06/02 15:51, , 35F
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
06/02 23:18, 39F
→
06/02 23:20, , 40F
06/02 23:20, 40F
推
06/03 01:08, , 41F
06/03 01:08, 41F
→
06/03 01:08, , 42F
06/03 01:08, 42F
推
06/03 10:41, , 43F
06/03 10:41, 43F
→
06/03 10:43, , 44F
06/03 10:43, 44F
→
06/03 10:43, , 45F
06/03 10:43, 45F
→
06/03 10:45, , 46F
06/03 10:45, 46F
→
06/03 10:46, , 47F
06/03 10:46, 47F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):