Copyright Drecom Co., Ltd. All Rights Reserved.	
 1
モバイルゲームにおける
社内基盤開発と“実録”
株式会社ドリコム
川上  知成
⽊木元  将輝
市川  毅明
Copyright Drecom Co., Ltd. All Rights Reserved.	
 2
会社概要
社名:	
  
証券コード:	
  
本社:	
  
	
  
電話番号:	
  
社員数:	
  
設立年月日:	
  
資本金:	
  
	
  
事業内容:	
  
	
  
	
  
	
  
	
  
	
  
株式会社ドリコム	
  
3793 東証マザーズ	
  
〒153-­‐0064	
  
東京都目黒区下目黒1丁目8-­‐1 アルコタワー17F	
TEL:03-­‐6682-­‐5700 FAX:03-­‐6682-­‐5711	
  
239名 (正社員・契約社員のみ)	
2001年11月13日	
  
1,124百万円	
  
	
  
ソーシャルゲーム事業	
  
ソーシャルラーニング事業	
  
アドソリューション事業	
  
	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 3
⾃自⼰己紹介
•  株式会社ドリコム
SG事業本部  開発部  マネージャー
川上  知成(ともふさ)
•  Role:
–  ネイティブ/ゲーム開発管理理
基盤統括
•  Ability:
–  Web(App〜~Middle)  /  PM
–  ゲーム(国内サッカー系)
–  料料理理
Copyright Drecom Co., Ltd. All Rights Reserved.	
 4
Game  .?
Copyright Drecom Co., Ltd. All Rights Reserved.	
 5
iOS	
?
Android	
A	
B	
C	
 A	
B	
C
Copyright Drecom Co., Ltd. All Rights Reserved.	
 6
Bisque
Copyright Drecom Co., Ltd. All Rights Reserved.	
 7
⽬目次
1.  発表の前に
2.  フレームワーク開発と事例例紹介
–  Bisque開発の経緯と設計
–  クロスプラットフォーム対応
–  設計事例例
3.  基盤機能開発と事例例紹介
–  抽象化設計
–  難読化アルゴリズムについて
–  運⽤用の柔軟性を実現するアーカイブ実装
–  対応プラットフォーム
4.  まとめ
Copyright Drecom Co., Ltd. All Rights Reserved.	
 8
⾃自⼰己紹介
•  株式会社ドリコム
SG事業本部  開発部  アーキテクト
⽊木元  将輝
•  Role:
–  ゲーム基盤開発
•  Ability:
–  コンシューマゲーム開発
–  ゲーム(FPS系)
–  PCゲーム
Copyright Drecom Co., Ltd. All Rights Reserved.	
 9
■	
  Bisque開発の経緯と設計	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 10
Copyright Drecom Co., Ltd. All Rights Reserved.	
 11
Copyright Drecom Co., Ltd. All Rights Reserved.	
 12
「神縛のレインオブドラゴン」	
  
Web	
  +	
  NaGve	
  
ハイブリッド	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 13
iOS	
 Android	
それぞれのプラットフォームに対する開発	
  
開発コスト	
  
運用コスト	
  
クオリティ	
  
開発コスト	
  
運用コスト	
  
クオリティ	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 14
iOS	
 Android	
クロスプラットフォーム化へ	
  
開発コスト	
  
運用コスト	
  
クオリティ	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 15
ゲームエンジンへの期待	
  
クロスプラットフォーム
Copyright Drecom Co., Ltd. All Rights Reserved.	
 16
クロスプラットフォーム	
ゲームエンジンへの期待	
  
実装/修正	
 学習コスト
Copyright Drecom Co., Ltd. All Rights Reserved.	
 17
クロスプラットフォーム	
ゲームエンジンへの期待	
  
レスポンス	
低スペック	
実装/修正	
 学習コスト	
ロード時間
Copyright Drecom Co., Ltd. All Rights Reserved.	
 18
クロスプラットフォーム	
ゲームエンジンへの期待	
  
実装/修正	
 学習コスト	
小さく、軽く	
 Android	
  2.x
Copyright Drecom Co., Ltd. All Rights Reserved.	
 19
既存ゲームエンジンを採用した独自フレームワーク	
  
クロスプラットフォーム対応フレームワーク	
	
	
	
	
アプリケーション	
iOS	
 Android	
既存ゲームエンジン
Copyright Drecom Co., Ltd. All Rights Reserved.	
 20
Cocos2d-­‐xを既存ゲームエンジンとして採用	
  
クロスプラットフォーム対応フレームワーク	
	
	
	
	
iOS	
 Android	
アプリケーション
Copyright Drecom Co., Ltd. All Rights Reserved.	
 21
採用の基準	
  
クロスプラットフォーム開発が可能	
独自に実装、修正が可能 ※	
  
学習コストを低く抑える事が可能 ※	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 22
■クロスプラットフォーム対応	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 23
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 24
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
OpenGL	
  
抽象化レイヤー	
  
OS固有	
  
抽象化レイヤー
Copyright Drecom Co., Ltd. All Rights Reserved.	
 25
	
  
	
  
	
  
	
  
	
  
	
  
描画システム	
  
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
OpenGL	
  
抽象化レイヤー	
  
OS固有	
  
抽象化レイヤー
Copyright Drecom Co., Ltd. All Rights Reserved.	
 26
	
  
	
  
	
  
	
  
	
  
	
  
固有機能	
  
	
  
	
  
	
  
	
  
	
  
	
  
描画システム	
  
Bisqueでのクロスプラットフォーム対応	
  
OpenGL	
  
抽象化レイヤー	
  
Bisque	
  
OS固有	
  
抽象化レイヤー
Copyright Drecom Co., Ltd. All Rights Reserved.	
 27
	
  
	
  
	
  
	
  
	
  
	
  
固有機能	
  
	
  
	
  
	
  
	
  
	
  
	
  
描画システム	
  
Bisqueでのクロスプラットフォーム対応	
  
OpenGL	
  
抽象化レイヤー	
  
Bisque	
  
OS固有	
  
抽象化レイヤー
Copyright Drecom Co., Ltd. All Rights Reserved.	
 28
Bisque	
  
Bisqueでのクロスプラットフォーム対応	
  
Android	
Implement	
iOS	
Implement	
JNI	
ObjecGve-­‐C++	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 29
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
アプリケーション
Copyright Drecom Co., Ltd. All Rights Reserved.	
 30
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
C++インターフェース	
アプリケーション(C++)
Copyright Drecom Co., Ltd. All Rights Reserved.	
 31
Bisqueでのクロスプラットフォーム対応	
  
・View	
  
・タッチ	
  
・課金	
  
・通知	
  
・ファイル	
  
・ネットワーク	
  
・データベース	
  
・サウンド	
  
・ライブラリ拡張	
  
・ツール拡張	
  
・組み込み	
  
プラットフォーム毎に実装/拡張	
  
Bisqueにて抽象化	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 32
■設計事例	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 33
	
  
・UIとタッチ制御の拡張 ・カスタムフォントの装飾	
  
・端末間の描画サイクル ・スレッド間制御	
  
・環境設定とビルドスクリプト ・WebView	
  
・外部ライブラリの拡張 ・端末間のスクリーンサイズ	
  
・Cocos2d-­‐xのバージョン差異 ・Bisqueのアップデート	
  
Bisqueでのクロスプラットフォーム対応	
  
iOS/Androidのクロスプラットフォーム対応での問題	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 34
	
  
・UIとタッチ制御の拡張 ・カスタムフォントの装飾	
  
・端末間の描画サイクル ・スレッド間制御 	
  
・環境設定とビルドスクリプト ・WebView	
  
・外部ライブラリの拡張 ・端末間のスクリーンサイズ	
  
・Cocos2d-­‐xのバージョン差異 ・Bisqueのアップデート	
  
Bisqueでのクロスプラットフォーム対応	
  
iOS/Androidのクロスプラットフォーム対応での問題	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 35
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 36
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
アプリケーション
Copyright Drecom Co., Ltd. All Rights Reserved.	
 37
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
アプリケーション	
致命的な問題
Copyright Drecom Co., Ltd. All Rights Reserved.	
 38
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
アプリケーション	
OK	
iOS	
  
	
  
performSelectorOnMainThread	
  
dispatch_sync,	
  dispatch_async
Copyright Drecom Co., Ltd. All Rights Reserved.	
 39
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
アプリケーション	
OK	
Android	
  
	
  
runOnUiThread	
  
Handler,	
  AsyncTask	
  
※queueEvent(GL)
Copyright Drecom Co., Ltd. All Rights Reserved.	
 40
Bisqueでのクロスプラットフォーム対応	
  
ネットワーク	
 サウンド	
 その他	
iOS	
 Android	
GL	
メイン(UI)スレッド	
  
Cocos-­‐2d-­‐x	
  
Cocos-­‐2d-­‐x	
  
メイン(UI)スレッド	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 41
Bisqueでのクロスプラットフォーム対応	
  
ネットワーク	
 サウンド	
 その他	
iOS	
 Android	
GL	
メイン(UI)スレッド	
  
Cocos-­‐2d-­‐x	
  
Cocos-­‐2d-­‐x	
  
メイン(UI)スレッド	
  
これらのスレッドからCocos2d-xの描画に関する	
処理を呼び出す事で問題が発生
Copyright Drecom Co., Ltd. All Rights Reserved.	
 42
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
アプリケーション	
??	
OK
Copyright Drecom Co., Ltd. All Rights Reserved.	
 43
Bisqueでのクロスプラットフォーム対応	
  
Bisque	
  
アプリケーション	
Main	
  or	
  GL	
OK	
BQHandler	
  
OK
Copyright Drecom Co., Ltd. All Rights Reserved.	
 44
・ビュー	
  
・タッチ	
  
・課金	
  
・通知	
  
・ファイル	
  
・ネットワーク	
  
・データベース	
  
・サウンド	
  
・ライブラリ拡張	
  
・ツール拡張	
  
・組み込み	
  
プラットフォーム毎に実装/拡張	
  
Bisqueにて抽象化	
  
Bisqueでのクロスプラットフォーム対応	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 45
⾃自⼰己紹介
•  株式会社ドリコム
SG事業本部  開発部  アーキテクト
市川  毅明
•  Role:
–  ゲーム・汎⽤用基盤開発
•  Ability:
–  サーバー・クライアント開発
–  ゲーム(バイオハザード系)
–  釣り
Copyright Drecom Co., Ltd. All Rights Reserved.	
 46
Bisque	
  基盤	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 47
Copyright Drecom Co., Ltd. All Rights Reserved.	
 48
アプリケーション	
Cocos2D-­‐X	
 内製ライブラリー	
抽象化レイヤー	
各プラットフォーム
Copyright Drecom Co., Ltd. All Rights Reserved.	
 49
Bisque	
  基盤開発の経緯	
  
Cocos2D-­‐xの下回りのパフォーマンスが芳しくなかった	
  
OSSライセンス周りの問題	
  
弊社アプリで必要とされる機能の補い	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 50
Cocos	
  からの独立	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 51
抽象化設計	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 52
One	
  and	
  Half	
  設計
Copyright Drecom Co., Ltd. All Rights Reserved.	
 53
柔軟な上部	
  
(ライブラリー層)	
強靭な設計の根元	
  
(抽象化レイヤー)
Copyright Drecom Co., Ltd. All Rights Reserved.	
 54
サウンド用I/F	
OpenAL	
 OpenSL	
 /dev/audio	
Xaudio2	
下回りの実装は最適
なAPIを選択	
  
アプリ開発者にはプラッ
トフォームを意識させな
い	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 55
難読化アルゴリズムについて	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 56
Copyright Drecom Co., Ltd. All Rights Reserved.	
 57
運用の柔軟性を実現するアーカイブ実装	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 58
アプリ開発者に #ifdef	
  (プラットフォーム)	
  を書かせない
Copyright Drecom Co., Ltd. All Rights Reserved.	
 59
read()	
通常のファイル	
 難読化ファイル	
 ネットワーク	
アーカイブ	
裏では・・・	
I/Fは同じ
Copyright Drecom Co., Ltd. All Rights Reserved.	
 60
難読化	
  +	
  	
  アーカイブされたテクスチャー	
CCFileUGl	
  (Cocos)のread()	
難読化モジュールのread()	
アーカイブモジュールのread()	
透過的な難読化とアーカイブ
からの読み込みを実現
Copyright Drecom Co., Ltd. All Rights Reserved.	
 61
アプリ	
SQLite	
難読化モジュールの	
  
read/writeコール	
ほぼI/Oフックで実現
Copyright Drecom Co., Ltd. All Rights Reserved.	
 62
Copyright Drecom Co., Ltd. All Rights Reserved.	
 63
初期データ	
増分	
 増分	
 増分	
 増分
Copyright Drecom Co., Ltd. All Rights Reserved.	
 64
初期データ	
 増分
Copyright Drecom Co., Ltd. All Rights Reserved.	
 65
HTTP	
  圧縮	
  
2,733,615	
  byte	
  
	
サーバー上のサイズ	
  
2,737,328	
  byte
Copyright Drecom Co., Ltd. All Rights Reserved.	
 66
ブロック暗号はgzip(LZ)と、とにかく相性が悪い!	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 67
アーカイブ	
難読化	
 圧縮	
 プレーン	
アプリに都合の良い形式で自
由にデータが作成出来る
Copyright Drecom Co., Ltd. All Rights Reserved.	
 68
対応プラットフォーム	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 69
Bisuqe	
Cocos2D-­‐x	
別エンジン
Copyright Drecom Co., Ltd. All Rights Reserved.	
 70
弊社非Cocosアプリ	
PC向け内製ツール類	
Bisque	
スレッド	
 アーカイブ	
 難読化	
 ネットワーク	
ライブラリールーチンとして	
  
Bisque基盤を使用	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 71
サーバー(Ruby)	
クライアント	
bisque	
  難読化モジュール	
bisque	
  難読化モジュール	
全く同じコードから生成されるので	
  
完全互換のデータ持ち回りを実現
Copyright Drecom Co., Ltd. All Rights Reserved.	
 72
72	
  
  
Bisque	
  WorkstaGon	
  EdiGon(PC版)	
  
かくして、単一ソースツリーから3つのエディションが誕生	
Bisque	
Bisque	
  Datacenter	
  EdiGon(サーバー版)
Copyright Drecom Co., Ltd. All Rights Reserved.	
 73
・Windows	
  Phone	
  8	
  
・iOS	
  
・Android	
  
対応プラットフォーム(2014/09	
  現在)	
スマートフォン	
PC系	
・Windows	
  Vista以降	
  
・Windows	
  RT	
  
・Solaris	
  8以降	
  
・Linux	
  (kernel	
  2.6.32以降)	
  
・MacOS	
  10.5以降	
  
・OpenVMS	
  (VAXは無理)	
  
・*BSD	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 74
現段階で独自に実装した物	
  
サウンドエンジン(バックエンドはOpenAL、OpenSL、Xudio2)	
  
スレッド、I/O、低レベルソケット、高レベルネットワーク	
  
アーカイブ	
  
難読化アルゴリズム	
  x	
  4	
  
簡易高速圧縮アルゴリズム	
  
GPS、ジャイロ等のスマホ特有機能の抽象化	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 75
まとめ	
  
設計しよう、あたなは世界を作るのです	
  
Copyright Drecom Co., Ltd. All Rights Reserved.	
 76
私達の作る社内フレームワーク「Bisque」と
いう名前に込めた意味として、
お皿・陶磁器・基盤そのもの があります。
お皿がどんなによく出来ていようとも、
綺麗にできていても…、
Copyright Drecom Co., Ltd. All Rights Reserved.	
 77
美味しい料理が乗らなければ、
お客さまに召し上がっていただけない。
つまり、面白い・楽しいゲームが
作れてはじめて評価される
Copyright Drecom Co., Ltd. All Rights Reserved.	
 78
これからも 美味しい料理が作れるように、
魅力的な外部技術を取り入れ、
弊社独自の技術を組み合わせ、
より柔軟で強固な基盤開発を実施したい
Copyright Drecom Co., Ltd. All Rights Reserved.	
 79
まとめ
•  フレームワーク開発と事例例紹介
–  Bisque開発の経緯と設計
–  クロスプラットフォーム対応
–  設計事例例
•  基盤機能開発と事例例紹介
–  抽象化設計
–  難読化アルゴリズムについて
–  運⽤用の柔軟性を実現するアーカイブ実装
–  対応プラットフォーム
Copyright Drecom Co., Ltd. All Rights Reserved.	
 80
ご清聴ありがとうございました

[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”

  • 1.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 1 モバイルゲームにおける 社内基盤開発と“実録” 株式会社ドリコム 川上  知成 ⽊木元  将輝 市川  毅明
  • 2.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 2 会社概要 社名:   証券コード:   本社:     電話番号:   社員数:   設立年月日:   資本金:     事業内容:             株式会社ドリコム   3793 東証マザーズ   〒153-­‐0064   東京都目黒区下目黒1丁目8-­‐1 アルコタワー17F TEL:03-­‐6682-­‐5700 FAX:03-­‐6682-­‐5711   239名 (正社員・契約社員のみ) 2001年11月13日   1,124百万円     ソーシャルゲーム事業   ソーシャルラーニング事業   アドソリューション事業    
  • 3.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 3 ⾃自⼰己紹介 •  株式会社ドリコム SG事業本部  開発部  マネージャー 川上  知成(ともふさ) •  Role: –  ネイティブ/ゲーム開発管理理 基盤統括 •  Ability: –  Web(App〜~Middle)  /  PM –  ゲーム(国内サッカー系) –  料料理理
  • 4.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 4 Game  .?
  • 5.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 5 iOS ? Android A B C A B C
  • 6.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 6 Bisque
  • 7.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 7 ⽬目次 1.  発表の前に 2.  フレームワーク開発と事例例紹介 –  Bisque開発の経緯と設計 –  クロスプラットフォーム対応 –  設計事例例 3.  基盤機能開発と事例例紹介 –  抽象化設計 –  難読化アルゴリズムについて –  運⽤用の柔軟性を実現するアーカイブ実装 –  対応プラットフォーム 4.  まとめ
  • 8.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 8 ⾃自⼰己紹介 •  株式会社ドリコム SG事業本部  開発部  アーキテクト ⽊木元  将輝 •  Role: –  ゲーム基盤開発 •  Ability: –  コンシューマゲーム開発 –  ゲーム(FPS系) –  PCゲーム
  • 9.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 9 ■  Bisque開発の経緯と設計  
  • 10.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 10
  • 11.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 11
  • 12.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 12 「神縛のレインオブドラゴン」   Web  +  NaGve   ハイブリッド  
  • 13.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 13 iOS Android それぞれのプラットフォームに対する開発   開発コスト   運用コスト   クオリティ   開発コスト   運用コスト   クオリティ  
  • 14.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 14 iOS Android クロスプラットフォーム化へ   開発コスト   運用コスト   クオリティ  
  • 15.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 15 ゲームエンジンへの期待   クロスプラットフォーム
  • 16.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 16 クロスプラットフォーム ゲームエンジンへの期待   実装/修正 学習コスト
  • 17.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 17 クロスプラットフォーム ゲームエンジンへの期待   レスポンス 低スペック 実装/修正 学習コスト ロード時間
  • 18.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 18 クロスプラットフォーム ゲームエンジンへの期待   実装/修正 学習コスト 小さく、軽く Android  2.x
  • 19.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 19 既存ゲームエンジンを採用した独自フレームワーク   クロスプラットフォーム対応フレームワーク アプリケーション iOS Android 既存ゲームエンジン
  • 20.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 20 Cocos2d-­‐xを既存ゲームエンジンとして採用   クロスプラットフォーム対応フレームワーク iOS Android アプリケーション
  • 21.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 21 採用の基準   クロスプラットフォーム開発が可能 独自に実装、修正が可能 ※   学習コストを低く抑える事が可能 ※  
  • 22.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 22 ■クロスプラットフォーム対応  
  • 23.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 23 Bisqueでのクロスプラットフォーム対応   Bisque  
  • 24.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 24 Bisqueでのクロスプラットフォーム対応   Bisque   OpenGL   抽象化レイヤー   OS固有   抽象化レイヤー
  • 25.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 25             描画システム   Bisqueでのクロスプラットフォーム対応   Bisque   OpenGL   抽象化レイヤー   OS固有   抽象化レイヤー
  • 26.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 26             固有機能               描画システム   Bisqueでのクロスプラットフォーム対応   OpenGL   抽象化レイヤー   Bisque   OS固有   抽象化レイヤー
  • 27.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 27             固有機能               描画システム   Bisqueでのクロスプラットフォーム対応   OpenGL   抽象化レイヤー   Bisque   OS固有   抽象化レイヤー
  • 28.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 28 Bisque   Bisqueでのクロスプラットフォーム対応   Android Implement iOS Implement JNI ObjecGve-­‐C++  
  • 29.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 29 Bisqueでのクロスプラットフォーム対応   Bisque   アプリケーション
  • 30.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 30 Bisqueでのクロスプラットフォーム対応   Bisque   C++インターフェース アプリケーション(C++)
  • 31.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 31 Bisqueでのクロスプラットフォーム対応   ・View   ・タッチ   ・課金   ・通知   ・ファイル   ・ネットワーク   ・データベース   ・サウンド   ・ライブラリ拡張   ・ツール拡張   ・組み込み   プラットフォーム毎に実装/拡張   Bisqueにて抽象化  
  • 32.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 32 ■設計事例  
  • 33.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 33   ・UIとタッチ制御の拡張 ・カスタムフォントの装飾   ・端末間の描画サイクル ・スレッド間制御   ・環境設定とビルドスクリプト ・WebView   ・外部ライブラリの拡張 ・端末間のスクリーンサイズ   ・Cocos2d-­‐xのバージョン差異 ・Bisqueのアップデート   Bisqueでのクロスプラットフォーム対応   iOS/Androidのクロスプラットフォーム対応での問題  
  • 34.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 34   ・UIとタッチ制御の拡張 ・カスタムフォントの装飾   ・端末間の描画サイクル ・スレッド間制御    ・環境設定とビルドスクリプト ・WebView   ・外部ライブラリの拡張 ・端末間のスクリーンサイズ   ・Cocos2d-­‐xのバージョン差異 ・Bisqueのアップデート   Bisqueでのクロスプラットフォーム対応   iOS/Androidのクロスプラットフォーム対応での問題  
  • 35.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 35 Bisqueでのクロスプラットフォーム対応   Bisque  
  • 36.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 36 Bisqueでのクロスプラットフォーム対応   Bisque   アプリケーション
  • 37.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 37 Bisqueでのクロスプラットフォーム対応   Bisque   アプリケーション 致命的な問題
  • 38.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 38 Bisqueでのクロスプラットフォーム対応   Bisque   アプリケーション OK iOS     performSelectorOnMainThread   dispatch_sync,  dispatch_async
  • 39.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 39 Bisqueでのクロスプラットフォーム対応   Bisque   アプリケーション OK Android     runOnUiThread   Handler,  AsyncTask   ※queueEvent(GL)
  • 40.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 40 Bisqueでのクロスプラットフォーム対応   ネットワーク サウンド その他 iOS Android GL メイン(UI)スレッド   Cocos-­‐2d-­‐x   Cocos-­‐2d-­‐x   メイン(UI)スレッド  
  • 41.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 41 Bisqueでのクロスプラットフォーム対応   ネットワーク サウンド その他 iOS Android GL メイン(UI)スレッド   Cocos-­‐2d-­‐x   Cocos-­‐2d-­‐x   メイン(UI)スレッド   これらのスレッドからCocos2d-xの描画に関する 処理を呼び出す事で問題が発生
  • 42.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 42 Bisqueでのクロスプラットフォーム対応   Bisque   アプリケーション ?? OK
  • 43.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 43 Bisqueでのクロスプラットフォーム対応   Bisque   アプリケーション Main  or  GL OK BQHandler   OK
  • 44.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 44 ・ビュー   ・タッチ   ・課金   ・通知   ・ファイル   ・ネットワーク   ・データベース   ・サウンド   ・ライブラリ拡張   ・ツール拡張   ・組み込み   プラットフォーム毎に実装/拡張   Bisqueにて抽象化   Bisqueでのクロスプラットフォーム対応  
  • 45.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 45 ⾃自⼰己紹介 •  株式会社ドリコム SG事業本部  開発部  アーキテクト 市川  毅明 •  Role: –  ゲーム・汎⽤用基盤開発 •  Ability: –  サーバー・クライアント開発 –  ゲーム(バイオハザード系) –  釣り
  • 46.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 46 Bisque  基盤  
  • 47.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 47
  • 48.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 48 アプリケーション Cocos2D-­‐X 内製ライブラリー 抽象化レイヤー 各プラットフォーム
  • 49.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 49 Bisque  基盤開発の経緯   Cocos2D-­‐xの下回りのパフォーマンスが芳しくなかった   OSSライセンス周りの問題   弊社アプリで必要とされる機能の補い  
  • 50.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 50 Cocos  からの独立  
  • 51.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 51 抽象化設計  
  • 52.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 52 One  and  Half  設計
  • 53.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 53 柔軟な上部   (ライブラリー層) 強靭な設計の根元   (抽象化レイヤー)
  • 54.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 54 サウンド用I/F OpenAL OpenSL /dev/audio Xaudio2 下回りの実装は最適 なAPIを選択   アプリ開発者にはプラッ トフォームを意識させな い  
  • 55.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 55 難読化アルゴリズムについて  
  • 56.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 56
  • 57.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 57 運用の柔軟性を実現するアーカイブ実装  
  • 58.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 58 アプリ開発者に #ifdef  (プラットフォーム)  を書かせない
  • 59.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 59 read() 通常のファイル 難読化ファイル ネットワーク アーカイブ 裏では・・・ I/Fは同じ
  • 60.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 60 難読化  +    アーカイブされたテクスチャー CCFileUGl  (Cocos)のread() 難読化モジュールのread() アーカイブモジュールのread() 透過的な難読化とアーカイブ からの読み込みを実現
  • 61.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 61 アプリ SQLite 難読化モジュールの   read/writeコール ほぼI/Oフックで実現
  • 62.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 62
  • 63.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 63 初期データ 増分 増分 増分 増分
  • 64.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 64 初期データ 増分
  • 65.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 65 HTTP  圧縮   2,733,615  byte   サーバー上のサイズ   2,737,328  byte
  • 66.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 66 ブロック暗号はgzip(LZ)と、とにかく相性が悪い!  
  • 67.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 67 アーカイブ 難読化 圧縮 プレーン アプリに都合の良い形式で自 由にデータが作成出来る
  • 68.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 68 対応プラットフォーム  
  • 69.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 69 Bisuqe Cocos2D-­‐x 別エンジン
  • 70.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 70 弊社非Cocosアプリ PC向け内製ツール類 Bisque スレッド アーカイブ 難読化 ネットワーク ライブラリールーチンとして   Bisque基盤を使用  
  • 71.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 71 サーバー(Ruby) クライアント bisque  難読化モジュール bisque  難読化モジュール 全く同じコードから生成されるので   完全互換のデータ持ち回りを実現
  • 72.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 72 72     Bisque  WorkstaGon  EdiGon(PC版)   かくして、単一ソースツリーから3つのエディションが誕生 Bisque Bisque  Datacenter  EdiGon(サーバー版)
  • 73.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 73 ・Windows  Phone  8   ・iOS   ・Android   対応プラットフォーム(2014/09  現在) スマートフォン PC系 ・Windows  Vista以降   ・Windows  RT   ・Solaris  8以降   ・Linux  (kernel  2.6.32以降)   ・MacOS  10.5以降   ・OpenVMS  (VAXは無理)   ・*BSD  
  • 74.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 74 現段階で独自に実装した物   サウンドエンジン(バックエンドはOpenAL、OpenSL、Xudio2)   スレッド、I/O、低レベルソケット、高レベルネットワーク   アーカイブ   難読化アルゴリズム  x  4   簡易高速圧縮アルゴリズム   GPS、ジャイロ等のスマホ特有機能の抽象化  
  • 75.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 75 まとめ   設計しよう、あたなは世界を作るのです  
  • 76.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 76 私達の作る社内フレームワーク「Bisque」と いう名前に込めた意味として、 お皿・陶磁器・基盤そのもの があります。 お皿がどんなによく出来ていようとも、 綺麗にできていても…、
  • 77.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 77 美味しい料理が乗らなければ、 お客さまに召し上がっていただけない。 つまり、面白い・楽しいゲームが 作れてはじめて評価される
  • 78.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 78 これからも 美味しい料理が作れるように、 魅力的な外部技術を取り入れ、 弊社独自の技術を組み合わせ、 より柔軟で強固な基盤開発を実施したい
  • 79.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 79 まとめ •  フレームワーク開発と事例例紹介 –  Bisque開発の経緯と設計 –  クロスプラットフォーム対応 –  設計事例例 •  基盤機能開発と事例例紹介 –  抽象化設計 –  難読化アルゴリズムについて –  運⽤用の柔軟性を実現するアーカイブ実装 –  対応プラットフォーム
  • 80.
    Copyright Drecom Co.,Ltd. All Rights Reserved. 80 ご清聴ありがとうございました