Slide 1

Slide 1 text

MagicOnionでマルチプレイゲームを 作ってみる 2019/06/25 Soichiro Sugimoto sotan (@sotanmochi)

Slide 2

Slide 2 text

自己紹介 杉本 宗一郎(Soichiro Sugimoto) Twitter:@sotanmochi xR系Unityエンジニア(自称) TIS株式会社・戦略技術センター xR技術に関する応用研究・プロトタイプ開発 2 2019/06/25 Roppongi.unity #3

Slide 3

Slide 3 text

本日お伝えしたいこと MagicOnionを使ってアクションゲーム風のサンプルプロジェクトを作りました https://github.com/sotanmochi/MagicOnionExample-ActionGame 3 2019/06/25 Roppongi.unity #3 動画:https://youtu.be/9nTxbHahXZI

Slide 4

Slide 4 text

Unityでマルチプレイゲームを作る リアルタイムネットワークエンジンの選択肢 • Photon Unity Networking + Photon Cloud • Monobit Unity Networking + モノビットエンジンクラウド • UNET • Mirror • Photon Unity Networking + Photon Server • Monobit Unity Networking + Monobit Revolution Server  など 4 2019/06/25 Roppongi.unity #3

Slide 5

Slide 5 text

MagicOnionについて Unified Realtime/API Engine for .NET Core and Unity. gRPC(HTTP/2)ベースの統合型ネットワークエンジン https://github.com/Cysharp/MagicOnion 5 2019/06/25 Roppongi.unity #3

Slide 6

Slide 6 text

MagicOnionについて 詳細はMagicOnion勉強会の資料などを参考にしてください The Usage and Patterns of MagicOnion https://www.slideshare.net/neuecc/the-usage-and-patterns-of-magiconion 明日から使えるMagicOnion https://ykimisaki-my.sharepoint.com/:p:/g/personal/y_kimisaki_kimisaki_jp/EX9J_lb_fj1Gpt YDZ4tX_ZcBanQZ_FfNDIpQDT4wOrZueQ?rtime=9qMsyxv51kg 黒騎士と白の魔王 gRPCによるHTTP/2 - API, Streamingの実践  https://www.slideshare.net/neuecc/grpchttp2-api-streaming 6 2019/06/25 Roppongi.unity #3

Slide 7

Slide 7 text

Why MagicOnion? これまでに使った(試した)ことがあるリアルタイムネットワークエンジンは 基本的にクライアント側の実装のみだった • Photon Unity Networking(PUN) + Photon Cloud • Monobit Unity Networking(MUN) + モノビットエンジンクラウド • Mirror 7 2019/06/25 Roppongi.unity #3

Slide 8

Slide 8 text

Why MagicOnion? Unityエンジニアがサーバーサイド開発にも手を出そうとしている Photon Server / Monobit Revolution Server? → API通信は別のフレームワークで実装が必要・・・ 8 2019/06/25 Roppongi.unity #3

Slide 9

Slide 9 text

Why MagicOnion? リアルタイム通信とAPI通信を同じフレームワークでC#で書ける 9 2019/06/25 Roppongi.unity #3 Unity Realtime API Service

Slide 10

Slide 10 text

チュートリアル チャットアプリのサンプルがQiita記事やMagicOnionのリポジトリにある Unity+MagicOnionで超絶手軽にリアルタイム通信を実装してみた https://qiita.com/mitchydeath/items/cecf01493d1efeb4ae55 MagicOnionSample(ChatApp) https://github.com/Cysharp/MagicOnion/tree/master/samples 10 2019/06/25 Roppongi.unity #3

Slide 11

Slide 11 text

チュートリアル 次のステップへ進むため、もう少しゲームっぽいサンプルが欲しい・・・ 11 2019/06/25 Roppongi.unity #3

Slide 12

Slide 12 text

サンプルプロジェクト MagicOnionを使ってアクションゲーム風のサンプルプロジェクトを作りました https://github.com/sotanmochi/MagicOnionExample-ActionGame 12 2019/06/25 Roppongi.unity #3 動画:https://youtu.be/9nTxbHahXZI

Slide 13

Slide 13 text

サンプルプロジェクト • ルーム管理 • プレイヤーキャラクターの同期 • テキストチャット 13 2019/06/25 Roppongi.unity #3

Slide 14

Slide 14 text

サンプルプロジェクトを作ってみて • PUNやMUNに対応するものは自作が必要 • 色々と参考にしながら作ってみたが、どんな設計にすると良いのか分からない • 非同期処理を理解していないと上手く実装できない 14 2019/06/25 Roppongi.unity #3

Slide 15

Slide 15 text

参考にしたプロジェクト・資料など MagicOnionDemo https://github.com/yika-aixi/MagicOnionDemo UnityResearch https://github.com/yKimisaki/UnityResearch 「オンラインゲームのしくみ」のサンプルプロジェクト (第8章・第9章) https://www.sbcr.jp/support/13006/ 15 2019/06/25 Roppongi.unity #3

Slide 16

Slide 16 text

サーバーサイドをクラウド環境へデプロイする Unity+MagicOnionのサンプルプログラムをコンテナ化してAzureContainerInstancesで 簡単に動かす方法 https://qiita.com/_y_minami/items/aa57873bbb9ea0b36dd2 Unity:MagicOnionの.NET CoreコンテナサーバーをAWS Fargateで実行する方法 https://qiita.com/simplestar/items/b1d29e986b0b2cd6af2b 16 2019/06/25 Roppongi.unity #3

Slide 17

Slide 17 text

まとめ • MagicOnionはリアルタイム通信/API通信が統合されたネットワークエンジン • アクションゲーム風のサンプルプロジェクトを作ってみた • MagicOnionでサーバーサイド開発を始めてみる 17 2019/06/25 Roppongi.unity #3

Slide 18

Slide 18 text

ありがとうございました