Nintendo Switch online を繋ぐまで(抜粋)
WebRTC Meetup Tokyo #16 LT
WebRTC Meetup Osaka #1 LT
インフォコム株式会社
がねこまさし
@massie_g
2017.08.25
1
自己紹介
• がねこまさし / @massie_g
• じつは、ゲーム大好き (「ゲーム機」の方がもっと好き)
• ファミコンを買ってもらえなかった子供時代
• 反動で、社会人になってからゲーム機を買いまくる
• Nintendo Switch も、とうぜん、発売前に予約→発売日に入手
• ただし、ゲームは下手
– Splatoon2 もまだランク16、ガチマッチは全てうでまえ C- (一番下)のまま…
2
Nintendo Switch Online
• Nintendo Switchのオンラインプレイ向け有料サービス(2018年~)
• 専用のスマートフォン向けアプリ
– https://itunes.apple.com/jp/app/id1234806557
– ゲームと連動した音声チャット機能
• 調査記事
– Nintendo Switch Online アプリは Xamarin(Xamarin.Forms)製です
– http://qiita.com/amay077/items/53fc0d6d0cd46f1885bd
– 利用ライブラリ
• Echo Cancellation Program by Nippon Telegraph and Telecom Corp
• libSRTP by Cisco Systems, Inc
• Opus by Xiph.Org, Skype Limited
• WebRTC AudioProcessing by Google Inc 3
Nintendo Switch Online の構成(想像)
4
Switch Online 共通部分
ゲームA向け機能
Splatoon 2
ゲームB向け機能
(まだ無い)
ゲームC向け機能
(まだ無い)
ボイスチャットの特徴
• ライブラリや動きから、WebRTCを使っているっぽい
– 確証はない
• パケット解析の結果を求ム!
• Wireshark でチャレンジしてみたが、WiFiの解析でいきなり挫折…
– 違ったとしても、とてもよく似た仕組みと予測
• 良くも悪くも、ゲームと非常に強く連動
– ゲームを一緒にプレイしていない状態での通話は不可(パケット抑制?)
– 不特定多数の人とは通話できない(子供の保護?)
5
接続手順(動きからの推測)
6
主催者ゲーム 主催者スマホ 参加者スマホ 参加者ゲーム
ルームを作成
PUSH 通知
他のプレイヤーを招待
a.ゲームのフレンドを選択 PUSH 通知
アプリ起動
アプリ起動
連動
参加可能ルームが表示
そこから選択→参加
参加者が表示される
→ 選択してメンバー決定
音声チャット開始
その後もゲームの状況に応じて自動で切り替わる
待機中や同じチームなら通話可能 / 敵チームなら通話不可能
ここでシグナリング
(多分)
招待されているルーム(複数)から選択
接続手順の補足
• 他のプレイヤーを招待する方法は複数
– a. ゲームのフレンドを選択
– b. SNSから(URLを送信、共有)
• 'https://lounge.nintendo.com/room/xxxxxxxxxx' という形式
– c.過去に(a, bのどちらかで)一緒に遊んだ人から選択
• 主催者がゲーム内でルームを解散
– → 音声チャットも終了
• WebRTC(的なもの)では、シグナリングの方法を自由なことを、最大限活用
• P2Pフルメッシュなのか、SFUなのか、は不明
7
実際の通話
• 実際の通話品質はどうなの?
• 連続して使っていて切れないの?
• → ごめんなさい。分かりません
– 家庭内でしか試してません
• つまり、家族分と含めて2台持ち..
– 今回のタイトルは「~繋ぐまで」
• 追加情報求ム!
8
オマケ
• アプリは はてな が作っている
– はてな、Nintendo Switchソフト「スプラトゥーン2」のゲーム連動サービスを共同開発
– http://hatenacorp.jp/press/release/entry/2017/07/21/120000
• はてなに「WebRTC使ってますか?」と聞いた答え
– はてなが任天堂様と共同開発し、プレスリリースにて発表した「イカリング2」は Nintendo
Switch Online の中で見られるゲーム連携サービスの部分
– 音声通話は Nintendo Switch Online の機能。はてなは関わっていないので回答できない
• 任天堂に「WebRTC使ってますか?」と聞いた答え
– 技術を利用している、利用して いないも含めて、外部に公開していない
– 当件に ついて、お答えすることは控えさせて頂きます
9
Nintendo Switch Online の構成(推定)
10
Switch Online 共通部分 by 任天堂
イカリング2
by はてな
ゲームB
向け機能
(まだ無い)
ゲームC
向け機能
(まだ無い)
音声チャット
終わりに
• Nintendo Switch Online アプリでは、音声チャットが可能
– WebRTC(的なもの)を使っているらしい
• シグナリング(接続の制御)は、ゲームと強く連動している
– シグナリングの方法を自由に選べることを、最大限活用している
– ※他のゲーム/サービスでも、シグナリングを制御したいケースの参考になりそう
• 任天堂 and/or はてなに、WebRTC(的なもの)の実装、実践利用について詳し
い人が居るはず
• WebRTC Meetup (Osaka)で話してほしい! > 中の人 (無理だとは思いますが…)
11
Thank you!
12

Nintendo Switch online を繋ぐまで(抜粋)

  • 1.
    Nintendo Switch onlineを繋ぐまで(抜粋) WebRTC Meetup Tokyo #16 LT WebRTC Meetup Osaka #1 LT インフォコム株式会社 がねこまさし @massie_g 2017.08.25 1
  • 2.
    自己紹介 • がねこまさし /@massie_g • じつは、ゲーム大好き (「ゲーム機」の方がもっと好き) • ファミコンを買ってもらえなかった子供時代 • 反動で、社会人になってからゲーム機を買いまくる • Nintendo Switch も、とうぜん、発売前に予約→発売日に入手 • ただし、ゲームは下手 – Splatoon2 もまだランク16、ガチマッチは全てうでまえ C- (一番下)のまま… 2
  • 3.
    Nintendo Switch Online •Nintendo Switchのオンラインプレイ向け有料サービス(2018年~) • 専用のスマートフォン向けアプリ – https://itunes.apple.com/jp/app/id1234806557 – ゲームと連動した音声チャット機能 • 調査記事 – Nintendo Switch Online アプリは Xamarin(Xamarin.Forms)製です – http://qiita.com/amay077/items/53fc0d6d0cd46f1885bd – 利用ライブラリ • Echo Cancellation Program by Nippon Telegraph and Telecom Corp • libSRTP by Cisco Systems, Inc • Opus by Xiph.Org, Skype Limited • WebRTC AudioProcessing by Google Inc 3
  • 4.
    Nintendo Switch Onlineの構成(想像) 4 Switch Online 共通部分 ゲームA向け機能 Splatoon 2 ゲームB向け機能 (まだ無い) ゲームC向け機能 (まだ無い)
  • 5.
    ボイスチャットの特徴 • ライブラリや動きから、WebRTCを使っているっぽい – 確証はない •パケット解析の結果を求ム! • Wireshark でチャレンジしてみたが、WiFiの解析でいきなり挫折… – 違ったとしても、とてもよく似た仕組みと予測 • 良くも悪くも、ゲームと非常に強く連動 – ゲームを一緒にプレイしていない状態での通話は不可(パケット抑制?) – 不特定多数の人とは通話できない(子供の保護?) 5
  • 6.
    接続手順(動きからの推測) 6 主催者ゲーム 主催者スマホ 参加者スマホ参加者ゲーム ルームを作成 PUSH 通知 他のプレイヤーを招待 a.ゲームのフレンドを選択 PUSH 通知 アプリ起動 アプリ起動 連動 参加可能ルームが表示 そこから選択→参加 参加者が表示される → 選択してメンバー決定 音声チャット開始 その後もゲームの状況に応じて自動で切り替わる 待機中や同じチームなら通話可能 / 敵チームなら通話不可能 ここでシグナリング (多分) 招待されているルーム(複数)から選択
  • 7.
    接続手順の補足 • 他のプレイヤーを招待する方法は複数 – a.ゲームのフレンドを選択 – b. SNSから(URLを送信、共有) • 'https://lounge.nintendo.com/room/xxxxxxxxxx' という形式 – c.過去に(a, bのどちらかで)一緒に遊んだ人から選択 • 主催者がゲーム内でルームを解散 – → 音声チャットも終了 • WebRTC(的なもの)では、シグナリングの方法を自由なことを、最大限活用 • P2Pフルメッシュなのか、SFUなのか、は不明 7
  • 8.
    実際の通話 • 実際の通話品質はどうなの? • 連続して使っていて切れないの? •→ ごめんなさい。分かりません – 家庭内でしか試してません • つまり、家族分と含めて2台持ち.. – 今回のタイトルは「~繋ぐまで」 • 追加情報求ム! 8
  • 9.
    オマケ • アプリは はてなが作っている – はてな、Nintendo Switchソフト「スプラトゥーン2」のゲーム連動サービスを共同開発 – http://hatenacorp.jp/press/release/entry/2017/07/21/120000 • はてなに「WebRTC使ってますか?」と聞いた答え – はてなが任天堂様と共同開発し、プレスリリースにて発表した「イカリング2」は Nintendo Switch Online の中で見られるゲーム連携サービスの部分 – 音声通話は Nintendo Switch Online の機能。はてなは関わっていないので回答できない • 任天堂に「WebRTC使ってますか?」と聞いた答え – 技術を利用している、利用して いないも含めて、外部に公開していない – 当件に ついて、お答えすることは控えさせて頂きます 9
  • 10.
    Nintendo Switch Onlineの構成(推定) 10 Switch Online 共通部分 by 任天堂 イカリング2 by はてな ゲームB 向け機能 (まだ無い) ゲームC 向け機能 (まだ無い) 音声チャット
  • 11.
    終わりに • Nintendo SwitchOnline アプリでは、音声チャットが可能 – WebRTC(的なもの)を使っているらしい • シグナリング(接続の制御)は、ゲームと強く連動している – シグナリングの方法を自由に選べることを、最大限活用している – ※他のゲーム/サービスでも、シグナリングを制御したいケースの参考になりそう • 任天堂 and/or はてなに、WebRTC(的なもの)の実装、実践利用について詳し い人が居るはず • WebRTC Meetup (Osaka)で話してほしい! > 中の人 (無理だとは思いますが…) 11
  • 12.