ゲーム開発

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


1
クラス間のデータと依存関係をきれいにエレガントに処理する方法
私はSFML 2の2Dトップダウンゲームに取り組んでおり、すべてがうまく機能し、調和するエレガントな方法を見つける必要があります。 説明させてください。drawメソッドとupdateメソッドをすべてのクラスに提供する抽象ベースから継承するクラスがいくつかあります。 ゲームループでは、updateを呼び出してから各クラスを描画します。これは非常に一般的なアプローチだと思います。タイル、コリジョン、プレーヤー、およびすべてのタイル/画像/テクスチャを含むリソースマネージャーのクラスがあります。SFMLでの入力の動作方法のため、各クラスで(必要に応じて)更新呼び出しで入力を処理することにしました。 これまで、必要に応じて依存関係を渡してきました。たとえば、移動キーが押されたときのプレーヤークラスで、衝突クラスのメソッドを呼び出して、プレーヤーが移動したい位置が衝突かどうかを確認します。衝突がない場合にのみプレーヤーを移動します。 これはほとんどの部分でうまく機能しますが、もっと良くできると信じています。どうすればいいのかわかりません。 実装する必要のあるより複雑なものがあります。例えば、プレーヤーは地面のオブジェクトに近づき、キーを押してそれを拾い上げたり、それをインベントリに表示することができます。これは、いくつかのことを行う必要があることを意味します。 プレイヤーがキーを押すとルート可能なアイテムの範囲内にあるかどうかを確認し、そうでない場合は先に進まないでください。 アイテムを見つけます。 アイテムのスプライトテクスチャをデフォルトのテクスチャから「looted」テクスチャに更新します。 アイテムの衝突を更新します。形状が変更されたか、完全に削除された可能性があります。 追加されたアイテムでインベントリを更新する必要があります。 すべてを通信させるにはどうすればよいですか?現在のシステムでは、クラスがスコープ外になり、メソッド呼び出しが至る所で行われます。1つの大きなマネージャーですべてのクラスを結び付けて、それぞれに親マネージャークラスへの参照を与えることができますが、これはほんの少しだけ良いようです。 どんなヘルプ/アドバイスも大歓迎です!不明な点がある場合は、詳しく説明させていただきます。
12 c++  2d  architecture  sfml 

2
競合する3人のヒーローのフォーミュラ。それぞれに1人が負け、もう1人が負けた
私が持っているプロジェクトのゲームを設計しようとしています。主なアイデアは次のとおりです。 3種類のヒーロー 3 ヒーローごとの統計 関係するレベルはありませんので、統計上の違いを見つけなければなりません。 戦いのロジック-戦いのロジックは、type1heroがtype2heroを獲得するチャンスがあり、type2heroがtype3heroを獲得するチャンスがあり、type3heroがtype1heroを獲得するチャンスが高いことです。 1週間以上、私はこれを修正できる統計ベースの式を見つけようとしていますが、私は昨日数字をいじっていましたが、まともでしたが、それから式を抽出することはできません。 ファイトロジックを満たす非lvlゲームで数式の作成を開始する方法を教えてください。


2
球の周りの任意の回転
ユーザーが球の表面を動き回れるようにするメカニズムをコーディングしています。球上の位置は現在、thetaおよびとして保存されますphi。ここでthetaは、現在の位置のz軸とxz投影の間の角度(つまりy軸を中心とした回転)でphi、y軸から位置までの角度です。私はそれを不十分に説明しましたが、本質的にはtheta = yaw、phi = pitch Vector3 position = new Vector3(0,0,1); position.X = (float)Math.Sin(phi) * (float)Math.Sin(theta); position.Y = (float)Math.Sin(phi) * (float)Math.Cos(theta); position.Z = (float)Math.Cos(phi); position *= r; これは正確だと思いますが、間違っているかもしれません。半径のあるワールド空間の原点で、球の表面の周りを任意の疑似2次元方向に移動できる必要がありますr。たとえば、ホールディングWは球体の周りをプレーヤーの向きに対して上方向に移動する必要があります。 球体上の位置/方向を表すためにクォータニオンを使用する必要があると思いますが、正しい方法を考えることはできません。球面形状は、私の強力なスーツではありません。 基本的に、次のブロックを埋める必要があります。 public void Move(Direction dir) { switch (dir) { case Direction.Left: // update quaternion to rotate left break; case Direction.Right: // update …

5
トンネル効果cocos2d
COCOS2D(iOS)で同様のトンネル効果を作成したいと考えています。誰かがポインターを提案できますか? 参照ビデオ1 参照ビデオ2 今まで、縮尺を小さくして中心を同じポイントに配置し、小さいスプライトごとにZを小さくしたまま、いくつかのリング形状のスプライトを試しました。 それにより、CCScaleToでアニメートし、アニメーションの継続時間でサイズを2.0に変更しますが、参考文献に示されているトンネル効果に近づきません。 ありがとう、サム

3
開発費用をどのように決定するのですか?
他の2人の友人と私は非常に小さなゲーム開発スタジオです。これまでのところ、ゲームはリリースしていませんが、発売の準備が整った2つのゲームがあります。大きなスタジオが私たちの作品を見て、今彼らは私たちと一緒に働きたいと思っています。モバイルゲーム(iOS、Android)を開発する人々が必要です。 彼らは私たちにプロジェクトの価格を設定することを望んでいます(私たちがNDAに署名した詳細を伝えることはできません)。それらはすべてのアセット(グラフィック/サウンド)を提供するので、コーディングするだけです。そして、彼らはUnity3Dでしか動作しないので、それを学ぶ必要があります。 プロジェクトの料金をどのように決定しますか?
12 android  ios  sales 

3
曲線による衝突検出
私は、動く円とある種の静的曲線(おそらくベジェ曲線)との間の衝突検出を行いたい2Dゲームに取り組んでいます。 現在、私のゲームは静的なジオメトリとして直線のみを特徴としており、円から線までの距離を計算し、距離が円の半径より小さい場合に線を円から投影することで衝突検出を行っています。 この種の衝突検出を比較的簡単な方法で行うにはどうすればよいですか?たとえば、Box2Dにはベジェ曲線による衝突検出機能が備わっていることを知っています。完全な機能を備えた衝突検出メカニズムは必要ありません。説明したことを実行できるものだけです。 更新:すばらしい回答をありがとう!あなたが説明した方法を完全に理解するには、ベジェ曲線を読む必要があります。その後、私はあなたに戻ります。

2
物理学によるマルチプレイヤーネットワーキング
私は、物理学を使用したマルチプレイヤーネットワーキングがレーシングゲームでどのように実装されているのか興味があります。私たちは、異なる人々によって制御される複数の高速移動車両で物理的な世界を持っています。車両には武器があり、互いに射撃できるとしましょう(ツイストメタル、Vigilante v8) ヒットとコリジョンが心配です。権限のあるサーバーまたはより良い代替手段?

1
レンダリング、バッチ、グラフィカルカード、パフォーマンスなどに関する情報+ XNA?
タイトルは少しあいまいですが、私が本当に探しているものを説明するのは難しいですが、ここに行きます。 CPUレンダリングに関しては、パフォーマンスはほとんど推定が容易で簡単ですが、GPUに関しては技術的な背景情報が不足しているため、手がかりがありません。私はXNAを使用しているので、理論がそれに関連していればいいと思います。 私が実際に知りたいのは、特定の描画アクションを行うと、いつどこで何が起こるかということです(CPU / GPU)。バッチとは何ですか?効果、投影などはどのような影響を与えますか?データはグラフィックカードに保持されますか、それともすべてのステップで転送されますか?帯域幅について話すとき、グラフィックカードの内部帯域幅について話していますか、それともCPUからGPUへのパイプラインについて話していますか? 注:描画プロセスがどのように行われるかについての情報を実際に探しているわけではありません。それはGPUのビジネスです。それに先行するすべてのオーバーヘッドに興味があります。 アクションXを実行したときに何が起こっているのかを理解し、それにアーキテクチャとプラクティスを適合させたいと思います。 より良いゲームを書く方法についてより多くの洞察を与える記事(おそらくコード例付き)、情報、リンク、チュートリアルは大歓迎です。ありがとう:)

2
非プログラマ向けのXNAゲームの展開を促進する
現在、ベースとしてXNAのRPGスターターキットを使用して、RPGに取り組んでいます。(http://xbox.create.msdn.com/en-US/education/catalog/sample/roleplaying_game)私は小さなチーム(2人のデザイナーと1人の音楽/サウンドアーティスト)で作業していますが、私は唯一のチームですプログラマー。現在、次の(持続不可能な)システムを使用しています:チームがゲームに追加する新しい写真/サウンドを作成するか、既存のサウンド/写真を変更してから、現在のビルドを保持するリポジトリに作業をコミットしますすべての。(コード、画像、音声など)毎日かそこらで、新しいインストーラーを作成し、新しい画像、コードの変更、および音声を反映して、全員がインストールします。 私の問題はこれです。たとえば、チームの他のメンバーが戦闘音を置き換えることができ、構築するのを待たずにすぐに変更を確認できるシステムを作成したいです。XNAのセットアップ方法は、公開する場合、すべての画像ファイルと音声ファイルをエンコードするため、チームは「ホットスワップ」できません。Microsoft VSをすべてのコンピューターにセットアップして、すばやく公開する方法を示すことができますが、これを行う簡単な方法があるかどうかを知りたかったのです。 XNAを使用してチームで作業しているときに、誰かがこれに思いついていますか?
12 xna  rpg 

2
C ++用のOpenal SDKはどこで入手できますか?
私が見ているOpenALサイトは、古くて壊れたシェアポイントポータルであり、ダウンロードセクションのSDKは、リクエスト時に500 htmlコードを提供します。 http://connect.creativelabs.com/openal/Downloads/OpenAL11CoreSDK.zip 私はソフトペディアでOpenAL SDKを見つけましたが、ヘッダーがありますが、alu.hまたはalut.hはありません。これは、私が見ているチュートリアルではwavなどをロードするために明らかに必要です 私は何が欠けていますか?OpenALが死んだか何か?
12 openal 

2
古いゲームで衰退します。アルゴリズムがどのように導出されたかを理解するのに助けが必要
申し訳ありませんが、この質問は少し難解ですが、頭から出せないだけです! アーケードゲームDoDonPachi(および他の多くの古いゲーム)で使用されているフェードアルゴリズムを見ています。 数個のピクセルを選択し、フェードの持続時間にわたって追跡するためのpythonスクリプトを作成しました。結果の代表的なサンプルを次に示します。各グループの最初の行は開始色値であり、後続の各行は現在のフレームの色値と前のフレームの色値の差です。 Starting Value: (132, 66, 189) Frame 1: [9, 9, 8] Frame 2: [8, 8, 8] Frame 3: [8, 8, 8] Frame 4: [8, 8, 9] Frame 5: [9, 9, 8] Frame 6: [8, 8, 8] Frame 7: [8, 8, 8] Frame 8: [8, 8, 9] Frame 9: …
12 algorithm  arcade 

2
libgdxでテクスチャを繰り返します
繰り返されるテクスチャで領域を埋める方法は?今、私は次の方法を使用しています: spriteBatch.begin(); final int tWidth = texture.getWidth(); final int tHeight = texture.getHeight(); for (int i = 0; i < regionWidth / tWidth; i++) { for (int k = 0; k < regionHeight / tHeight; k++) { spriteBatch.draw(texture, i*tWidth, k); } } spriteBatch.end(); それは非常に明白です。たぶん組み込みのメソッドはありますか?

2
「合理化された」ユーザーインターフェイスとは何ですか?
この「合理化された」ユーザーインターフェイスという用語に出くわしましたが、他のユーザーインターフェイスタイプとどのように違うのでしょうか。「合理化された」ユーザーインターフェイスと「非合理化された」ユーザーインターフェイスの違いは何ですか?
12 ui-design 

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