ゲーム開発

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

1
Unity 2Dのピクセルアートを理解する
Unityのピクセルアートの背後にある基本を理解するのに苦労しています。 ユニットとは何かを理解しています。16x16ピクセルでスプライトを描画する場合は、PPUを16に設定する必要があります。 たとえば、スターデューバレーを見てください。下の画像では、プレーヤーが正方形ではないことがはっきりとわかります。ゲームの作成者は、すべてを16x16で作成したと言いましたが、キャラクターにはどのように多くの詳細がありますか?(タイルマップの場合のように)キャラクターを作成するためにいくつかの16x16の正方形にパッチを適用しませんか? 画像内の文字のように、正方形ではないものを処理する「一般的な」方法は何ですか。16x32スプライトを作成し、PPUを16に設定しますか?16x16スプライトの横で少し奇妙に見えるのではないでしょうか?通常、1つのサイズ(つまり、16、32、64)を選択して、ゲームのすべてのサイズを維持しますか? 私が見た視覚的な問題はこれです。32x32スプライトが16x16スプライトの隣で非常に場違い(鋭すぎる)に見えます。 したがって、1つの画像が他の画像よりもはるかに鮮明に見える場合に、この効果を得るためにどのようにサイズを混合するのでしょうか。たとえば、タイルが16x16のときに、文字を16x32、または非正方形の値にしたい場合

5
ベジエ曲線に沿って等間隔に配置された点
しばらく探し回っていましたが、この問題の解決策が見つかりません。3次ベジェ曲線(4点で定義)があり、曲線に沿って等間隔に配置された一連の点を取得したいとします。例として、曲線に沿ってテキストを配置することを考えてください。 ここで問題はt、一定の増分で入力(0-1からの補間値)した場合、ポイントが等間隔に配置されないことです。カーブに沿った距離は、カーブが曲がる場合は短くなり、カーブが直線の場合は長くなります。 では、ベジェ曲線に沿って点を均等に配置するにはどうすればよいですか?

2
2Dグリッドの障害物で「見通し線」をシミュレートしますか?
興味深い問題にぶつかった。見通し線をシミュレートする方法を理解する必要があります-障害物がある2Dグリッド上で十分に単純です。グリッドセルが表示されているか、表示されていません。 プレイヤーからn個のスペースを広げたり、隣接する障害物が検出されたときに水平方向の伝播をブロックしたりするなど、本当に初歩的なものを得ることができますが、それを我慢することはできません。他の多くのアプリは、隅などの視線を傾斜させるより洗練された方法を使用しており、私は標準に近づきたいと思っています。 これまでのところ、困惑したときのDCSSは私のインスピレーションの源でした。私は彼らが持っているものに近いものを手に入れたいと思っています:http : //crawl.sz.org/。 どんな洞察もいただければ幸いです-助けてくれてありがとう! (これが恥ずかしいほどにうるさい場合は許してください-数週間前にゲーム開発を始めただけで、追いつくように頑張っています。)
10 2d  grid  line-of-sight 


2
参照のGPU局所性は心配する価値がありますか?
い、参照の局所性、それはCPUのパフォーマンスをするようmakeがGPUのパフォーマンスに大きな違いとして? たとえば、GPUに200の描画コマンドを送信した場合、各コマンドのデータがメモリ内で連続していると、バッファ/テクスチャマップをジャンプするのではなく、(潜在的に)顕著な違いが見られますか? 副題:ほとんどのリソースを不変にすることで、GPUが誤った共有の問題を防ぐことができると思います。しかし、そうでない場合、スレッドが常に4つのフラグメントに相当する作業を行うのはなぜですか。

4
タイルベースのゲームで隠されていないタイルを見つける
私は2Dタイルベースのゲームに取り組んでおり、現在、2D相当のシャドウボリュームを機能させることを試みています。影を落とすべき表面を見つけられません。ゲームのどの時点からでも、隠されていない顔、またはタイル全体を見つける必要があります。 私の質問は、ポイントを与えられた場合、これらのタイル/エッジをできるだけ速く見つけるにはどうすればよいですか?

2
レベルの隅にタイルを配置するこのテクニックの名前はありますか?
古いゲームの開発における非常に一般的なアプローチは、タイルセットをレベルの隅に置いて、それを参照として使用することです。例えば: このレベルでは、開発者は一連のタイルを左上隅に配置します。 しかし、この手法には名前がありますか?それについてのマニュアルを書いていて、名前をつけたいと思います。

3
ゲームコンテンツのサイズを設定する方法
ストーリーが豊富なゲームを開発しています。このストーリーの各部分のレベルを作るのに十分な時間とお金があるかどうかはわかりません。 この問題を管理するために設計者の間で共通の方法はありますか?最初にストーリー全体を記述してから、時間/お金の予算に合うように一部を切り詰める必要がありますか?

1
マップ上に手続き的に生成された2Dカーブ道路
自分が取り組んでいるゲームのロードマップを自動的に生成するアルゴリズムを試しています。 「Kingdom Rush」ゲームは見栄えのするマップがいくつかあるので、参照ポイントとして使用しています。 私は手続き型のコンテンツ生成に不慣れで、ここに誰かがポインタを持っているのではないかと思っていました。いくつかの入口/ソースノード、いくつかの内部ノード(分岐とマージ)、いくつかの出口シンクノードなどのランダムな道路トポロジを生成し、グラフレイアウトアルゴリズムを使用して、この情報に基づいて実際の道路地図を作成する実験をしました。 以下は、道路レイアウトにFruchterman-Reingoldアルゴリズムを使用した1つの例です。 青いグラフは、ランダムに生成されたベジェコントロールポイントを使用して、エッジの直線性を低下させています。 同じアルゴリズムを使用して生成された別の例ですが、乱数は異なります。 問題は、ほとんどの結果が非常によく似たものになってしまうことであり、手順で生成されたマップの制御性と多様性を改善するためにどのルールを追加できるかわかりません。 助言をいただければ幸いです。

3
開発者はSteam Directでどのようにお金を稼ぎますか?
私が知っていることは次のとおりです 。Steamは、Valve Corporationが開発および所有するデジタル配信プラットフォームです。Steamは、ビデオゲーム、XRソフトウェア、ゲーム開発プログラムでよく知られています。以前は、Steamに公開される製品は投票方法によって決定されていました。このシステムはSteam Greenlightと呼ばれていました。これで、開発者は合計で7,000インドル(100米ドル)を支払い、自分の製品をSteamに直接発行することができます。この新しいシステムは「スチームダイレクト」と呼ばれています。 ここに私が知る必要があるものがあります: Steam Directの新しいシステムでは、開発者はSteamで販売された製品のすべてのコピーからお金を得ますか? もしそうなら、Steamが保持している(または税金やその他の目的のために持ち去られた)お金の割合と、製品の開発者に与えられている割合はどのくらいですか? 開発者がSteamで製品を販売することでお金を稼ぐのであれば、支払いを受ける最も一般的な方法は何ですか?
9 steam 

2
C ++でのボクセルエンジンのボクセルの保存
楽しいボクセルエンジンを少し書こうとしていますが、実際のボクセルを保存する最善の方法を見つけるのに苦労しています。私はある種のチャンクが必要になるので、全世界をメモリに入れる必要がないことを承知しており、合理的なパフォーマンスでそれらをレンダリングする必要があることを承知しています。 私はoctreesについて読んで、それが1つのキューブで始まることを理解しています。そのキューブには8つのキューブがあり、それらすべての8つのキューブは別の8つのキューブになる可能性があります。しかし、ボクセルエンジンに適合しないと思いますボクセルキューブ/アイテムはすべてまったく同じサイズになります。 したがって、別のオプションは、16 * 16 * 16サイズの配列を作成し、それを1つのチャンクにして、項目で埋めることです。また、アイテムがないパーツの値は0になります(0 =空気)。しかし、これは多くのメモリを浪費することになり、非常に速くはありません。 次に、別のオプションは、各チャンクのベクトルであり、キューブでそれを埋めます。そして、立方体はチャンク内でその位置を保持します。これにより、メモリは節約されますが(エアブロックはありません)、特定の場所にあるキューブの検索が大幅に遅くなります。 だから私は本当に良い解決策を見つけることができません、そして誰かがそれを手伝ってくれることを望んでいます。それであなたは何を使いますか、そしてその理由は? しかし、別の問題はレンダリングです。OpenGLを使用して各チャンクを読み取り、それをGPUに送信することは簡単ですが、非常に遅くなります。チャンクごとに1つのメッシュを生成する方が適切ですが、これは、1つのブロックを分割するたびに、チャンク全体を再構築する必要があることを意味します。だからそれは難しいでしょう。では、どうすればキューブをレンダリングできますか?チャンクごとに1つの頂点バッファーにすべてのキューブを作成し、それをレンダリングして、別のスレッドに配置しようとするか、別の方法がありますか? ありがとう!
9 c++  voxels 

1
2Dトップダウンタイルの有向水流をどのようにレンダリングしますか?
私は、ドワーフフォートレスに触発された、トップダウンのタイルベースのかなりグラフィカルな2Dゲームに取り組んでいます。私はゲームの世界で、いくつかのタイルをカバーする川を実装する段階にあり、各タイルの赤い線で下に示すように、各タイルのフロー方向を計算しました。 グラフィカルスタイルの参考として、現在の私のゲームの外観は次のとおりです。 必要なのは、各河川タイルを流れる水をアニメーション化して、流れが周囲のタイルに溶け込み、タイルのエッジが見えないようにするためのいくつかの手法です。 私が見つけたものに最も近い例はhttp://www.rug.nl/society-business/centre-for-information-technology/research/hpcv/publications/watershader/に記載されていますが、私は完全ではありませんその中で何が起こっているのか理解できるようになった時点で?シェーダープログラミングについて十分理解しているので、独自の動的照明を実装しましたが、リンクされた記事で取り上げられているアプローチを理解することはできません。 誰かが上記の効果がどのように達成されるかを説明したり、私が望む結果を得るための別のアプローチを提案したりできますか?上記の解決策の一部はタイルを重ねて(どの組み合わせであるかはわかりませんが)、歪みに使用される法線マップを回転させます(これも詳細についてはわかりません)。助けて!

4
Unityライフサイクルメソッドは、UsedImplicitly属性で注釈を付ける必要がありますか?
UsedImplicitly属性を使用してUnityライフサイクルメソッドに注釈を付けると、コードが読みやすくなりますか? 例えば: public class Example : MonoBehaviour { [UsedImplicitly] private void Awake() { DoSomething(); } private void DoSomething() { // ... } } 「Unity MonoBehavioursの構造化」に関するこのブログ投稿は、このアプローチを有用な慣例として示唆しています。 Unityライフサイクルメソッド(Start、Awake、Update、OnDestroyなど)、イベントメソッド、および[UsedImplicitly]属性を使用してコード内で暗黙的(または自動的)に呼び出されるその他の関数に注釈を付けます。この属性はUnityEngine.dllに含まれていますが、参照されていないように見えるメソッドのコードクリーンアップの提案を無効にするためにReSharperによって使用されます。また、Unityやコードベースの初心者がコードを読みやすくするのにも役立ちます。特に、インスペクターを介して参照されるイベントの場合に役立ちます。 (注:ReSharperが一見参照されていないように見えるUnityライフサイクルメソッドのコードクリーンアップの提案を示しているとは思わないので、古くなったアドバイスかもしれません。) Unityの初心者には役立つかもしれないという上記の投稿に同意します。私はまた、これらのラベル付けすることが有用であると思うユニティライフサイクル機能頻繁にとして使用されていないAwake、StartとUpdate。しかし、これが実際に「クリーンなコード」のための良い慣習なのか、それとも読みやすさを低下させるのは単なるノイズなのかと思います。
9 unity  c# 

2
インスペクターでフィールドを表示(アタッチ可能)するがコード(プライベートライク)でアクセスできないようにする方法は?
もちろんbutton、type という名前の変数があるとします。ButtonSystem.Serializable その変数をインスペクターを通じて割り当て可能にしたいので、次のようにしますpublic。 public class SomeScript : MonoBehaviour{ public Button button; } それは私にそれを与えます: 今、私はコードをクリーンで安全な(整理された)状態に保ちたいのですが、カプセル化を維持する必要がある本当の理由があります。 私は実行時にコンポーネントを取得する方法が複数あることを知っています。transform.Find("Some/Genius/TypeUnsafe/Path")または、GameObject.Find("3 seconds scene iteration").GetComponent(...).それを避けたいです。 インスペクターで変数private accessをどのように混合しますpublic accessか?

1
頂点のセットから平面の法線ベクトルを取得するにはどうすればよいですか?
私はHLSL / C ++の小さなプロジェクトでグラフィック作業をやりくりしており、頂点ポリゴンから対面ベクトルを取得する方法がわかりません。数式が見つからないようです。 位置はP1、P2、P3です。 たとえば、P1.x、P1.y、P1.zのVertexPointクラスと呼びましょう。

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