ゲーム開発

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

5
潜在的な雇用主は、優れたポートフォリオで何を求めていますか?
仕事仲間と私は、ゲーム開発のためにインディーシーンに参入したいと考えています。さまざまな問題に対するさまざまなアイデアとアプローチを示す技術デモをいくつか実行しました。今、私は、後の道のりのポートフォリオを開発するために、プロジェクトにコミットする時が来たと感じています。 実際のプロジェクトの開始方法、具体的にはエンジンの作成またはOTSパッケージの使用、または使用してから作成する、作成してから使用するなど、非常に苦労しています。 潜在的な雇用者にはどちらが良いでしょうか?あなたのエンジンを含むゲームの小さなポートフォリオ、または何かOTSを使用して構築された(おそらく)大きなゲームのポートフォリオ? 私はプログラマーです。私はアーティストではありません。このプロジェクトのほとんどのプログラミングを実行します。私の相棒も開発者ですが、彼はグラフィカルツールにも精通しています(したがって、彼は芸術家になります)。 職場では、私たちは両方とも.NET開発者(C#)です。「さて、XNAを使用する」ことを知っている人もいます。これまでに完了したデモはXNAで行われました。しかし、XNAポートフォリオの構築には懸念があります。DirectXを抽象化するのは良いことですが、XNAを簡単に拡張するために必要な知識ベースを構築できないのではないかと心配しています。その議論への反論は、おそらく「XNAの後、より簡単にDirectXに移行できる」ことでしょうが、私はキャリアをビジネス開発からゲーム開発に移すので、現在XNAに集中する価値はありますか?または、XNAと言うと雇用主になる可能性がありますか? 学んだ概念と教訓がほとんど移転することを知っているXNAの経験を受け入れるべきですか?または、最も貴重なリソース(時間)を他の場所で費やしますか? 業界の獣医からアドバイスを求めています。
21 career 

5
アセンブリによる最適化の学習[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 私はコンピューターゲームテクノロジーの2年生です。私は最近、自分のパスファインダーの「種類」の最初のプロトタイプを完成させました(幾何学的なアプローチ/パターン認識の代わりにA *を使用しません。地形が既にわかっている場合、実際に探索できるAIが必要でした。パスファインダーにはノードのメモリがあるため、最短距離で簡単に歩きます)。 とにかく私の質問はより一般的です:アルゴリズム/ループ/ for_each /などの最適化を開始するにはどうすればよいですか。一般的なヒントは大歓迎ですが、アセンブリを使用します。このトピックに関する良い本を見つけるのは本当に難しいので、私は特に良い本を探しています。このような小さな記事がいくつかありますが、それでもアルゴリズム/ゲームを最適化するには十分な知識がありません... 私が見つけることができなかった現代の良い本がそこにあることを願っています...

2
AAAゲームの範囲外
多くの一般的なAAAタイトル(特にソースエンジンゲーム)では、境界外やマップの下の傾斜など、プレーヤーが「未分類」の領域に到達したとき。画面に奇妙な効果が発生します(バッファのティアリング?)。 これは、Windows XPがシステムがハングしている間にドラッグされたウィンドウを後に残す可能性があるウィンドウの軌跡に似ていると説明できます。 画面を更新するときに開発者がカラーバッファをクリアしないと仮定することしかできませんか? あれは正しいですか?もしそうなら、なぜですか?
21 rendering 

4
アイランドマップマスクを作成する簡単な方法
私は、C#を使用して島のマップのマスクを生成するための素敵で簡単な方法を探しています。 基本的には、地形が水に囲まれていないパーリンノイズで生成されたランダムハイトマップを使用しています。 次のステップは、マスクを生成して、角と境界がただの水であることを確認することです。 その後、perlinノイズ画像からマスクを差し引くだけで島を取得できます。 コントラストをいじって 勾配曲線を使用すると、希望どおりに島の高さマップを取得できます。 (これらはもちろん単なる例です) ご覧のとおり、島の「エッジ」は切り取られていますが、カラー値が白すぎない場合は大きな問題ではありません。グレースケールを4つのレイヤー(水、砂、草、岩)。 私の質問は、2番目の画像のように見栄えの良いマスクをどのように生成できますか? 更新 私はこの手法を見つけましたが、それは私にとって良い出発点のようですが、目的の出力を得るためにどの程度正確に実装できるかわかりません。 http://mrl.nyu.edu/~perlin/experiments/puff/ 更新2 これが私の最終的な解決策です。 makeMask()このように正規化ループ内に関数を実装しました。 //normalisation for( int i = 0; i < width; i++ ) { for( int j = 0; j < height; j++ ) { perlinNoise[ i ][ j ] /= totalAmplitude; perlinNoise[ i ][ j ] …

18
RPGゲームのウィザード/キャスタークラスにとって「強度」属性をより魅力的にするにはどうすればよいですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私は、多くの属性の中で、筋力と体質であるゲームを持っています。ウルティマオンラインでは、ヒットポイントにストレングスが使用されました。ただし、これは避けたいと思います。ヒットポイントは非常に重要であるため、どのクラスでも、プレイするすべてのゲームでヒットポイントが多く必要になります。ほぼすべてのMMORPGおよび多くのRPGで、プレイヤーは基本属性とほぼ同じ程度に構成をスタックします。 私はインテリジェンスが戦士のタイプを助ける方法がたくさんあります。それは私に非常に多くの困難を与えているWIZARDタイプを助ける属性STRENGTHの問題です。 WarriorとRogueの両方のタイプは近接ダメージであり、プレイヤーは高いダメージを積み重ねることを好む傾向があるため、Strengthはより簡単に重要な統計になります。ただし、遠くから呪文を唱え、ダメージ属性としてインテリジェンスに依存しているウィザードにとって、筋力はほとんど役に立たない。 ウィザードの種類、または近接戦闘を行わないクラスにより魅力的にするために、私は強さのために何ができますか? 私が間違っている場合は修正しますが、誰かがより多くの物理的な筋肉とより多くの持ち上げ能力を持っているので、スペル/マジックがより強力になるべきだとは感じません。キャスターに多くの不屈の精神または全体的な健康な体があった場合、マジックにもっと力を与えることは理にかなっていますが、それはすでに憲法として定義されています。 筋力は、ステレオタイプのRPGよりもウィザードのタイプにインテリジェンスと同じくらい魅力的です。 私は「ダム・ブルート・ウォリアー」と「インテリジェント・ウォリアー」のバランスを見つけることができました。近接戦闘を導入せずに、「バフコナンウィザード」と「インテリジェントだが虚弱なウィザード」のバランスを見つけるにはどうすればよいですか。 ユニークなゲームプレイ機能を追加したり、従来のRPGスタイルのプレイを変更したりすることは大歓迎です。

4
ゲームアセットを取得するための最適な合法的な方法は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私はゲーム開発を研究していますが、アセット作成には2つのオプションがあることを知っています:アセットを自分で作成するか、アセットを外部委託します(カスタムメイドにするか、ユニティアセットストアなどのサイトで見つける)。 契約のウェブサイト、ロイヤリティフリーのアセットライブラリ、その他のアセットストアなど、アセットのその他の主なソースは何ですか? さらに、他の方法がある場合、資産を取得する他の方法は何ですか?

3
ゲームエンジンとデータ駆動設計
データ駆動設計について聞いたことがあり、しばらくの間それについて研究を続けてきました。そのため、概念を理解するためにいくつかの記事を読みました。 記事の1つは、Kyle Wilsonが作成したData Driven Designです。。彼が説明したように、アプリケーションコード(メモリ、ネットワークなどのリソースを制御するためのコード)とゲームロジックコードを分離し、ゲームロジックコードを外部データソースによって駆動する必要があるように思えます。この時点で、開発者はゲーム内オブジェクトに関する外部データ(キャラクター情報、武器情報、マップ情報など)を受け入れる何らかの種類のゲームエディターを作成することを想像できます。シナリオ設計は、プログラマーが作成したカスタム言語/ツールによってスクリプト化され、ゲームデザイナーがゲームオブジェクト間の相互作用を作成できるようにします。ゲームデザイナーは、既存/カスタムスクリプト言語を使用してゲームのスクリプトを記述するか、ツールをドラッグアンドドロップしてゲームワールドを作成します。私が考えることができるツールのアプローチの例は、通常Bliizardのゲームと一緒にパッケージ化されたWorld Editorです。 ただし、別の記事では、データドリブンデザインの使用、データドリブンデザインに対するケースに反対しています。ゲームの設計者にはプログラミングの負担があるため、ゲームの開発に時間がかかるため、著者はゲームの設計をデータで駆動させないことをお勧めします。代わりに、スケッチデザインからゲームを自由にプログラムするゲームプログラマーが存在し、ゲームプログラミングの終了後にゲーム設計者によって検証されます。彼はこれがプログラマー主導であると呼んでいます。この方法について私が思うことは、私がかつて行った方法に似ています:ゲームロジックは、上記のアイデアと同様に、アプリケーション自体であり、アプリケーションはゲームエディターであり、実際のゲームはツールに基づいて設計されています。 ゲームコンポーネントは多くのプロジェクトで再利用できるため、私にとっては、最初の方法の方が合理的だと思われます。データ駆動設計に反対する2番目の方法では、ゲームコードはそのゲームにのみ属します。これが、WarcraftにはオリジナルのWarcraftやさまざまなカスタムマップなど、非常に多くのゲームジャンルがあり、最も有名なものの1つである、実際に新しいジャンルを定義するDOTAがあると思う理由です。このため、World Editorをゲームエンジンと呼ぶ人がいると聞きました。これはゲームエンジンがどうあるべきか本当ですか? したがって、これらすべての後、これらのアイデア(データ駆動型、プログラマー駆動型、スクリプト作成など)についての私の理解に欠陥があることを確認したいだけです。

3
マルチプラットフォームマルチスレッド:本当の課題は何ですか?
SDLのようなライブラリは、スレッド化のためのクロスプラットフォームラッパーAPIを提供しますが、これが非常に異なるプラットフォーム(デスクトップ/モバイル)でのゲームの簡単な開発に直接つながると考えるのは単純だと思います。 次の点を考慮して、この方法で開発に取り組む最良の方法は何ですか(クロスプラットフォームスレッドAPIが与えられた場合): 異なる数のコア コアごとに大幅に異なる処理機能 一般的に異なるシステムアーキテクチャ、たとえば。キャッシュ、RAM、およびI / Oアクセスのさまざまなレイテンシ これを行う唯一の方法は、サポートする各デバイスごとに実行できるスレッド数を評価し、最小公分母が何であるかを調べることだと感じています。ただし、これにより、利用可能な処理スループットの合計量に関して、私はまだ暗闇の中に残ります。これを効果的に行う唯一の方法は、開発中、サポートするつもりの最低スペックのモバイルデバイス向けに積極的に開発することだけだと思いますか?-すなわち、最小公分母?これで大体十分でしょうか?それともこれ以上のものがありますか? 編集:私の質問がまだ完全に回答されているとは思わないので、他の人がこれについてさらに経験を提供してください。

6
衝突100%回避の実装
私は、ゲーム開発と、私が知っているすべての衝突回避/解像度については、私はそれを学んだと絶対初心者だ上またはを通じて、過去の週に、このサイト...私はここに求めているものですので、もし正しい私に躊躇しないでください間違った仮定/誤解に基づいています。明確にするために最善を尽くしましたが、それは主題がまだ私にとって斬新であると言いました。 乗り物 私のゲームでは、自律的に移動する車両があります。それらは3D空間に配置され、その動きは各車両ごとに異なる多くの変数によって管理されます。ここで関心のあるものは主に: 前進のみ。 速度最小と最大の間で変化することができるが、その分ではない(でも近くに)ゼロ。 速度に依存するステアリング半径(速度が速いほど、半径が大きい) 2つの最大加速度(速度の増減に使用) ゴール 私の目標は、100%正確な衝突回避を実現する何らかのAIを実装することです(つまり、車両が衝突することはありません)。 設計 が、私はより多くのAIを持つことのアイデアを好む「オンボード」(すなわち、最終的に照会および/または他の車両へメッセージを送信する、それ自身の「AI回避衝突」を有する各車両)私はでCA AIを実装することも可能です中央レベル(車両へのコマンドのディスパッチ)。 ほとんどの場合、車両はあら​​ゆる方向に互いを避けなければなりませんが、特定の状況では、衝突を避けて同じターゲットに向かう必要があります これまでに見つけたものと行き詰まった場所 このサイトの他の質問で見つけた多くのリンクの中で、特にこれらのリンクを使用していることがわかりました。 プールボール同士の衝突 不当な衝突回避 待ち行列 これらの3つのリンクは多くの点で「目を開きました」が、私の場合、その情報をどのように使用するかがすぐにはわかりません。特に記事#2では、衝突を防ぐために「試行」するだけです(ただし、衝突は時々発生します)。記事3では、衝突を防ぐために車両を時々停止する必要があります。 私が気づいたのは、上記のリンクされた衝突回避アルゴリズムが線形速度の「瞬時投影」を使用して、何かが車両の途中にあるかどうかをチェックすることです。私の場合、これで十分なのか、もっと現実的な方法で自分の位置を投影する必要があるのか​​疑問に思っていました(例:右に90°のステアリングに60°いる場合、残りの位置について自分の位置を計算する必要があります曲線の30°、および直線運動を想定)。 最後に、私は特にデッドロックを恐れています。つまり、世界の車両の密度はかなり低くなりますが、特定の数の車両が同じポイントに向かって収束すると、衝突コースにいることに気づいたら、回避操作は不可能になるのではないかと心配しています車両が他の車両と衝突する経路にあるためです。 質問 「目標」に到達するにはどうすればよいですか?もちろん、詳細な説明は大歓迎ですが、外部リソースへのリンクも大いに役立ちます(この問題に最初に取り組んでいるとは思いませんが、おそらくWebの検索に間違ったキーワードを使用しましたか? ) よろしくお願いします!

4
OpenGL ESでクワッドを描画する最速の方法は?
OpenGL ES 2.0を使用しています。描画するクワッドがたくさんあります。GL_QUADSを使用しているかのように、クワッドあたり4つの頂点のみを渡すことができるようにしたいのですが、基本的には、独立したクワッドの束。 これまでのところ、私ができることを見つけました:-GL_TRIANGLES(クワッドあたり6頂点)-GL_TRIANGLE_STRIP(クワッドあたり6頂点)を縮退します 私が見つけた可能性:クアッドストリップをリセットする特別なインデックス値を持つ-GL_TRIANGLE_STRIPS(これはクアッドごとに5つのインデックスを意味しますが、これはOpenGL ES 2.0で可能だとは思いません)
21 opengl  3d  iphone  android  shaders 

3
チェッカー/ドラフトにAIを実装する方法は?
このチェッカーゲームを見て、AIがどのように実装されているのか疑問に思いました。 チェッカー(ドラフト、ダマ、ダメ)にAIを実装するにはどうすればよいですか?既知のアルゴリズムはありますか? すべてに完全にひそかに。このTic Tac Toeゲームチュートリアルのブログ投稿を見るのは非常に不思議です。 だから、私はダマゲームアルゴリズムのオープンソースコードとブログの投稿が欲しいです。役に立つリンクやドキュメントファイルはありますか?私にお知らせください..
21 algorithm  ai 

2
JavaゲームのようにRPGでアイテムを定義するにはどうすればよいですか?
私は何気なくJavaでRPGタイプのゲームに取り組んでいますが、アイテムごとに異なるクラスを作成せずに、さまざまなことを実行できるアイテムをどのように持つことができるかを理解するのに苦労しています。 例として、木を切り刻んでモンスターを攻撃できるxを作成するにはどうすればよいですか? チョッピングまたは武器クラスのいずれかを拡張すると、他のクラスを拡張できません。 チョッピングがあり、武器がインターフェイスである場合、短剣がモンスターを攻撃し、別のaが木を切ることができるときに、多くの重複したコードがあります。 単一のItemクラスを持ち、ファイルからアイテムとそれぞれの機能をロードする方法があることを望んでいます。それが可能な場合、どうすればできますか?そうでない場合、ゲームにアイテムを入れる最良の方法は何ですか?
21 java 

4
コンポーネントベースのゲームアーキテクチャに動作を実装する方法
プレイヤーと敵のAIをゲームに実装し始めていますが、これをコンポーネントベースのゲームアーキテクチャに最適に実装する方法について混乱しています。 次のプレイヤーキャラクターがいて、静止したり、走ったり、剣を振ったりできるとします。プレイヤーは、静止状態とランニング状態の両方からスイングソード状態に移行できますが、プレイヤーが立ち上がったり走り回ったりする前にスイングを完了する必要があります。スイング中、プレーヤーは歩き回ることができません。 ご覧のとおり、2つの実装アプローチがあります。 すべてのプレーヤーロジックを含む単一のAIコンポーネントを作成します(実際のコンポーネントから切り離されるか、PlayerAIComponentとして埋め込まれます)。プレーヤーエンティティを構成する個々のコンポーネント間の結合を作成せずに、状態制限を強制する方法を簡単に実行できます。ただし、AIコンポーネントは分割できません。たとえば、立ち上がって歩き回るだけの敵や、歩き回って剣を振り回すだけの敵がいる場合、新しいAIコンポーネントを作成する必要があります。 動作をコンポーネントに分割し、それぞれが特定の状態を識別します。次に、SandComponent、WalkComponent、SwingComponentを取得します。移行ルールを実施するには、各コンポーネントを結合する必要があります。SwingComponentは、スイングの間、StandComponentとWalkComponentを無効にする必要があります。たまに剣を振り回すだけの敵がいる場合、SwingComponentが存在する場合にのみWalkComponentを無効にする必要があります。これにより、より良いコンポーネントの組み合わせが可能になりますが、依存関係が追加されるたびに保守性の悪夢につながる可能性があります。既存のコンポーネントは、依存関係がキャラクターに課す新しい要件でうまく動作するように更新する必要があります。 理想的な状況は、エンジンやスクリプトコードの1行に触れることなく、コンポーネントをコンテナにドラッグすることで、デザイナーが新しい敵/プレイヤーを構築できることです。スクリプトのコーディングを回避できるかどうかはわかりませんが、できるだけシンプルに保ちたいと思います。 すべてをまとめる:すべてのAIロジックを1つのコンポーネントに分割するか、各ロジック状態を個別のコンポーネントに分割して、エンティティバリアントをより簡単に作成する必要がありますか? 編集:私は私が最初と2番目の状況で何を意味したかについていくつかの混乱があると思う。以下の図で説明しようとしました。 個々の状態とエンティティ間の関係に注意してください。最初の状況では、AIコンポーネントはエンティティに配置される前に事前に構築されます。デザイナーが選択できるのは、プログラマーが利用できるAIComponentsの異なるセットからのみです。2番目の状況には、他のコンポーネントと同じレベルの異なる状態があります。設計者は、プログラマーの干渉なしに、独自のAIでエンティティを作成できるようになりました。 問題は、これらがコンポーネントベースのエンティティでAIを構築するための2つのオプションであり、もしそうなら、最大の柔軟性を与えるものは何ですか?

3
Megatextureはどのように機能しますか?
私は小さな実験的なゲームを開発するためだけでなく、さまざまなレンダリング技術やそのようなものをテストするためのベースとして機能するために、小さなエンジンを開発することを考えてきました。今、私はテクスチャの処理方法について多くのことを考えており、メガテクスチャにつまずきましたが、これは少し不可解なものです。多くのテクスチャを必要に応じてロードしてロードする従来のアプローチよりも優れているという話がたくさんありますが、メガテクスチャはこれをどのように回避しますか?それぞれのテクスチャを個別にロードするのではなく、その一部ですが、それはどのように優れたパフォーマンスを提供しますか?それは単なる別の形の耕作ではありませんか? シェーダーでそのようなテクスチャをどのようにサンプリングし、その一部をメモリにストリームしてから作業しますか。Rageの最新のビデオとテクスチャは見た目は素晴らしいですが、それは素晴らしいアーティストの結果であるか、技術が登場するだけなのです。 要約すると、それがどのように機能するのか、なぜそれが素晴らしいのか、どうすれば似たようなことができるのでしょうか。
21 textures 

8
スタジオを始めるときに注意すべき落とし穴
新しいゲームスタジオを開始するときによくある間違いや見落としは何ですか? 回答ごとに1つの間違いまたは見落としのみを入力し、それが問題である理由と、間違いに陥らないようにするため、または既に行った場合に回復するために何をすべきかを説明できる場合にのみお願いします。
21 business 

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