Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Unity x NCMBで小規模ゲームアプリへのソーシャル要素導入
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takaaki Ichijo
October 14, 2017
Technology
7.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unity x NCMBで小規模ゲームアプリへのソーシャル要素導入
Takaaki Ichijo
October 14, 2017
More Decks by Takaaki Ichijo
See All by Takaaki Ichijo
Unity対応してるmBaaS 全部紹介する(ハイパーリンクが機能してない版)
takaaki_ichijo
0
1.8k
クロスフェードやランダム再生などのサウンド演出開発をADX2で省力化する : Gotanda.unity 9
takaaki_ichijo
0
180
UnityからREST APIを叩く~NCMBでランキング機能プラグインを作った話~
takaaki_ichijo
0
990
Unity+NCMBで作るカスタムステージのオンライン共有システム
takaaki_ichijo
0
1.1k
Other Decks in Technology
See All in Technology
GitHub、使う?使わない?
happysamurai294
0
120
クラウドエージェントの先駆け Devin。今も最先端を走る、他との違い
kinopeee
1
510
OneLakeをデータソースにした AI Search(Foundry IQ)の ライフサイクル管理
ryuseiiida
0
200
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
880
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
730
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
110
国際カードブランドルール変更に伴うクレジットカード決済取引仕様変更について
k1style
0
270
仕様駆動開発の、その先へ。決める力と確かめる仕組み
inariku
1
140
[FECONF-2026] 신대륙을 향한 카카오페이증권 프론트엔드 항해기 (이주승)
l1ghthouse
0
310
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
2
220
正解のない研修に放り出されて / Being thrown into a training program with no right answers
ohnoeight
1
170
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
290
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
143
7.8k
Site-Speed That Sticks
csswizardry
13
1.6k
Believing is Seeing
oripsolob
1
260
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
500
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
510
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
660
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
340
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
360
Unsuck your backbone
ammeep
672
58k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Transcript
日本Androidの会 Unity部 Unity x NCMBで 小規模ゲームアプリへの ソーシャル要素導入 株式会社ヘッドハイ 一條 貴彰
一條貴彰 @Takaaki_Ichijo • 株式会社ヘッドハイ 代表取締役 • ゲーム作家 • 「Back in
1995」 • Game DevRel • NCMBエヴァンジェリスト • Play,Doujin! ディレクター • 専門誌でのライター活動 • GamesIndustry.biz Japan Edition • 趣味 • 刀剣おじさん、ユーリ!!! on ICE おじさん
Unityだけでゲームアプリは作れる しかし… バックエンド は 別に用意しないといけない!
Unityのネットワーク関連機能対応状況 • リアルタイムネット対戦 • UNET • 分析 • Unity Analytics
• ゲームのパラメータ更新 • Unity Remote
バックエンド機能はない • プッシュ通知の配信、管理 • データベース • ファイルストレージ その他もろもろ、通信が関係する機能が ゲームアプリには必要。
本セッションの趣旨 小規模アプリでもソーシャル要素必須に
想定される事態 他プレイヤーをフレンド登録 できる機能作ってよ リアルイベントと連動したいから 「お知らせ」機能つけてよ あっプッシュ通知つけてよ ランキング機能作ってよ、 5種類ぐらい! さるIPモノの小さなゲームアプリを受託! しかし。。。。
リアルイベントと連動できる 位置情報連携を…
バックエンド、どうやって作る? • AWSないしはGCPなどでデータベース構築 • 保守?管理?個人情報? • プッシュ通知のシステムを自前用意? • Unity C#からネイティブコードを呼ぶ方法はあります
• 各社プッシュサービスSDKの組み込み? 統合型サービスを使ってサクッとこなそう
本日紹介するやりかた 略してNCMB X
もくじ • ニフクラmobile backendとは • ゲームにおけるバックエンド活用方法 • プッシュ通知 • データベース
• ファイルストレージ • 位置情報検索 • Node.jsスクリプト実行 • ゲーム事例 • まとめ
ニフクラmobile backendとは いわゆるmBaaSの一種 現在7つの機能を提供 • Unity SDK、ネイティブAndroidとJavaScript SDK提供 • REST
APIがあるのでSDKの無い環境でも開発可能
ニフクラmobile backendの特徴 • 組み込みが非常に簡単 • 数ステップですぐに通信処理が作れる • 日本のサービスである(富士通クラウドテクノロジーズ) • サポートは日本語・日本時間
• 日本国内を意識した機能・サービスの充実 • Unityとの相性がよい • 2014年から提供 • 様々な国内ゲームアプリで活用されている • 軽量なSDK (4MB) • 管理画面が簡素で見やすい • データベースの表示は表形式 • 無料プランの充実、有料プランは月額固定 • データベースの表示は表形式
組み込みが非常に簡単とは: 1. NCMB SDK for UnityをUnityプロジェクト にインポート 2. NCMBの管理者アカウントを取得 3.
管理ページからAPIキーを取得 4. APIキーをUnityのプロジェクト内に設定 おわり
ニフティ?富士通? • 実は富士通クラウドテクノロジーズが継承 クラウド事業を継承。「ニフクラ」が正式名称。
NCMBの機能で何ができるのか ※ここでのサーバーレスとは、サーバーの管理が不要なサービスのことを指します プッシュ通知 アプリ内の お知らせメッセージ ガチャ機能 ギルド・フレンド機 能 端末引継ぎ機能 メールアドレスの認証と
パスワードの再発行 ゲームに関する データの保存 画像のアプリ内共有 (キャラクター情報 スクリーンショットなど) ゲームに必要な機能をサーバーレスで組み込むことができるサービス 位置情報使った マッチング機能
プッシュ通知活用
ゲームにおけるプッシュ通知 • ローカルプッシュ • 「エネルギーが溜まったよ」 • 「昨日ログインしてないよ」 • リモートプッシュ •
「今日は勤労感謝の日!」 • 「新しいゲーム内イベントがあるよ!」 • 「アプリのアップデートがあるよ!」 • 「最近ログインしていない人」にお得情報とともに送る。
NCMBのプッシュ通知配信画面 • ブラウザ上の管理画面から簡 単に配信 • 配信対象、配信日時など指定 • エンジニアの手を煩わせず、 アプリ運営チームに任せられ る
プッシュ通知開封率の確認 プッシュ通知の配信・開封率の確認が可能
リッチプッシュ(重要) プッシュ通知を開封すると、ウェブページが自動的に立ち上がる AppStoreへ飛ばすことも可能 ストアアプリを自動で開く アップデートの促進、 アプリ利用率の向上
セグメント配信 女性だけ、30代だけなど、セグ メントを指定して配信が可能 ダイアログプッシュ 中央に大きく表示 その他のプッシュ通知スタイル
NCMBプッシュ通知を使う場合の諸注意 • AndroidManifest.xmlの中にPackageNameを追記する • 4カ所書き込む箇所がある • めんどいし忘れがちなので自動化できないか調査中
データベース活用
ゲームアプリでの データベース • ログイン・ログアウト • プレイヤーデータのサーバ側保存 • 公開プレイヤー情報 • フレンド・ギルドなどの管理情報
• ゲームのパラメーター情報 • 敵の強さ、武器の強さ等(マスターデータとか呼 ばれる?) • ゲーム内掲示板などのSNS風システム • 運営からのお知らせ
ログイン・ログアウト • ソーシャルゲームではだいたい起動時にログ イン • サーバーからユーザーデータ(セーブデータ)を とってくる • ログボとかの処理 •
メリット • 改ざん防止 • 管理側でユーザー動向が分かる
ログイン処理 NCMBUser.LogInAsync ("user1", "password1", (NCMBException e) => { if (e
!= null) { Debug.Log ("ログインに失敗: " + e.ErrorMessage); } else { Debug.Log ("ログインに成功!"); } });
ログイン・ログアウト利用例(管理画面) ユーザーID ユーザー固有の情報 例:フレンドIDリスト、所持アイテムIDリスト、 ニックネーム、クリアしたクエストのIDリスト、etc... データの更新 日付
超便利:パスワード再発行 登録されたメアドにパスワード再発行のメールを飛ばす機能 スクリプト内から簡単呼び 出し 管理画面で文面を入 力
データベース(NCMB名:データストア) ゲームのデータを保存・共有することができる データベース機能 コンテンツ管理 ランキング機能やお知らせ機能なども簡単実装
データストアはテーブル構造を柔軟に変更できる スキーマレスなデータ構造 キーバリュー形式での管理 権限設定によるアクセス制御 各データや、クラス単位でアクセス制限を掛けることが可能 後からでもカラムを追加可能
例:有料会員と無料会員によってアクセスできるデータを区別する
データストアへ保存 NCMBObject obj = new NCMBObject (“Ranking"); obj.Add (“playerName”,“ ああああ“);
obj.Add (“score”, “123“); obj.SaveAsync ((NCMBException e) => { if (e != null) { //エラー処理 } else { //成功時の処理 } });
お知らせ機能 管理画面から内容を変更、配信
フレンド・ギルド機能 • 公開プレイヤー情報のリストを作る • 公開プレイヤー名 • どんなデッキか • どんな武器を持っているか •
どんなステータスか • ゲーム内の共闘・対戦に使う • リワードの配布に使う
ファイルストレージ活用
NCMBでは:ファイルストア • コンテンツ配信 • 画像・テキスト・音声・動画などのさまざまなデ ータを保存、配信 • ユーザー間での画像共有 • ユーザーがスマホアプリから画像などを投稿
• アクセス制限をかけてファイルを管理
メニューのバナー画像を差し替え • 例えば、メニュー画面に表示させるバナーと いった画像ファイルを配信できます • ファイルの差し替えも管理画面から可能!
位置情報検索 GPS機能などを利用した位置情報を保存・管理 2点間の検索や点と半径の指定による検索 矩形検索、円形検索といった検索方式 位置情報に連動したプッシュ通知 ••GOみたいなの 作ってよ….
スクリプト サーバサイドにNode.jsのスクリプトを設置できる機能 ガチャ機能 ロジックをサーバー側に持たせることで、確率の変更なども自由に変更 ロジックの共通化 iOS/Androidの両方で利用する複雑なロジックや複数APIをサーバー側の
ロジックにまとめ、 クライアントアプリ側の軽量化や通信料削減を実現できます チート対策 ユーザーリソースの管理をサーバー側に一元化することでチート対策を 実施
スクリプト ※データストアから値を取得し、ランダムに返すサンプルスクリプト ガチャ機能だけでなく、プレゼント付与、iOS, Android レシート検証(課金)などもサ ーバレスで実装することが可能
プラン案内 小規模ゲームアプリならだいたいBasicでいけちゃう
柔軟な組み合わせ利用をするのがオススメ NCMBを導入しても、すべての機能を利用する必要は無い システム全てをNCMBで構築するのではなく、 必要な機能だけをチョイスして利用するのがオススメ スクリプトで必要な機能を実装、プッシュ通知のみ利用 といった使い方をするのがベスト
解説書籍好評発売中 サンプルを持ってきています
https://github.com/NIFTYCloud-mbaas/ncmb_unity NCMB SDK for Unityをダウンロード!
せんでん:Indie Games Festival 2018 • Google主催のコンテスト • 個人・小規模ゲームアプリクリエイター向け • 2018
年 2 月 1 日より募集 2017 年 10 月 28 日(土) キックオフイベント! 場所:Google 東京オフィス
ご清聴いただきありがとうございました