Upgrade to Pro — share decks privately, control downloads, hide ads and more …

(Mobile) App and Open Source: Kamigami Client o...

(Mobile) App and Open Source: Kamigami Client on Various Platforms

One of two keynote for me on COSCUP 2013. In this presentation, I would share my experience for the implementation of Kamigami game engine client on iOS and Android (and something more :) )

Hsiao-Ting Yu

August 03, 2013
Tweet

More Decks by Hsiao-Ting Yu

Other Decks in Programming

Transcript

  1. 退伍 → 跟 QB 簽約 → 開始投⾝身 Startup 當⼯工程師 既是為了理想(好玩的

    Project) 也是為了現實(⼯工作) ⼩小B @ Briarues
  2. 跨平台永遠是痛 iOS Android Windows with .NET 語⾔言 繪製 裝置 開發⼯工具

    上架 Objective-C Java C# UIKit / OpenGL ES Android View / OpenGL ES Windows Forms / WPF / DirectX iPhone ~ iPad 3吋~10吋通通有 PC 滿天飛 Xcode + 保護費 Android SDK Visual Studio ($) 囧 ^o^/ ^o^/
  3. ⽤用⼾戶端架構 WebSocket MsgPack UI 元件控制 外觀 / 動畫 / 事件...

    Audio / Video Player 訊息解析 資源下載與管理 Timer
  4. ⽤用⼾戶端架構 WebSocket MsgPack UI 元件控制 外觀 / 動畫 / 事件...

    Audio / Video Player 訊息解析 資源下載與管理 Timer
  5. 最困難的是繪製 iOS:內建 UI 元素(UIKit)外 追加 GPUImage 處理需要 OpenGL Shader 運算的部份

    Android:LibGDX,第三⽅方 OpenGL ES 遊戲引擎 ⽂文件妥善,開發者有熱誠 .NET:SharpDX with Direct3D 9 為了 XP ⽀支援放棄 D3D11 可⽤用的資源 :(
  6. 使⽤用開源套件的問題 授權要對!!!(⾮非常重要) 參考⽩白名單:BSD / MIT / Apache2 / MS-PL 專案要對!!!(更加重要)

    ⽂文件很⿃鳥、程式碼很⿃鳥 Bug 解決狀況很⿃鳥、或跑起來很⿃鳥的情況下 要儘快 OUT 換另外⼀一個專案試試看
  7. 遊戲上通常會遇到的問題 多執⾏行序(a.k.a. 程式當掉 or 亂加 Lock 到死) e.x. Direct3D 9

    的 Device 預設為⾮非 Thread-Safe Deadlock 在某些平台⼜又很難 Debug → 請在腦袋清醒下做好同步處理機制 資源管理 Android App 退出 / 切換 / 鎖定螢幕後回來?(必要狀況下重建,LibGDX 會處理其中很多細節) Windows 視窗縮放怎麼辦?(GetDeviceStatus -> Effect.onLostDevice -> Device.Reset -> Effect.onResetDevice) Texture / ⽂文字繪製 / 記憶體管理 → 清楚了解 Framework 的⾏行為後好好寫
  8. 感謝清單 iOS Android .NET AFNetworking SocketRocket GPUImage LibGDX AutobahnAndroid Titanium

    / V8(未實⽤用) ActionBarSherlock SharpDX Websocket-sharp NAudio ClearScript / V8 Thanks for listening!!