Top Banner
Mobile Web Game 開開開開開開 CSC Studio 開開開
39
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mobile Web Game 開發心得分享

Mobile Web Game開發心得分享

CSC Studio 陳世欽

Page 2: Mobile Web Game 開發心得分享

自我介紹

• 陳世欽– CSC Studio 獨立遊戲開發團隊

Page 3: Mobile Web Game 開發心得分享

作品

Page 4: Mobile Web Game 開發心得分享

作品

Page 5: Mobile Web Game 開發心得分享

內容簡介

• Mobile Web Game 開發經驗談• 繪圖• 記憶體• PhoneGap• 結論

Page 6: Mobile Web Game 開發心得分享

心路歷程

苦不堪言,陷阱也太多了吧!

Page 7: Mobile Web Game 開發心得分享

HTML5 遊戲開發技術

• WebGL– 優:效果炫– 缺:手機支援不完全

• Canvas– 優:較類似傳統遊戲技術架構– 缺:自廢武功、 Android 速度差異很大

• DOM + CSS3– 優:上手速度快– 缺:陷阱多,與傳統遊戲技術架構差異大

Page 8: Mobile Web Game 開發心得分享

繪圖 (Render) 問題

Page 9: Mobile Web Game 開發心得分享

繪圖 (Render) 問題

SLOW

Page 10: Mobile Web Game 開發心得分享

繪圖速度效能技巧

• 啟動 2D 硬體加速*{ -webkit-transform:

translate3d(0,0,0) rotate(0) scale(1); }

• 避免網頁 reflow– 指定固定尺寸– 指定 z-index

Page 11: Mobile Web Game 開發心得分享

繪圖速度效能技巧

• 少用 CSS3 漸層與陰影

• 用 CSS3 keyframe 取代 jQuery 動畫

• 混合使用 canvas 小型動畫

• 一定要實機測試

Page 12: Mobile Web Game 開發心得分享

繪圖速度效能調整

• 不要用 CSS display:none 或 visibility:hidden

• 改用 offset

Page 13: Mobile Web Game 開發心得分享

繪圖速度效能調整

一般方式:隱藏沒用到的元素或使用時再動態建立

Page 14: Mobile Web Game 開發心得分享

繪圖速度效能調整

$(scene_2).show();$(scene_1).hide();

Page 15: Mobile Web Game 開發心得分享

繪圖速度效能調整

• 當屬性為不可視時(display:none 或 visibility:hidden)該 HTML 元素不會被繪製

• 屬性改為顯示時才開始繪製,螢幕會 delay 約 100~200ms

• 100~200ms 會讓 user 覺得很頓

Page 16: Mobile Web Game 開發心得分享

繪圖速度效能調整

offset 作法:把還沒用到的元素藏在看不見的地方

top:0, left:0top:0, left:-500

Page 17: Mobile Web Game 開發心得分享

繪圖速度效能調整

$(scene_2).css(‘left’, 0);$(scene_1).css(‘left’, -500);

top:0, left:0top:0, left:-500

Page 18: Mobile Web Game 開發心得分享

還是不行?!

Page 19: Mobile Web Game 開發心得分享

寫輪眼

Page 20: Mobile Web Game 開發心得分享

繪圖速度效能技巧

• 靈活運用錯覺效果– 縮短 touch 事件 delay 時間– 在 touchstart 觸發事件,不要用 click 觸發

Page 21: Mobile Web Game 開發心得分享

記憶體問題

Page 22: Mobile Web Game 開發心得分享

記憶體問題

SMALL

Page 23: Mobile Web Game 開發心得分享

記憶體問題

• 單一頁面記憶體限制– iOS : 10M– Android :各家廠牌不同,比 iOS 稍大

• 現實是殘酷的– Retina 影像:影像記憶體 x 4– 啟動硬體加速:影像記憶體 x 4

• 為了保護 OS 穩定度,記憶體使用超過限制行動瀏覽器就會自動崩潰

Page 24: Mobile Web Game 開發心得分享

記憶體管理

• 避免全頁硬體加速• 只加速必要元素,例如背景圖片就別了

Page 25: Mobile Web Game 開發心得分享

記憶體管理

• 釋放用不到的 javascript 記憶體

$(img).remove();delete obj;obj = null;

Page 26: Mobile Web Game 開發心得分享

以上方法都沒用!

無法控制 Webkit 的

Garbage Collection

發動時機!

Page 27: Mobile Web Game 開發心得分享

記憶體管理

• Memory Pool– 最好的 delete 方法就是不要 new

• 釋放影像的方法– img.src =

'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';

Page 28: Mobile Web Game 開發心得分享

PhoneGap (Cordova)

Page 29: Mobile Web Game 開發心得分享

為何使用 PhoneGap

• 把 HTML 包裝成 APP

• 多媒體播放

• 資源預載

Page 30: Mobile Web Game 開發心得分享

為何使用 PhoneGap

IAP$ 付費機制 $

Page 31: Mobile Web Game 開發心得分享

PhoneGap 的問題

• 用 PhoneGap 的人都很怕被人知道用 PhoneGap

解決方法:不要太像網頁

Page 32: Mobile Web Game 開發心得分享

申請新帳號再送審

Page 33: Mobile Web Game 開發心得分享

總結

• 效能問題– 追求平衡– 讓時間解決一切

• 遊戲引擎成熟度– canvas based

• Mobile Web 的定位– 借殼上市– 用在適合的地方

Page 34: Mobile Web Game 開發心得分享
Page 35: Mobile Web Game 開發心得分享

07th Expansion

• 美術 &劇本:龍騎士 07• 程式:弟弟• 客服:母親• 資料蒐集:父親

• 日本公務員離職作遊戲• 第一次銷售量: 50• 遊戲、漫畫、動畫、廣播劇、真人電影改編

Page 36: Mobile Web Game 開發心得分享
Page 37: Mobile Web Game 開發心得分享

工具有限制

想像力沒有限制

Page 38: Mobile Web Game 開發心得分享

感謝 JSDC 大會

謝謝大家

Page 39: Mobile Web Game 開發心得分享

Backup