Mais conteúdo relacionado
Semelhante a 視聴者を参加者にしてしまう技術 (20)
視聴者を参加者にしてしまう技術
- 7. 開発のパート、スケジュール
• Space Sweeper ゲーム (中嶋)
• すでにできているゲームにGenvid SDKを組み込み: 1ヶ月
• Twitch Extension (Aizawa)
• ショップ画面、アイテム配置UIの実装に2ヶ月
※他の作業もやりながらなので実質数日
※Web側UIの実装自体は数日だが、本番環境とTwitchサービスへのデプロイに時間がかかった
- 13. Twitch Extensionコード(600行)の概要
• script src=“genvid.min.js”
• genvidClient = genvid.createGenvidClient()
• genvidClient.onDraw( function(frame) {
setCamera(frame.gamedata.camera);
});
• canvas.addEventListener(“click”, (event) =>
{
request.send( {“command”:”put_item”,
“x”:x,”y”:y});
});
- 14. JSON
• ゲームサーバ>genvid>ブラウザ
• カメラ座標の更新
• {“type”:”camera”,”x”:1404,”y”:910,”width”:510,”height”:380}
• APを出現させる
• {“type”:”new_ap”,”x”:1300,”y”:771,”amount”:10}
• ブラウザ>genvid>ゲームサーバ
• アイテムを置く
• {“gx”:44,”gy”:23,”item_type”:3303,”name”:”Nakajima”}
- 17. genvidUpdate()
• glReadPixels(0, 0, w,h, GL_RGB,
GL_UNSIGNED_BYTE, 0);
• memcpy(g_pixels, ptr, pbo_size);
• GenvidTimecode tc =
Genvid_GetCurrentTimecode();
• gs = Genvid_SubmitVideoData(tc,
sStream_Video.c_str(), g_pixels,
sizeof(g_pixels));
• SubmitGameData()
• Genvid_CheckForEvents();
- 18. ビデオエンコードCPU負荷
• AWS g2.xlarge インスタンス
• ゲーム自体は1スレッド実装
• 1280x720 x 3bytes x 60frames x 8bit = 1.23Gbps
• OpenGLキャプチャとmemcpy、Genvid_SubmitVideoData全部でCPU負荷
が10~15%増加。 DirectXであれば10%以下
• genvid encoderプロセスはCPU20%~30%程度
• 送信される映像は1〜3Mbps