- ユーザー間で非同期のやり取りが発生する
- マルチプラットフォーム
- 同一ソースでAndroidとiOSに対応
- テスト環境はFlashにも対応
- ngCore上にゲームロジック/JavaScript
- サーバ/Pach+FCGI上に認証とか結果の書き込みをMobageサーバに
- ngCoreのクライアント
- アクションシーン
- サーバ側で作ったデータの再生
- ゲームサーバ
- パラメーター保持、変化
- アイテム管理
- ミッションのスロットの目の決定など
- ずる防止をするためサーバ側でロジックがある
- node.jsで書かれたビルドサーバでビルドを行う。
- ファイルの結合とか
- CJSライクなモジュール
- クラスを作るsubclass関数
- ゲームはmain関数から始まる
- Core.UpdateEmitter でゲームループを回す
- シンプルなクラス群
- Sceneクラスを継承してシームを作っていく
- Sceneを遷移してゲームの遷移が行われる
- サーバ側からjsonのジョブスタックを受け取る
- ミッション結果なども配列で返ってくる
- 知らないジョブが来たら無視が基本方針
- クライアントは順番に再生していくだけ
- 新しいミッションも簡単に追加できる
- サーバエラーがおきたらホーム画面に強制的に戻る
- DnLib
- ゲーム開発の共通ライブラリ
- ngGo
-
サンフランシスコ
-
日本
-
パキスタン
-
SKypeチャットが主なインフラ
-
git
- git flow
-
ドキュメントSphinx
- CommonJSドメインで作ったものを使用
- データ駆動で行えるように
- パラメーターチューニングのしやすさ
- デバッグメニュー
- サーバにデバッグ用画面がある
- Jasmineを使ってる
- 3D対応、HTML5対応
JavaScriptベースで
Google Gearsを使ってオフラインアプリケーションを作ったことがある。
- Google Gears終了 -> HTML5へ以降を推奨
- HTML5を中心にするようになった
- それほど実装は難しくない
- アプリケーションキャッシュを利用すればいい
- 静的なリソースをキャッシュすることができる機能
- ローカルキャッシュの利点
- IE以外のブラウザでは実装されてる
- リソースのリストを作成する
- Titanium Mobileのリファレンスはローカルキャッシュされてる
- window.applicationCacheにJavaScriptから操作できるアプリケーションキャッシュAPIがある。
- キャッシュマニフェストを更新しないとリロードで反映しない
- キャッシュ容量が限られている
- モバイルとかだと10MBぐらい
- 割りと面倒なもの
- デスクトップアプリとやりたい事はあんまり変わらない
- 基本はリッチクライアント+同期機能
- Web Storage
- Web SQL Database
- Indexed Database API
- File API
- ドメインごとに仮想的な空間
- セキュリティ的なものがあるため
かなり難しく面倒くさい
- フェールセーフ
- 更新の衝突
- 同期のタイミング
- ネットワーク状態、データの状態管理
- ローカルDBのスキーマ管理/サーバのスキーマと2つできてしまう
- ローカルDBのクオータ(5MBぐらい)
- 容量の限界がきたときにどうするか
- オフラインアプリケーションといっても読む/書くの2つがある
- 書く/同期的なアプリケーションはかなり面倒臭い
- 割り切ったほうがいい
Objective-Cで非同期処理のチェーンライブラリとか
ループの中でbind/unbindしてたので大量に追加されたときに重たかったのでliveメソッドに変更 bindはここの要素に付けるから、要素が多いと死ぬ。delegateとかliveはその枠の方にイベント一個張るだけだから軽くてすむ。
- ユーザが触れる範囲だけにイベントを付ける
- D&Dは複数のイベントから成り立つので複雑(down->move-up)
- UITableView
- 表示範囲+ぐらいのみを描画してる
- 再利用してる
- JavaScriptのテスト
- まだまだ未成熟
- 二種類
- JavaScriptのテスト
- JavaScriptだけなので比較的わかりやすい
- JavaScriptを含めたテスト
- UIとかも含むインテグレーションテスト
- JavaScriptのテスト
- インテグレーションテストは書くのが大変
- 動いてあることが保証できるので重要
- 後から追加修正とかも
- インテグレーションテストは遅い
- カピバラさん + Webkit
- Jasmineの方がアプリケーションテストは向いてる
- jasmine のspecをCUI環境で実行できる
- ココログ
- liblis
- AKB
- サイボウズLiveの
- MobSnap
- JavaScriptだけでアプリを作成できる
- Titanium Mobile のモジュール売買できる
- mobile market place
- それぞれのプラットフォームに合わせた形に変換する
- それぞれに合わせたUIはUXに
- タブバーの位置がAndroid/iPhoneで逆になったり
- 追加モジュールとサポートのみが有料
- 認定トレーニング