ゲーム開発

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

4
Windows Indieゲームはどこで公開できますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 Windows Phone 7およびXBLIG向けのXNAゲームを終了しました。現時点では、ゲームは「ライト」バージョンなので無料です。しかし、次のバージョンには小さな値札が付いています。 また、Windowsバージョンを作成しました。それを公開するのに最適な場所はどこですか?
16 xna  xbox360 

6
2Dスプライトアーティストを雇う場所は?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 必要に応じてアニメーション化される高品質のオリジナルの2Dスプライトコレクションを探しています。(つまり、私が購入できるコレクションではなく、オリジナルの作品が欲しいです)。 私はオンラインで見てきましたが、そのような人々を雇うことができる場所を見つけるのに苦労しています! そのような人はどこにいますか? いくら支払うべきでしょうか?
16 sprites  hiring 

3
C ++標準ライブラリの実装を比較/比較するドキュメントはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 (これはゲームプログラミングそのものではありませんが、歴史上、すべての大規模なゲームがこれらのことを心配していると言っていても、これを早めに最適化しないように言われると確信しています) さまざまなC ++標準ライブラリ実装間のパフォーマンス、特にメモリ使用量の違いをまとめたドキュメントはどこにありますか?一部の実装の詳細はNDAによって保護されていますが、STLportとlibstdc ++とlibc ++とMSVC / Dinkumware(vs. EASTL?)との比較は非常に役立つようです。 特に、次のような質問に対する答えを探しています。 どのくらいのメモリオーバーヘッドが標準コンテナに関連付けられていますか? 仮に宣言されただけで動的割り当てを行うコンテナがある場合、どのコンテナですか? std :: stringはコピーオンライトを行いますか?短い文字列の最適化?ロープ? std :: dequeはリングバッファーを使用しますか?

4
ゲームの名前が著作権または商標に違反しているかどうかを判断するために使用できるリソースは何ですか?
私はインディー/趣味のゲーム開発者です。ゲームをリリースするときに、著作権や商標を侵害していないことを確認するにはどうすればよいですか? 私はメガバックを作っているわけではないので、ゲームごとに専門的な法的助けを得るのは経済的に実現不可能です。 私は最近、古いアーケードゲーム(クレイジーバルーン)の名前を再利用できるかどうかを尋ねましたが、これにより、以前に存在した類似の何かにさえ気付かないかもしれない将来のゲームについて考えるようになりました。 だから、自分で確認することをお勧めできるツールやリソースはありますか?
16 legal  copyright 

1
意図的な不正確さでレトロ/ NESスタイルの物理を再現
バックグラウンド: 私のレトロなプラットフォーマーのリメイクプロジェクトのジャンプ曲線を正しく取得するのに問題があります。元のゲームはNES用であり、プレイヤーのベロシティは2つの別々の部分に保存されます。1バイトが整数で、もう1バイトが小数部分です。 重力はプレーヤーのY速度に0.25 /フレームの割合で追加されます。 プレイヤーがジャンプすると、彼のY速度は-4.64453125に設定されます。ジャンプ曲線の残りの部分は重力に任されています。 プレーヤーが上昇すると、垂直速度は0.25 /フレームの割合で0に収束します。ただし、プレーヤーの速度がゼロ未満の値に達すると、速度は異なるパターンに従って変化します。フレームごとに0.25ずつ着実に減少するのではなく、次のパターンに従います。 [1.75, -0.25, -0.25, -0.25, 1.75, -0.25, -0.25, -0.25, 1.75, ...] 整数オーバーフローと関係があるようです。 データ: 元のデータのダンプを次に示します。速度の表です。 Jump Curve Y-Hi Y-Lo Decimal Change/Frame 4 165 4.64453125 ? 4 101 4.39453125 -0.25 4 37 4.14453125 -0.25 3 229 3.89453125 -0.25 3 165 3.64453125 -0.25 3 101 3.39453125 -0.25 …

6
2Dボイドシミュレーションをどのように並列化できますか
異なるソース(クラスター、gpu)からの処理能力を使用できるように、2Dボイドシミュレーションをどのようにプログラムできますか。 上記の例では、色の付いていない粒子は、クラスター化(黄色)して移動を停止するまで動き回ります。 問題は、左上のエンティティが右下のエンティティと相互作用する可能性は低いものの、すべてのエンティティが潜在的に相互作用する可能性があることです。ドメインが異なるセグメントに分割された場合、全体が高速化される可能性がありますが、エンティティが別のセグメントに移動したい場合は問題が発生する可能性があります。 現時点では、このシミュレーションは良好なフレームレートの5000のエンティティで機能しますが、可能であれば何百万ものエンティティで試してみたいと思います。 これをさらに最適化するために四分木を使用することは可能でしょうか?他の提案はありますか?

6
2Dゲームのオブジェクトはそれ自体をレンダリングする必要がありますか?
私はタイルベースではない2Dストリートファイターのようなゲームを作っています。通常、人々はエンティティをレンダリングするレンダラーに与えることを推奨しますが、それ自体をレンダリングするのではなく、逆の方が良いようです、 なぜ一方が他方より優れているのですか? ありがとう
16 c++  rendering 

3
時計回りにポイントの配列を並べ替える
2Dポイントの配列を時計回りに並べ替えるアルゴリズムはありますか? 私の場合は特に直角三角形を扱っているので、3ポイントだけです。 しかし、そのようなアルゴリズムが存在するかどうかを知りたいのですが、そうでない場合は、三角形の3点を時計回りに返す簡単な方法は何ですか? 編集:私は、凸であるポリゴンの重心に対して時計回りにポイントを計算しようとしています。 更新: これは、選択した回答に基づいて最終的に使用した実装です。パフォーマンスは重要ではなく、たまにしか発生しないため、うまくいきます。 ArrayList<PVector> pointList = new ArrayList<PVector>(); pointList.add(A); pointList.add(B); pointList.add(C); Collections.sort( pointList, new TriangleVectorComparator(origin) ); return pointList; // Comparator package triangleeditor; import java.util.Comparator; import processing.core.PVector; public class TriangleVectorComparator implements Comparator<PVector> { private PVector M; public TriangleVectorComparator(PVector origin) { M = origin; } public int compare(PVector o1, …

7
将来のキャリアのためにアドバイスが必要です[非公開]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 16歳です。私は自分の将来のキャリアを計画していますし、私は目の前に立っていると知らない行くためにどの方法。 私の夢は、最高のゲームを作成することでした。成長するにつれて、私はゲームへの情熱が10年間ずっと消えず、成長し続けている/まだ成長していることに気付き始めました...ゲーム開発は、まだ両親や家族の友人にとっては「子供っぽい」ようですそして、彼らは私がもっと深刻なことを勉強すべきだと述べています。 何ができるのか、何をしたいのか正確にはわかりません。PHP、C ++(学校でこのプログラミング言語を学んでいる今年は2番目になります)、JavaScript、HTMLを知っています。私は多くのウェブサイトのデザインを作りましたが、それらは実際にプロのデザインと呼ぶことができるものではありませんでした...私はベクターグラフィックス、3Dモデリング、音楽制作を学んでいます...ゲームを何度か作ろうとしましたが、まだ何も達成していない... そして...まあ...コンピューターなしで...ええと、私はパンケーキを作ることができます...そして...お皿を洗いますか? 私は、学校向けの夏期プロジェクトとしてコンソールベースのC ++ゲームを書いています。これは、最初から実際にゼロから作られたゲームです(もう1つは、Game Maker 6での簡単なドラッグアンドドロップ実験でした)。 私が実際に何ができるかについてのこれらの疑念は、ゲーム開発に関連する何かを研究する必要があるかどうかを判断させることはできません... ですから、これらの疑念を取り除く方法を知り、私がどんなキャリアを追いたいか(ゲーム関連かどうか)についてより強い意見を持つことは素晴らしいことです。
16 career 

2
ゲームのアーキテクチャ/デザインパターンに関するアドバイス
私はしばらくの間2D RPGに取り組んでいますが、デザインに関するいくつかの悪い決定を下したことに気付きました。特に問題を引き起こしているものがいくつかあるので、他の人がそれらを克服するためにどのようなデザインを使用したのか、または使用するのだろうかと思っていました。 少し背景を説明するために、私は去年の夏休みに仕事を始めました。最初はC#でゲームを作成していましたが、約3か月前にC ++に切り替えることにしました。C ++を頻繁に使用してからしばらく経っていたので、C ++の適切なハンドルを取得したかったので、このような興味深いプロジェクトが良い動機付けになると考えました。ブーストライブラリを広く使用しており、グラフィックスにはSFMLを、オーディオにはFMODを使用しています。 かなりの量のコードが書かれていますが、それを廃棄して最初からやり直すことを検討しています。 ここに私が持っている主要な関心分野があり、他の人がそれらを解決したり、解決したりする適切な方法について意見を聞きたいと思いました。 1.循環的な依存関係 C#でゲームを実行していたとき、C#での問題ではないので、これについて実際に心配する必要はありませんでした。C ++に移行すると、これはかなり大きな問題になり、間違って設計したのではないかと思うようになりました。クラスを分離する方法を想像することはできませんが、それでもクラスに自分のしたいことをさせることができます。依存関係チェーンの例をいくつか示します。 ステータス効果クラスがあります。このクラスには、キャラクターに効果を適用するためのいくつかのメソッド(Apply / Unapply、Tickなど)があります。例えば、 virtual void TickCharacter(Character::BaseCharacter* character, Battles::BattleField *field, int ticks = 1); この関数は、ステータス効果を与えられたキャラクターがターンするたびに呼び出されます。Regen、Poisonなどのエフェクトを実装するために使用されます。ただし、BaseCharacterクラスとBattleFieldクラスへの依存関係も導入します。当然、BaseCharacterクラスは、現在どのステータスエフェクトがアクティブになっているかを追跡する必要があるため、循環依存関係になります。バトルフィールドは戦闘パーティーを追跡する必要があり、パーティークラスには別の循環依存関係を導入するBaseCharactersのリストがあります。 2-イベント C#では、キャラクター、バトルフィールドなどのイベントにフックするためにデリゲートを広範囲に使用しました(たとえば、キャラクターのヘルスが変化したとき、ステータスが変更されたとき、ステータスエフェクトが追加/削除されたときなどにデリゲートがありました。)そして、戦場/グラフィックコンポーネントがそれらのデリゲートにフックして、その効果を強化します。C ++では、似たようなことをしました。明らかに、C#デリゲートに直接相当するものはないため、代わりに次のようなものを作成しました。 typedef boost::function<void(BaseCharacter*, int oldvalue, int newvalue)> StatChangeFunction; そして私のキャラクタークラスで std::map<std::string, StatChangeFunction> StatChangeEventHandlers; キャラクターのステータスが変更されるたびに、マップ上のすべてのStatChangeFunctionを繰り返し呼び出します。動作しますが、これは物事を行うための悪いアプローチであることが心配です。 3-グラフィックス これは大きなことです。これは私が使用しているグラフィックスライブラリとは関係ありませんが、概念的なものです。C#では、グラフィックスを、ひどいアイデアだとわかっている多くのクラスと結合しました。今回はそれを分離したいので、別のアプローチを試みました。 グラフィックを実装するために、ゲームに関連するすべてのグラフィックを一連の画面として想像していました。つまり、タイトル画面、キャラクターステータス画面、マップ画面、インベントリ画面、バトル画面、バトルGUI画面があり、基本的にこれらの画面を必要に応じて積み重ねてゲームグラフィックを作成することができます。アクティブな画面が何であれ、ゲーム入力を所有します。 ユーザー入力に基づいて画面をプッシュおよびポップする画面マネージャーを設計しました。 たとえば、マップ画面(タイルマップの入力ハンドラー/ビジュアライザー)で起動ボタンを押した場合、スクリーンマネージャーへの呼び出しを発行して、メイン画面をマップ画面上に押してマップをマークします。描画/更新されない画面。プレーヤーはメニューをナビゲートし、必要に応じてより多くのコマンドをスクリーンマネージャーに発行して、新しいスクリーンをスクリーンスタックにプッシュし、ユーザーがスクリーンを変更/キャンセルするとそれらをポップします。最後に、プレーヤーがメインメニューを終了したら、ポップメニューからポップしてマップ画面に戻り、描画/更新するようにコメントして、そこから移動します。 バトル画面はより複雑になります。背景として機能する画面、戦闘の各パーティを視覚化する画面、および戦闘のUIを視覚化する画面があります。UIはキャラクターイベントにフックし、それらを使用してUIコンポーネントをいつ更新/再描画するかを決定します。最後に、使用可能なアニメーションスクリプトを使用するすべての攻撃は、画面スタックからポップする前に、追加のレイヤーを呼び出して自身をアニメーション化します。この場合、すべてのレイヤーが一貫して描画可能で更新可能としてマークされ、バトルグラフィックスを処理する画面のスタックを取得します。 私はまだスクリーンマネージャを完全に動作させることができていませんが、しばらくはできると思います。それについての私の質問は、これは価値のあるアプローチですか?悪いデザインの場合、必要なすべての画面を作成するのに多くの時間を費やす前に、今すぐ知りたいと思います。ゲームのグラフィックをどのように構築しますか?
16 c++  architecture  rpg 

2
3Dコリジョンを実装するための最良/効率的な方法
以前のゲーム用に2Dベースの衝突システムをすでにプログラミングしました。それは私の最初の衝突システムであり、wasいものでした。すべてのオブジェクトとすべてのオブジェクトをチェックして、オブジェクト間の衝突を探していました。オブジェクトが現在のセルの他のオブジェクトとの衝突のみを見るようなセルを備えたグリッドシステムについては、すでに聞いたことがあります。衝突をチェックするのに本当に良い方法ですか? 3Dの世界ですべてのアイテムをループするための優れたテクニックが必要です。

2
RenderMonkeyの後継者はいますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 GLSLシェーダープログラミングから始めて、RenderMonkeyを検討しています。悲しいことに、AMDはもはやサポートしていません。どうして?後継者はいますか?
16 shaders  glsl 

2
コンポーネントベースのゲームの設計
私はシューティングゲーム(1942、クラシック2Dグラフィックスなど)を書いていますが、コンポーネントベースのアプローチを使用したいと思います。これまでのところ、次の設計について考えました。 各ゲーム要素(飛行船、発射物、パワーアップ、敵)はエンティティです 各エンティティは、実行時に追加または削除できるコンポーネントのセットです。例には、Position、Sprite、Health、IA、Damage、BoundingBoxなどがあります。 飛行船、発射物、敵、パワーアップはゲームクラスではないという考え方です。エンティティは、所有するコンポーネントによってのみ定義されます(時間の経過とともに変化する可能性があります)。そのため、プレイヤーの飛行船は、スプライト、位置、ヘルス、および入力コンポーネントから始まります。パワーアップには、Sprite、Position、BoundingBoxがあります。等々。 メインループは、ゲームの「物理」、つまりコンポーネントの相互作用を管理します。 foreach(entity (let it be entity1) with a Damage component) foreach(entity (let it be entity2) with a Health component) if(the entity1.BoundingBox collides with entity2.BoundingBox) { entity2.Health.decrease(entity1.Damage.amount()); } foreach(entity with a IA component) entity.IA.update(); foreach(entity with a Sprite component) draw(entity.Sprite.surface()); ... コンポーネントは、メインC ++アプリケーションにハードコーディングされています。エンティティはXMLファイル(luaまたはpythonファイルのIAパーツ)で定義できます。 メインループはエンティティをあまり気にしません。コンポーネントを管理するだけです。ソフトウェア設計では、次のことを許可する必要があります。 コンポーネントを指定して、それが属するエンティティを取得します エンティティを指定すると、タイプ「type」のコンポーネントを取得します すべてのエンティティについて、何かをする …

2
AI:学習と戦略化
AIに関する理論があり、それについて「ホワイトペーパー」を書きたいと思っています。AIで検討したいのは、学習と戦略の違いです。私の質問は、この主題に関する他の資料はどこで読むことができますか? チェスの例を挙げましょう。チェスAIを最大ツリーとして見てみましょう。敵ユニットをキャプチャすると、そのユニットの値がその決定の「移動スコア」に追加されます(同様に、ピースを失うとその値がスコアに減算されます)。ポーンをキャプチャすると、1ポイント、ナイト4ポイント、ルーク5ポイントなどを獲得できます。 これらのポイントを適用し、次の動きを決定するための戦略はAIです。例えば。10の可能な動きが与えられたら、3つの動きの終わりに最高の(最大スコア)を選びます。 学習は、統計的観察を適用してそれらの値を決定することです。100ゲームをプレイする場合、AIはポーンをキャプチャすると2ポイント、ナイトは7ポイント、ルークは3ポイント(100ゲームに基づく)の価値があると判断する場合があります。 この区別はすでに文学に存在しますか?もしそうなら、どこでそれについて読むことができますか? 編集:このアプローチを利用するチェスゲーム(できればソースコード付き)を知っている人はいますか?たぶんChess960 @ Home?
16 ai  chess 

1
シャドウマップアーティファクト
3D XNAゲームに影を追加してみたい。1つのライトと1つのカメラでテスト環境をセットアップしました。しかし、私は自分のアプローチでアーティファクトに直面しています。 私はhttp://pastebin.com/zXi0hmsUのシェーダーコードを使用して最終結果をレンダリングし、http://pastebin.com/rY4Gcj9Nを使用してシャドウマップを作成しています。コードは非常に単純で、ライトの観点から深度マップを生成し、それをカメラ空間に投影し、オクルージョンをチェックする必要があります。 しかし、ほとんどの角度から私はかなりresultsい結果を得ています シーンは、いくつかの単純なキューブ(手で構成され、外側を向き、背面がカリングされます)、1つのライト(左上隅に表示されるシャドウマップ-大丈夫に見えます)、1つのカメラで構成されます。 シャドウマップのRenderTargetは、以下によって初期化されます int shadowMapSize = 512; RenderTarget2D shadowMap = new RenderTarget2D(GraphicsDevice, shadowMapSize, shadowMapSize, true, GraphicsDevice.PresentationParameters.BackBufferFormat, DepthFormat.Depth24Stencil8); GraphicsDevice.SetRenderTarget(shadowMap); GraphicsDevice.Clear(Color.White); GraphicsDevice.DepthStencilState = DepthStencilState.Default; その後、CreateShadowMapエフェクトが適用され、続いてLambertWithShadowsエフェクトが適用されます。最後に、を使用してシャドウマップが描画されSpriteBatchます。 残りのコードは、シェーダーに正しい値を提供するだけで構成されています。必要に応じて、私はそれをうまく提供できます。

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