ゲーム開発

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

2
Java 2Dゲームプログラミング:ゲームループを作るためのさまざまなアプローチ
私はJavaゲームプログラミングに不慣れですが、ゲームループを作成するためのいくつかの異なるアプローチを見てきたので、読むほど、混乱します。1. Timerクラスを使用する標準的なアプローチ(少ないようです)正確)。2. System.nanoTimeを使用するより正確なアプローチ。3. scheduleAtFixedRateを使用する単純なアプローチ。 一般的にどちらを優先する必要があり、各アプローチの利点と欠点はどこにありますか?事前に情報をありがとうございました。

3
MonoGame APIと基になるグラフィックAPIの両方を使用すると、どのような問題が発生する可能性がありますか?
MonoGameでゲームを作成していて、基礎となるグラフィックAPIへの呼び出しも開始した場合、どのような問題が発生する可能性がありますか? たとえば、MonoGameが必ずしもサポートしていないMonoGameプロジェクトで何かをしたい場合、または適切なドキュメント/例が見つからなかったが、OpenTKでそれを行う方法の例を見つけることができた場合、他の場所でMonoGame APIを使用しているときにOpenTKを使用して直接実装すると、問題が発生しますか?具体的には、これが原因である可能性がある既知の大きな問題があり、非常にまれなケースで発生する不明瞭な問題がないかどうかを調べています。 GoogleとGD.SEサイト自体を介して少し調べてみましたが、あまり見つけることができませんでした。MonoGameがそのベースのほとんどを本当にカバーしているかもしれませんが、未解決の問題またはまだ実装されていない機能の1つを手動で回避したい場合はどうなりますか? もしそうなら、どのような問題が発生する可能性があり、これらの問題を軽減するのに役立つ方法はありますか?
10 monogame 

1
手続き型ジオメトリの生成
私は最近、OS XのSceneKitを調べて、次のような幾何学的形状を作成するファクトリーメソッドがいくつかあることに気づきました。 ボックス、カプセル、コーン、シリンダー、平面、ピラミッド、球、トーラス、チューブ。 このようなプリミティブシェイプをレンダラーに追加することに興味がありますが、手続き型生成の理解を集めるための適切なソースを見つけるのに苦労しています。理論を詳しく説明しているリソースはいくつかありますが、それをバックアップするための適切なソースコードがありません。 SceneKitは、そのような形状の属性を動的に設定できるファクトリメソッドを提供します。ボックスの場合、各面を分割する幅、高さ、および深さのセグメントの数に整数値を指定できます。 理論は理解していますが、目的の効果を実現するためにジオメトリ面を細分割し始める知識がありません。 各形状の頂点は、単純なループで生成するのが非常に簡単です。私が困惑しているのは、面の作成方法、つまり各面の適切なテクスチャ座標を知っていることです。法線は面ごとに計算できるため、自分がやりたいことを達成できると確信しています。 誰でも手続き型ジオメトリの詳細を提供できますか?私が本当に必要なのは、情報を収集するためのソースコードです。私はチュートリアルを求めて高低を検索しましたが、これまでにいくつかの妥当なサイトまたはブログしか思いつきませんでした。優れた本、チュートリアル、ブログ、研究論文をいただければ幸いです。 コメントに基づいて編集 基本的な形状の頂点を作成する方法を知っていることを明確にしておく必要があります。これらのほとんどは、おそらく単純なループで実現できます。私が理解していないのは、生成された頂点の配列から面を作成する方法です。どうやら順序付けられていないように見える頂点の配列から三角形ストリップを作成するにはどうすればよいですか? このポイントを通過すると、各面から法線を作成できると思います。これについてはまだ詳しく説明していませんが、これへの多くの参照があり、実装するのは簡単です。 理想的には、SceneKitが提供する方法など、特定のプロパティセットからジオメトリを生成できるようにしたいと考えています。SceneKitがそれを実行し、BlenderやMayaなどで同様のことができることを考えると、私は不可能を実装しようとしているのではないと思います。 最後の側面は、テクスチャの適用です。繰り返しますが、これは私が実装したものではありませんが、要件を読んで認識しています。 ここでの主な問題は、私が達成したいことはわかっているが、前述のプリミティブの実装方法を解読するのに苦労していることです。ソースコードを使っていくつかの知識の類似点を見つけることができると期待していましたが、今のところ適切なものに出会ったことはありません。

2
既知のキューを持つマッチゲームを最適化するアルゴリズム
Flowerzと呼ばれるゲームのソルバーをC#.NETで記述しようとしています。参考までに、MSNで再生できます。ここ:http : //zone.msn.com/gameplayer/gameplayer.aspx?game=flowerz。私は楽しみのためにそれを書いているのであり、どんな種類の割り当てや仕事に関連するもののためでもありません。このため、唯一の制限は私のコンピューター(8 GBのRAMを搭載したIntel i7コア)です。私に関する限り、他の場所で実行する必要はありません。 つまり、そのルールは次のようになります。 色とりどりの花でいっぱいの列があります。その長さは任意です キューは影響を受けません キューはレベルの開始時に生成されます 花は1つまたは2つの色を持っています。 2つの色がある場合、外側の色と内側の色があります。2色の場合、外側の色がマッチングに使用されます。 一致する場合、外側の色は消え、花は内側の花と同じ色の単一色の花になります。 ゲームの目標は、同じ色の3つ(またはそれ以上)のマッチを作成することです 単色の花がマッチの一部である場合、それは競技場から削除され、空のスペースが作成されます 単色の花と2色の花の外側の色を一致させることができます。この場合、単色の花は消え、2色の花の外側の色は消え、内側の色は残ります キューが空であるときは、ラウンドを獲得し、少なくとも1つの空のスペースが余っています カスケード一致が可能です。カスケードは、3つ(またはそれ以上)の外側の花が消え、その内側の色が3(またはそれ以上)の花の別のチェーンを形成するときです。 競技場は常に7x7です フィールドのいくつかのスペースは岩で覆われています あなたは岩の上に花を置くことはできません キューにはスペードを含めることもできます。スペードを使用して、配置した花を空いているスペースに移動できます。 スペードを使用する必要がありますが、実際には花を動かす必要はありません。花を元の場所から直接戻すことは完全に合法です。 キューには、色付きの蝶を含めることもできます。花にこの蝶を使うと、花は蝶の色になります 2つの色を持つ花に蝶を適用すると、花は1つの色、つまり蝶の色のみを取得します。 あなたは空のスペースやすでにこの色を持っている花に蝶を無駄にすることができます フィールドをクリアしてもゲームに勝つことはできません ソルバーの目標は単純です。できるだけ多くの余ったスペースをフィールドに残して、キューを空にする方法を見つけます。基本的に、AIがゲームをプレイします。ソルバーの出力は、見つかった移動のリストです。私はスコアには興味がありませんが、できるだけ長く生き残るために、可能な限り多くのオープンスペースを残す動きに興味があります。 言うまでもなく、キューが大きくなるほど検索スペースは急速に大きくなるため、ブルートフォースは問題外です。キューは15から始まり、2、3レベルごとに5ずつ増えます。そしてもちろん、最初の花を(0,0)に配置し、2番目の花を(0,1)に配置することは、特に最初の花を(1,0)に配置し、2番目の花を(0,0)に配置することとは異なります。フィールドには、以前のラウンドからの花がすでに生息しています。そのような単純な決定は、それを作るかどうかの違いを作ることができます。 私が持っている質問は次のとおりです。 これはどのような問題ですか?(巡回セールスマン、ナップザック、またはその他の組み合わせの問題を考えてください)。これを知っていると、私のGoogle風味が少し良くなる可能性があります。 どのようなアルゴリズムで良い結果をすばやく得ることができますか? 後者について:最初に、独自のヒューリスティックアルゴリズムを記述しようとしました(基本的に:キューを知っている場合、どうすれば解決できますか?)。 私は遺伝的アルゴリズムを使用することを考えていました(少なくともそれを使用する方法を知っているため...)が、ボードのバイナリ表現を決定する際にいくつかの問題があります。次に、クロスオーバーの問題がありますが、これは、順序付けされたクロスオーバー演算子または同様のタイプの操作で解決できます。 私の推測では、ソルバーは常にボード構成とそれが空にしようとしているキューを知っている必要があります。 ニューラルネットワークやファジーロジックシステムなどの他のヒューリスティックアルゴリズムをいくつか知っていますが、どれが最も適切であるか、または当面のタスクにより適した他のものがあるかどうかを知る経験がありません。
10 c#  algorithm  ai  puzzle 

1
インディーズゲームの法的考慮事項についてはどうすればよいですか?
ここに背景情報が多すぎる場合はお詫びします。何が関連しているのかはわかりませんが、ここに該当しない他の質問と区別するために、財務状況を概説する必要があると考えました。 私はオンラインで(つまり、PayPalを使用できるすべての国に)販売されるインディーゲームを作成しています。私の現在の状況は十分に雇用されておらず、ここ2、3年の間に収支を合わせるのに十分な仕事を見つけることができないため、趣味から少し余分なお金を稼いで、その空き時間の一部を使って収入を補充しようと考えています。主に、私はビジネスではなくアートとして見ていますが、キャッシュフローと雇用の見通しが限られているため、少しお金を稼ぐ必要があります。 私の質問は、ゲームの販売から発生する可能性のある法的問題についてどうすればよいですか?私は中小企業に関する一般的なアドバイスを読んだので、著作権、制限付き責任、税金などの通常の問題で大丈夫なはずです-それは私を心配するゲーム開発特有のものです。また、使用されているすべてのライブラリのライセンスも確認しました(とにかくすべてオープンなものです)。 現在、ソフトウェア特許は私に地獄を怖がらせています-彼らは私の国では合法ではないかもしれませんが、もし私が小規模なプロジェクトで少しでも売上を上げるつもりなら、私は広いネットを投じなければならないでしょう。私が理解している限りでは、非常に多くの、または広範で定義が不十分なため、少なくともいくつかの国では、実際にゲームに違反することなくゲームを作ることはできません。もう1つ私が気になるのは、私が聞いたことのない法的な問題があり、私がすべてを取ると脅迫する厄介な手紙を受け取るまで聞いていない場合です。 私は明らかにここや他の場所で関連する質問を検索しましたが、うまくいきませんでした-答えは常に弁護士に相談するか、高価な法的参考資料を購入するかのいずれかであるようです-上記で概説された財政状況を考えると、このアドバイスはそうではありません実際には適用されません。私にはお金がなく、このゲームで稼ぐことを望んでいる合計金額は、法律相談の1時間未満です。特許に関連する研究の量と、私の販売がもたらすかもしれない多くの管轄区域を考えると、まあ、弁護士からの十分な支援が私の手段の範囲内に収まる方法を考えることはできません。 したがって、それらの考慮事項を考慮して、ソフトウェア特許を持つ大企業が訴訟を起こすと決定した瞬間に、私がシャットダウンされ、ゲームに対する私の創造的な権利を失うのを防ぐような小規模ビジネスの賢明な行動方針を誰でも提案できますか? ?さらに、一般的なアドバイスサイトではカバーできない、この業界特有の法的問題から身を守るために必要なその他の手順はありますか?

4
星間経済シミュレーション
私はエリートやエスケープベロシティを連想させるゲームを設計しています。これらは古い宇宙取引ゲームで、宇宙で旅する商人を演じます。 私はゲームの経済を少なくとも実際の経済に似せたいと思っています。シミュレーションを実行するために必要なアルゴリズムを理解するために参照できるリソースはありますか? 大きなハードルの1つは、私が数学でかなりひどいことです。したがって、単純な説明が理想的です。 星間経済は、グローバル経済とそれほど変わらないと思います。特定の物は特定の場所でしか製造できません(リソースとテクノロジーのレベルにより)、物を運ぶには時間とお金がかかります。別の場所にいる人は別の物を必要としています...都市ではなく、彼らは惑星です。 Googleで「経済シミュレーションアルゴリズム」や類似の用語を検索しても、ほとんど役に立たず、背景を理解するのに必要なものは何もありません。 私が調査できる有用なリソースを知っている人はいますか?

2
gl_quadsを使用する利点はまだありますか?
わかりました。gl_quadsは非推奨であることを理解しているため、もはや使用することは想定されていません。また、最近のPCでgl_quadsを使用してゲームを実行すると、実際には2つの三角形が描画されることも理解しています。 今、私はゲームが代わりに三角形を使って書かれるべきだと聞いたことがあります。しかし、OpenGLがそのクワッドを2つの三角形にどのように作成するかの詳細のために、クワッドをまだ使用することがこれまでに有利であるかどうか疑問に思っています。 具体的には、現在、かなり大きなバッファーオブジェクトから、接続されていない多くのクワッドをレンダリングしています。注意が必要な領域の1つは、これらのバッファーオブジェクトを作成/更新するために使用しているフロートのベクトルがどれだけ大きいかです(頂点ごとにかなりの数の追加のフロート値と、バッファー内に多数の頂点があります-最大のバッファーは約500KBです)。 したがって、バッファオブジェクトを変更して三角形を描画する場合、この頂点データは50%大きくなり(6つの頂点では4ではなく正方形を描く)、CPUが生成するのに50%長くかかることがわかります。 gl_quadsが引き続き機能する場合、ここでメリットがありますか、それともOpenGLの2つの三角形への自動変換で50%の追加メモリとCPU時間を使用していますか?
10 opengl 

3
凹型メッシュを一連の凸型メッシュに分解する
2つの理由で、凹型メッシュを凸型メッシュのセットに分解できるようにしたいと思います。 透明なレンダリング 物理図形 三角形のセット(凹)を入力として受け取り、いくつかの三角形のセット(凸)を出力するアルゴリズムはありますか?元のメッシュのパーツ間の穴を埋めないようにしてください。 私はすでに小さなアイデアに出くわしました。すべての凹型エッジを見つけ、エッジループに沿ってメッシュを分割します。私は正しい軌道に乗っていますか?これをどのように実装できますか?

1
2D「ピクセル」クラウドを取得してマウスを追跡する
私は、数百の小さな立方体またはディスクの「クラウド」を取得して、互いに重なることなくマウスカーソルを追跡する2Dゲームに取り組んでいます。 ただし、物理エンジンを使用すると、ディスクの数が増え、衝突検出が一般的に不安定になるため、パフォーマンスが低下します。 この種のもののためにエンジンを最適化する簡単な方法はありますか?そうでない場合は、エンジンをオフにして自分で何かを書いたほうがよいでしょうか。(ここでストローを握りますが:)これを行う方法に関する優れたリソースまたは例はありますか?
10 2d  physics  unity 

5
(ドワーフ要塞のような)ブラウザでアスキーマップとキャラクターを移動するための優れた技術的ソリューション?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 5年前休業。 私のゲームのWebサイト用に、テキスト文字を使用して動物と人を表すWebアプリケーションを作成し、独立した(サーバー主導の)AIを使用してマップスクエア上を移動させたいと思います。 つまり、基本的には、ブラウザ内の小人-要塞マップです。 移動する生き物、mob、npcs、およびpcsがあります。私がこの規模を達成するつもりはないというわけではありませんが、いつでもこのコンテンツの4分の1程度を表示し始めるでしょう。 おそらく一部の背景/固定タイルが静的に読み込まれる可能性があります。しかし、生き物/動物や動くことができるものについては、どのテクノロジーソリューションが最も効果的であるかわかりません。 <canvas>その機能がこのユースケースに適合するかどうかはわかりませんが、私は知っています。確かに、ある程度のJavaScriptが必要になるでしょう。 このユースケースに適合するJavaScriptライブラリまたはキャンバスライブラリはありますか?私が気づいていない別のテクノロジー?これに類似したことをしたウェブサイトの例を知っている人がいるので、私はそれらからアイデアを集めることができますか?

2
ブレンダー-法線マップを焼く-奇妙な色
金属製のドラムメッシュがあり、その法線マップをベイクすると、奇妙な色が表示されます(添付の写真を参照)。私は色の水平方向のグラデーションのシフトについて話している。私のメッシュにはそのような変形はありませんが、なぜ色はそのようになりますか?私はさまざまなスペース(カメラ、世界など)を試しましたが、それでも問題があります(ただし、水平勾配はそれぞれで変化します)。また、接線空間は、全体的にブロック状の青色を返します。 誰かがメッシュから良い法線マップを取得する方法を教えてもらえますか? ===更新 解決しました。LukeBに感謝します。本当に良い結果を得るために、オーバーラップしている2つのバージョンのうちの1つ(たとえば、低解像度のもの)を少しスケーリングするという問題がまだありますが、それはそれが行われるはずの方法です。 ===アップデート2 さらにルークBのアドバイスに従って、低解像度のメッシュにマルチ解像度モディファイアーを使用し、そこからベイクしました。以前よりはるかに良く見えますが、色のアーチファクトは最小限に抑えられており、実際にはGIMPのいくつかの修正により、かなり使いやすくなっています。

2
Androidで関数型言語はどの程度うまく機能しますか?
これは、私が特に適切だと思うこの質問の特別なケースです。 私はAndroid用のゲームに取り組んでおり、libgdxでScalaを使用することを計画しています。私はパフォーマンスの高いゲームを作るつもりですが、必ずしも高性能なゲームではありません。libgdxのガベージコレクションに関するドキュメントを見たところ、次のように思いました。 関数型プログラミングは、多くの不変オブジェクトを意味します。 したがって、オブジェクトを変更するには、新しいオブジェクトを作成する必要があります。 したがって、多くのオブジェクトがガベージコレクションされ、パフォーマンスが低下します。 これは乗り越えられない問題ですか?Androidの機能的なスタイルで他に重大な問題はありますか?
10 java  android  libgdx 

6
ゲームを作成するためのライブラリ、エンジン、フレームワークを評価するとき、何を考慮すべきですか?
ゲームを作ります。利用可能なゲームエンジン、ライブラリ、フレームワークがたくさんあり、どれを使用するかを決めるのに少し問題があります。 私はすでにいくつかのプログラミング言語でかなり上手ですが、まったく知らないものもあります。それが役に立てば、私は新しいプログラミング言語を学ぶことに反対しているわけではありませんが、私の真の目標はゲームを作ることです。 エンジン、ライブラリー、フレームワークを相互に比較するためにどの基準を使用すれば、ゲームを完成させるのに最も生産的になることができるかを決定できますか?

2
コンポーネントを更新する時期/場所
通常の継承の重いゲームエンジンの代わりに、よりコンポーネントベースのアプローチをいじっています。ただし、コンポーネントに機能させる場所を正当化するのに苦労します。 コンポーネントのリストを持つ単純なエンティティがあるとします。もちろん、エンティティはこれらのコンポーネントが何であるかを知りません。画面上のエンティティに位置を与えるコンポーネントが存在する場合もあれば、画面上にエンティティを描画するためのコンポーネントが存在する場合もあります。 これらのコンポーネントが機能するためには、フレームごとに更新する必要があります。これを行う最も簡単な方法は、シーンツリーをウォークスルーし、エンティティごとに各コンポーネントを更新することです。ただし、コンポーネントによっては、もう少し管理が必要になる場合があります。たとえば、エンティティを衝突可能にするコンポーネントは、すべての衝突可能コンポーネントを監視できる何かによって管理される必要があります。エンティティを描画可能にするコンポーネントは、他のすべての描画可能コンポーネントを監視して、描画順序などを把握する必要があります。 だから私の質問は、どこでコンポーネントを更新するのですか、それらをマネージャーに届けるクリーンな方法は何ですか? コンポーネントタイプごとにシングルトンマネージャーオブジェクトを使用することを考えましたが、シングルトンを使用するという通常の欠点があります。これを緩和する方法は、依存関係の注入を使用することですが、この問題に対して過剰に聞こえます。また、シーンツリーをウォークスルーして、ある種のオブザーバーパターンを使用してさまざまなコンポーネントをリストにまとめることもできますが、すべてのフレームを実行するのは少し無駄です。

4
Cがコードからサウンドサンプルを生成するためのサウンドライブラリはありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私はCでレトロなスタイルのゲームのエンジンに取り組んでいます。コードからチップサウンドを生成するサウンドライブラリを探しています...音楽を作成するためのエンジン用の独自のシンプルなチップチューントラッカーを作成したいと考えています。そのようなものは存在しますか? プロジェクトで.nsfファイルを使用するためのライブラリにも興味があります。 開発にはLinuxを使用しています。
10 c  sound  music  linux 

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