問題タブ [real-time-strategy]
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.
artificial-intelligence - RTS AI: どこから始めますか?
RTS AI をいじり始めたいのですが、作業するのに適した環境 (既に作成されているゲームなど) を見つけるのに苦労しています。Spring RTS と Bos Wars を見てきましたが、単純な例を作成するのに役立たないようです。
私は自分自身のゲーム環境を書くことに完全に反対しているわけではありません。それには時間がかかります。自分のゲームをプログラミングせずに足を濡らす方法について誰か提案がありますか?
.net - 確定的浮動小数点と .NET
.NET アプリケーション (C# など) での浮動小数点計算が常に同じビット単位の正確な結果を生成することを保証するにはどうすればよいですか? 特に、異なるバージョンの .NET を使用し、異なるプラットフォーム (x86 と x86_64) で実行している場合。浮動小数点演算の不正確さは問題ではありません。
Java では、strictfp を使用します。C/C++ やその他の低レベル言語では、この問題は基本的に FPU/SSE 制御レジスタにアクセスすることで解決されますが、.NET ではおそらく不可能です。
FPU 制御レジスタを制御しても、.NET の JIT は異なるプラットフォームで異なるコードを生成します。この場合、ホットスポットのようなものはさらに悪いでしょう...
なぜそれが必要なのですか?高速浮動小数点演算とロック ステップ シミュレーションに大きく依存するリアルタイム ストラテジー (RTS) ゲームを作成することを考えています。基本的に、ネットワーク経由でユーザー入力のみを送信します。これは、ユーザー入力を保存することでリプレイを実装する他のゲームにも当てはまります。
オプションではありません:
- 小数(遅すぎる)
- 固定小数点値 (sqrt、sin、cos、tan、atan を使用すると遅すぎて扱いにくい...)
- FPS のようにネットワーク全体で状態を更新する: 数百または数千のユニットの位置情報を送信することはオプションではありません
何か案は?
python - Pythonで2D RTS?
私はパイソンの大ファンです。最近、RTS エンジンや、このエンジンに基づいた単純な RTS ゲームを作成するというアイデアが浮かびました。考えなければならないことがいくつかありますが、これらについてアドバイスをいただけないでしょうか。
- パフォーマンス。ほとんどのゲームは C++ で書かれています。ゲームエンジンとしてはpythonが遅すぎませんか?私は2Dだけを目指していますが、それでも厳しいかもしれません。
- グラフィック。Python 用の優れたグラフィックス ライブラリはありますか? SDL/OpenGL バインディング、または Python により適したものでしょうか?
- ゲームエンジン。Python で書かれた既存の RTS エンジンを知っていますか?
- RTS の開発に役立つ可能性のある Python 用のツール/ライブラリ
前もって感謝します!
javascript - ブラウザでのマルチプレイヤー RTS
だから私は人々がブラウザーで小規模な rts ゲームをしているのを見たことがあります。私は js+html5 を使用して小規模な 1 人用ゲームを作成したので、基本は理解しています。この種のプロジェクトを開始するには、どのリソースを読むのが最適ですか?
python - お互いを見つけている2つのスプライト
こんにちは、StackOverflowです。おそらく、私のpygameプログラム「TableWars」でのユニットのスポーンの問題から私を覚えているでしょう。ゲームの範囲を、ターン制のゲームではなく、リアルタイム戦略に変更することにしました。私はゲームをトップのFlashゲーム「AgeofWar」に沿ってプレイしたいと思っています。スポーンユニット、ゲームのHUD、さらには基本ヘルスなど、ほとんどすべてがゲームで機能します。残念ながら、ユニットが敵や敵の基地を攻撃する能力を実装する方法を理解できないようです。ユニット自体で行われている概念は次のとおりです。
- ユニットはチームのベースの周りのキーを押すとスポーンします:クラス
K_1
からスプライトをスポーンしますRed_Infantry
- ユニットは、スポーンされると
Group
クラスに追加されます。Group
チームごとに1つずつ、合計2つあります。 - ユニットは、敵の基地に近い地点に到達するまで、
move_ip
コールを介して移動し、そこで停止します。def update
これが私がさまざまなユニットのために戦闘を行う方法です:
- ユニットは、攻撃範囲内の敵を見つけるたびに停止します。ユニットが異なれば攻撃範囲も異なります
- その後、ユニットは1秒間隔で攻撃します。
- ユニットが敵ユニットの体力を0に下げることに成功した場合、敵は死亡し、他のユニットは続行する可能性があります
- このサイクルは、ユニットが敵の基地に到達するまで繰り返され、敵の基地に1秒間隔で攻撃します。ユニットの1つは、ベースに通常の3倍のダメージを与えることができます。
これが私のコードのサンプルで、Red_Infantry
クラスを示しています。
メインループには、各ユニットをスポーンする機能のみが含まれています。