ゲーム開発

プロおよび独立系ゲーム開発者向けのQ&A


3
完全な状態の更新よりも効率的にマルチプレイヤーゲームの状態を同期するにはどうすればよいですか?
私は以前に少しゲームネットワークコーディングを行いましたが、主にリアルタイムニーズのないゲームのTCPを使用しました。ネットワーク化されたマルチプレイヤーで2D Javaゲームに取り組んでいます。学習のために、私はこれを既存のネットワークAPIなしで自分で行いたいと思っています。 サーバーからクライアントに送信されるゲームの状態を効率的に表すにはどうすればよいですか?最も明白ですが、おそらく最も効率の悪い方法があります。これは、各プレーヤーの場所、アニメーションの状態などを使用してゲーム状態コンテキストオブジェクトを作成し、更新ごとにそれを各プレーヤーに送信することです。それを実装することはそれほど難しくはないように見えますが、おそらくリアルタイムの相互作用に近いものを達成するには大きすぎるでしょう(もちろん、これに関する私の経験は限られているため、私は正しくない可能性があります)。 状態の変化のみを送信するために以前に使用した確かな方法はありますか?パフォーマンスに十分な格差があっても、追加の作業に値するでしょうか?

1
背景のピクセルの色を反転させる方法
私は、JavaとjMonkeyEngineを使用してゲームとマップエディターを書いています。マップエディターでは、ワイヤーフレームの球でブラシを作成しました。私の問題は、どこでも見えるようにしたいので、このブラシの「背後」にあるピクセルの色を反転させたいです。フラグメントシェーダー(GLSL)でそれを実行したかったのですが、このピクセルの色を取得する方法がわかりません。

2
エンジン部品間の相互作用を実装する方法は?
ゲームエンジンパーツ間の情報交換の実装方法について質問したい。 エンジンは、ロジック、データ、UI、グラフィックの4つの部分に分かれています。初めに私は旗を通してこの交換をしました。たとえば、新しいオブジェクトがデータに追加された場合、isNewオブジェクトのクラスのフラグはとして設定されtrueます。その後、エンジンのグラフィックス部分がこのフラグをチェックし、オブジェクトをゲームの世界に追加します。 ただし、このアプローチでは、さまざまな種類のオブジェクトのすべてのフラグを処理するために、多くのコードを記述する必要がありました。 イベントシステムを使用することを考えましたが、これが適切なソリューションになるかどうかを知るのに十分な経験がありません。 イベントシステムが唯一の適切なアプローチですか、それとも別のものを使用する必要がありますか? それが問題なら、私はグラフィックスエンジンとしてOgreを使用しています。
10 c++  architecture 

2
典型的なC64ゲームの画面を正確に構成するものは何ですか?
私はBASICを超えたC64ゲーム開発の基本を理解しようとしています。非常に基本的ですが、重要な何かについていくつかのアドバイスを使用できます。実際に画面に表示されるものは何ですか、それをどのように描画するのですか? カタキス/デナリスを見てみましょう: 画面には少なくとも9つの異なるものが表示されます。 さまざまなフォントのスコアバー 船自体 船に取り付けられた衛星、取り外し可能 二次武器発射体 主な武器の発射体 移動するオブジェクト(敵の船になることもあります) ステータスバー。船の画像、命の数、3つのセクションを表示 主要な武器チャージバーは、最後まで満たすことができます バックグラウンドでスクロールするスターフィールド (画面には番号が付いていません)背景の一部である岩や金属壁などの固体オブジェクト C64は水平走査線あたり8つのスプライトしかサポートしないので、画面の中央にあるすべてがスプライトになるとは思いませんか?(スプライトを使用してハードウェアの衝突検出を取得できるため)衝突が必要なものはすべてスプライトであると思いますが、それでも8つのスプライトの制限にすぐに達しました。また、私の武器は複数の発射体よりもはるかに多く発砲する可能性があります。私の船、衛星、および6つの弾丸は、すでに8つのスプライトが並んでいます(ビデオの約50秒を見てください)。 また、このようなゲームはどのグラフィックモードを使用しますか?プログラミングハンドブックには、基本的に画面メモリを直接変更するビットマップモードがリストされています。これは通常使用するモードですか?スプライト以外のすべての要素を一緒に構成して画面に表示するにはどうすればよいですか? スコアとステータスバーの多くの項目は静的です( "Area:01"または "frame")。したがって、レベルが開始したときに一度だけ入力することになると思います。更新が必要なもの-スコア、下部の充電バー-は、画面のメモリを黒で埋め、フレームごとに新しいスコアを描画することによって更新されますか? または、フレームごとに画面全体を描画する必要がありますか?

5
Android用の無料のオープンソース3Dエンジンはありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 Android用の無料で無制限のオープンソース3Dエンジンはありますか?NDKの直接の薄いレイヤーとは何か? UnityとShiva 3Dの2つのエンジンしか見つかりませんでした。しかし、フリーやオープンソースのものはありません。

4
ドメイン駆動設計はゲームに適していますか?
ドメインモデルについて読んだところですが、データのみを保持するクラス(ビヘイビア/メソッドが少ない)を持つゲームを開発して以来、それは私を啓蒙しました。これらのクラスを処理する仕事をマネージャーに割り当てました...そして今私のマネージャーは神のオブジェクトのように見えます。ロジックを処理することになっている私のゲームオブジェクトは、貧血ドメインモデルです。 私の現在のデザインパターンはシングルトンであり、これを実現するためにいくつかの再コーディングを行いたいと思います。(今のところ)ゲームでDDDを見たことがありませんが、これは良いアプローチですか?私はただの初心者プログラマーです(ゲーム開発者に傾倒しています)ので、ゲームを再設計するには肥大化する前に、優れたアーキテクチャーについてもっと学びたいです。

1
opengl 3とopengl 4の違い
ゲームプログラミングを始めたばかりで、openglの学習を開始したいと思っています。私は非常に優れたチュートリアルを最初から見つけてopengl 3を使い始めましたが、openGL 3とopenGl 4の間に大きな違いがあるかどうか疑問に思っています。 openGL 3からopenGL 4に移動できますか?
10 opengl 

3
衝突が発生したときにbox2dボディを削除するにはどうすればよいですか?
私はまだjavaとandroidプログラミングの初心者であり、衝突が発生したときにオブジェクトを削除するのに多くの問題を抱えています。私はWebを見回して、衝突検出(接触リスナー)中にBOX2Dボディの削除を処理してはならず、オブジェクトをarraylistに追加し、ボディのユーザーデータセクションで変数を設定して削除するかどうか、および処理しないようにしました更新ハンドラーの削除アクション。だから私はこれをしました:最初に私は2つのArrayListsを顔と体に1つ定義します: ArrayList<Sprite> myFaces = new ArrayList<Sprite>(); ArrayList<Body> myBodies = new ArrayList<Body>(); 次に、面を作成し、その面をその本体に接続するとき、次のようにそれらをArrayListに追加します。 face = new AnimatedSprite(pX, pY, pWidth, pHeight, this.mBoxFaceTextureRegion); Body BoxBody = PhysicsFactory.createBoxBody(mPhysicsWorld, face, BodyType.DynamicBody, objectFixtureDef); mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(face, BoxBody, true, true)); myFaces.add(face); myBodies.add(BoxBody); ここで、次のようにonloadsceneに連絡先リスナーと更新ハン​​ドラを追加します。 this.mPhysicsWorld.setContactListener(new ContactListener() { private AnimatedSprite face2; @Override public void beginContact(final Contact pContact) { } @Override …

2
古いゲームのデータ構造
NESのスーパーマリオブラザーズやSNESのスーパーマリオワールドのような古いゲームをプログラミングするときに使用されるデータ構造に興味があります。私の理解は、この時代のゲームは組み立てで書かれたということです。プログラマーはデータ構造を定義/使用しましたか? 例:コインのグループが画面に表示されたら、どのように保存されますか?プログラマーは配列だけを使用しましたか?または、おそらくリンクリストがありましたか? 乾杯! 編集:私はさまざまなアプローチに興味があります...普遍的なアプローチである必要はありません。 編集2:私のゲームのいくつかでは、コレクションに対して(潜在的に悪い)アプローチを使用しており、古いゲームのいずれかが同様のアプローチを使用したかどうかを知りたいです。私は次のことをしたいです: // statically allocated arrays (max number of coins is 4) int coinsXs[4] = {0, 0, 0, 0}; int coinsYs[4] = {0, 0, 0, 0}; // bitset that keeps track of which coins are active int coinsActive = 0; // ... // update the active coins …


3
DirectX 10からDirectX 11への移行
DirectX 9を使用して妥当な数の小さな趣味のプロジェクトを実行しましたが、ここでDirectX 11に移行する時が来ました。 私は、DirectX 10を使用した3Dプログラミングに関するFrank Luna'aの本を持っていますが、DirectX 11には何もありません。それらはかなり似ていると思いますが、知っておく必要があるコードレベルで主な違いを列挙できるかどうか疑問に思っていました(または既存のソースをポイントします)。
10 directx 

5
グリッド内のどのセルが特定の三角形と交差するかを判断するにはどうすればよいですか?
現在2D AIシミュレーションを作成していますが、エージェントの位置が別の視野内にあるかどうかを確認する方法が完全にわかりません。 現在、私の世界のパーティション分割は、単純なセル空間パーティション分割(グリッド)です。三角形を使用して視野を表現したいのですが、三角形と交差するセルを計算するにはどうすればよいですか? この写真のように: 赤い領域は、三角形がそれらのセルと交差するかどうかをチェックすることによって計算したいセルです。 前もって感謝します。 編集: 混乱を増すためだけに(あるいはおそらくそれをさらに簡単にするために)。各セルには最小ベクトルと最大ベクトルがあり、最小は左下隅、最大は右上隅です。

1
OpenGLのどのc / c ++モデルアニメーションライブラリ[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 私はゲーム開発にかなり慣れていないので、以前xnaをいじって、OpenGLとcを今すぐ学習しています。どのc / c ++ベースのモデルアニメーションライブラリがあり、どれをお勧めしますか?私はまだ特定のモデル形式を考えていませんが、おそらくBlenderのような無料のモデリングツールでサポートされている形式でしょう。
10 opengl  c++  models  c 

4
ゲームと音楽を同期する方法
ダンシングライン、ジオメトリダッシュ、またはギターヒーローなどのryhtmゲームに精通しているかもしれません。それらには共通点があります。ゲーム内のすべてのアクションは音楽と同期されます。私の目的は、Geometry Dashのようなゲームを作成することです。プレイヤーは、キャラクターがレベルを自動的にスクロールする間に、リズムでいくつかのアクションを実行する必要があります。このタイプのゲームについていくつか質問があります。 FPSは常に音楽と同期する必要があるため、FPSを一定に保つ必要がありますか? 音楽を念頭に置いてレベルを構築し、同期されるようにするにはどうすればよいですか? UnityでC#を使用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.