チームの構成は、アーティスト1人、プログラマ1人です。
アイデアからプロトタイプまでの時間-1週間
アートデータ-288メガバイト、1400ファイル
コードエンジンとゲーム(サードパーティライブラリなし)〜50024行のコード、485ファイル
ゲームコード-4338行-12ファイル
AppStoreのapploadのディストリビューションの最終サイズは22mbです
AppStore 25mbの最終サイズ
コードはblog.schuager.com/2009/01/line-count-in-visual-studio.htmlを使用して測定されました (エンジンプロジェクトとゲームプロジェクトのみがソリューションに残っていました)
先史時代
パート1
パート2
仕事の組織
プロジェクト管理は、GoogleサイトとGoogleドキュメントを使用してオンラインで編成されました。

プロジェクトのホームページ。 左側には、プロジェクトとその内部ページのリストがあります。

たとえば、テンプレートがファイルストレージであるページを作成できます。
制限は、ファイルごとに20 mb、サイト全体で100 mbです。
ビルドのサイズが20メガバイトを超えると、Google Docsを使用してビルドを手探りし始めました

テンプレートをあらゆる種類の課題トラッカーとするページを作成できます
長所:
- 無料で
- サポート時間は不要
- オンライン
短所:
- Googleサイトの機能にフォーラムがない
- ファイルサイズとサイトサイズの制限-アカウントごとに複数のサイトを作成することを禁止する人はいません
開発
開発は週末に行われ(週末の合計で最大10時間)、時には午後7時以降の稼働日(2〜3時間)に行われました。
プロトタイプ段階からリリースまでのゲームプレイはほとんど変わりませんでした。 スポーンのバランス調整に多くの時間が費やされ、その結果、いわゆるスポーンウェーブ、落下ヘルメット、矢が追加されました。 当初、ゲームは有料版として計画されていましたが、ある時点で無料版を試してみることにしました。 将来の有料版の機能の計画は、非常に慎重に分類、検討、検討されています。 起動時間とメモリの強力な最適化(詳細は以下)。
Xcode 4への切り替えには2日かかります。 個人的には、xCode 3と比較しても、xCode 4環境はあまり見えませんでした(手作業でコンパイルおよび前処理する能力の欠如、ツールバーをカスタマイズする能力の欠如、Build for Archiveの継続的な再構築による不具合、ブレーキなど)。 私はプロファイラーの使用が本当に好きでした-私の意見では、これは私が今まで使用したすべてのプロファイラーの中で最も便利です(Windowsを含む)。 これからは、プロファイルを作成することを好みます。
資産
アートはもともとベクターで作成され、pngにエクスポートされました。 3番目のiPadがリリースされ、別の非アクティブな解像度が追加されたときに、変換が迅速かつ簡単になることを願っています。 現在、1024x768とiphone(480x320)、iphone retina(960x640)の特別なスクリプトの両方にエクスポートされています。
合計:
- iPadの基本的なアセットセット
- 各プラットフォームには独自の資産セットがあります(スクリプトのルールに従って生成されます)
- 蒸留スクリプトが同じ.pngファイルを生成した場合、パックファイルの生成段階で考慮されるため、これは問題ではありません。
音
.oggのサウンド。 一部のサウンドはストリーミングで再生され、OPENALバッファーの数と長さは構成を介して設定されます。 ストリーミングオーディオの再生はWindowsで完全にデバッグされ、変更なしでiPhoneで機能しました。
現在、デコードが比較的遅いため、vorbis-oggの代替を検討しています。 IMA4に注目します(鉄レベルでサポートされています)。
おそらく、IMA4のサウンドは、パックのコンパイル段階で変換されます(以下で説明します)。
ゲームリソース
iOSビルドでは、すべてのデータがパックファイルに入れられました。
パックファイルは、追加の最適化を使用して、目的のプラットフォーム用にコンパイルされたアセットです。
- すべてが白のテクスチャのアルファをチェックして削除します
- サイズがファイルサイズをNNパーセント以上縮小する場合のデータ圧縮
- ファイルインスタンスの検出
- スクリプトと構成ファイルのプリコンパイルとストライピング
- Defaul.pngおよびアイコン###を含むすべてのpngリソースでOptiPngを起動します。
- いくつかの(大きな)pngファイルを独自の形式に変換します(pngがzlib(deflate)を使用しているため、解凍には非常に高速ではありません(詳細を参照)
これが必要な理由:
- プロジェクトには常に1つのdata0000.pakファイルのみがあります-各アセットをXcodeプロジェクトに追加する必要がなくなり、この段階でエラーが完全になくなります
- ダウンロード速度-Iphone 4では10秒から5秒、Windowsでは5秒から1秒未満
- サイズ-パック内のすべてのデータは圧縮および最適化されています
パックファイルの実装の機能
これはzipファイルではなく、単純な独自形式(多くの場合、バージョンごとに変更されます)です。
なぜzipファイルではありません-iPhoneでzlibを使用して解凍しても利点はありません-非圧縮データのファイルからのダウンロード時間は、解凍よりも高速です。
私が試したオプション:
- zlib-優れた圧縮で非常に遅い(15msでテストオウムを解凍)
- スナッピーは高速ですが、圧縮はそれほど強くありません(テストオウムを5ミリ秒で解凍します)(Windowsバージョンは、整列していないデータにアクセスすることがあります-理解する時間はあまりありませんでした)
- flastlz-高速で適切な圧縮( 7msでテストオウムを解凍) -www.fastlz.org
AppStoreからアプリケーションがパック形式でダウンロードされることを忘れないでください。したがって、圧縮レベルはそれほど重要ではありません。
fastlzバンドルとzip(appstore)の上に私に合っていました。 アプリストアのZipは、パックをさらに4 MB圧縮します。 C 19〜15メガバイト。
将来的には、スナッピーを再チェックする計画があります。
プレリリースの日に、JPGはテクスチャを格納するための代替形式としても改訂されましたが、すべてではなく、24ビットのみで、JPGの後に最小エラーで異なるもののみです(この条件を満たす最小の5つの大きなテクスチャが見つかりました)。 これは、パックファイルのコンパイルの段階で追加の手順になります。
パックのアセンブリには約15秒かかり、iPhone用のコンパイルの前にのみ実行されます(WindowsマシンからRSyncを取得します)
AppStoreのアプリケーションのサイズには20 MBの制限がありました(3gを介したダウンロードの制限)。
データがパックされておらず、好きでも嫌でも、常に20を超えています。製品に支払いがあった場合、HDではなくHDに確実に分割されます。
私たちのケース(無料のアプリケーション)では、共有しないことにしました。
広告
広告はiAdおよびAdMobからアプリケーションに組み込まれています-ゲームプレイでは、バナーは表示されません(表示されません)
最初のアプリケーションの最新バージョンでは、広告ロジックが修正されました。 最終バージョンは次のように機能します。何らかの理由でiAdが失敗した場合(レポートによると、これは米国、ドイツ、フランス以外のケースのほぼ90%で発生します)、adMobは接続されています。 この変更の結果、adMobが獲得した金額は大幅に増加しました。
結果
アプリケーションはAppStoreからダウンロードでき、無料です(正直に無料)。 バナーのクリックに対してのみお金をもたらします。 このアプリケーションは、iPhone、iPhone4(Retina)、およびiPadに共通です。
便利なソフトウェア
- AppResigner-AppStore DistributionプロビジョニングからDevプロビジョニングに再ホストできるプログラム。これにより、AppStoreに送信するバイナリをテストできます(jailデバイスはAppStoreディストリビューションでもテストできます)
- MacOS用svn用SvnXクライアント
- VisualSVN-Windows用UIを備えたサーバー
- swRSyncServer-Windows用のrsync(WindowsとMacOS間のパックの同期に使用)
どちらが良いですか:
- 何も転がらなかった
- 品質に非常に満足
- 好きなゲーム
悪い点:
- 20 MBには投資しません
- 延期された-約6ヶ月-先月は非常に困難でした。
次は何ですか:
- Android(ほとんどの場合、新年まで)
- 夜間ビルド用の完全なパイプラインのセットアップ