2014年2月21日 星期五

開發日誌-sp gamesalad開發注意事項


終於開始製作第二部遊戲了,
先把到目前為止使用gamesalad這套工具可能會遇到的問題,
以及工具的bug紀錄一下,

截至今日(2014/02/21),
gamesalad最新的版本號為"0.10.4.1b",
這裡的b代表的意思是beta,
也就是說即使gamesalad已經出到10幾版,
在歐美以及世界各地也都有不算少的pro版付費使用者用來創作商業作品,
但在官方眼裡它仍然屬於beat版,
不過對這套工具有興趣的朋友,
這也表示還有很多官方想做的功能還會陸續增加,
基本上是可以放心使用的,
拿來製作2D遊戲的話非常好用,
官方在0.11版也打算再放出許多實用的新功能(如多人連線遊戲相關function)

前兩天因為看到unity更新4.3版之後新增了官方的2D功能,
試用過後,
發現其實unity還是針對3D為主下去更新2D開發功能的,
它所謂的2D開發功能其實只是把視角鎖定在正視圖,
操作思維及ui都沒有太大的更改@@"

因此本來打算跳去用unity的我,
在考量工具順手度的情形下,
還是決定繼續使用gamesalad了,
畢竟以個人獨立創作來說,
我的時間及精力只能專注在2D遊戲,
gamesalad算是針對2D遊戲開發而生的工具,
個人覺得使用起來的確很順手以及開發速度真的很快,

畢竟自己用的順手而且能快速把想法完成的工具才是選擇的重點,

==================================
使用gamesalad開發有一些需要注意的地方,

一.記憶體控管
gamesalad這套能跨多平台發佈的2D遊戲工具,
有許多記憶體效能的問題存在.
在不同裝置運作的時候,
因為每種裝置的記憶體不一樣,
很容易就遇到效能爆掉的問題,
尤其是在電腦模擬器上運作的時候往往是沒問題的,
一但到實機測試就crash掉.
因為電腦的記憶體至少4G~8G,
iPod touch4只有512mb的記憶體,
iPod touch5有1G的記憶體,
個人則是以iPod touch4為主要iOS的測試裝置,
基本上只要iPod touch4能運作,
其他iOS裝置應該都沒問題,

最常發生的情形是
在電腦端做的很開心,
但傳送到iPod touch4測試時因為記憶體不夠,
遊戲很容易crash掉
gamesalad的viewer左方會有一個記憶體使用數字在跳動,
反映GameEngine在進行物理數學運算時使用到的情形,
即使同樣的場景(scene)
數字每次也不會都一模一樣,
大致上來說物理運算愈多的場景,
跳動的會愈劇烈,

大約保持在80以內是比較保險的,
超過80的話,
iPod touch4 crash的機率就很高.

如果已經做到後期數字飆很高了,
要解決這個問題,
可以針對以下方向著手改善.

1.把場景中不需要用到物理運算的演員(actor)移除物理運算.
具體的做法就是在演員(actor)中的設定裡Attribute→Phisics→Movable
把movable的框框取消勾選.

2.只需要直線運動,不需要做物理運算的話,
該actor可以使用self.Position的方式,
再用Interpolate去針對x或y座標做數值的變化就好.

3.部份圖像以及除了遊戲啟動之後每個場景都一定會用到的物件以外,
要用到的時候再載入到記憶體裡,
具體的做法是在actor設定裡把Attribute→Preload Art的框框取消勾選.

4.需要物理運算的actor盡量不要做多餘的動作,
尤其是針對碰撞的運算如果太多,會在一瞬間消耗大量的記憶體,
一撞可能就crash了...

5.物理運算的偵測形狀比起使用●,使用■消耗的記憶體較少.

當然除了以上這些部份,
圖像跟聲音也都會使用記憶體,
這些能盡量壓縮節約使用當然也是必要的,
retina視網膜2倍密的圖像也比想像中耗費記憶體,
最好隨時確認有哪些圖像一載入就佔用了很大的記憶體.
掌握以上的原則的話.
基本上就能好好使用gamesalad,避免crash的發生.

二.存/讀檔bug
這邊指的不是開發專案的存檔,
而是玩家在遊戲作品中的存/讀檔.
gamesalad的遊戲中存檔的function存在致命的bug,
一度讓我找不到原因改了好幾次,
非常痛苦,
最後是gamesalad論壇那有外國人也遇到,
我才知道不是我個人的問題,

1.存檔的function是save Attribute >輸入自訂名稱,
這邊要注意的是,
一定要按在空白輸入框上那個input的的地方直接打字輸入,
而不要去點旁邊的"..."打開選擇框再輸入,
這樣的差異我猜應該是打開選擇框再輸入後的結果會變成自動加上""的符號,
導致存檔的參數名稱對不起來,
這個非常重要,
讓我重新送審好幾次@@

2.In-App Purchase跟GameCenter的參數名稱輸入部份好像也有這個問題,
不知道下一次更新會不會修正,
最好是都使用最保險的做法直接打在input輸入框會比較安全.

==================================

會想換用unity,
是因為它最近實在是太熱門了,
已經是市場上NO1的遊戲引擎了.
在台灣跟中國非常多人都在用這套進行創作,
unity也很用心在進行中文市場的推廣,
包括巴哈辦的比賽甚至還有針對unity的項目...
微軟前陣子也跟unity合辦活動,
只要用unity移植遊戲到windows phone就送我好想要的xbox one!!

不是使用unity製作的作品就沒辦法參加真的很可惜,
不過再試用過4.3版之後,
發現並沒有官方廣告的針對2D開發功能有那麼大的進化,
對我個人來說總覺得不順手,

所以還是就繼續用gamesalad了,
gamesalad在國外也是有常常在舉辦一些活動,
像前陣子的amazon上架送pro版license,
amazon比賽送kindle平板,
以及最近跟samaung合作的上架tizen就送50美金的活動等,
看一看其實也蠻多活動跟比賽的,
也不好看著碗裡的想著碗外的,
就專心用自己覺得順手的工具吧,
畢竟也不是大家都說好用就是好用,
自己覺得順手才是最重要的.

雖然台灣沒什麼人在用,
不過沒關係,
一個人獨立開發遊戲之路本來就是在走人煙稀少的路,
用的工具冷門又有何妨:)
野原先生希望自己是日本第一的gmesalad開發者,
那麼我就希望自己是台灣第一的gmesalad開發者吧.
台灣沒什麼人用gamesalad,
應該容易一點^^"

不過有出現更好用更順手的開發工具的話...
其實還是會隨時換,
畢竟創作遊戲用什麼工具去做其實不是重點,
遊戲好玩才是重點^^"

4 則留言:

  1. HI:
    寫得很棒喔
    期待你的第二個遊戲
    文裡有一個小小錯誤
    "beat" -> "beta"

    PS:前天送審二款 GameSaald 遊戲 等待審核中...

    回覆刪除
    回覆
    1. 感謝提醒,
      打太快沒注意到打錯字了,
      已經修正文章了,

      你一次開發2款啊
      動作真快!

      預祝你審查順利!

      刪除
  2. 你好請問一下
    目前我們想要做一個桌游方面的andriod app
    對這個軟體還不太熟悉
    如果要做能夠多台手機連再一起玩 可能是藍芽或wifi
    這個軟體有提供這種功能嗎?
    基本版好像不能支援andriod??

    回覆刪除
    回覆
    1. 是啊,基本免費版不支援發佈android,
      必須要付費的pro版才可以^^",
      至於連線遊玩的功能,
      最新版本(0.11預覽版)看官方的說明已經可以支援了,

      不過這方面的功能我還沒有實做過,
      可能要等你當台灣第一人嘗試過,再分享心得給大家了^^"

      刪除