MagicOnion

2019-04-10

gRPC の流れで MagicOnion について調べたメモ

MagicOnion とは

元グラニの CTO の人が Cysharp で作っている、 C# サーバで Unity クライアントと gRPC するやつ

黒騎士と白の魔王 ではこの技術でマルチプレイを実装しているらしい。

要点

  • Unity と Server で言語を合わせていることが優位性となっている
    • Client-Server 間で C# のインタフェースを共有して通信部分を実装する模様
    • gRPC という言葉で Protocol Buffers を連想するが、そうした IDL は利用しない枠組みのようだ
  • gRPC の Bidirectional Streaming 上でコネクションを確立し、 その通信フレームの中で独自の軽量プロトコルを流す設計

情報源

ちなみにサーバ側はAWSの.NET Core AMIのt2.nanoインスタンス、Tokyoリージョンで動かしていたのですが、 ほぼわからないくらいの遅延で通信がAndroid↔iOS間でできていました。