ゲーム開発

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

3
マップ全体の設計とタイル配列の設計
私は2D RPGに取り組んでいます。これは通常のダンジョン/タウンマップ(事前生成)をフィーチャーします。 私はタイルを使用しており、それを組み合わせてマップを作成します。私の当初の計画は、Photoshopまたは他のグラフィックプログラムを使用してタイルを組み立て、1つの大きな画像をマップとして使用できるようにすることでした。 ただし、配列を使用してエンジンでマップを構築する方法について人々が話している場所をいくつか読んだことがあります(そのため、xタイルの配列をエンジンに与え、それをマップとして組み立てます)。方法は理解できますが、実装がはるかに複雑になり、明確な利点がわかりません。 最も一般的な方法は何ですか、それぞれの長所/短所は何ですか?
10 tiles  maps 

1
スクリーンスペースからワールドスペース
私のゲームの世界では、x軸が左から右、y軸が上から下、z軸が画面の外に出ている2Dゲームを作成しています。 私のゲームの世界はトップダウンですが、ゲームは少し傾いてレンダリングされます。 私は、ワールドスペースからスクリーンスペースへ、またはその逆への投影に取り組んでいます。前者は次のように動作しています: var viewport = new Viewport(0, 0, this.ScreenWidth, this.ScreenHeight); var screenPoint = viewport.Project(worldPoint.NegateY(), this.ProjectionMatrix, this.ViewMatrix, this.WorldMatrix); NegateY()XNAのため、拡張メソッドは、それがのように聞こえるまさに行い、Y軸は、トップの代わりに、上から下へ下へと走ります。上のスクリーンショットは、これがすべて機能していることを示しています。基本的に、私は3D空間に多数のポイントを持ち、それを画面空間にレンダリングします。カメラのプロパティをリアルタイムで変更して、新しい位置にアニメーション表示することができます。明らかに、私の実際のゲームはポイントではなくスプライトを使用し、カメラの位置は固定されますが、それに到達する前に、すべての計算を適切に実行しようとしています。 今、私は逆に変換しようとしています。つまり、上の画面空間のxとyの点を指定して、ワールド空間の対応する点を決定します。たとえば、緑色の台形の左下にカーソルを合わせると、ワールドスペースの読み取り値は(0、480)になります。Z座標は無関係です。または、むしろ、ワールド空間にマッピングし直すとき、z座標は常にゼロになります。基本的に、私はこのメソッドシグネチャを実装したいと思います。 public Vector2 ScreenPointToWorld(Vector2 point) 私はこれを機能させるためにいくつかのことを試みましたが、運が悪いだけです。私の最新の考えでは、Viewport.Unproject異なるz値とfar z値を使用して2回呼び出し、結果を計算Rayし、それを正規化してから、基本的に私の世界の地上レベルを表すRayとの交差を計算する必要がありPlaneます。しかし、私は最後のステップで立ち往生し、私が物事を過度に複雑にしているのかどうか確信が持てませんでした。 これを達成する方法について誰かが正しい方向に私を向けることができますか?
10 xna  c#  matrix  projection  screen 

4
衝突長方形の応答
移動可能な長方形を複数の長方形と衝突させるのに問題があります。 私はSFMLを使用していて、intersects2つの四角形を取り、その交差部分を返すという便利な関数があります。移動可能な四角形を衝突させたい四角形でいっぱいのベクトルがあります。私は次のコードを使用してこれをループしています(pは移動可能な四角形です)。 IsCollidingWithブール値を返しますがintersects、交点を計算するためにSFMLも使用します。 while(unsigned i = 0; i!= testRects.size(); i++){ if(p.IsCollidingWith(testRects[i]){ p.Collide(testRects[i]); } } そして実際のCollide()コード: void gameObj::collide( gameObj collidingObject ){ printf("%f %f\n", this->colliderResult.width, this->colliderResult.height); if (this->colliderResult.width < this->colliderResult.height) { // collided on X if (this->getCollider().left < collidingObject.getCollider().left ) { this->move( -this->colliderResult.width , 0); }else { this->move( this->colliderResult.width, 0 ); } …

1
マルチプレイヤースペース分割のための効率的なソリューション?
この質問は少しトリッキーですが、私はそれを明確にするように努めます。 私がオンラインゲーム(MMOスケールではない)を構築しているとしましょう。しかし、それは信頼できるサーバーアプローチで可能な限り多くのプレイヤーをサポートします。AIシミュレーションの敵がたくさんいる本当に大きな世界が欲しいです。 スペースを分割して処理の必要がないものを処理しないことにより、サーバーのCPUを節約するいくつかの戦略を知っています。ロードタイムと小さなトランジションを必要とする地域ですでに世界を分割しています。ローカルで(単独で、または数人の友人と一緒に)プレイするときにゲームプレイの品質を維持することが重要だと思います。プレイヤーが1つまたは2つ以上のリージョンにいるとは思わない。 問題は、リージョンがかなり大きくなり、一度に多くのNPCをシミュレートできることです。プレイヤーの経験に影響を与えずにこれをどのように処理しますか?地域ごとに1つのサーバーなどのアプローチは、この表には含まれていません。 私は主に敵の大群、さらには平和なNPCを保持するためのデータ構造を探しています。質問を完成させるために、車両が存在するため、リージョン内を移動するのがかなり速く、エリアを間引く「タイミング」に影響を与えることに注意してください。

12
プログラミングが好きではない場合、どうすればビデオゲームを作成できますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 私は私の学校でC ++コードを勉強しています(私の専攻はコンピューター・プログラミングです)。正直なところ、私の成績はあまり良くなく、課題は本当に難しいです。将来、自分の仕事のために1日あたり8〜10時間のコーディング(ストレスが多い)をするのが悲しいときがあります。 しかし、私はまだビデオゲームを作りたいです。たぶん、これが私がこれらのストレスの多いコースすべてを取っている唯一の理由です。プロット、ストーリー、キャラクター、架空のゲームの世界を常に書き留めています。一度、C ++やC#などのコンピューターテクノロジーではなく、ゲームデザインなどの芸術的テクノロジーを学ぶべきだと思っていました。 しかし、児島や宮本など人気のゲームデザイナー(またはディレクター)のほとんどは、以前は優れたプログラマーでした。企業は、ゲームの作り方を理解しているため、プログラマーをディレクターに実際に割り当てます。 ゲームデザインプログラムを教えている他の大学を探すようにしています。ただし、調査会社が学生の参加者からのみ採点しているため、北米のランク10のゲームデザイン学校をリストする1つの記事は信頼できないようです。 かつて、その記事によるとランク7のバンクーバー美術館に出席しようとしました。ところが、そこで講師をしていたプログラマーが、卒業生の就職率が低いということを教えてくれました。 プログラミングが好きではない場合、どうすれば将来ゲームを作成できますか?

3
2DゲームでDX10 / 11を使用することに何か利点はありますか?
私はDX10 / 11クラスのハードウェアによって導入された機能セットに完全に精通していません。ジオメトリシェーダー、計算シェーダー、新しいテッセレーションステージなど、プログラム可能なグラフィックスパイプラインに追加された新しいステージについては、漠然と精通しています。しかし、これらのどれが2Dゲームの違いを大きく変えるかはわかりません。 2DゲームをDX10 / 11(またはOpenGLの同等物)に切り替える説得力のある理由はありますか、または市場のかなりのシェアが古い技術(例: 2012年2月のSteam調査では、約17%のユーザーがまだWindows XPを使用していると回答しています)?
10 2d  graphics  directx 

5
ビデオゲームの執筆に入るには?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 6年前休業。 私は、ユニークで魅力的な自然のキャラクター、世界、プロットラインを作成する才能を持つ優れた作家です。どういうわけか私はコンピューターサイエンスを勉強していますが、フィクションの執筆が私の本当の使命であることは知っています。 ビデオゲームのストーリー、キャラクター、セリフを開発するエントリーレベルの仕事やインターンシップを見つけるにはどうすればよいですか?それが私の夢の仕事です。 機会を見つけられる場所に関するヒントはありますか?グーグル検索はゲームデザインの仕事を大量に出しましたが、私はそれは違うと思います。執筆に関することは何も見つかりませんでした。 ありがとう!
10 jobs 

2
射影テクスチャと遅延照明
で、私の前の質問、私は延期照明と投影テクスチャリングを行うことが可能であるかどうかを尋ねました。現在(半年以上後)、同じものの実装に問題があります。私はこのテクニックをライトパスに適用しようとしています。(私のプロジェクターはアルベドに影響しません)。私はこのプロジェクターを持っています投影マトリックスを見る: Matrix projection = Matrix.CreateOrthographicOffCenter(-halfWidth * Scale, halfWidth * Scale, -halfHeight * Scale, halfHeight * Scale, 1, 100000); Matrix view = Matrix.CreateLookAt(Position, Target, Vector3.Up); どこhalfWidthとhalfHeightテクスチャーの幅と高さの半分です、Positionプロジェクターの位置で、targetプロジェクターのターゲットです。これは問題ないようです。私はこのシェーダーでフルスクリーンクワッドを描画しています: float4x4 InvViewProjection; texture2D DepthTexture; texture2D NormalTexture; texture2D ProjectorTexture; float4x4 ProjectorViewProjection; sampler2D depthSampler = sampler_state { texture = <DepthTexture>; minfilter = point; magfilter = point; mipfilter …

5
LinuxでのiOS用の開発[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 2年前休業。 LinuxでiOS用のゲームを開発するためのエンジンまたはライブラリーを探しています。 高レベル、低レベル、GUI、GUIなし、それほど重要ではありません。私は本当に何かを探しています。 LinuxなどからiOSにデプロイすることについて実際に話しているのではありません。Linuxで実行するために必要な最小限の変更を加えて、Linuxで作業の大部分を行いたいだけです。 編集:はい、Macにアクセスできますが、制限があります。ですから、私の通常のUbuntuボックスでプロジェクトに取り組みたいと思っています。 また、私は有料の開発者プログラムに参加しているので、MacからiOSデバイスに展開できます。
10 ios  iphone  linux 

2
管理された言語でパーティクルプールを使用する価値はありますか?
パーティクルシステムのオブジェクトプールをJavaで実装するつもりでしたが、ウィキペディアでこれを見つけました。言い換えると、JavaやC#などのマネージ言語ではオブジェクトプールを使用する価値がないとあります。これは、C ++などの非マネージ言語では数百の操作に比べて、割り当てには数十の操作しか必要ないためです。 しかし、誰もが知っているように、すべての命令はゲームのパフォーマンスを損なう可能性があります。たとえば、MMO内のクライアントのプール:クライアントがプールに入ったり出たりする速度が速すぎません。しかし、粒子は一秒間に数十回更新される可能性があります。 問題は、マネージ言語でパーティクル(具体的には、死んですぐに再作成されるもの)のオブジェクトプールを使用する価値があるかどうかです。

2
3D空間に1ピクセル幅の線を描く
カメラからどれだけ離れていても、画面上で常に正確に1ピクセル幅の線を3D空間に描画したいと思います。(単一点についても同じです)。 私がそれをどのように行うことができるかについてのヒントはありますか?
10 xna 

3
何かが起こったときに音を鳴らす良い方法は?この音はどうですか?
だから私は自分のクラスがどれだけモノリシックになるかを考えていました。たとえば、CharacterクラスのJumpメソッドでは、サウンドエフェクトオブジェクトへの参照があり、それを再生できます。それ自体は問題ありませんが、物理学、アニメーション、衝突などを考慮に入れると、Jumpメソッドは巨大になり、Characterクラスには多くの異なるものへの多くの依存関係があります。それでも、これで問題ない可能性があります。ただし、キャラクターがジャンプしたときにサウンドを再生したくない場合はどうすればよいでしょうか。さて、コードのごちゃごちゃした混乱の中から特定のコード行を見つけてJump、コメントアウトするか、何でもしなければなりません。 それで..と思っていました。 代わりに、ある種のAudioSystemクラスがあり、他のクラスに関心のあるランダムなイベントをサブスクライブした場合はどうなるでしょうか。たとえば、クラスにはメソッド内のクラス内で発生CharacterするJumpedイベント(静的だと思います)があるかもしれませんCharacter。次に、Characterクラスは、キャラクターがジャンプしたときに再生される小さな音響効果について何も知りません。これAudioSystemは、静的イベントを使用してゲーム内で発生する特定のイベントでサウンドエフェクトをフックするためにプログラマが後退できる巨大なクラスです。その後、それはのようなサブクラスにして分離することができ大きすぎるなった場合はEffectsAudioSystem、BackgroundAudioSystem、AmbientAudioSystem、エトセトラ。 次に、ゲームのオプションで、これらの種類のサウンドを有効または無効にするチェックボックスを設定できます。実行する必要があるのは、単純な単一のブールフラグでその1つのシステムを無効にすることだけです。このシステムの考え方は、物理学、アニメーションなどにも拡張でき、プレーヤーのアクションから生じるゲームの応答のほとんどが、これらの精巧で分離されたシステムを通じて接続されます。 さて、私の質問は少しあいまいかもしれませんが、この種のことはどのように聞こえますか?このようなシステムについては、これまであまり話を聞いたことがありません。これは、今のところコーディングがまったく行われていないので、頭の中で問題になっているので、おそらく「理論的には良いが実際にはない」種類の取引の1つでしょう。この種のシステムは、より大きなゲームで機能するのでしょうか、それとも最終的に故障して、元のシステムよりもさらにスパゲッティの混乱になるのでしょうか?
10 c#  architecture  sound 

2
ブレイクアウト衝突:衝突の側面の検出
私はブレイクアウトクローン(私の最初のゲーム)を書いていて、レンガのどちら側がヒットしたかを理解する方法について完全に行き詰まっています。 私はこのような衝突検出方法を持っています: DetectCollision(Object a, Object b) x = distance(a.x, b.x); y = distance(a.y, b.y); if (x is smaller than the combined width & y is smaller is than combined height { return true; } return false; これはまったく問題なく動作しますが、適切に応答するためには、衝突の側面と、中心からの相対的な位置を知る必要があります。 私は過去数日間を振り回して過ごしましたが、道に迷っています。

2
キャラクター/オブジェクトの相互作用アニメーションは、等尺性ゲームでどのように機能しますか?
机やホワイトボードなどの通常の家具が置かれたオフィスをプレイヤーが見るアイソメトリックビジネスシミュレーションゲームを計画しています。 ゲーム内のキャラクター(スタッフ/ NPC)は、デスクのキーボードでの入力やホワイトボードへの書き込みなど、事前定義されたタスクを実行して、これらのオブジェクトと対話する必要があります。 特に私が興味を持っているのは、次のシナリオです。 キャラクターはオフィス(1)を横切って自分のデスク(2)に移動し、座ってタイプし始めます(3)。 私が理解していることから、キャラクターの動き(1)にはスプライトシートがあり、デスク(2)には静的なスプライトがありますが、3番目のステップの処理方法がよくわかりません。 デスクとキャラクターの両方を含む複合スプライトはありますか?私はそうではないと思います。さもなければ、すべての机とキャラクターの組み合わせにスプライトシートが必要になるでしょう。 これは通常どのように処理されますか? 編集: ゲームTheme Hospitalの具体的なアニメーション例を以下に示します。あなたはここでビデオを見ることができます。 私が見る限り、アニメーションはいくつかのステップに分かれています。 ステップ1-キャラクターは机と椅子の間を移動します。 これは、椅子とデスクが実際には別々のスプライトであることを示唆しています。 ステップ2-キャラクターが座るアニメーション 一番最後のフレームで椅子が机に近づいていることに注目してください。 ステップ3-デスクのアニメーション ステップ4-立ち上がるアニメーション 座るのと同じですが、逆に演奏されます。 ステップ5-離れる 通常の移動アニメーションを使用して離れます。 私の質問は、これらのアニメーションをどのように分離するのが最も良いか、グラフィックアーティストが通常これらのアニメーションをどのように提供するのかということです。 キャラクターが机に座って入力しているのは、実際には3つの異なるスプライト(机、キャラクター、椅子)ですか?同様のアニメーションのスプライトの例を知っている人はいますか? 編集2: 私の最大の懸念は、スプライトが実際にどのように見えるかについて正しい期待を持っていることだと思います。私はそれらを自分で描くことができないので、それを行うには誰かにお金を払わなければならないでしょう、そして私はこれらの種類のアニメーションを行う何らかのベストプラクティスの方法があると思いますか?


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