問題タブ [game-engine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4568 参照

open-source - Ogre3D エンジン ベースのオープン ソース ゲーム?

3D レンダリングに Ogre3d を使用してゲームのプロトタイプを作成する予定です。人々がそれをどのように使用しているかを見たかった。注目に値する Ogre3d ベースのオープン ソース エンジンを知っている人はいますか?

sourceforge で検索しようとしましたが、良いものは何もありませんでした。

ありがとう

0 投票する
3 に答える
838 参照

c# - C++ で記述して C# に公開するか、C# で直接記述しますか?

独自の 2D (および場合によっては 3D) ゲーム エンジンを作成する前に、少し調査を行っています。C# と XNA を使用する前にエンジンを作成しましたが、今回は opengl などを使用して C++ で新しいエンジンを作成することにより、クロスプラットフォームに行きたいと考えています。

しかし...私はまだC#からの高速な反復時間を必要とし、そこでゲームエンジンにアクセスできます.

したがって、ここにはいくつかのオプションがあります。

  1. C++ でエンジンと CLI ラッパーを作成する
  2. すべてを C# で直接記述します。C++ は使用しません。
  3. C++ で記述し、Mono を使用して C# コード / アセンブリをエンジンに読み込みます。
  4. C# なし
  5. ...おそらく私がまだ考えていなかったもの

カリング、シーングラフ、マトリックス計算、パーティクル システムなどにはスピードが必要だと思います。

長所と短所は何ですか?何を指示してるんですか?

0 投票する
2 に答える
1890 参照

artificial-intelligence - オープンソースの都市型ドライビングシミュレーター

自動タクシードライバーを構築するために必要なオープンソースの都市型ドライビングシミュレーター。夢の機能セットには次のものが含まれます。

これらの機能のほとんどを備えたTORCSを見てみましたが、これは競馬場をシミュレートするだけです。どんな提案でも大歓迎です。

0 投票する
1 に答える
528 参照

game-engine - 2Dプラットフォーマー/スクローラーのスポーン情報を保存する

サイドスクローラーのスポーン情報を保存するのに最適な方法を探しています。私が書いているゲームはスーパーマリオブラザーズと非常によく似ています。私が実装しようとしているのは、レベルを移動するときに、敵が特定の場所に出現する必要があるということです。この情報をレベルに保存したいのですが、敵をランダムにスポーンしたくありません。プレイヤーが特定の場所(マリオなど)に到達したときに、スポーンされたオブジェクトを保存および取得するための高レベルの戦略を探しています。グーグルの周りからまともなチュートリアルや提案を見つけることができませんでした。

レベルはタイルベースであるため、マップはTile[][]です。現在、各タイルは16x16ピクセルです。

これまでに見た唯一の良い提案は、スポーン情報を2D配列に格納することです。ここで、最初の次元はxで、2番目の次元はyで、タイルスペースで指定されます。その実装で私が抱えている問題は、プレーヤーが(160、0)と言っている場合、特定の敵をスポーンしたいということです。ただし、次にレベルがリセットされたときに、プレイヤーが(160、5)にいる場合は、同じ敵をスポーンしたいと思います。したがって、その実装を機能させるには、特定のy位置をスキャンする必要があります。

より効率的なストレージの機械化を探しています。正しいスポーンをすばやく取得でき、スポーン位置を格納するメモリを無駄にしないものが必要です。

このためのゲームの一般的な戦略はありますか?

0 投票する
2 に答える
6321 参照

graphics - コンピュータ グラフィックスにおける UVW マッピングと UV マッピングの違いは何ですか?

テクスチャの操作において、「UVW マッピング」は「UV マッピング」と同じ意味ですか?
もしそうなら、なぜ2つの用語があるのですか?「W」とは何ですか? そうでない場合、それらの違いは何ですか?

[ウィキペディアは現在、この質問を明らかにしていません: http://en.wikipedia.org/wiki/Talk:UVW_mapping ]

0 投票する
4 に答える
6134 参照

3d - 使いやすい3Dゲームエンジンが必要

とても使いやすい3Dゲームエンジンを探しています。ゲームのロジックだけをプログラムしたいので、グラフィックスに関心を持つ必要はありません。モデルをダウンロードしてゲームに入れ、ロジックのプログラミングを開始できるようにしたいだけです。Pythonのようなスクリプト言語でプログラミングしたいのですが。

私はただ学習目的でゲームを作りたいだけで、誰にも見せたくない(私はまだ学生です)。私が見たエンジンのほとんどは、急な学習曲線を持っていました。

私に適した3Dエンジンについて教えてください。

ありがとう。

0 投票する
2 に答える
215 参照

game-engine - ゲーム エンジンのフレーム数を (垂直同期または一般的なスロットリングによって) 制限すると、オーディオおよび入力サブシステムにも遅延が発生しますか?

フレーム/秒の制限を課すことは、遅延とパフォーマンスの点で理想的ではないという事実を考えていました。モニターはまだ何かをより早く表示する可能性があるためです (主に安定性のための垂直同期がないことを前提としています)。

ただし、1 秒あたりのフレーム数がエンジン自体のグローバル ループも管理していると仮定すると (ほぼすべての 3D アクセラレーション アプリケーションの場合)、プロセスがオーディオ サブシステム (または入力デバイス) に影響を与える可能性があることに気付きました。

オペレーティング システムのオーディオ カード/オーディオ デバイスには、関連する可能性のある "ヘルツ" の概念がありますか? アプリケーションのグローバル ループが高速になればなるほど、オーディオ サブシステムのレイテンシが改善されると思いますか?

0 投票する
1 に答える
3744 参照

c++ - Luaを統合してゲームエンジンでGameEntitiesを構築しますか?

私は本当にLuaスクリプトをゲームエンジンに追加したいと思っています。私はLuaを使用していて、luabindを使用してC ++にバインドしていますが、Luaを使用してゲームエンティティを構築する方法を設計するための支援が必要です。

エンジン情報:

コンポーネント指向、基本的にそれぞれはデルタT間隔で更新されるGameEntityリストです。components基本的Game Scenesに、ゲームエンティティのコレクションで構成されています。

だから、ここにジレンマがあります:

GameEntityとそのコンポーネントを定義するためのこのLuaファイルがあるとしましょう。

ご覧のとおり、このGameEntityは、「compHealth」と「」の2つのコンポーネントで定義されていcompAnimatedSpriteます。これらの2つのまったく異なるコンポーネントには、まったく異なる初期化パラメーターが必要です。整数と浮動小数点数(合計と再生)を必要とするヘルス、および反対側では、スプライトシート名を必要とするアニメーション、およびすべてのアニメーション(フレーム、期間など)を定義するためのヘルス。

Luaからの初期化を容易にするためにLuaバインディングを必要とするすべてのコンポーネントで使用できる仮想初期化メソッドを使用して、ある種の抽象クラスを作成したいのですが、仮想クラスには1つがないため、難しいようです。仮想初期化メソッド。これは、すべてのコンポーネント初期化子(またはそれらのほとんど)が異なる初期化パラメーターを必要とするためです(ヘルスコンポーネントは、アニメーションスプライトコンポーネントまたはAIコンポーネントとは異なる初期化を必要とします)。

このコンポーネントのコンストラクターへのLuaバインディングを簡単にするために何を提案しますか?またはどのようにそれをしますか?

PS:このプロジェクトにはC++を使用する必要があります。

0 投票する
4 に答える
7701 参照

c++ - Is C still being widely used in game engines?

The title is a bit of a misnomer, what I mean really is "C with classes".

Let me explain, recently I bought the book ShaderX7 which came with a lite (and old) copy of the Unigine engine for one of the articles about shadow mapping techniques.

I was dabbling through the code when I realized that, while the author was using C++ and inheritance and all the C++ goodness, most if not all the method content was essentially C-style code; for example:

I am not saying this is bad, it does the job and that's what matters but I'm more used to C++ style constructs, with std::string, vectors etc... and I make big use of the Boost libraries; so this kind of style come as a bit of a surprise to me.

Is it really better/faster to use this kind of code than to go the generic, OO way ?

Did I fall into the "too much abstraction" trap ?

Edit: corrected method name to make it clear what it is doing.

0 投票する
4 に答える
5768 参照

oop - コンポーネント ベースのゲーム エンジン設計におけるイベント処理

この質問またはそのバリエーションがたくさん出回っていると思うので、私が言っていることが重複していて、答えが他の場所にある場合は、お知らせください.

私はゲーム エンジンの設計を研究しており、コンポーネント ベースのエンティティ モデルに出会いました。有望に聞こえますが、私はまだその実装に取り​​組んでいます。

エンジンがいくつかの「サブシステム」で構成され、レンダリング、サウンド、ヘルス、AI などの側面を管理するシステムを検討しています。各サブシステムには、ヘルスのヘルス コンポーネントのようなコンポーネント タイプが関連付けられています。サブシステム。NPC、ドア、何らかの視覚効果、プレイヤーなどの「エンティティ」は、1 つまたは複数のコンポーネントで構成されており、それらを組み合わせることでエンティティにその機能を提供します。

情報伝達の 4 つの主なチャネルを特定しました。コンポーネントは現在のエンティティ内のすべてのコンポーネントにブロードキャストでき、コンポーネントはそのサブシステムにブロードキャストでき、サブシステムはそのコンポーネントにブロードキャストでき、サブシステムは他のサブシステムにブロードキャストできます。

たとえば、ユーザーがキャラクターを動かしたい場合は、キーを押します。このキーの押下は、入力サブシステムによって取得され、イベントがブロードキャストされ、プレーヤー サブシステムによって取得されます。次に、プレーヤー サブシステムは、このイベントをすべてのプレーヤー コンポーネント (およびそれらのコンポーネントが構成するエンティティ) に送信します。これらのプレーヤー コンポーネントは、独自のエンティティの位置コンポーネントと通信して先に進み、移動します。

キーを押すためのこれらすべては少し複雑に思えますが、私は確かにこのアーキテクチャの改善にオープンです。とにかく、私の主な質問はまだ続きます。

イベント自体については、訪問者パターンのようにイベントがどこで振る舞うかを考えました。私が望んでいることの重要性は、イベントがサポートしていないコンポーネントに遭遇した場合 (移動イベントは AI や健康とは直接関係がないため)、そのコンポーネントを無視することです。イベントが後を追っているコンポーネントを見つけられなくても、それは問題ではありません。

訪問者パターンはほぼ機能します。ただし、コンポーネントのすべてのタイプ (つまり、visitHealthComponent、visitPositionComponent など) に関係がない場合でも、仮想関数が必要になります。これらの関数を空のままにしておくこともできます (そのため、これらのコンポーネントに遭遇した場合は無視されます) が、コンポーネントを追加するたびに別の関数を追加する必要があります。

私の希望は、必ずしも他の場所に何かを追加することなくコンポーネントを追加し、他のものを台無しにすることなくイベントを追加できることでした.

だから、私の2つの質問:

  1. 効率や柔軟性などの点で、私の設計で可能な改善点はありますか?
  2. イベントを処理する最適な方法は何でしょうか?