タイトルの通り、2Dプラットフォーマーエンジンのデザインを肉付け中です。まだ設計段階ですが、レンダラーに問題が発生しないか心配で、気になるなら避けたいです。
Uint16
基本ライブラリに SDL を使用しています。ゲームは、タイルを保持するために単一の大きな配列を使用するように設定されます。これらは、衝突処理からグラフィック ルーチンまで、エンジンのすべての部分で使用される「タイル定義」の 2 番目の配列にインデックスを付けます。これは、私の最大の関心事です。
グラフィック エンジンは、解像度 640x480、タイル 32x32 で動作するように設計されています。フレームごとにレイヤーごとに 21x16 のタイルが描画され (スクロール時に表示される余分なタイルを処理するため)、最大 4 つのレイヤーを描画できます。レイヤーは単に個別のタイル配列ですが、タイル定義配列は 4 つのレイヤーすべてに共通です。
私が心配しているのは、このエンジンで透明度とアニメーション化されたタイルを利用できるようにしたいということです。また、デザインにあまり慣れていないので、現在のソリューションが非効率的すぎるのではないかと心配しています。うまくできた。
私のターゲット FPS はフラットな 60 フレーム/秒で、4 つのレイヤーすべてが描画されているため、毎秒 21x16x4x60 = 80,640 の個別の 32x32 ピクセルのタイルを描画する必要があることに加えて、スプライトには多くの奇数サイズのブリットが必要です。これは少し過剰に思えます。それで、私が持っているタイルマップ設定をレンダリングするためのより良い方法はありますか? ハードウェア アクセラレーションを使用してタイルマップを描画する可能性を検討しています。パフォーマンスが大幅に向上するのであれば。また、少し古いコンピューターでもこのゲームをうまく実行できることを願っています。
求めすぎるのであれば、エンジンの能力を下げることも論外ではないと思います。