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
Uploaded by
torisoup
2,706 views
UnityとNCMBでユーザ管理を実装してみた話
Nifty Cloud Mobile Backend(ニフクラ)を使ってUnityで開発中の同人ゲームのユーザ管理、ライセンス認証をやってみた話です。 2016/07/23
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 29
2
/ 29
3
/ 29
4
/ 29
5
/ 29
6
/ 29
7
/ 29
8
/ 29
9
/ 29
10
/ 29
11
/ 29
12
/ 29
13
/ 29
14
/ 29
15
/ 29
16
/ 29
17
/ 29
18
/ 29
19
/ 29
20
/ 29
21
/ 29
22
/ 29
23
/ 29
24
/ 29
25
/ 29
26
/ 29
27
/ 29
28
/ 29
29
/ 29
More Related Content
PPTX
なぜなにリアルタイムレンダリング
by
Satoshi Kodaira
PDF
モジュールの凝集度・結合度・インタフェース
by
Hajime Yanagawa
PPTX
Unityネイティブプラグインマニアクス #denatechcon
by
DeNA
PDF
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
by
Unity Technologies Japan K.K.
PDF
GPU最適化入門
by
Takahiro KOGUCHI
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
by
Yoshifumi Kawai
PPTX
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
by
MinGeun Park
PDF
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
なぜなにリアルタイムレンダリング
by
Satoshi Kodaira
モジュールの凝集度・結合度・インタフェース
by
Hajime Yanagawa
Unityネイティブプラグインマニアクス #denatechcon
by
DeNA
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
by
Unity Technologies Japan K.K.
GPU最適化入門
by
Takahiro KOGUCHI
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
by
Yoshifumi Kawai
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
by
MinGeun Park
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
What's hot
PDF
REST API のコツ
by
pospome
PPTX
async/await のしくみ
by
信之 岩永
PDF
デキるプログラマだけが知っているコードレビュー7つの秘訣
by
Masahiro Nishimi
PDF
NextGen Server/Client Architecture - gRPC + Unity + C#
by
Yoshifumi Kawai
PDF
フロントからバックエンドまで - WebAssemblyで広がる可能性
by
IIJ
PDF
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
by
KLab Inc. / Tech
PDF
Unityでオンラインゲーム作った話
by
torisoup
PDF
Cinemachineで見下ろし視点のカメラを作る
by
Unity Technologies Japan K.K.
PDF
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
by
Atsushi KOMIYA
PPTX
[0122 구경원]게임에서의 충돌처리
by
KyeongWon Koo
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
PDF
インタフェース完全に理解した
by
torisoup
PPTX
UniRxでMV(R)Pパターンをやってみた
by
torisoup
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
by
モノビット エンジン
PDF
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
【Unity道場 建築スペシャル2】点群ビジュアライゼーション
by
UnityTechnologiesJapan002
PDF
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
by
devCAT Studio, NEXON
PDF
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
by
UnityTechnologiesJapan002
PDF
UniRx完全に理解した
by
torisoup
PDF
Unityではじめるオープンワールド制作 エンジニア編
by
Unity Technologies Japan K.K.
REST API のコツ
by
pospome
async/await のしくみ
by
信之 岩永
デキるプログラマだけが知っているコードレビュー7つの秘訣
by
Masahiro Nishimi
NextGen Server/Client Architecture - gRPC + Unity + C#
by
Yoshifumi Kawai
フロントからバックエンドまで - WebAssemblyで広がる可能性
by
IIJ
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
by
KLab Inc. / Tech
Unityでオンラインゲーム作った話
by
torisoup
Cinemachineで見下ろし視点のカメラを作る
by
Unity Technologies Japan K.K.
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
by
Atsushi KOMIYA
[0122 구경원]게임에서의 충돌처리
by
KyeongWon Koo
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
インタフェース完全に理解した
by
torisoup
UniRxでMV(R)Pパターンをやってみた
by
torisoup
ネットワーク ゲームにおけるTCPとUDPの使い分け
by
モノビット エンジン
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
by
エピック・ゲームズ・ジャパン Epic Games Japan
【Unity道場 建築スペシャル2】点群ビジュアライゼーション
by
UnityTechnologiesJapan002
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
by
devCAT Studio, NEXON
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
by
UnityTechnologiesJapan002
UniRx完全に理解した
by
torisoup
Unityではじめるオープンワールド制作 エンジニア編
by
Unity Technologies Japan K.K.
More from torisoup
PDF
Doozy UI 使おうぜ! #unity_lt
by
torisoup
PDF
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
PDF
UniTask入門
by
torisoup
PDF
MagicOnion入門
by
torisoup
PDF
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
by
torisoup
PDF
ARでVRアバターを表示するシステムを構築しよう
by
torisoup
PDF
【Unity】 Behavior TreeでAIを作る
by
torisoup
PDF
Observableで非同期処理
by
torisoup
PDF
ObserverパターンからはじめるUniRx
by
torisoup
PDF
Unityでオニオンアーキテクチャ
by
torisoup
PDF
Photon Cloud ことはじめ
by
torisoup
PDF
アバター生放送支援アプリ「アバれぽ」
by
torisoup
PDF
コールバックと戦う話
by
torisoup
PDF
Task vs Observable
by
torisoup
PDF
Unity開発で使える設計の話+Zenjectの紹介
by
torisoup
PDF
UniRxでPUNを使いやすくする
by
torisoup
PPTX
はじめてのUniRx
by
torisoup
PPTX
未来のプログラミング技術をUnityで -UniRx-
by
torisoup
PPTX
みくみくまうすについて&Unity で使えるコーディングノウハウ
by
torisoup
PDF
Unity講習会(初級)
by
torisoup
Doozy UI 使おうぜ! #unity_lt
by
torisoup
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
UniTask入門
by
torisoup
MagicOnion入門
by
torisoup
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
by
torisoup
ARでVRアバターを表示するシステムを構築しよう
by
torisoup
【Unity】 Behavior TreeでAIを作る
by
torisoup
Observableで非同期処理
by
torisoup
ObserverパターンからはじめるUniRx
by
torisoup
Unityでオニオンアーキテクチャ
by
torisoup
Photon Cloud ことはじめ
by
torisoup
アバター生放送支援アプリ「アバれぽ」
by
torisoup
コールバックと戦う話
by
torisoup
Task vs Observable
by
torisoup
Unity開発で使える設計の話+Zenjectの紹介
by
torisoup
UniRxでPUNを使いやすくする
by
torisoup
はじめてのUniRx
by
torisoup
未来のプログラミング技術をUnityで -UniRx-
by
torisoup
みくみくまうすについて&Unity で使えるコーディングノウハウ
by
torisoup
Unity講習会(初級)
by
torisoup
UnityとNCMBでユーザ管理を実装してみた話
1.
Unity + NCMBで ユーザ管理してみた 2016/07/23 @toRisouP
2.
自己紹介 • 名前 とりすーぷ(@toRisouP) •
本業はWeb系エンジニア – 最近は主にScalaを書いてます • 趣味でC#/Unity開発をやってます
3.
今回話す内容 • NCMBでユーザ管理した話 – Unity要素薄いけどごめんね –
まだ開発中で実運用に入ってないので、 紹介するやり方で問題が起きないとは言えません! この方式を信用しないで!
4.
開発中のゲーム • 「ハクレイフリーマーケット」 – 東方二次創作ゲーム(PC向け同人ゲーム) –
ネットワーク対戦専用3Dアクション
5.
使ってるもの • ゲーム本体 – Unity •
通信対戦部分 – Photon Cloud • ユーザ管理 – Nifty Cloud Mobile Backend(NCMB) – 自前のライセンス認証サーバ
6.
やらなくてはいけないこと • プレイヤーの登録・管理 – メールアドレスを使った登録 –
パスワードログイン、パスワード再発行 • シリアルコードによるアクティベーション – 未購入者は体験版モードで動作 – 購入者のみフル機能で遊べるようにしたい
7.
どうやってやる? • ユーザ情報自体の管理はNCMBで – ユーザ情報を自前のサーバで持ちたくない –
ユーザ管理周りの機能はNCMBが完全にサポート • アクティベーション機能は自作ライセンスサーバ – 認証サーバを自作したほうが安いし汎用的 – NCMBのカスタムスクリプト機能でできたらよかったんだけど… • 無料プランだと100回/月しか実行できないからきびしい
8.
アクティベーションサーバ • フレームワーク:Ruby on
Rails – ncmb-ruby-client をforkして改修して利用 – PostgreSQL + Redis • ConoHa VPS(1Gプラン)にて稼働 – 単一サーバ構成 – ライセンスサーバが落ちててもゲーム自体は動くから… • 少なくともアクティベーション済みユーザには影響なし
9.
アクティベーションサーバ • DBにシリアルコードをハッシュ化して保持 • クライアントからシリアルコードとobject
idを受信する – DBを参照して正しいコードか確認 – 送られてきたobject idのユーザが実在するか確認 – 問題なければNCMBのデータストアに購入フラグを保存
10.
購入フラグ • 購入フラグはNCMBのデータストアで管理 – ライセンスサーバが落ちててもゲームが動くようにしたいから –
ゲームログイン時にデータストアを検索して購入状態を確認する
11.
図解 ゲームクライアント アクティベーション サーバ シリアルコードと ユーザID送信して認証 データストア更新 購入フラグを確認
12.
絶対にやらないといけない設定 • 購入フラグはAdminのみ書き込み許可にする – NCMBのACL(パーミッション設定)機能を利用 –
ライセンス認証サーバからの操作のみ書き込み許可 – ユーザから勝手にフラグを書き換えられないようにする
13.
図解 ゲームクライアント アクティベーション サーバ ☓ クライアントからは更新できない (ACL設定で制御)
14.
図解 ゲームクライアント アクティベーション サーバ アクティベーションサーバは Adminロールのユーザとしてログイン ログインAPI Session Token SessionTokenはRedisにexpire付きで保存 揮発したら再度ログインAPIを叩く
15.
図解 ゲームクライアント アクティベーション サーバ シリアルコードと ユーザID送信 課金フラグをセット AdminのSession Tokenを利用して データストア更新APIを実行
16.
ACL設定周りの罠
17.
ACLのリファレンス • ACLの書き換え方(REST API)
18.
「なるほど、許可したいところに trueを設定するのか」
19.
「ということは、不許可にするときは falseにすればいいんだな!」
20.
{ "acl": { "role:Admin": { "read":
true, "write": false } } }
21.
400 Bad Request
22.
なんで? • ACLの書き換え方(REST API) –
不許可にするときは要素を定義しないが正解 – APIに対称性がないので感覚で使うと死ぬパターン – リファレンスにわかりにくいけどちゃんと書いてある
23.
ちなみに • UnityからACLを書き換える時も注意が必要 – 下記のコードは何も起きない –
何故か?
24.
理由 • 「Userオブジェクト自体に更新が無いと通信処理を 行わない実装になっているから」 – 内部実装を読まないと気づかないよコレ…
25.
解決策 • 明示的に代入をする – Userオブジェクトに更新があったことを自覚させる必要がある
26.
NCMBを使う上でのポイント • わからなくなったらREST APIリファレンスから辿る –
リファレンスのUnityの項目は中途半端にしか書いてない – APIパスでファイル内検索して実装を見つけてそこから辿ったほうが早い • Unityプラグインの実装も読む – 逆にREST APIの使い方がわからない場合、実装を読むとわかることがある – NCMBObjectクラスの実装を理解すればとりあえずなんとかなる • わからないことがあったら@Takaaki_Ichijoさんに聞く – 無料プランだと技術サポートに問い合わせできない – ユーザコミュニティは人がいなくてあんまり盛り上がってない – 一條さんに問い合わせた方が早いかも
27.
所感 • NCMBのユーザ管理はとても優秀 – メールアドレス認証やパスワード再発行も簡単にできる –
無料でこれだけの機能が使えるのは良い • ライセンスサーバ自分で作るの面倒くさかった – 保守するものが増えるのはだるい… – スクリプト機能が無料でもちゃんと使えたらよかったな… • ACL周りの設定が罠っぽい – REST API側もUnity Plugin側も両方罠っぽい – リファレンスをわかりやすく書いてくれると嬉しいな…
28.
未だにわからないこと • 「ユーザが所属しているロールの取得方法」 – ロールに所属する会員一覧は取れるのだが… •
逆引き方法はREST APIみてもよくわからなかった – 結局ロールを使わない実装にして回避した • その結果がデータストアで購入フラグを管理するというやり方
29.
以上
Download