ゲーム開発

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

6
没入感を失わずに永続的な世界でプレーヤーのログオフとログオンを処理する
永続的なオンラインゲームで修正されたことが一度も見られなかった問題の1つは、キャラクターが世界に出入りすることなく、プレーヤーのログオンとログオフを処理する方法です。私の最初の考えは、キャラクターが眠っているときにプレイヤーのオフライン状態を単純に作ることですが、意図的にログオフするのではなく、切断した場合には意味がありません。 気にせずに修正する場合、どのように修正しますか?

2
LibGDX-現在Android /デスクトップにあるかどうかを確認します
LibGDXとflixel-androidを使用して、デスクトップ/ Androidゲームを構築しています。現在Androidデバイス、デスクトップなどで実行されているかどうかを確認する方法があるはずですが、どこにも見つかりません。私は個々のランチャーからそれを単に伝えることになっていますか?確かにLibGDXは私に言うことができますか?
16 java  android  libgdx 


1
クラウドテクスチャマップを簡単に作成するにはどうすればよいですか?
ゲームで3D惑星を作成しています。これらは「グローブ」として表示されます。それらのいくつかはクラウド層を必要とします。「地球」を作成するためのさまざまなBlender チュートリアルを見て、それらのクラウドレイヤーにはNASAの地球クラウドマップを使用します。 しかし、手続き的に生成された多くの惑星で架空の宇宙を作成します。だから私は多くのバリエーションを使用したいと思います。 NASAリンクなどのクラウドマップを手続き的に生成する方法があることを願っています。ガスジャイアントも作成する必要があるため、他の種類のクラウドテクスチャマップも必要になります。 それが難しすぎる場合は、クラウドマップのいくつかのバリエーションを作成することにフォールバックできます。たとえば、地球のような3、ガスの巨人の3など。 では、このようなクラウドマップを静的に作成またはプログラムで生成するにはどうすればよいですか?

3
エンジンとそのフレームワークの著作権と特許を収益化して保護する方法は?
以下を処理するゲームエンジンを作成しました。 2Dテクスチャカーブサーフェスによるレンダリングレベル 曲面との衝突 2D空間でのアニメーションパスとナビゲーション また、次のフレームワークも作成しました。 丸い表面での手続き型有機レベル生成 レベル編集 軽量のスプライト設計 エンジンとフレームワークはAS3で記述されており、他のプラットフォームをより適切にサポートするためにコードをHaXeに変換する過程にあります。 私も追加に興味があります アニメーションの湾曲したプラットフォーム より高度なレベルの編集機能 現在、私はアルバイトをしており、このエンジンに費やす時間は、限られた自由時間(私は学校を通じて自分自身をサポートするために働いている学生です)か、仕事で働いている時間のいずれかから除外されます。 このエンジンがあれば、タワーディフェンスゲーム、シューター、プラットフォーマーを設計している人々の生活をはるかに楽にし、結果を改善することもできます。また、RTS、RPG、およびレーシングゲームを非常によくサポートできます。 それは、有機的な丸みを帯びた滑らかなレベルの手順生成に使用できるオリジナルのアルゴリズムを含んでいます。私が使用したアルゴリズムは新しく、私が見た他のレベルのエディターでは使用できません。 Engineを絶えず改善し、徹底的にテストするためには、それを一般に公開することが最善のルートだと思います。 新しいフレームワークで自分や他の人に利益をもたらす最良の方法は何ですか? 私はフレームワークを共有し、それから利益を得ることができるように、いくらかのライセンスを持ちたいです。 アドバイスをいただければ幸いです。今年はこの問題がずっと頭に浮かびました。私はいくつかの救済をもたらす解決策を見つけることを望んでいます。 3つのサンプルゲームを設計し、それらをリリースしてキックスターターを開始することを考えています。この問題に関するアドバイスや考えは貴重です。 私の目標は、Markus von Broadyが提案したように、人々をエンジンの開発に関与させ、象徴的な料金で、または無料でサポートのためにゲームで使用できるようにすることです。それか、何らかの形のクラウドソーシングを使用します。 私の仕事を守るために何らかの法的文書を入手するために弁護士を雇う必要がありますか?

2
OpenGL:VBOまたはglBegin()+ glEnd()?
私は最近、オリジナルのOGLレッドブックを渡した人からチュートリアルサイトへのこのリンクを与えられました。3番目のヘッダーは、典型的なレンダリングメソッドとしてglBegin()とglEnd()を忘れるようにはっきりと述べています。Redbookの方法で学びましたが、VBOにはいくつかの利点があります。これは本当に進むべき方法ですか?その場合、レンダーコードと後続のシェーダーをVBOと後続のデータ型に簡単に変換する方法はありますか?
16 opengl  graphics  glsl  vbo 

3
AIは一般的なゲームで最も一般的にどのように実装されていますか?
私はゲーム開発者ではありません。ゲームではない好奇心盛なコーダーです。人気のある現代のゲーム、たとえばFPSでAIはどのように機能するのでしょうか?ハードコーディングされたルールに基づいていますか?他の種類のAI(自動運転車などを駆動するAIなど)との共通点はどれくらいですか?開発者はAIが自然に動作し、対戦するのが楽しいことをどのように保証しますか? 私はグーグルでMinMaxのさまざまな派生物について言及しましたが、AIが継続的で変化しやすい世界にどのように対処するか、AIがどのようなアクション/状態に報酬を与え、さまざまなアクションの成功のチャンスをどのように把握するかについては答えませんでした。Machine Learningもあちこちで言及されているのを見ましたが、深刻なゲームでは使用されていないようです。
16 ai 

4
固定機能とシェーダー:初心者向け?
現在、私は大学でコンピューターサイエンスを学んでいます。小さなゲームを作成するために、ある時点で既存のエンジンを利用することを計画していますが、今の私の目標は、基礎、つまり3Dプログラミングを学ぶことです。私はすでにDirectXとOpenGLの選択に関するいくつかの研究を行ってきましたが、それから生まれた一般的な感情は、トレーニングホイールプラットフォームとしてOpenGLまたはDirectXを選択するかどうか、多くの知識が他のプラットフォームに移転可能であるということでした。したがって、OpenGLはより多くのシステムでサポートされているため(おそらく、学習対象を選択する愚かな理由)、OpenGLを最初に学習することにしました。 OpenGLを習得するというこの決定を行った後、私はさらに調査を行い、これまで何らかの形で気づかなかった二分法、つまり固定機能OpenGLと最新のプログラマブルシェーダーベースのOpenGLを発見しました。最初は、シェーダーベースのOpenGLを学ぶことを選択するのは当然の選択だと思ったのは、それが今日の業界で最も一般的に使用されているからです。しかし、その後、ここにあるJason L. McKessonによる非常に人気のあるLearning Modern 3D Graphics Programmingに出会いました:http : //www.arcsynthesis.org/gltut/ 私は入門書を読み、「この本について」セクションで、著者は次のように述べています。 「まず、このアプローチで学んだことの多くは、ユーザーがプログラマビリティで解決しなければならないグラフィックの問題に遭遇した場合、必然的に放棄されなければなりません。 同時に、次のように述べることにより、固定機能が初心者にとってより簡単で迅速な学習曲線を提供するというケースも作ります。 「一般的に、固定機能パイプラインを使用して新人グラフィックプログラマーに教えるのが最も簡単であると考えられています。」 当然、どのパラダイムを学ぶべきかについて私が対立する理由を見ることができます:固定機能の方法の学習(そしてその後の学習)に多くの時間を費やしますか、それともシェーダーから始めることを選択しますか?私の主な関心事は、現代のプログラマブルシェーダーでは、プログラマーが固定機能パイプラインを既に理解していることをどういうわけか必要とすることですが、私はそうではありません。 TL; DR =意欲的なゲームグラフィックプログラマーとして、固定機能または最新のシェーダーベースのプログラミングを通じて3Dプログラミングを学ぶことは私の一番の関心事ですか?

3
エンティティとコンポーネントにメソッドを保存するのはなぜ悪い考えですか?(他のいくつかのエンティティシステムの質問と共に。)
これは私が答えたこの質問のフォローアップですが、これはより具体的なテーマに取り組んでいます。 この答えは、記事よりもエンティティシステムをよりよく理解するのに役立ちました。 エンティティシステムに関する(はい)記事を読みましたが、次のように伝えられました。 エンティティは単なるidとコンポーネントの配列です(記事では、コンポーネントにエンティティを保存することは物事を行う良い方法ではないと述べていますが、代替手段は提供していません)。 コンポーネントは、特定のエンティティで何ができるかを示すデータの断片です。 システムは「メソッド」であり、エンティティのデータの操作を実行します。 これは多くの状況で実際に実用的と思われますが、コンポーネントが単なるデータクラスであるという部分が気になります。たとえば、Entity SystemにVector2Dクラス(Position)を実装するにはどうすればよいですか? Vector2Dクラスはデータを保持します:x座標とy座標ですが、その有用性に重要なメソッドもあり、クラスを2つの要素配列から区別します。:例の方法がありadd()、rotate(point, r, angle)、substract()、normalize()、および他のすべての標準的な、便利な、と(Vector2Dクラスのインスタンスである)の位置が持つべきであることが絶対に必要なメソッド。 コンポーネントが単なるデータホルダーである場合、これらのメソッドを持つことはできません! おそらくポップアップする可能性のあるソリューションの1つは、システム内に実装することですが、それは非常に直感に反するようです。これらのメソッドは、私が今実行したいものであり、完全で使用可能な状態になっています。MovementSystemエンティティの位置の計算を実行するように指示する高価なメッセージセットを読み取るのを待ちたくありません! そして、記事は非常にはっきりと述べているだけのシステムが持つべきすべての機能を、私は見つけることができるそのための唯一の説明は、「OOPを避けるため」でした。まず第一に、エンティティやコンポーネントでメソッドを使用することを控えるべき理由がわかりません。メモリのオーバーヘッドは実質的に同じであり、システムと組み合わせた場合、これらは非常に簡単に実装し、興味深い方法で組み合わせる必要があります。たとえば、システムは、実装自体を知っているエンティティ/コンポーネントにのみ基本的なロジックを提供できます。あなたが私に尋ねると-これは基本的にESとOOPの両方から利点を取ります。これは記事の著者によるとできないことですが、私にとっては良い習慣のようです。 このように考えてください。ゲームにはさまざまな種類の描画可能なオブジェクトがあります。昔ながらの画像、アニメーション(update()、getCurrentFrame()など)、これらのプリミティブ型の組み合わせ、およびそれらのすべては、単純に提供できるdraw()だけで、その後、エンティティのスプライトがどのように実装されるかを気にする必要はありませんレンダリングシステムに方法をインターフェース(描画)と位置について。そして、レンダリングとは関係のないアニメーション固有のメソッドを呼び出すアニメーションシステムのみが必要になります。 そして、もう1つだけ...コンポーネントの保存に関して、配列の代替物は本当にありますか?Entityクラス内の配列以外にコンポーネントを保存する場所は他にありません... たぶん、これはより良いアプローチです:コンポーネントをエンティティの単純なプロパティとして保存します。たとえば、位置コンポーネントはに接着されentity.positionます。 他の唯一の方法は、異なるエンティティを参照する、システム内にある種の奇妙なルックアップテーブルを持つことです。しかし、それは非常に非効率的で、単にコンポーネントをエンティティに格納するよりも開発が複雑に思えます。

2
どのOpenGLバージョンを学習または使用しますか?
だから、私はOpenGLが初めてです...ゲームプログラミングの一般的な知識はありますが、実際的な経験はほとんどありません。 私はさまざまな記事や本を調べてOpenGLに飛び込もうとしましたが、さまざまなバージョンと、物事を混乱させる古い方法と新しい方法を見つけました。 私の最初の質問は、OpenGLの各バージョンを実行できるゲーマーの割合に関する数値を誰でも知っているかどうかです。市場シェアはどのようなものですか?2.x、3.x、4.x ... Half Life 2の要件を調べたのは、ValveがMacで実行するためにOpenGLで更新したことを知っているためです。NvidiaのWebサイトで8800 GTを見て、OpenGL 2.1のサポートをリストしました。4.xがすでにあるので、これはおそらく間違っているかもしれません。8800GTのドライバーを検索したところ、4.2をサポートしていると書かれています!少し矛盾があります、笑。 また、XPが特定のバージョンまでしかサポートしていない、OS Xが3.2のみ、またはその他のすべての種類をサポートしているなどの記事も読みました。全体として、さまざまなバージョンに対するサポートの量と、学習/使用するバージョンについて混乱しています。 学習リソースも探しています。これまでの私の検索結果は、OpenGL SuperBibleを示しています。第4版はAmazonで素晴らしいレビューがありますが、2.1を教えています。第5版は3.3を教えていますが、第4版の方が優れていること、第5版が新しい機能などを適切に教えていないことを言及しているレビューがいくつかありますか?基本的に、学習教材内でも矛盾が見られ、どこから始めればよいかさえわかりません。 私が理解していることから、3.xはまったく新しい方法を開始し、「glBegin()、glEnd()などの非推奨の機能から遠ざけたい」というさまざまな記事やレビューを読んでいますが、私が見たチュートリアルでは、この方法を使用しています。基本的に、新しいやり方はもっと複雑であるが、古いやり方は悪いと言っている人々を見てきました>。> 個人的には、前もって学ぶべきことがたくさんあることは知っていますが、テッセレーションに興味があります。私はそれが4.xにしかないと理解している限り、 [ところで、私のデスクトップは4.2をサポートしています]

1
長方形が衝突する側面を決定する単純な2D長方形衝突アルゴリズム?
最初は長方形の交差点を実装してみましたが、うまく機能します。ただし、速度、加速度、方向ベクトルなどの物理システムを適用する必要がある場合、四角形のどちら側が衝突するかを判断する方法を見つける必要があります。さて、私のシステムでは、回転した長方形はないので、これは問題を単純化しました。しかし、どの長方形の側面が衝突したかを判断する簡単な方法を見つけることができませんでした。私は以前この問題に対処したことがありますが、惨めに失敗しました。 過去に私がやったことは、平行な長方形の各辺間の距離を決定し、距離が0に近い(最初に定義された距離範囲を使用)か0かを確認することです。しかし、浮動小数点演算では、未知の時間が経過した。定義された範囲に達する前に、長方形が実際に交差する場合があります。 一方、私は複数の長方形を生成することを考えていました。各長方形は各辺に対応しています。ただし、考え直してみると、距離範囲をチェックする平行な側面があるのと同じことです。ただ、その距離範囲は各ミニ長方形の幅です。 したがって、この問題に対する提案はありますか?

5
ゲームロジックスレッドとレンダリングスレッド間の同期
ゲームロジックとレンダリングをどのように分離しますか?ここで正確にそれを尋ねる質問が既にあるように思えますが、答えは私にとって満足のいくものではありません。 私がこれまでに理解していることから、それらを異なるスレッドに分ける点は、ブロックされているスワップバッファ呼び出しからレンダリングが最終的に返される次のvsyncを待つのではなく、ゲームロジックが次のティックですぐに実行を開始できるようにすることです。 しかし、具体的には、ゲームロジックスレッドとレンダリングスレッド間の競合状態を防ぐためにどのデータ構造が使用されているか。おそらく、レンダリングスレッドは、描画対象を特定するためにさまざまな変数にアクセスする必要がありますが、ゲームロジックがこれらの同じ変数を更新している可能性があります。 この問題を処理するための事実上の標準技術はありますか。ゲームロジックを実行するたびにレンダリングスレッドが必要とするデータをコピーするようなものです。解決策が何であれ、同期のオーバーヘッドや、すべてを単一スレッドで実行するよりも少ないものは何ですか?

5
ほとんどのチュートリアルが古くなったときにOpenGLで開始する[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 このような質問はすでにたくさんあると思いますが、OpenGLライブラリの絶え間ない更新はそれらをすべて捨て去り、1、2か月後には、ここでの答えは再び役に立たなくなります。 C ++を使用してOpenGLでプログラミングを開始する準備ができました。動作するコンパイラがあります(DevCpp。VC++に切り替えるように頼まないでください。理由を聞かないでください)。現在、OpenGLを使用したプログラミング方法についての堅実なチュートリアルを探しています。私のアシスタントは、NeHe Productionsが提供するチュートリアルを見つけましたが、私が知るようになったとき、それはまさしく時代遅れです!(ただし、OpenGLキャンバスをサポートする基本的なウィンドウをまとめました) それから私はオンラインに行き、どうやらfreeglutを使っているOpenGL SuperBibleを見つけましたか?しかし、私が知りたいのは、SuperBible 5th editionがもう最新のものであるかどうかです。私が見つけたfreeglutへの提案は、最新バージョンは2.6.0でしたが、現在は2.8.0であると言いました! OpenGL SuperBibleは今でも良い、そしてかなり最新のスタート地点ですか? OpenGLを学ぶのに最適な場所はありますか? DevCppインクルードディレクトリ(GLにあるかもしれません)に単にfreeglutを保存することは許可されていますか、それとも重要な手順はありますか 私はまだ始まったばかりなので、私が尋ねるとは思わなかったコメントや提案はありますか? @dretaは私のためにいくつかのことを解決したので、今、私は何を尋ねるべきかについてのより良いアイデアを持っています: OpenGLに直接アクセスする代わりに、ラッパーライブラリを使用してOpenGLから始めたいと思います。初心者にとっては、プログラミングや良い結果を得るのは簡単だと思いますが、まだすべての汚れた詳細を理解する必要はありません(@stepheltonが述べたように)。 問題は、サポートされなくなった関数への未定義の参照がないライブラリが見つからないことです。Freeglutは動作可能に聞こえますが、それでもGLUを使用しています。誰も私ができることを知っていますか?また、最初のSuperBibleのソースをコンパイルしようとしましたが、GLAPIがタイプとして定義されていないため、GLUライブラリで発生したエラーが発生しました。 SuperBibleを使用したいのですが、これを修正する方法がわかりません。
16 c++  opengl 

3
トレーディングカードゲームの「特殊効果カード」を実装する方法
ここで一種のトレーディングカードゲームを作成しようとしていますが、何らかの方法で、マジックザギャザリング、または遊戯王に似ています!トランプゲーム。 基本的に、ゲームに慣れていない人のために、ゲームのルールを曲げることができる特別な効果を持つ特別な種類のカード(スペルカード/トラップカード/など)があります。私がまったく知らないのは、これらのカードのロジックを実装する方法です。私はカードのデータをフラグを付けて保存するという考えを持っていますが、それはどんな種類の能力があるのか​​を示すことができますが、それができることは非常に限られています(おそらくいくつかの単純な統計変更のみ)。 これらのカードにどんな種類の効果があるのか​​を知るために、ここに遊戯王に存在する呪文カードの効果のいくつかの例があります!トランプゲーム: 破壊されたクリーチャーを復活させる 相手のクリーチャーをコントロールする いくつかの条件に基づいてクリーチャーのステータスを変更します(例:破壊された特定の名前のクリーチャーの数) いくつかの条件が満たされた場合、特定のクリーチャーを特別に召喚します。 複数のクリーチャーを融合して、より強いクリーチャーにします。 一部の特殊カードの効果に対する耐性。 コナミは、このゲームのいくつかのビデオゲームを作成し、AIと数千種類のカードを完備しています。データベース全体をハードコーディングすることは実際には不可能だと思いますか? 今、もちろん私がやろうとしているのは、それらのゲームほど複雑ではありませんが、私は好奇心が強いです、どうやってそれらを実装するのですか?

2
自分のゲームが誰かのコンピューターを損傷した場合、私は責任を負いますか?
ゲームのドキュメントのどこかに、「このソフトウェアには損害に対する保証はありません」などと伝える必要がありますか?すべてではありませんが、ほとんどすべてのプログラムでよく見かけますが、そのテキスト行を追加するのを忘れて、グラフィックを多用するゲームをプレイするときにGFXカードが焼けてしまった場合、誰かが私を訴えることができますか?(実際に何回か私に起こったので、私はだれも訴えませんでした)。 (誰かが私のタグを修正できますが、スコアが低いため新しいタグを追加できませんでした。)
16 legal 

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