SlideShare uma empresa Scribd logo
1 de 12
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

Mais conteúdo relacionado

Mais de mganeko

ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたmganeko
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup samplemganeko
 
Inside of 聖徳玉子 by O2
Inside of 聖徳玉子 by O2Inside of 聖徳玉子 by O2
Inside of 聖徳玉子 by O2mganeko
 
Node.js with WebRTC DataChannel
Node.js with WebRTC DataChannelNode.js with WebRTC DataChannel
Node.js with WebRTC DataChannelmganeko
 
WebRTC Build MCU on browser
WebRTC Build MCU on browserWebRTC Build MCU on browser
WebRTC Build MCU on browsermganeko
 
PeerConnectionリレーとMediaRecorder
PeerConnectionリレーとMediaRecorderPeerConnectionリレーとMediaRecorder
PeerConnectionリレーとMediaRecordermganeko
 
ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴mganeko
 
Webrtc bootcamp handson
Webrtc bootcamp handsonWebrtc bootcamp handson
Webrtc bootcamp handsonmganeko
 
WebRTC multitrack / multistream
WebRTC multitrack / multistreamWebRTC multitrack / multistream
WebRTC multitrack / multistreammganeko
 
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみようWebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみようmganeko
 
WebRTC multistream
WebRTC multistreamWebRTC multistream
WebRTC multistreammganeko
 
Inside WebM
Inside WebMInside WebM
Inside WebMmganeko
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streamingmganeko
 
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそうChromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそうmganeko
 
Infocom webrtc conference japan
Infocom webrtc conference japanInfocom webrtc conference japan
Infocom webrtc conference japanmganeko
 
WebRTC getStats - WebRTC Meetup Tokyo 5 LT
WebRTC getStats - WebRTC Meetup Tokyo 5 LTWebRTC getStats - WebRTC Meetup Tokyo 5 LT
WebRTC getStats - WebRTC Meetup Tokyo 5 LTmganeko
 
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )mganeko
 
WebRTC Summit 2014 NewYork 参加報告
WebRTC Summit 2014 NewYork 参加報告WebRTC Summit 2014 NewYork 参加報告
WebRTC Summit 2014 NewYork 参加報告mganeko
 
WebRTCのオーディオ処理の謎、誰か教えて!
WebRTCのオーディオ処理の謎、誰か教えて!WebRTCのオーディオ処理の謎、誰か教えて!
WebRTCのオーディオ処理の謎、誰か教えて!mganeko
 
WebRTC meetup Tokyo 1
WebRTC meetup  Tokyo 1WebRTC meetup  Tokyo 1
WebRTC meetup Tokyo 1mganeko
 

Mais de mganeko (20)

ブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみたブラウザでWebRTC - iOSゲートウェイ作ってみた
ブラウザでWebRTC - iOSゲートウェイ作ってみた
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
 
Inside of 聖徳玉子 by O2
Inside of 聖徳玉子 by O2Inside of 聖徳玉子 by O2
Inside of 聖徳玉子 by O2
 
Node.js with WebRTC DataChannel
Node.js with WebRTC DataChannelNode.js with WebRTC DataChannel
Node.js with WebRTC DataChannel
 
WebRTC Build MCU on browser
WebRTC Build MCU on browserWebRTC Build MCU on browser
WebRTC Build MCU on browser
 
PeerConnectionリレーとMediaRecorder
PeerConnectionリレーとMediaRecorderPeerConnectionリレーとMediaRecorder
PeerConnectionリレーとMediaRecorder
 
ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴
 
Webrtc bootcamp handson
Webrtc bootcamp handsonWebrtc bootcamp handson
Webrtc bootcamp handson
 
WebRTC multitrack / multistream
WebRTC multitrack / multistreamWebRTC multitrack / multistream
WebRTC multitrack / multistream
 
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみようWebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
WebRTC UserMedia Catalog: いろんなユーザメディア(MediaStream)を使ってみよう
 
WebRTC multistream
WebRTC multistreamWebRTC multistream
WebRTC multistream
 
Inside WebM
Inside WebMInside WebM
Inside WebM
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
 
Chromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそうChromebook 「だけ」で WebRTCを動かそう
Chromebook 「だけ」で WebRTCを動かそう
 
Infocom webrtc conference japan
Infocom webrtc conference japanInfocom webrtc conference japan
Infocom webrtc conference japan
 
WebRTC getStats - WebRTC Meetup Tokyo 5 LT
WebRTC getStats - WebRTC Meetup Tokyo 5 LTWebRTC getStats - WebRTC Meetup Tokyo 5 LT
WebRTC getStats - WebRTC Meetup Tokyo 5 LT
 
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
 
WebRTC Summit 2014 NewYork 参加報告
WebRTC Summit 2014 NewYork 参加報告WebRTC Summit 2014 NewYork 参加報告
WebRTC Summit 2014 NewYork 参加報告
 
WebRTCのオーディオ処理の謎、誰か教えて!
WebRTCのオーディオ処理の謎、誰か教えて!WebRTCのオーディオ処理の謎、誰か教えて!
WebRTCのオーディオ処理の謎、誰か教えて!
 
WebRTC meetup Tokyo 1
WebRTC meetup  Tokyo 1WebRTC meetup  Tokyo 1
WebRTC meetup Tokyo 1
 

Último

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Último (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

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 Switch Online アプリでは、音声チャットが可能 – WebRTC(的なもの)を使っているらしい • シグナリング(接続の制御)は、ゲームと強く連動している – シグナリングの方法を自由に選べることを、最大限活用している – ※他のゲーム/サービスでも、シグナリングを制御したいケースの参考になりそう • 任天堂 and/or はてなに、WebRTC(的なもの)の実装、実践利用について詳し い人が居るはず • WebRTC Meetup (Osaka)で話してほしい! > 中の人 (無理だとは思いますが…) 11