古いアルティマ 6&7 のようなタイル ベースのゲームや、パズル海賊についての記事を探しています。具体的には:
- マップ上のオブジェクトを追跡する方法。他のキャラクターや木などのオブジェクト、またはキャラクターが動かすことができるもの。
- キャラクターの背後にある AI。画面外にあるマップ上のキャラクターのキャラクターの動作をゲームがどのように処理するか。特に非常に大きなマップと多数のキャラクターの場合。
古いアルティマ 6&7 のようなタイル ベースのゲームや、パズル海賊についての記事を探しています。具体的には:
いくつかのゲームを書いたときに、Amit のゲーム開発ページをチェックしたことを覚えています。彼はあなたが望むもののほとんどを持っているタイルに関する素晴らしいサブセクションを持っています.
Game Developer マガジンのバックナンバーを調べて、あなたが求めていることを詳細に説明しているものがあるかどうかを確認してください。
(1) 各タイルに複数のオブジェクトを含めることができるタイルベースのマップを処理する最も簡単な方法は、各タイルを表す構造体の大きな多次元配列を用意することです。この構造体には、そのタイル内のすべてのオブジェクトを表すリンク リストの先頭へのポインターが含まれています。これは非常にメモリ効率が高く、特定のタイル内のすべてのものをすばやく見つけながら、他の軸 (所有者、割り当てアリーナなど) に沿ってそれらを列挙することもできます。
RogueBasin は Rogue のようなゲーム (Rogue、NetHack など) に専念しています。これらのゲームはすべて単純な正方形のグリッドに基づいていました。このサイトには、そのようなゲームの開発に関する広範なセクションがあります: http://roguebasin.roguelikedevelopment.org/index.php?title=Articles
あなたが説明したようなゲームを構築するために使用できる提案とコードの両方がそこにあります。結局のところ、Rogue/Larn/NetHack などの唯一の違いは. Diablo または Ultima シリーズは、シンプルなテキスト文字を使用して、マップとゲームプレイとアイソメトリック スプライトを表現しています。
特に、ユーザーが携帯している松明やランタンによって照らされた面積の計算、マップを格納するためのデータ構造、マップの自動生成のためのアルゴリズム、および既に作成されたさまざまなゲームがどのように対処することを選択したかについての多くのメモについての情報が見つかります。これらの問題。
ガマスートラをチェックしてください。あらゆる種類のゲーム開発に関する記事がたくさんあります。
マップは値の配列になります。個々のパーツに分割できます。プレイヤーの範囲内のパーツのみがロードされ、これらのパーツ内のオブジェクトと npc がアクティブになります。
古いハードウェアはメモリと CPU が非常に限られていたため、これらのゲームはマップの一部をロードして処理することしかできませんでした。