Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
KT
Uploaded by
KLab Inc. / Tech
PDF, PPTX
495 views
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
CEDEC+KYUSHU2022の登壇資料です。 http://cedec-kyushu.jp/2022/session/12.html
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 62
2
/ 62
3
/ 62
4
/ 62
5
/ 62
6
/ 62
7
/ 62
8
/ 62
9
/ 62
10
/ 62
11
/ 62
12
/ 62
13
/ 62
14
/ 62
15
/ 62
16
/ 62
17
/ 62
18
/ 62
19
/ 62
20
/ 62
21
/ 62
22
/ 62
23
/ 62
24
/ 62
25
/ 62
26
/ 62
27
/ 62
28
/ 62
29
/ 62
30
/ 62
31
/ 62
32
/ 62
33
/ 62
34
/ 62
35
/ 62
36
/ 62
37
/ 62
38
/ 62
39
/ 62
40
/ 62
41
/ 62
42
/ 62
43
/ 62
44
/ 62
45
/ 62
46
/ 62
47
/ 62
48
/ 62
49
/ 62
50
/ 62
51
/ 62
52
/ 62
53
/ 62
54
/ 62
55
/ 62
56
/ 62
57
/ 62
58
/ 62
59
/ 62
60
/ 62
61
/ 62
62
/ 62
More Related Content
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PPTX
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
PDF
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
PPTX
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
オンラインゲームの仕組みと工夫
by
Yuta Imai
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
Dockerからcontainerdへの移行
by
Kohei Tokunaga
What's hot
PDF
Unityではじめるオープンワールド制作 エンジニア編
by
Unity Technologies Japan K.K.
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PDF
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PDF
Unity開発で使える設計の話+Zenjectの紹介
by
torisoup
PPTX
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
by
NTT DATA Technology & Innovation
PDF
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
by
whywaita
PDF
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
by
SEGADevTech
PDF
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
by
Daichi Koike
PDF
インタフェース完全に理解した
by
torisoup
PPTX
大規模ゲーム開発における build 高速化と安定化
by
DeNA
PPTX
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
PDF
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
by
UnityTechnologiesJapan002
PPTX
プログラマが欲しい仕様書とは
by
Katsutoshi Makino
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
コールバックと戦う話
by
torisoup
PDF
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
by
VirtualTech Japan Inc.
PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
PDF
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
by
SEGADevTech
Unityではじめるオープンワールド制作 エンジニア編
by
Unity Technologies Japan K.K.
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
by
エピック・ゲームズ・ジャパン Epic Games Japan
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
Unity開発で使える設計の話+Zenjectの紹介
by
torisoup
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
by
NTT DATA Technology & Innovation
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
by
whywaita
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
by
SEGADevTech
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
by
Daichi Koike
インタフェース完全に理解した
by
torisoup
大規模ゲーム開発における build 高速化と安定化
by
DeNA
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
by
UnityTechnologiesJapan002
プログラマが欲しい仕様書とは
by
Katsutoshi Makino
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
コールバックと戦う話
by
torisoup
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
by
VirtualTech Japan Inc.
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
by
エピック・ゲームズ・ジャパン Epic Games Japan
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
by
SEGADevTech
More from KLab Inc. / Tech
PDF
【公開用】モバイルオンラインゲーム開発を支える早く、安く、使いやすいサーバインフラ構築
by
KLab Inc. / Tech
PDF
モバイルオンラインゲームのアプリ外課金の導入と運用方法について
by
KLab Inc. / Tech
PDF
デバイスファーム 「AirLab」 による 自動QAテストの実績と機械学習が拓く次世代QAの可能性
by
KLab Inc. / Tech
PDF
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
by
KLab Inc. / Tech
PDF
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
by
KLab Inc. / Tech
PDF
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
by
KLab Inc. / Tech
PDF
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
by
KLab Inc. / Tech
PDF
生成AIが切り拓く新しいゲームの創り方・遊び方
by
KLab Inc. / Tech
PDF
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
by
KLab Inc. / Tech
PDF
他業界からゲーム業界へ転向したときの話
by
KLab Inc. / Tech
PDF
KLabのゲーム開発を支える開発環境
by
KLab Inc. / Tech
PDF
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
by
KLab Inc. / Tech
PDF
「リアルISUCON」としてのモバイルオンラインゲーム開発
by
KLab Inc. / Tech
PDF
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
by
KLab Inc. / Tech
PDF
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
by
KLab Inc. / Tech
PDF
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
by
KLab Inc. / Tech
PPTX
KLabのチャットシステム インフラ変遷
by
KLab Inc. / Tech
PPTX
Ganglia のUIにGrafanaを追加する話
by
KLab Inc. / Tech
PPTX
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
by
KLab Inc. / Tech
PPTX
属人化して詰まってた作業を自動化で楽しようとした話
by
KLab Inc. / Tech
【公開用】モバイルオンラインゲーム開発を支える早く、安く、使いやすいサーバインフラ構築
by
KLab Inc. / Tech
モバイルオンラインゲームのアプリ外課金の導入と運用方法について
by
KLab Inc. / Tech
デバイスファーム 「AirLab」 による 自動QAテストの実績と機械学習が拓く次世代QAの可能性
by
KLab Inc. / Tech
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
by
KLab Inc. / Tech
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
by
KLab Inc. / Tech
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
by
KLab Inc. / Tech
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
by
KLab Inc. / Tech
生成AIが切り拓く新しいゲームの創り方・遊び方
by
KLab Inc. / Tech
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
by
KLab Inc. / Tech
他業界からゲーム業界へ転向したときの話
by
KLab Inc. / Tech
KLabのゲーム開発を支える開発環境
by
KLab Inc. / Tech
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
by
KLab Inc. / Tech
「リアルISUCON」としてのモバイルオンラインゲーム開発
by
KLab Inc. / Tech
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
by
KLab Inc. / Tech
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
by
KLab Inc. / Tech
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
by
KLab Inc. / Tech
KLabのチャットシステム インフラ変遷
by
KLab Inc. / Tech
Ganglia のUIにGrafanaを追加する話
by
KLab Inc. / Tech
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
by
KLab Inc. / Tech
属人化して詰まってた作業を自動化で楽しようとした話
by
KLab Inc. / Tech
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
1.
© KLab Inc.
2022 モバイルオンラインゲームでの大規模観 戦とチート対策
2.
© KLab Inc.
2022 自社製リアルタイム通信システム 「WSNet2」 OSSとして公開しました https://github.com/KLab/wsnet2 告知
3.
© KLab Inc.
2022 今日のお話 ● 自己紹介・会社紹介 ● WSNet2の紹介 ● なぜ自社開発したか ● 数万人規模の観戦への対応 ● チート対策の工夫
4.
© KLab Inc.
2022 自己紹介 牧内大輔 KLab株式会社 エンジニアリング本部サーバサイドG 対外発表 ● Go Conference ■ 「型パラメータが使えるようになったのでLINQを実装してみた」 他 OSS ● EMLauncher (https://github.com/KLab/emlauncher) ● gozxing (https://github.com/makiuchi-d/gozixing) 他
5.
© KLab Inc.
2022 ミッション:「世界と自分をワクワクさせろ」 ビジョン:「エンターテインメントで、世界中のユーザーをひとつにつなげる」 社会に感動と喜びを提供できるような、サービス・技術を創造しています。 設立 2000年8月1日 資本金 53億6364万円(2022年10月末現在) 株式公開市場 東京証券取引所・プライム市場(3656) 代表者 代表取締役社長CEO 森田 英克 代表取締役副会長 五十嵐洋介 所在地 本社(東京都港区、六本木ヒルズ森タワー) 大阪事業所、福岡事業所、仙台事業所 主要関連会社 株式会社BLOCKSMITH&Co. 株式会社グローバルギア 海外拠点 可来软件开发(上海)有限公司 (KLab China Inc.) グループ従業員数 正社員 553名(2022年9月末時点) 主力:ゲーム事業 アニメ、コミック、ゲームなど、世界中で 人気の高いIPを原作とした モバイルオンラインゲームを国内外に展開。 現在155の国と地域で配信 その他: スマートフォン関連のアプリケーション、 サービス及びサーバーインフラの企画、 開発、提供、新規事業開拓など 会社紹介:KLab株式会社(クラブ)
6.
© KLab Inc.
2022 WSNet2の紹介
7.
© KLab Inc.
2022 ● 常時接続、クライアント同士が双方向通信 ● 同じステージ(部屋)を同時に遊ぶ ■ オンライン対戦、協力プレイなど リアルタイム通信とは ステージ
8.
© KLab Inc.
2022 ※PhotonはExit Gamesの製品です ©久保帯人/集英社・テレビ東京・dentsu・ぴえろ ©高橋陽一/集英社 ©高橋陽一/集英社・テレビ東京・エノキフィルム ©KLabGames リアルタイム通信の利用 Photon (PUN)※ その他自社製 WSNet (WSNet2の前身)
9.
© KLab Inc.
2022 ● サーバを介してメッセージを同期 ● 特徴 ○ WebSocketベース ○ C#クライアントライブラリ ■ (Unity/.NET) ○ 自動再接続、メッセージ再送 ○ 柔軟な部屋検索 ○ 数十万人規模の観戦 WSNet2について
10.
© KLab Inc.
2022 ● 向いているゲーム ○ パズルゲーム、戦略ゲームなど ■ メッセージの順序や整合性を重視するもの ● 向いていないゲーム ○ アクションゲームなど ■ 処理順序よりもリアルタイム性を重視するもの WSNet2について
11.
© KLab Inc.
2022 なぜ自社開発したか
12.
© KLab Inc.
2022 なぜ自社開発したか ● 技術的な挑戦 ■ 自社でも技術をもっておきたい ● モバイルオンラインゲームでの課題 ■ 一時的な切断への対応 ■ 複雑な検索条件での入室
13.
© KLab Inc.
2022 ● モバイル端末では一時的な切断がよくある ○ WiFi・モバイル回線の切り替わり ○ トンネル・地下鉄などの一時的な圏外 課題:一時的な切断
14.
© KLab Inc.
2022 ● モバイル端末では一時的な切断がよくある ○ WiFi・モバイル回線の切り替わり ○ トンネル・地下鉄などの一時的な圏外 課題:一時的な切断 ネットワークから切断しました この試合は敗北になります 通信エラー OK
15.
© KLab Inc.
2022 接続で入室、切断したら退室 ● サーバの実装がシンプル ● 一時的な切断で退室してしまう ■ 再入室できたとしても退室中のメッセージが欠落 よくある実装 入室 退室 再入室 退室
16.
© KLab Inc.
2022 ● 入室状態と接続状態を別々に管理 ■ 切断しても退室にしない ■ 切断中のメッセージは再接続時に再送 ■ ゲームアプリは切断・再接続を感知しない WSNet2の実装 接続 切断 再接続 切断 入室 退室 再送 退室リクエスト 入室成功
17.
© KLab Inc.
2022 ● 柔軟なマッチメイキング ■ ゲーム仕様に合わせた条件指定 ○ 例:パラメータが近い(範囲指定) ○ 例:募集開始1分以内はフレンドのみ、以降は誰でも ● 観戦のための検索 ■ すでにマッチング済みの部屋の検索 課題:複雑な検索条件での入室
18.
© KLab Inc.
2022 部屋一覧を取得してクライアント側で選択 ● クライアントの負荷が高い ● 通信量が多い ● 2回リクエストが必要 よくある実装その1 Real time Room 入室
19.
© KLab Inc.
2022 部屋の状態をAPIサーバに同期 APIサーバで部屋を決定 ● 構成が複雑 ● 同期のタイムラグ ● 2回リクエストが必要 よくある実装その2 API Room 入室 Real time Room
20.
© KLab Inc.
2022 回線速度・端末スペックによる有利不利 ● 椅子取りゲームなマッチング ■ 報酬の良いステージなど ● 早い端末が埋めてしまう ■ 遅い端末は入れない 2回リクエストの弊害 Room Room Room Room
21.
© KLab Inc.
2022 回線速度・端末スペックによる有利不利 ● 椅子取りゲームなマッチング ■ 報酬の良いステージなど ● 早い端末が埋めてしまう ■ 遅い端末は入れない 2回リクエストの弊害 Room Room Room Room
22.
© KLab Inc.
2022 回線速度・端末スペックによる有利不利 ● 椅子取りゲームなマッチング ■ 報酬の良いステージなど ● 早い端末が埋めてしまう ■ 遅い端末は入れない 2回リクエストの弊害 Room Room Room
23.
© KLab Inc.
2022 回線速度・端末スペックによる有利不利 ● 椅子取りゲームなマッチング ■ 報酬の良いステージなど ● 早い端末が埋めてしまう ■ 遅い端末は入れない 2回リクエストの弊害 Room
24.
© KLab Inc.
2022 ● なぜ2回必要だったか ■ 複雑な検索条件を実現するため ● 複雑な検索と入室を1リクエストで完結したい ■ 公平なマッチメイキング 2回リクエストの弊害
25.
© KLab Inc.
2022 ● 1リクエストで検索から入室まで可能に ■ 接続を待たずに入室確定 ■ 複雑な条件での検索に対応 ○ 「KLabTechBook Vol.9」で少し紹介 ○ https://www.klab.com/jp/blog/tech/2022/tbf12.html ○ 電子版無料頒布中 WSNet2の実装
26.
© KLab Inc.
2022 モバイルオンラインゲームでの課題 ● 一時的な切断への対応 ■ 自動再接続とメッセージの再送 ● 複雑な検索条件での入室 ■ 複雑な条件の指定に対応 ■ 1リクエストで検索から入室まで可能に まとめ:なぜ自社開発したか
27.
© KLab Inc.
2022 大規模観戦への対応
28.
© KLab Inc.
2022 eスポーツへの取り組み キャプテン翼〜たたかえドリームチーム〜 世界大会「Dream Championship」 ● 2019年より毎年開催 ● 2022年 ■ 12/10(土)〜11(日) ■ 決勝トーナメント開催予定 ©高橋陽一/集英社 ©高橋陽一/集英社・テレビ東京・エノキフィルム ©KLabGames
29.
© KLab Inc.
2022 ● eスポーツでは観戦も重要 ● 数万〜数十万人規模の観戦を実現したい よくある実現方法 ● 動画配信サービスの利用 ● 観戦クライアントも部屋に接続 大規模観戦
30.
© KLab Inc.
2022 ● メリット ■ 百万人を越える同時視聴が可能 ■ 様々な環境で観戦できる ● デメリット ■ 遅延がある ■ 一方向の配信 動画配信サービスの利用 Room
31.
© KLab Inc.
2022 ● メリット ■ 双方向通信 ■ 遅延なし ● デメリット ■ 接続数が限られる ○ 数百人が限度 ■ アプリからしか接続できない 観戦クライアントも部屋に接続 Room
32.
© KLab Inc.
2022 ● 観戦クライアントも部屋に接続 ● Hubサーバ経由の接続もサポート ■ 部屋への接続数を抑制 ■ 双方向通信 WSNet2での大規模観戦 Hub Hub Room
33.
© KLab Inc.
2022 部屋とクライアントで特別処理なし ● 部屋サーバとの接続 ■ 観戦クライアントとして入室 ● クライアントとの接続 ■ 部屋サーバのように待ち受け ■ クライアントは部屋同様に観戦入室 Hubサーバの仕組み Hub 観戦入室 観戦入室 観戦入室 Room
34.
© KLab Inc.
2022 ● 同時1万部屋20万観戦を達成 ■ 部屋サーバ ○ c5.xlarge 5台 (vCPU 4論理コア@3GHz、メモリ 8GiB) ▫ 約2000部屋/台 (3クライアント/部屋) ▫ 約6000クライアント/台 ■ Hubサーバ ○ c5.xlarge 35台 ▫ 約5800クライアント/台 負荷試験結果
35.
© KLab Inc.
2022 Hubサーバ経由の接続もサポート ● 双方向通信を維持 ● 数十万人規模にも対応 ● 部屋とクライアントはシンプルなまま まとめ:大規模観戦への対応
36.
© KLab Inc.
2022 チート対策の工夫
37.
© KLab Inc.
2022 今日紹介する工夫 ● ユーザ認証 ● サーバサイドゲームロジック チート対策の工夫
38.
© KLab Inc.
2022 ● 防ぎたいチート ■ 他ユーザへのなりすまし ■ botによる接続 ● 実装の課題 ■ WSNet2は独立したシステム ■ APIサーバと同じユーザ認証をしたい ユーザ認証
39.
© KLab Inc.
2022 APIサーバからユーザ情報を同期 1. ログインAPI呼び出し ■ ユーザ情報を伝える 2. 入室リクエスト ■ ユーザ情報を使って認証 よくある実装その1 API Real time Login User
40.
© KLab Inc.
2022 APIサーバからユーザ情報を同期 1. ログインAPI呼び出し ■ ユーザ情報を伝える 2. 入室リクエスト ■ ユーザ情報を使って認証 よくある実装その1 API 入室 Real time User
41.
© KLab Inc.
2022 APIサーバからユーザ情報を同期 ● 問題点 ■ ユーザ情報の保存が必要 よくある実装その1 API 入室 Real time User
42.
© KLab Inc.
2022 アクセス時にAPIサーバに問い合わせ 1. 入室リクエスト 2. APIサーバに問い合わせ ■ APIサーバが認証 よくある実装その2 API Real time 入室 問い合わせ
43.
© KLab Inc.
2022 アクセス時にAPIサーバに問い合わせ ● 問題点 ■ 入室に時間がかかる よくある実装その2 API Real time 入室 問い合わせ
44.
© KLab Inc.
2022 APIサーバと通信しない方法 1. 事前に共通鍵を配置 2. 認証情報要求 ■ 鍵でハッシュを付加 3. 認証情報を付けて入室 ■ 鍵で認証情報を検証 WSNet2での実装 API Real time
45.
© KLab Inc.
2022 APIサーバと通信しない方法 1. 事前に共通鍵を配置 2. 認証情報要求 ■ 鍵でハッシュを付加 3. 認証情報を付けて入室 ■ 鍵で認証情報を検証 WSNet2での実装 API Real time Auth Data
46.
© KLab Inc.
2022 APIサーバと通信しない方法 1. 事前に共通鍵を配置 2. 認証情報要求 ■ 鍵でハッシュを付加 3. 認証情報を付けて入室 ■ 鍵で認証情報を検証 WSNet2での実装 API Real time 入室 Auth Data
47.
© KLab Inc.
2022 APIサーバと通信しない方法 ● 認証情報が正しいかで判定 ■ APIサーバで生成したもの ■ APIサーバで認証済み WSNet2での実装 API Real time 入室 Auth Data
48.
© KLab Inc.
2022 ● ユーザ情報の保存が不要 ● 入室時にAPI通信も不要 ● APIサーバで認証されたことを確認できる WSNet2での認証
49.
© KLab Inc.
2022 今日紹介する工夫 ● ユーザ認証 ● サーバサイドゲームロジック チート対策の工夫
50.
© KLab Inc.
2022 ● クライアントのロジック改ざん ■ 他のプレイヤーにも影響 ● サーバサイドは改ざんされない アプリ改ざんによるチート Logic
51.
© KLab Inc.
2022 ● クライアントのロジック改ざん ■ 他のプレイヤーにも影響 ● サーバサイドは改ざんされない アプリ改ざんによるチート Logic ?
52.
© KLab Inc.
2022 ● 防ぎたいチート ■ アプリ改ざんによるゲームロジック改ざん ● 実装の課題 ■ ロジックコードの二重管理を避けたい ○ オフラインプレイと同じ実装を使いたい ■ 独自サーバの実装は大変 サーバサイドゲームロジック
53.
© KLab Inc.
2022 ● ロジックプログラムが直接接続を受け付ける 課題 ● 実装が大変 ■ 接続管理を自前実装 ○ WSNet2等が解決している部分 よくある実装:独自サーバ Logic
54.
© KLab Inc.
2022 ● ロジックプログラムもクライアント ■ ゲームマスター役のクライアント ■ プレイヤーと同様に入室 処理の流れ 1. プレイヤーは入力をマスターに送信 2. 処理結果を全プレイヤーに送信 マスタークライアント方式 Master Room
55.
© KLab Inc.
2022 ● ロジックプログラムもクライアント ■ ゲームマスター役のクライアント ■ プレイヤーと同様に入室 処理の流れ 1. プレイヤーは入力をマスターに送信 2. 処理結果を全プレイヤーに送信 マスタークライアント方式 Master Room
56.
© KLab Inc.
2022 ● ロジックプログラムもクライアント ■ ゲームマスター役のクライアント ■ プレイヤーと同様に入室 処理の流れ 1. プレイヤーは入力をマスターに送信 2. 処理結果を全プレイヤーに送信 マスタークライアント方式 Master Room
57.
© KLab Inc.
2022 ● リアルタイム通信システムを利用できる ■ 接続管理・通信まわりを任せられる ● クライアントアプリと同じコードを使いやすい ■ 通信の実装方法はクライアントアプリと同じ ■ 同じ言語、同じライブラリが使える マスタークライアント方式の利点
58.
© KLab Inc.
2022 ● .NETアプリとして実装できる ○ Unityヘッドレスモードより省オーバーヘッド ○ C#なのでUnityと同一のコードを利用できる ● 通信遅延を減らせる ○ WSNet2と近い場所で実行できる ■ AWSの同一リージョンなど WSNet2での利点
59.
© KLab Inc.
2022 ● ユーザ認証 ■ APIサーバと通信しない方法 ● サーバサイドゲームロジック ■ マスタークライアント方式 まとめ:チート対策の工夫
60.
© KLab Inc.
2022 まとめ
61.
© KLab Inc.
2022 ● なぜ自社開発したか ■ 自動再接続による一時的な切断への対応 ■ 複雑な検索条件でも1リクエストで入室 ● 大規模観戦への対応 ■ Hubサーバ経由の接続のサポート ● チート対策の工夫 ■ APIサーバと通信しないユーザ認証 ■ マスタークライアント方式のサーバサイドゲームロジック まとめ
62.
© KLab Inc.
2022 ● 話せなかったこと ○ WSNet2サーバの内部実装、負荷対策 ○ C#クライアントライブラリの工夫 ○ 独自シリアライズフォーマット ○ 通信改ざん対策 ○ ロギング ○ 部屋情報閲覧ツール まとめ
Download