Enviar pesquisa
Carregar
FINAL FANTASY Record Keeper の作り方
•
Transferir como PPT, PDF
•
432 gostaram
•
154,352 visualizações
D
dena_study
Seguir
第二回DeNAゲーム開発勉強会のスライドです https://atnd.org/events/58433
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 38
Baixar agora
Recomendados
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ユーザーストーリーの分割
ユーザーストーリーの分割
Arata Fujimura
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
Reimi Kuramochi Chiba
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
Recomendados
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Yoshiki Hayama
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ユーザーストーリーの分割
ユーザーストーリーの分割
Arata Fujimura
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
Reimi Kuramochi Chiba
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
Atsushi KOMIYA
Jenkins 再入門
Jenkins 再入門
Jumpei Miyata
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
mganeko
コンシューマゲーム開発におけるHansoftの活用事例
コンシューマゲーム開発におけるHansoftの活用事例
Hiroyuki Tanaka
目grep入門 +解説
目grep入門 +解説
murachue
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Hubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話します
hironroinakae
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
Masatoshi Tada
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
MicroProfileの正しい使い方 (Java Developer Summit 2023)
MicroProfileの正しい使い方 (Java Developer Summit 2023)
Hirofumi Iwasaki
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
dena_study
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線
アシアル株式会社
Mais conteúdo relacionado
Mais procurados
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
Atsushi KOMIYA
Jenkins 再入門
Jenkins 再入門
Jumpei Miyata
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
mganeko
コンシューマゲーム開発におけるHansoftの活用事例
コンシューマゲーム開発におけるHansoftの活用事例
Hiroyuki Tanaka
目grep入門 +解説
目grep入門 +解説
murachue
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
Hubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話します
hironroinakae
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
Masatoshi Tada
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
MicroProfileの正しい使い方 (Java Developer Summit 2023)
MicroProfileの正しい使い方 (Java Developer Summit 2023)
Hirofumi Iwasaki
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
Mais procurados
(20)
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
Jenkins 再入門
Jenkins 再入門
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
コンシューマゲーム開発におけるHansoftの活用事例
コンシューマゲーム開発におけるHansoftの活用事例
目grep入門 +解説
目grep入門 +解説
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
TLS, HTTP/2演習
TLS, HTTP/2演習
Hubsを何度も破壊して得た知見、話します
Hubsを何度も破壊して得た知見、話します
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
Redisの特徴と活用方法について
Redisの特徴と活用方法について
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
MicroProfileの正しい使い方 (Java Developer Summit 2023)
MicroProfileの正しい使い方 (Java Developer Summit 2023)
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
Destaque
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
dena_study
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線
アシアル株式会社
Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線
アシアル株式会社
医療データ解析界隈から見たICLR2017
医療データ解析界隈から見たICLR2017
RIKEN, Medical Sciences Innovation Hub Program (MIH)
[ICLR2017読み会 @ DeNA] ICLR2017紹介
[ICLR2017読み会 @ DeNA] ICLR2017紹介
Takeru Miyato
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
Takahiro Kubo
ICLR読み会 奥村純 20170617
ICLR読み会 奥村純 20170617
Jun Okumura
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
Takanori Nakai
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Eiji Sekiya
170614 iclr reading-public
170614 iclr reading-public
Katsuhiko Ishiguro
Q prop
Q prop
Reiji Hatsugai
Destaque
(11)
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
モバイル用Webフレームワーク最前線
モバイル用Webフレームワーク最前線
Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線
医療データ解析界隈から見たICLR2017
医療データ解析界隈から見たICLR2017
[ICLR2017読み会 @ DeNA] ICLR2017紹介
[ICLR2017読み会 @ DeNA] ICLR2017紹介
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
ICLR読み会 奥村純 20170617
ICLR読み会 奥村純 20170617
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
170614 iclr reading-public
170614 iclr reading-public
Q prop
Q prop
Semelhante a FINAL FANTASY Record Keeper の作り方
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
MinGeun Park
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
dena_study
Zerto 9.5徹底解説! Linux版リリースで脱Windowsでも簡単VMレプリケーション
Zerto 9.5徹底解説! Linux版リリースで脱Windowsでも簡単VMレプリケーション
株式会社クライム
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
Shinra_Technologies
スマートフォン勉強会 関東 19
スマートフォン勉強会 関東 19
Kenji Daikoku
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
gree_tech
クリエイター魂を刺激する!シンラが提案する「ゲームの超進化」ロードマップ
クリエイター魂を刺激する!シンラが提案する「ゲームの超進化」ロードマップ
Shinra_Technologies
Firefox mobile for android internals
Firefox mobile for android internals
Makoto Kato
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
Tomokazu Kizawa
Firefox Mobile
Firefox Mobile
Makoto Kato
消滅都市 Cocos2d-xでの演出・UIあれこれ
消滅都市 Cocos2d-xでの演出・UIあれこれ
Shun Noguchi
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Kentaro Matsumae
Windows 10 RS4 Insider Preview
Windows 10 RS4 Insider Preview
Tomokazu Kizawa
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
Katsutoshi Makino
Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation Japan
CineSoft
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
Web Technology Corp.
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
NTT Resonant Technology Inc.
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
Computational Materials Science Initiative
Game Development and Automation @ Agile Sapporo 2018 #1
Game Development and Automation @ Agile Sapporo 2018 #1
Michael Tedder
Semelhante a FINAL FANTASY Record Keeper の作り方
(20)
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
Zerto 9.5徹底解説! Linux版リリースで脱Windowsでも簡単VMレプリケーション
Zerto 9.5徹底解説! Linux版リリースで脱Windowsでも簡単VMレプリケーション
シンラ・テクノロジー第2回クラウドゲーム開発者会議
シンラ・テクノロジー第2回クラウドゲーム開発者会議
スマートフォン勉強会 関東 19
スマートフォン勉強会 関東 19
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
クリエイター魂を刺激する!シンラが提案する「ゲームの超進化」ロードマップ
クリエイター魂を刺激する!シンラが提案する「ゲームの超進化」ロードマップ
Firefox mobile for android internals
Firefox mobile for android internals
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
Firefox Mobile
Firefox Mobile
消滅都市 Cocos2d-xでの演出・UIあれこれ
消滅都市 Cocos2d-xでの演出・UIあれこれ
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Windows 10 RS4 Insider Preview
Windows 10 RS4 Insider Preview
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation Japan
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
改めて注目される2D アニメーションツール SpriteStudio ~国産2Dツールが(舶来ゲームエンジンの力を借りながら)世界へ~
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
リモート・スマホ・レンタル(第2回 Androidテスト祭り)
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 1
Game Development and Automation @ Agile Sapporo 2018 #1
Game Development and Automation @ Agile Sapporo 2018 #1
Mais de dena_study
ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装
dena_study
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
dena_study
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発
dena_study
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)
dena_study
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
dena_study
Game BaaS Implemented in Ruby
Game BaaS Implemented in Ruby
dena_study
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化
dena_study
Effective web performance tuning for smartphone
Effective web performance tuning for smartphone
dena_study
FINAL FANTASY Record Keeper 演出データについて
FINAL FANTASY Record Keeper 演出データについて
dena_study
スマホネイティブゲーム 開発効率改善
スマホネイティブゲーム 開発効率改善
dena_study
Mais de dena_study
(11)
ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
Game BaaS Implemented in Ruby
Game BaaS Implemented in Ruby
FFRK cocos2d xレイヤーの最適化
FFRK cocos2d xレイヤーの最適化
Effective web performance tuning for smartphone
Effective web performance tuning for smartphone
FINAL FANTASY Record Keeper 演出データについて
FINAL FANTASY Record Keeper 演出データについて
スマホネイティブゲーム 開発効率改善
スマホネイティブゲーム 開発効率改善
FINAL FANTASY Record Keeper の作り方
1.
FINAL FANTASY Record
Keeper の作り方 株式会社ディー・エヌ・エー Japan リージョン ゲーム事業本部 新井 英資 eisuke.arai@dena.com ©2014 SQUARE ENIX CO.,LTD / DeNA Co.,Ltd. All Rights Reserved.
2.
自己紹介 • 新井
英資 • FINAL FANTASY Record Keeper (FFRK) リードエンジニア • 2011年入社 4年目 • 以前はアルバイトでiOSアプリを作ったり • インフラやミドルウェアとチームを繋ぐ人 • 出来ないことを出来るようにします
3.
今日お話すること • FFRKというゲームを作ってみた話
• FFRKのアーキテクチャの話 • FFRKの運用周りの小話
4.
FFRK というゲームを作ってみた話
5.
FFRKについて • iOS/Android™向けにリリース(2014/09/25)
• 株式会社スクウェア・エニックスとの共同開発タイトル • 全FFシリーズのバトルをドット絵で再現 • 懐かしくて新しいFINAL FANTASY • システム開発はDeNA • おかげ様でとても好評
6.
デモ • 実際の本番アプリの動画を再生します
7.
開発当初の要件 • アプリで作りたい
– リッチなアニメーションを再生 • コンテンツ更新をコントロールしたい – アプリ更新無しでのイベントリリース • これまでの既存リソースを使いたい – Kickmotor(D.O.T.、三国志ロワイヤル) – ブラウザゲー用の内製フレームワーク
8.
ハイブリッドアプリ • WebViewレイヤとOpenGLレイヤの2層構造
– リッチな表現はOpenGLで描画 • WebViewBridge – WebView上のJSからネイティブの関数を実行 WWeebbVViieeww OOppeennGGLL
9.
ここはWebView
10.
ここはOpenGL
11.
WebView上のJS実装 • MVCフレームワークの導入
– フロントもきちんと構造化して実装 • Backbone.js + RequireJS – 利用実績を考慮 • Underscore template – JSTにコンパイルして使う
12.
バトルの実装 • FFのATBを再現するには…
– 待機、詠唱、攻撃、などの状態制御 • JSでステートマシンを実装 – ネイティブアニメ描画とバトルロジックを分離 • アニメーションはDeferredチェーン – ネイティブからの描画コールバックを待って次へ • ボス毎にステートマップを作成 – 多彩なボスの行動制御
13.
FFRKを作ったぞ! よしリリースだ!
14.
リリース1ヶ月前の出来事 • CBTの結果
–重い –熱い • 10fpsを切るもっさりバトル • スクロール出来ないアイテムリスト • 充電しながらプレイしても電池が減る
15.
orz
16.
パフォチュー祭り WebView編 •
Chromeでのプロファイリング –無駄な処理を徹底的に洗い出す –レイアウト構造からの見直し • ネイティブと同等のレベルへ
17.
これが
18.
こう
19.
これが
20.
こう
21.
パフォチュー祭り ネイティブ編 •
各OpenGL描画APIのコールスタックを精査 • 無駄な描画APIコールを減らす – 頂点数0での描画 – 無駄に広い描画領域 • 同じテクスチャを参照する描画をまとめる • Android2.X系でも30fps出るように – ドローコールは4分の1まで削減
22.
これが
23.
こう
24.
ハイブリッドで作るメリット • イベントドリブンなゲーム運用が出来る
– クライアント申請期間に左右されない – 究極的にはJSを変えれば全く別のゲームを作れる • ChromeやSafariでデバッグ出来る – ビルドをし直す必要が無くて便利
25.
とはいえ • アクション性の高い要素は難しい
– WebViewBridgeでのレイテンシ • 所詮はWebView – HTMLテンプレート読み込み途中で止まったり – ひっそりと再読み込みボタンを置く悲しみ • OSバージョンによる挙動の違い – 主にAndroid™ – 主にAndroid™
26.
FFRK のアーキテクチャの話
27.
ざっくり概要
28.
クライアント構成
29.
ネイティブアニメーション • アニメーションプレイヤー
– 内製ツールで作成したアニメデータを Cocos2d-xで再生する • 細かなアニメ制御 – データでの制御 – マスタでの制御 – JSでの制御
30.
ネイティブキャッシュ(図解) キキャャッッシシュュ機機構構 デディィレレククトトリリ
hhttttppdd ダダウウンンロローーダダ WebView 持っていないアセットのみ をサーバからとってくる
31.
ネイティブキャッシュ • WebViewからもネイティブからも透過的にアクセス
– Mongoose を使いアプリ内部でプロキシサーバを立てる – http://127.0.0.1:12345/hoge?url=file&ver=abcde – キャッシュが無ければサーバから取得(cURL) • キャッシュさせるもの – 大体何でも • cssについては少し工夫 – 保存時に画像URLを置換してキャッシュサーバを向ける • ビルドに抱き込むアセットも同様にアクセス可能
32.
FFRKの運用周りの小話
33.
高負荷対策 • リリース後わりとすぐにTVCM開始
– 急増するユーザ(現在:登録者数300万人超) – 荒ぶるWebサーバ • 迅速な負荷対応 – シャードDBを追加投入 – Webサーバを順次投入 – 参照をslaveに逃がせる所は逃がす • サービス停止すること無く乗り切りました
34.
マスタ管理 • Google
Spreadsheet で一括管理 • Google Apps Script – マスタ間での値のマッピング – csvでの吐き出し • マスタ作成フロー – 開発環境でロード – マスタのテスト – Jenkins経由でgithub:EにPull-Request
35.
ChatOps • IRC
+ Jenkins + Hubot – Jenkinsが失敗していると全員怒られる • Hubotが管理するもの – Jenkinsでのビルド状況 – 検証環境の状態 – その他余計な機能多数
36.
まとめ • FFRKはハイブリッドアプリ
– WebViewとネイティブの両レイヤで最適化 • FFRKの特徴的機構 – アニメーションプレイヤー – ネイティブキャッシュ • FFRKの運用は終わりなき改善の旅 – 高負荷対応 – マスタ管理 – ChatOps
37.
突然の謝辞 • たくさんのエンジニアにご協力頂きました
– インフラチームの皆さん – ミドルウェアチームの皆さん – パフォーマンスチューナーの皆さん – 開発チームの皆さん • ありがとうございました!!
38.
ご静聴ありがとうございました
Notas do Editor
----- 会議メモ (2014/11/07 19:01) ----- CPUの処理時間も入れる
----- 会議メモ (2014/11/07 19:01) ----- mongoose
Baixar agora