Aqualeadフレームワークの特徴


目次

1. 概要
2. 特徴
1. 少ないコードで高度な機能を
2. テスト済みのライブラリコードと組み込みデバッグ機能でバグを削減
3. データ駆動で簡単調整
3. 主な機能
1. いつでも自動ファイバで処理を中断
2. ゲームオブジェクトに動的に各種機能を追加
3. 柔軟なパラメータアクセス処理
4. 自動リソース読み込み、開放
5. 各種の組み込みデバッグ処理
6. スクリプトインターフェース内蔵
7. ツールによるメニュー作成
8. 簡易データベースでデータ管理も簡単
9. 存在を意識させない圧縮ファイル処理

第1章 概要

Aqualeadフレームワークとは、主に中小規模のゲームをターゲットとした簡単に高度なゲームを作る事が出来るゲームフレームワークです。 マルチプラットフォームであり、パソコンだけではなく、家庭用ゲーム機、ブラウザ上でも使用できます。 言語はC++を使用していますが、C言語の知識のみで十分使用が可能です。

第2章 特徴

1. 少ないコードで高度な機能を

Aqualeadフレームワークは高水準なゲームフレームワークで、ハードに近いところは完全に隠蔽されています。また、ゲームでよく使う処理はすでに組み込まれているため、少ないコードでゲームを作る事が出来ます。チュートリアルで使用している簡単なシューティングサンプルはたった100行で動作しています。

2. テスト済みのライブラリコードと組み込みデバッグ機能でバグを削減

Aqualeadフレームワークのほとんどのコードは自動テストが行われ、またメモリ破壊、メモリリーク等もチェック済みです。また、大量のアサートが設定されており、正しくない使用をするとアサートですぐに理由を表示して停止します。組み込みのデバッグメニューや、各種デバッグ機能、ログ出力機能などもありバグの発生もかなり抑える事が可能です。

3. データ駆動で簡単調整

Aqualeadフレームワークはデータ駆動をメインとしており、専用のツールで生成したデータを読み込むとコードを記述しなくてもかなりの部分を動かす事が可能になります。もちろん、プログラムコードだけで使用する事も可能ですが、データをメインにする事でコード量とバグを減らし、また起動したまま各種動作を変更できるため、調整が容易に行えます。

第3章 主な機能

Aqualeadフレームワークには一般的なゲームライブラリの機能は含まれていますが、その他に特徴的な機能がいろいろ存在します。

1. いつでも自動ファイバで処理を中断

マイクロスレッドとも呼ばれるファイバ機能が内蔵されており、しかも必要に応じて自動的に使用されます。これにより、いつでも処理を中断させる事ができ、更新処理を簡潔に記述できます。

2. ゲームオブジェクトに動的に各種機能を追加

コントローラと呼ばれる機能があり、これは動的にゲームオブジェクトに機能を追加します。これはデータから生成する事も出来、各種コントローラの組み合わせによりコードをほとんど書かなくてもゲームオブジェクトを動作させる事が出来ます。

3. 柔軟なパラメータアクセス処理

コントローラはプロパティという、ゲーム内のパラメータに動的にアクセスする機能を使用しているため、柔軟な運用が可能で、一般的にライブラリ化出来ないような機能もコントローラとして存在しています。

4. 自動リソース読み込み、開放

各種画像、サウンド等のデータ読み込みをあらかじめ自動的に行わせる事も出来ます。開放も自動で行われるため、リークの心配をする必要がありません。

5. 各種の組み込みデバッグ処理

多くのデバッグ機能が最初から組み込まれています。 代表的なもので、前述のプロパティにより各種ゲームオブジェクトのパラメータをいつでも参照、修正できるデバッグメニューや、 テクスチャやメッシュ等の各種リソースを、ツールから送る事でゲームを起動したまま差し替える事などがが出来ます。 これらはほとんど追加コードなしで動作します。

6. スクリプトインターフェース内蔵

スクリプトインターフェースも内蔵し、Lua,Squirrelが使用可能です。ゲームのほとんどをスクリプトのみで組む事も可能です。

7. ツールによるメニュー作成

メニュー関連もサポートされており、専用GUIツールで配置したり、Photoshopで作ったpsdをコンバートする事により、面倒なメニュー処理をほとんどコードの記述なしで作る事が出来ます。

8. 簡易データベースでデータ管理も簡単

高速、小メモリで動作する簡易データベース機能もあります。ゲームの各種パラメータをこれで管理する事により、デバッグメニューからのパラメータ修正なども行えます。 ツールで出力したヘッダーを使う事により、リリース時にはほぼ構造体直アクセスと変わらない速度を出す事もできます。

9. 存在を意識させない圧縮ファイル処理

AqualeadフレームワークにはLZSS圧縮をベースをとした独自の圧縮・解凍処理があり約半分への圧縮が可能です。

これは展開は自動で行われ、 個別のワークも使用しないためアプリケーション側では一切の追加コードは必要ありません。