タグ付けされた質問 「minecraft-modding」

Minecraftの改造に関する質問。

5
Minecraftのクラフトグリッドのようなものを実装するにはどうすればよいですか?
Minecraftのクラフトシステムは、2x2または3x3グリッドを使用します。材料をグリッドに配置し、適切な材料を適切なパターンで配置すると、レシピがアクティブになります。 設計に関するいくつかの興味深い点: 一部のレシピでは、特定の材料を他の材料と交換できます。たとえば、ピックは柄に棒を使用し、木製の板、玉石、鉄のインゴット、金のインゴット、またはダイヤモンドの宝石を頭に使用する場合があります。 パターン内の相対位置は重要であり、グリッド上の絶対位置ではありません。つまり、スティックと石炭(または木炭)を3x3グリッドの6つの位置のいずれかに正しいパターンで配置することにより、トーチを作成できます。 パターンは水平方向に反転する場合があります。 私はそれを考え直しているかもしれませんが、これは興味深い検索/セット削減の問題のようです。それで、アルゴリズム的に言えば、これはどのように機能しますか(またはできますか)?

7
ボクセル/マインクラフトタイプのゲームのレンダリング速度を改善するにはどうすればよいですか?
Minecraftの独自のクローンを作成しています(Javaで作成されています)。今はうまく機能します。40メートルの視聴距離で、MacBook Pro 8,1で60 FPSを簡単に達成できます。(Intel i5 + Intel HD Graphics 3000)。しかし、視距離を70メートルにすると、15〜25 FPSにしか達しません。実際のMinecraftでは、問題なく遠方(= 256m)に表示距離を置くことができます。だから私の質問は、ゲームをより良くするために何をすべきですか? 私が実装した最適化: ローカルチャンクのみをメモリに保持します(プレーヤーの視聴距離に応じて) 錐台カリング(最初にチャンクで、次にブロックで) ブロックの実際に見える面のみを描く 可視ブロックを含むチャンクごとのリストを使用します。表示されるチャンクは、このリストに追加されます。それらが非表示になると、このリストから自動的に削除されます。ブロックは、隣接するブロックを構築または破壊することにより、見えなくなります。 更新ブロックを含むチャンクごとのリストを使用します。表示可能なブロックリストと同じメカニズム。 newゲームループ内ではステートメントをほとんど使用しません。(私のゲームは、ガベージコレクターが呼び出されるまで約20秒実行されます) 現在、OpenGL呼び出しリストを使用しています。(glNewList()、glEndList()、glCallList())ブロックの種類の各側に。 現在、私は照明システムを使用していません。私はすでにVBOについて聞いたことがあります。しかし、私はそれが何であるかを正確に知りません。ただし、それらについてはいくつか調査します。パフォーマンスが向上しますか?VBOを実装する前にglCallLists()、呼び出しリストのリストを使用して渡したいと思います。代わりに千回使用しglCallList()ます。(実際のMineCraftはVBOを使用していないと思うので、これを試してみたいと思います。正しいですか?) パフォーマンスを改善する他のトリックはありますか? VisualVMプロファイリングはこれを私に示しました(わずか70フレームのプロファイリング、70メートルの視聴距離): 40メートル(246フレーム)のプロファイリング: 注:別のスレッドでチャンクを生成しているため、多くのメソッドとコードブロックを同期しています。ゲームループでこれを行う場合、オブジェクトのロックを取得することはパフォーマンスの問題だと思います(もちろん、ゲームループのみがあり、新しいチャンクが生成されない時間について話します)。これは正解? 編集:いくつかのsynchronisedブロックといくつかの他の小さな改善を削除した後。パフォーマンスはすでにはるかに優れています。70メートルの新しいプロファイリング結果は次のとおりです。 それがselectVisibleBlocksここの問題であることはかなり明らかだと思います。 前もって感謝します! マルティン 更新:いくつかの追加の改善(for eachの代わりにforループを使用する、ループ外で変数をバッファリングするなど)後、60の距離を表示できるようになりました。 できるだけ早くVBOを実装するつもりだと思います。 PS:すべてのソースコードはGitHubで入手できます:https : //github.com/mcourteaux/CraftMania

5
Minecraftの洞窟に似た洞窟を生成する方法は?
しばらくの間、3Dプロシージャルワールドに取り組んでいますが、洞窟システムの追加を開始したいと考えています。現在、地形生成に2D / 3D Perlin Noiseを使用し、より滑らかな地形にマーチングキューブを組み合わせています。長い相互接続洞窟に関しては困惑しています。 私はMinecraftの洞窟システムのようなものを手に入れたいと思っています。それらは非常に接続されているようで、ほぼあらゆる方向にランダムに分岐しており、洞窟内のほぼすべてのポイントは、全体的にかなり等しい半径のかなり円形の外観を持っています(最良の言い回しではありませんが、他にどのように置くかはわかりません) 。 私が望んでいるような洞窟を生成するための最大の課題は、その場で世界を生成することです。ワールドは現在、チャンクごとに生成され、プレイヤーがいる場所から始まり、そこから外側に生成されます。私は世界のいずれかを生成し、その後、さまよえるパターン、セルオートマトンなどを使用して洞窟を掘り出したいとは思わないでしょう。 これに使用できる既知のアルゴリズムはありますか?もしそうなら、誰も彼らが似たようなことをする方法を共有したいですか?どんな助けでも大歓迎です。 良い例:

3
マップ生成のランダムシード関数?
マップの視覚的境界が(マップを通過することで)変化するときに、ランダムなタイルベースのマップを生成する関数を探しています。マップを無限に大きくし、迷路のような構造にする必要があります。 ただし、世界が無限である場合、プレイヤーが以前にいた場所に戻ると問題が発生します。ゲームは、そこにあるすべてのものが実際にどのように見えるかを覚えていなければなりません。 だから、私は考えていました-「Minecraftはこの問題をどのように解決するのですか?」そして、シードを持つ何らかの乱数関数を使用する必要があると思いました。それは前方にも後方にも進むことができ、そのようにして、古いインスタンスを正確に、しかし新しいインスタンスで再生成します。 これについてどう思いますか?


6
3Dパーリンノイズ関数は、地形の生成にどのように使用されますか?
高さの値を生成するために2Dパーリンノイズ関数を使用して頭をラップできますが、3Dパーリンノイズ関数が使用される理由がわかりません。Notchのブログhttp://notch.tumblr.com/post/3746989361/terrain-generation-part-1で、彼はMinecraftでの地形生成に3Dパーリンノイズ関数を使用することについて言及しました。誰がそれがどのように行われ、なぜそれが役立つのかを知っていますか?x、y、およびzの値を渡す場合、それはすでに高さがあることを意味しませんか?

3
Minecraftのようなエンジン用に浮遊陸地を生成するにはどうすればよいですか?
XNAでMinecraftのようなエンジンを作成しています。私がやりたいのは、このビデオに示すような浮島を作成することです。 http://www.youtube.com/watch?v=gqHVOEPQK5g&feature=related ワールドジェネレーターを使用してこれをどのように複製しますか?Perlinノイズアルゴリズムを使用する必要がありますか?そのような土地を作るのにどのように役立つかわかりません。 以下は、私が使用しているパーリンノイズジェネレーターのコードです。 private double[,] noiseValues; private float amplitude = 1; // Max amplitude of the function private int frequency = 1; // Frequency of the function /// <summary> /// Constructor /// </summary> /// public PerlinNoise(int freq, float _amp) { Random rand = new Random(System.Environment.TickCount); noiseValues = new double[freq, …

3
フラクタルベースの手続き型都市レイアウトに適したアルゴリズムは何ですか?
バックグラウンド Minecraftサーバーを実行して、かなり大規模なスターターシティを設計します。ルールの看板や暴徒の籠のような一連のものがあり、そこに建物を置きたいです。都市自体は非常に大きく、広がるでしょう。できれば最大1000 x 1000ブロックの大きさです。 建物自体は、すべての3ブロックの倍数のように、特定のベースキューブに基づくキューブまたは長方形のフットプリントを持ちます。道路と建物間の距離は、道路の重要性に応じて、5〜11ブロックの幅であることが好ましいでしょう。 都市の計画を開始するとき、建物がどれだけ大きくなり、いくつあるかを正確に知ることができます。 問題 問題は、都市のレイアウトを設計することです。明らかにそのような規模で、私は都市計画の背景ではなくプログラミングの背景から来ているので、問題に頭を包み始めることさえ非常に困難です。 問題は、具体的には、都市ができるだけ自然に見えるようにすることです。もちろん、これは単純なグリッドパターンに基づいて構築するのはかなり簡単ですが、グリッド、またはグリッドのように見えるものは可能な限り避けたいと思います。 質問 コードを使用して設計するために、どのアルゴリズムを追求できますか?Minecraftは既に地形生成でフラクタルを使用しており、都市はフラクタルパターンで自然に成長しているように見えるので、何らかの方法でフラクタルを使用すると最も自然に見えると考えていました。 いくつかの点でテトリスを演奏するアルゴリズムに似ていると思うので、誰かがその方向に存在する解決策を持っているなら、それも助けになるでしょう。使用したい形状を定義できる場所を描いており、ソフトウェアは、建物の均等な分布に最も「最適な」ソリューションが見つかるまで繰り返します。 Pythonを使用して、できればpygameを使用して視覚的にこの問題を解決するのに役立つ何かが既に存在しますか? 当然、これはゲームデザインにおける一般的な都市の生成にも興味深い影響を与えるため、最適なソリューションが何であるかを非常に楽しみにしています。 編集 明確にするために、建物はゲーム内で設計および構築されるため、この時点でレイアウトを探しています。

1
MinecraftにカスタムMobを追加するにはどうすればよいですか?
基本的に、自分で暴徒を作ることに決めました。 mobのエンティティクラスを作成しました モブモデルクラスを作成しました モデルを描きました EntityListクラス内にaddMappingの関数呼び出しを追加しました 私は次に何をすべきかにこだわっています。私は世界で受動的な動物の産卵を扱うコードを見つけようとしましたが、見つけることができないようです。 非常に感謝ヘルプ。

5
チャンクサイズが2のべき乗であることが多いのはなぜですか?
そこには多くのMinecraftクローンがあり、私は自分の実装に取り​​組んでいます。テレインレンダリングの原則は、全世界を固定サイズのチャンクでタイリングして、ローカライズされた変更の労力を減らすことです。 Minecraftでは、現在のところ、チャンクサイズは16 x 16 x 256です。また、クローンでは、常に2のべき乗のチャンクサイズを見ました。 その理由はありますか、おそらくパフォーマンスやメモリに関連していますか?2のべき乗はバイナリコンピューターで特別な役割を果たすことを知っていますが、チャンクサイズとは何の関係がありますか?

5
プレイヤーに見えるブロックを取得する方法は?
Ogreエンジンを使用してMinecraft風のゲームを書いていますが、問題があります。ゲームを最適化する必要があります。10000ブロックを描画しようとすると、2 FPSがあるため...平面の表示をブロックし、見えないブロックを非表示にするというアイデアを得ました。しかし、私には問題があります-一度にどのブロックがプレーヤーに見えるかをどうやって知るのですか? そして、もしあなたがそのようなゲームのための他の最適化方法を知っているなら、Ogreでそれらをどのように使うかを書いてください。

4
Minecraftスタイルのゲームでオクルージョンを使用してボクセルベースの照明を実装するにはどうすればよいですか?
C#とXNAを使用しています。私の現在の照明のアルゴリズムは、再帰的な方法です。ただし、5秒ごとに1つの8x128x8チャンクが計算されるほど高価です。 暗闇の可変シャドウを作成する他の照明方法はありますか? または、再帰的な方法は良いですか、おそらく私はそれを間違っていますか? 再帰的なものは基本的に高価なようです(チャンクごとに約25kブロックを通過させる)。レイトレーシングに似た方法を使用することを考えていましたが、これがどのように機能するかわかりません。私が試した別のことは、リストに光源を保存し、各ブロックが各光源までの距離を取得し、それを使用して正しいレベルに照明することでしたが、照明は壁を通り抜けます。 私の現在の再帰コードは以下です。これは、太陽光とトーチライトをクリアして再度追加した後、チャンク内の光レベルがゼロでない任意の場所から呼び出されます。 world.get___atこのチャンクの外部のブロックを取得できる関数です(これはチャンククラスの内部にあります)。Locationは、のような独自の構造ですがVector3、浮動小数点値の代わりに整数を使用します。light[,,]チャンクのライトマップです。 private void recursiveLight(int x, int y, int z, byte lightLevel) { Location loc = new Location(x + chunkx * 8, y, z + chunky * 8); if (world.getBlockAt(loc).BlockData.isSolid) return; lightLevel--; if (world.getLightAt(loc) >= lightLevel || lightLevel <= 0) return; if (y < 0 || …

2
Minecraftクローンをオープンソースにすることはできますか?
暇なときにMinecraftのようなゲームを開発しています。実際、それは「Minecraftのような」ものではありません。可能な限りコピーに近づけようとしているためです(16歳で自分自身の運動として、単に楽しいからです)。もちろん、Minecraft Coder Pack(MCP)を使用してコードをコピーするわけではありません。OpenGLを使用してJavaでゼロからゲームを開始しました。 だから、私の質問は次のとおりです:GitHub、Google Codeなどの公開ソースコードバージョニングホストにソースコードをオンラインにすることができますか(プライベートコードを使用するためにお金を払いたくないので、コードをオープンソースにします)ホスト)?もちろん、ゲームはNotchからのものなので、ゲームを販売したくありません。 重要かもしれない詳細は、私がカスタムテクスチャパックを使用していることです(したがって、実際のMinecraftに同梱されているものではありません)。 許可されている場合、ルールはありますか?私はこのページを見ましたが、彼はこれについて何も言っていないようです:http : //www.minecraft.net/terms 編集:BeglaからTerasology と呼ばれるゲーム(Blockmaniaという名前で開始)があります。これは素晴らしいプロジェクトですが、Minecraftに可能な限り近づけることは意図されていません。そのプロジェクトはオープンソースです。

3
Minecraftのアニメーションはゲームにハードコーディングされていますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 Minecraftでアニメーションシステムがどのように機能するかを知りたいです。すべてのMobがゲームにハードコーディングされているように感じます。ノッチは本当にそこに座って、すべてのアニメーションボーンのマトリックスを手で作成しましたか? 私は楽しみのためにゲームを作り直すのが好きなので、彼がこれをどのようにしたか知りたいです。また、彼が本当にそれらをハードコーディングした場合...より良い方法はありますか?

2
Perlinワームによる洞窟生成
私は現在、3Dシンプレックスノイズでボクセル地形のようなMinecraftを生成しようとしています。また、洞窟を実装したいと考えています。 このスレッドでPerlin Wormsのメソッドを見つけました。これは本当に素晴らしい結果を生成します。ただし、チャンクごとにそれを生成する方法についての手がかりはありません。これは可能ですか、それともチャンクごとに洞窟のような類似のワームを生成する代替策はありますか? 編集:これは私が解決する方法がわからない問題です。 Edit2:これは、2Dリッジマルチフラクタルノイズとシンプレックスノイズハイトマップを組み合わせた結果です。まだ少し調整が必要ですが、これはほとんど私が望んでいた結果です。Byte56に感謝します。

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