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+NCMBで作るカスタムステージのオンライン共有システム
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takaaki Ichijo
July 24, 2016
Technology
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unity+NCMBで作るカスタムステージのオンライン共有システム
NIFTY Cloud mobile backendを使ってUnityのゲームにプレイヤーがステージを作って共有できるシステムを作ってみましょう。
Takaaki Ichijo
July 24, 2016
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 x NCMBで小規模ゲームアプリへのソーシャル要素導入
takaaki_ichijo
0
7.9k
UnityからREST APIを叩く~NCMBでランキング機能プラグインを作った話~
takaaki_ichijo
0
990
Other Decks in Technology
See All in Technology
Meet AgentCore Identity Consent Portal
hironobuiga
3
190
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
360
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
310
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
1
830
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
420
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
120
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
520
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
150
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
180
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
4
1.1k
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
130
Futexes the good, the bad, the ugly
ennael
PRO
0
130
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Product Roadmaps are Hard
iamctodd
55
13k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
WCS-LA-2024
lcolladotor
0
850
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Writing Fast Ruby
sferik
630
63k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
310
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
390
Git: the NoSQL Database
bkeepers
PRO
433
67k
Transcript
Copyright © NIFTY Corporation All Rights Reserved. NCMBで作る カスタムステージの オンライン共有システム
NCMB広めたいおじさん 一條 貴彰
Copyright © NIFTY Corporation All Rights Reserved. 2 自己紹介
一條 貴彰 – 個人ゲーム開発者 – ゲーム開発ツール専門コンサル 経歴 – 2010年~2015年 サラリーマン 株式会社CRI・ミドルウェア – 2015年7月~ フリーランス 元ソルジャー 今はNCMBおじさん Unite 2016で登壇したり ニンテンドー3DS向けのゲーム作ってます→ 趣味 – 飲酒(クラフトビール) – 電タバ – 80’s洋ポップス レアレコード収集 / DJ – 推し刀は鯰尾藤四郎くん Twitter:@Takaaki_Ichijo
Copyright © NIFTY Corporation All Rights Reserved. 3 Nifty Cloud
mobile backendと私 役割 ゲーム開発者とのリレーション構築 – 機能の紹介 – 使い方の紹介 – トラブったときの支援 現状 NCMB広めたいおじさん(エヴァンジェリスト)見習い – 仕事始めてから4ヶ月目 とりあえずUnityでサンプル作ったり、 ブログを書いたり各種勉強会で紹介したり
Copyright © NIFTY Corporation All Rights Reserved. 4 is 何
Copyright © NIFTY Corporation All Rights Reserved. 5 ひところ ゲームにオンライン機能を
簡単に追加できる
Copyright © NIFTY Corporation All Rights Reserved. 6 スマホアプリの バックエンド機能が
開発不要になる クラウドサービス SDKを導入するだけ で利用できる ※SDKはUnity,iOS ,Android,JavaScriptの4つを提供しております RESTAPIもあるよ! 提供中の機能 いわゆるmBaaS
Copyright © NIFTY Corporation All Rights Reserved. 7 バックエンドの準備がいらない ターミナル
cd ls ssh
Copyright © NIFTY Corporation All Rights Reserved. 8 オンラインに関する機能の提供 ユーザー認証機能
プッシュ通知配信 スクリプト機能 • ガチャなどのロジックをサーバー側で実行、バックエンドはNode.js
Copyright © NIFTY Corporation All Rights Reserved. 9 オンラインに関する機能の提供 ステージコメント機能
ゴースト機能 ランキング データストア機能 文字データや数値データをサーバーに保存し、 アプリから横断的に利用できる
Copyright © NIFTY Corporation All Rights Reserved. 10 オンラインに関する機能の提供
ファイルストア機能 画像・動画・音声その他ファイルを保存できる Unity SDKから使えるようになったばかり
Copyright © NIFTY Corporation All Rights Reserved. 11 最近の事例 「ひとりぼっち惑星」
放置ゲー+一方的メッセージング データストア機能を使って、 メッセージングシステムを実現 開発者はUnity初心者で サーバーエンジニアではない人。
Copyright © NIFTY Corporation All Rights Reserved. 12 NCMB対象
個人ゲーム・アプリ開発 お仕事で、小規模チームでアプリを開発す る人 サーバー、バックエンド分からない人
Copyright © NIFTY Corporation All Rights Reserved. 13 NCMBで作る カスタムステージの
オンライン共有システム from Unibook 5
Copyright © NIFTY Corporation All Rights Reserved. 14 概要
NCMBのデータストア機能 文字・数値が保存できる ↓ ゲーム内オブジェクトの座標を保存できる ↓ マリ◯メーカー的なシステムが作れるのでは
Copyright © NIFTY Corporation All Rights Reserved. 15 サンプル作った 「Bowling
City」 黒塗りの高級車と衝突するゲーム (ボーリングピン) データストア機能を使って、 NCMBで作る カスタムステージの オンライン共有システムを実現 ※サンプルなのでストア配信してません github: https://github.com/TakaakiIchijo/BowlingCity
Copyright © NIFTY Corporation All Rights Reserved. 16 カスタムステージ要素 ボーリングピンの配置ができる(簡易ステージエディット)
配置したデータをNCMBでサーバーに保存 別のユーザーがそのステージを遊べる
Copyright © NIFTY Corporation All Rights Reserved. 17 NCMBのセットアップ手順 STEP1
Unity WEBでサインアップして・・・ 認証キーをとって・・・
Copyright © NIFTY Corporation All Rights Reserved. 18 NCMBのセットアップ手順 Unity
STEP2 認証キーをUnity内で設定
Copyright © NIFTY Corporation All Rights Reserved. 19 セットアップ手順 試しにこんなコードを書く
Copyright © NIFTY Corporation All Rights Reserved. 20 セットアップ手順 NCMBのサーバーにデータが保存できた
あとは煮るなり焼くなり
Copyright © NIFTY Corporation All Rights Reserved. 21 ユーザー管理(ログイン・登録)はこう
Copyright © NIFTY Corporation All Rights Reserved. 22 ステージエディタモードを作る 各自
ゲームの内容によって、ステージエディタモードはぜんぜん違う ・シューティング? ・横スクロール? ・パズル?
Copyright © NIFTY Corporation All Rights Reserved. 23 ステージデータをセーブする
データストア機能で保存できるデータ 文字列 ABC 配列 ["orange", "apple", "grape"] 数字 123 日付 2013-09-06T01:51:03.606Z 真偽値 true または false| オブジェクト {"name":"orange"} 緯度経度(位置情報) 33.857619,122.378986
Copyright © NIFTY Corporation All Rights Reserved. 24 手順
GameObjectの座標(Transform.position)を シリアライズしてセーブ シリアライズ方法:オブジェクトの位置情報である Vector3 の値を double[] に変換して配列にする 今回のゲームで保存するデータ プレイヤーの名前 : string userName ボーリングピンの座標 : List<double[]> pinPosArray
Copyright © NIFTY Corporation All Rights Reserved. 25 実際にステージデータをセーブ
NCMBが用意している"NCMBObject"を使って実装 void SaveStageDataToNCMB(string userName, List<double[]> pinPositionList) { NCMBObject ncmbObject_PinPosition = new NCMBObject("PinPosition"); ncmbObject_PinPosition.AddRangeToList("PinPositionList", pinPositionList); ncmbObject_PinPosition.Add("UserName", userName); ncmbObject_PinPosition.SaveAsync((NCMBException e) => { if (e != null) { //エラー処理 } }); }
Copyright © NIFTY Corporation All Rights Reserved. 26 管理画面 1行が1つのステージ
ボーリングピンの位置情報
Copyright © NIFTY Corporation All Rights Reserved. 27 ステージデータをロード void
LoadNewestFromNCMB() { NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>(“PinPosition”); //検索のためのクエリ// query.OrderByDescending(“createDate”); //日付の降順にソート// query.Limit = 1; //先頭の要素だけを取得する// query.FindAsync((List<NCMBObject> objList, NCMBException e) => { if (e != null) { //データは見つからなかった } else { ArrayList arrayList = (ArrayList)objList[0]["PinPositionList"]; for (int i = 0; i < arrayList.Count - 1; i++) { ArrayList list = (ArrayList)arrayList[i]; GeneratePin(list); //リストから座標データを取り出し、ゲーム中にボーリングピンを出現させる。// } } }); }
Copyright © NIFTY Corporation All Rights Reserved. 28 完 これで友だちの間でステージデータが共有できる!
Copyright © NIFTY Corporation All Rights Reserved. 29 作ったステージが何回遊ばれたかを記録
指定したキーの値をインクリメント(カウントアップ)する public void CountUpPlayedNumber(currentStageName) { NCMBObject obj = //名前が一致するデータを取得// obj.Increment ("PlayedNumber"); obj.SaveAsync (); } さらにできること ユーザーごとにステージデータを一覧表示する 評価ランキングを作る ファイルストア機能で、スクリーンショットを載せる etc….
Copyright © NIFTY Corporation All Rights Reserved. 30 おさらい
NCMBとは ゲームにオンライン機能を簡単に追加できる できること データの保存 ファイルの保存 その応用範囲は未知数!
Copyright © NIFTY Corporation All Rights Reserved. 31 料金体系 とりあえず無料プランあります
個人ゲームアプリの規模なら概ね無料で行ける…?(未検証)
Copyright © NIFTY Corporation All Rights Reserved. 32 使いやすいところだけつまみ食い ニフティクラウド
mobile backendを使われているクライアントの多くは プッシュ通知をメインで使われています。 また、データストアやファイルストアだけなど 一部の機能だけを使ってもらっても問題ありません。
Copyright © NIFTY Corporation All Rights Reserved. 33 最後に ニフティクラウド
mobile backendで 皆さんもオンライン機能を実装しませんか?