ゲーム開発

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


6
Webゲームのアイテムにコンポーネントベースのシステムを実装する方法
コンポーネントベースのシステムを使用してアイテムを定義することに関する他のいくつかの質問と回答を読んで、PHPで記述されたWebゲームのアイテムとスペルに使用したい。実装にこだわっています。 このシリーズで提案されているDBスキーマを使用します(パート5ではスキーマについて説明します)。 http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ これは、一般的なアイテムプロパティを持つアイテムテーブル、アイテムのすべてのコンポーネントをリストするテーブル、そして最後に、アイテムを構成するために使用される各コンポーネントテーブルのレコードがあることを意味します。 最初の2つを1つのクエリで一緒に選択できると仮定すると、各コンポーネントタイプに対してNクエリを実行します。クエリを実行する前に、データをmemcacheにキャッシュして最初にチェックできるので、これで問題ありません。memcacheから取得した場合でも、実装がリーンサイドである必要があるため、使用されるすべてのリクエストでアイテムを構築する必要があります。 しかし、アイテムのコンポーネントシステムを実装することに自信を持っているのは、まさにそのためです。使用する各コンポーネントから属性と動作をコンテナに取り込む必要があると思います。それを効果的に行う方法がわからないだけで、各コンポーネントを処理するための特別なコードを大量に作成することにはなりません。 たとえば、AttackComponentは、バトルコンテキスト内のターゲットをフィルタリングする方法を知る必要があり、攻撃動作を提供する必要がある場合もあります。同じアイテムにUsableComponentを含めることもできます。これにより、アイテムを使用し、同じバトルコンテキストから別の方法でフィルターした別のターゲットセットに何らかのエフェクトを適用できます。次に、アイテムのすべてのパーツがアクティブなパーツであるとは限りません。AttributeBonusComponentは、アイテムが装備された状態にあるとき、またはアイテムの詳細ページを表示するときにのみ起動する必要がある場合があります。 最終的に、アイテムを武器として使用するときにターゲットの正しいリストを取得できるように、すべてのコンポーネントをコンテナにまとめるにはどうすればよいですか?武器をアイテムとして使用できる時期を知っていますか?または、アイテムが提供するボーナスをキャラクターオブジェクトに適用するには? うさぎの穴の奥まで行きすぎたような気がして、目の前の簡単な解決策がつかめません。(それがまったく意味をなさない場合)。 同様に、ここからベストアンサーを実装すると、同じ質問がたくさんあるように感じます。 リレーショナルデータベース内の使用可能な在庫/オブジェクト/アイテム(カタナなど)の複数の「用途」(たとえば武器)をモデル化する方法

2
有限状態機械で状態間を遷移し、状態を混合する方法は?
プレイヤーによって制御されるエンティティで有限状態マシンを使用する方法がわかりません。 たとえば、マリオスタイルのゲーム(2Dプラットフォーム)があります。私はジャンプしたり、走ったり、歩いたり、ダメージを与えたり、泳いだりすることができるので、最初に考えたのは、このアクションを状態として使用することでした。しかし、ダメージを受けたときに実行している場合はどうなりますか?それともジャンプ、ダメージを受け、同時に撃ちますか? 機能(アクション)をクリーンな方法でプレーヤーに追加したい(エンティティ更新のすべてのアクションに使用しない)。
7 animation  fsm 

2
OpenGLまたはOpenGL ES
私は何を学ぶべきですか?OpenGL 4.1またはOpenGL ES 2.0? Qtを使用してデスクトップアプリケーションを開発する予定ですが、モバイルアプリケーションの開発も数か月以内に開始する可能性があります。3Dや3Dの数学などについては何も知りません。1週間のWebサイトの調査と試行錯誤よりも、100ドルをいい本に費やしたいと思っています。 OpenGL 4.1で私が目にする問題の1つは、OpenGL ES 2.0に関する本はありますが、まだ本がないことです(最新のものはOpenGL 3.3または4.0用です)。 一方、私の素朴な観点から見ると、OpenGL 4.1はOpenGL ES 2.0 +追加機能のように見えるため、最初にOpenGL ES 2.0を学習してから、シェーダー言語などに進む方が簡単/優れているようです。 NeHe(悪い/古い慣習でいっぱいであると一般に同意されている)、Durianチュートリアルなどを使用するように言わないでください。 ありがとう

6
キャラクター統計とパワー[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 私はRPGゲームシステムを作成していますが、詳細なまたは抽象的なキャラクター統計を行うことを決定するのに苦労しています。これらの統計は、学習されていない-キャラクターの自然な能力を定義します。例えば: マスエフェクト:0 (私が見ることができるなし) X20 (Xtreme Dungeon Mastery):1 "STAT" ディアブロ:4「強さ、魔法、器用さ、活力」 Pendragon:5 "SIZ、STR、DEX、CON、APP" ダンジョンズ&ドラゴンズ(3.x、4e):6 "Str、Dex、Con、Wis、Int、Cha" フォールアウト3:7「SPECIAL」 リフト:8 "IQ、ME、MA、PS、PP、PE、PB、Spd" Warhammer Fantasy Roleplay(1st ed?):12- ish "WS、BS、S、T、Ag、Int、WP、Fel、A、Mag、IP、FP" HERO(5th ed):14 "Str、Dex、Con、Body、Int、Ego、Pre、Com、PD、ED、Spd、Rec、END、STUN" 統計が多いほど、キャラクターはより複雑で詳細になります。ただし、これにはトレードオフが伴います。通常、キャラクターを説明するためのリソースは限られているためです。D&Dはこれを、強力なキャラクターが一般的に賢くなかった最小/最大の事柄で悪名高くしました。 ただし、Strが高いキャラクターは、通常、コン、ディフェンス、ヒットポイント/ヘルスも高くなります。他のすべての統計に高い数値がないと、近接戦闘ではうまく機能しないため、それらも強くない可能性があります。したがって、そのようなことは、強さのカテゴリー内でトレードオフを強います。 したがって、私の当初の(現在は拒否されている)アイデアは、プレーヤーに攻撃と防御の統計を強制的に決定させることでした。 マイト/ボディ 器用さ/スピード ウィット/知恵 心臓 魂 しかし、これにより「反対」(または簡単に定義された反対)のない統計がいくつか残った。私は次のことにもっと傾いています: 体(体力) マインド(メンタルプラウズ) ハート(社会的才能) 魂(霊的能力) これは、4つの数字だけで文字を定義します。他のすべてはこれらの数値に基づいて取得されます。つまり、それらは非常に重要です。ただし、高速であるが、強くもスマートでもないが、気にしないキャラクターを説明する方法はありません。これらの数字でキャラクターを定義する代わりに、次のようなスキルとパワーを購入してキャラクターを詳しく説明します。 素早さ覆い焼き時 にボディロールに+2ボーナスを追加します。 より速くなりたいキャラクター、または大きくてタフなキャラクターのフォロー ボディビルディングオブジェクトを持ち上げる、押す、または投げるときに、ボディロールに +2ボーナスを追加します。 小さな統計リストと大量の記述力の落とし穴は何ですか?これは、たとえばクロスプラットフォーム(ペンと紙、PC)を移植するのがより難しいですか?これがうまく/不十分に行われている例はありますか?

1
XNAの解像度に依存しない2Dレンダリング
任意の解像度で2Dゲームをレンダリングするための最良の方法を見つけようとしています。 私は現在1920x1200でゲームをレンダリングしています。レンダリング方法やゲームロジックを変更せずに、ユーザーが選択した解像度に合わせてゲームをスケーリングしようとしています。 ゲームを任意の解像度にスケーリングする最良の方法は何ですか? 編集:私はこれを達成しようとしています: http://www.david-amador.com/2010/03/xna-2d-independent-resolution-rendering/ しかし、彼が使用しているメソッドオーバーロードが見つからないため、彼が持っているコードはXNAの別のバージョンのものであると思います。

4
この奇妙な照明の問題を解決するにはどうすればよいですか?
Unityで小さなゲームを作成していますが、一部のモデルで非常に醜いシェーディングが表示されています。シェーディングは通常、三角形間のエッジに沿ってファンキーに見えます。私は3Dでの作業にかなり慣れていません。これは頂点ライティングのアーティファクトだと思いますが、よくわかりません。また、それを修正する方法もわかりません。 ここで、この問題の最悪の例を確認できます。 そのショットには低品質のライトマッピングが表示されていますが、フォアグラウンドのオレンジ色のメッシュの表面に表示される、目に見えるバンドと奇妙な形状について質問しています。メッシュはBlenderで構築され、UVマッピングされ、標準のバンプされた拡散シェーダーを使用しています。カメラの後ろと上にライトがあります。シーン内の他のすべてのライトはかなり離れています。私は何を間違っていますか、そしてどうすればもっとうまくできるでしょうか? 編集:以下はBlenderでのこのモデルのワイヤーフレームです。

1
柔らかい体、どこから学習を始めますか?
ソフトボディのシミュレーションを学ぶためのリソースについてお聞きしたいのですが、いくつかの優れた知識源を知っていますか? 自動車事故シミュレータを作りたいと思って何かを作りましたがうまくいきませんでした。:/

2
衝突システムの実装
まともな衝突システムを実装するための良い方法が何であるかを知りたいだけです。基本エンティティクラスから継承されたクラスとして?現在私は行き詰まっているので、自分のアイデアよりも優れたアイデアをいくつか使用することができます。 どんな助けでもありがたいです! 編集:すみません、それは2D衝突ですが、正直なところ、特定の衝突方法を探していません。実装ラインについてもっと調べています。次のような衝突システムを実装する一般的な方法のいくつかに興味があるだけです。 衝突システム全体を独自のクラスにする必要がありますか?何が継承可能であるべきですか? これらは私の質問の一部です。混乱させて申し訳ありません。

5
クラスを使用してXNAでスプライトを移動する
こんにちは、このプログラミングラークの初心者で、本当にイライラします。クラスを使用している間、ヘビをあらゆる方向に動かそうとしています。私は速度のためにvector2を作成し、ヘビをヘビクラス内で移動するメソッドを作成しようとしました。 今、私は混乱しており、次に何をすべきかわかりません。 どんな助けにも感謝します。ありがとう これは私がメソッドに関して行ったことです... public Vector2 direction() { Vector2 inputDirection = Vector2.Zero; if (Keyboard.GetState().IsKeyDown(Keys.Left)) inputDirection.X -= -1; if (Keyboard.GetState().IsKeyDown(Keys.Right)) inputDirection.X += 1; if (Keyboard.GetState().IsKeyDown(Keys.Up)) inputDirection.Y -= -1; if (Keyboard.GetState().IsKeyDown(Keys.Down)) inputDirection.Y += 1; return inputDirection * snakeSpeed; } どんな助けにも感謝します。ありがとう 編集: まあ私はすべてを明確にさせてください。割り当て用の小さな基本的なゲームを作っています。ゲームは、古いノキアの携帯電話での古いヘビゲームに似ています。私はスネーククラスを作成しました(ゲーム内で動くスプライトが1つだけになるため、これが必要かどうかはわかりません)。上記のコードを(snakeクラスで)作成した後、ゲームはエラーなしで実行されましたが、実際には画像を移動できませんでした:( EDIT2:みんなの回答に感謝します!!
7 xna 

1
Box2D回転ジョイントが分離する原因は何ですか?
ダイナミックボディ(長方形)とシンプルな回転ジョイント(低い角度と高い角度)を使用してラグドールを作成しました。ぼろ人形が地面(静的な物体)にぶつかると、身体がそわそわして関節が分離します。 ボディが地面にくっついているように見え、ラグドールの勢いが関節を引き離します(下のスクリーンショットを参照)。 関連しているかどうかはわかりませんが、Box2DにBadlogic GDX Javaラッパーを使用しています。以下は、最も関連性の高いコードだと私が思うスニペットです。 private RevoluteJoint joinBodyParts( Body a, Body b, Vector2 anchor, float lowerAngle, float upperAngle) { RevoluteJointDef jointDef = new RevoluteJointDef(); jointDef.initialize(a, b, a.getWorldPoint(anchor)); jointDef.enableLimit = true; jointDef.lowerAngle = lowerAngle; jointDef.upperAngle = upperAngle; return (RevoluteJoint)world.createJoint(jointDef); } private Body createRectangleBodyPart( float x, float y, float width, float height) …
7 physics  box2d 

6
一般的に、プログラマーやアーティストの方が報酬は高くなりますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 私は3Dアートのクラスもある私立のゲームプログラミング学校にいます。残念なことに、後者のクラスには50%や100%多い生徒がたくさんいるようです。 だから私は疑問に思っていました:実際のビデオゲーム業界では、アーティスト/モデル作成者とプログラマーのどちらが会社で望まれる可能性が高いので、誰がより多く支払われるのでしょうか? 他のプログラマーより明らかに給料が高いアーティストがいると確信しています。また、ゲーム業界には他の種類の仕事(サウンド、管理、テスター)があると確信していますが、一般的な傾向があるかどうか知りたいどちらか一方。そして、たまたまアーティストが脚本を書いてもいいのかしら。

1
ネットコード:予想される最大レイテンシとパケットロスの目標は何ですか?
ビデオゲームのネットコードを作成する場合、どのようなレイテンシターゲットとパケット損失率を設計しますか? 具体的には、現時点ではローカルネットワークでのみネットコードが機能しています。WANEMを使用してパケット損失と遅延をシミュレートする予定ですが、最大値と平均値に何を使用すればよいかわかりません。

2
滑らかな地形レンダリング
Direct3Dで滑らかな地形をレンダリングしようとしています。すべてのy値が0の50 * 50グリッドと、グリッド上の位置と「谷」または「丘」の深さまたは高さを示す一連の3Dポイントがあります。各3Dポイントにどれだけ近いかによって、グリッドの頂点のy値を高くしたり低くしたりする必要があります。したがって、最終的にはスムーズなテレインレンダラーが必要です。 どうすればいいのかよくわかりません。次の基本的な式を使用して、各ポイントまでの距離に基づいて頂点の高さを変更してみました。 dist = sqrt(a² + b² + c²) ここで、a、b、cは、頂点から3D点までのx、y、z距離です。私がこれで得た結果はまったくスムーズではありません。 おそらくもっと良い方法があると思います。 ここに私が今持っているもののスクリーンショットがあります:https : //dl.dropbox.com/u/2562049/terrain.jpg

4
長方形以外のホットスポットを作成し、クリックを検出する
不規則なホットスポットのあるゲーム(たとえば、リスク、またはParadoxのHearts of IronやCrusader Kingsなどの戦略ゲーム)については、どのようにしてください コードで、不規則な形状の非長方形のホットスポット(マップ上のテリトリーのように?)を定義しますか? ホットスポットを追跡してゲームにインポートするには、どのツールを使用できますか? 誰かがそのようなホットスポット内をクリックしたかどうかを検出するためのアルゴリズムは何ですか?
7 algorithm  gui 

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