O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Gaming technight #1 Milkcocoaやろうぜ!

994 visualizações

Publicada em

ゲームのリアルタイム通信にMilkcocoaを使うライブラリのご紹介
おまけつき

Publicada em: Engenharia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Gaming technight #1 Milkcocoaやろうぜ!

  1. 1. Milkcocoaやろうぜ! ゲームのリアルタイム通信に Milkcocoaを使うライブラリのご紹介 Gaming Tech Night #1 2016/07/07
  2. 2. はじめに スライドは共有しますので、 写経とかしなくて大丈夫! リンクはConnpassかTwitterで共有され ます。 Twitterのハッシュタグは、 #gamingtechnight それでは、お楽しみください。
  3. 3. 自己紹介 • 山本 允葵 (Masaki Yamamoto) えむにわ @m2wasabi 手がかかる子ほど可愛がる野良エンジニア 好きなもの ・SONY ・Windows ・Milkcocoa ・VR 今回、AWSの話出てきません・・・ 好きなAWS製品
  4. 4. Milkcocoaとは • 株式会社ウフル・テクニカルロックスターズの 運営するBaaS(Backend as a service)製品 • 開発サーバーを用意せずに リアルタイム通信できる • 1IDあたり同時接続数20までは無料 • 1データあたりの容量は少なめ(160kB) • 様々なデバイスのライブラリが出ていて、簡単 に連携可能(スマートフォンやArduino) https://mlkcca.com/
  5. 5. 拙作ライブラリの紹介1 Unity用 Milkcocoa SDK
  6. 6. GitHubで公開しています https://github.com/m2wasabi/milkcocoa-client-unity • AssetStoreで無料公開しようと格闘中(英語難しい…) • MITライセンスだから好きに改変して使って下さい 以下、雑に使い方を解説
  7. 7. Download https://github.com/m2wasabi/milkcocoa-client-unity/releases
  8. 8. 使い方(1/2) • Milkcocoaのアカウントを取得、アプリケーション登 録(App_IDを入手) • Milkcocoaのプレハブを、hierarchyに投げ込む • App_IDとdatapathを任意に変更する • 任意の場所から呼び出す
  9. 9. 使い方(2/2) using Milkcocoa; public class hoge : MonoBehaviour { MilkcocoaClient milkcocoa; void Start () { milkcocoa = FindObjectOfType<MilkcocoaClient>(); } … // in some function milkcocoa.Send(jsonObject message); 送信する using Milkcocoa; public class hoge : MonoBehaviour { MilkcocoaClient milkcocoa; void Start () { milkcocoa = FindObjectOfType<MilkcocoaClient>(); milkcocoa.OnSend(milkcocoaEventHandler); } … public void milkcocoaEventHandler(MilkcocoaEvent e) { // do something } 受信する
  10. 10. Sample Unityでチャットアプリ https://github.com/m2wasabi/milkcocoa-client-unity
  11. 11. 拙作ライブラリの紹介2 RPGツクールMV用 Milkcocoaプラグイン
  12. 12. GitHubで公開しています https://github.com/m2wasabi/milkcocoa-rpgmv-plugin 使い方はQiitaで公開しています。 http://qiita.com/m2wasabi/items/267b57d2b6c90ce93ad2
  13. 13. RPGツクールで マルチプレイできます。
  14. 14. まとめと考察
  15. 15. ゲームのインフラとして見た Milkcocoaの評価 • 良い点  短時間で簡単に試せる (アプリケーション開発に集中できる) (ハッカソン/プロトタイプで威力を発揮)  プランをサービスのフェーズに合わせて、 止めることなく拡大できる • 悪い点  同時接続数が増えるとコストフル (MOとかルーム形式なら問題ないけどMMOだと高くつくかも)  インフラ側の通信負荷が読めない (無料プランの場合、他のサービスの影響を受けて重くなる可能性があ る。⇒お金で解決可能?)
  16. 16. その他応用のヒント • 以下の例ではKinectV2のデータをMilkcocoa経由で流して、 WebGLで表示している  遠隔でのVRのモーションの転送とか結構いけるんじゃないかと  スマートフォンやマイコン(Arduino, mbed)など、対応ライブ ラリが豊富なので、独自入力デバイスなどを作ることも可能 ※付録参照
  17. 17. さいごに • 手早く簡単なMilkcocoaで爆速プロトタイプ作ろう! • プロダクション利用の知見が欲しい! • 7/20にMilkcocoaのイベントやります! http://mlkcca.connpass.com/event/34936/ Thank you for your attention.
  18. 18. Milkcocoaクライアント 大解剖 Appendix
  19. 19. Milkcocoaの機能 リアルタイム通信 データストア ユーザー認証 send() on() push() set() get() stream() history() user() authWithToken() logout() API認証 connectWithApiKey()
  20. 20. Milkcocoaクライアントの 実装状況 platform メンテ ナ リアルタイム 通信 データ ストア ユーザー 認証 API認証 JavaScript TR ○ ◎ ◎ ○ Node.js TR ○ ◎ ◎ ○ Android TR ○ ◎ ◎ Swift(β版) TR ○ ○※ ○ python TR ○ ○※ Arduino TR ○ ○※ ○ ESP8266 TR ○ ○※ ○ mbed JKsoft ○ ○※ ○ Unity(C#) m2w ○ ○※ RPGMV m2w ○ ※ push API のみの実装 言語 モバイル IoT その他
  21. 21. Milkcocoaクライアントの リンクまとめ platform URL JavaScript https://mlkcca.com/document/api-js.html Node.js https://www.npmjs.com/package/milkcocoa Android https://github.com/milk-cocoa/milkcocoa_for_android Swift(β版) https://github.com/milk-cocoa/milkcocoa-swift-sdk python https://github.com/milk-cocoa/python_sdk Arduino https://github.com/milk-cocoa/Milkcocoa_Arduino_SDK ESP8266 https://github.com/milk-cocoa/Milkcocoa_ESP8266_SDK mbed https://developer.mbed.org/users/jksoft/code/Milkcocoa/ Unity(C#) https://github.com/m2wasabi/milkcocoa-client-unity RPGMV https://github.com/m2wasabi/milkcocoa-rpgmv-plugin .NET https://www.nuget.org/packages/Milkcocoa
  22. 22. Milkcocoaの通信プロトコル • リアルタイム通信部分は MQTTを使って行っている MQTT接続のコード(一例) mqttClient = new MqttClient(appId + ".mlkcca.com"); mqttClient.Connect(clientId, "sdammy", appId); MQTTのtopic /app_id/DataStorePath/send /app_id/DataStorePath/push
  23. 23. Milkcocoaの通信プロトコル • リアルタイム通信部分は MQTTを使って行っている MQTTのdata { “path”:”DataStorePath”, “params”:{JSONData}, “r”:seq } 1,2,3,….. これだけ分かれば、sendとpushとonは実装できる

×