問題タブ [roguelike]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
roguelike - ローグライク ゲームを作成するのに最適なプログラミング言語は?
ローグライク RPG (Nethack、Rogue、ADOM など) を作成する場合、どのプログラミング言語が最も適していますか?またその理由は?
選択した言語について、その言語が特に適しているライブラリやファセットを必ずリストアップしてください。
c# - Silverlight (または WPF) でローグライクを構築する
私は、Silverlight を使用して Web ベースのローグライク ゲーム (または WPF を使用した単なるデスクトップ ゲーム) を構築するというアイデアをいじっています。
ローグライクとは、テキストを使用してグラフィックがレンダリングされるグラフィック RPG の一種です。グラフィック エンジンは比較的単純なので、ゲームの機能を構築するのに時間を費やすことができ、1 人で楽しいものをすばやく構築することができます。
たとえば、典型的な画面は次のようになります (@ はプレイヤー、# は壁、その他のキャラクターはモンスター、階段、アイテムなどです)。
(出典: thangorodrim.net )
私は経験豊富な ASP.Net 開発者で、Silverlight を使い始めたばかりです。これに対して私が取るべき特定のアプローチはありますか?
背景を説明すると、Winforms ではほとんどの標準的なアプローチが遅すぎます。キャンバスを使用するのが適切かもしれないと考えていますが、何らかの方法で画面をバッファーに描画し、それを即座に画面に切り替えて、すぐに表示できるようにすることをお勧めします。
しかし、今のところ DirectX をいじりたくはありません。WPF を使えば、大きな学習曲線を必要とせずに必要な場所に到達できることを願っています。
何かご意見は?
更新:これは非常に困難であることが判明しました。私は多くの異なるアプローチを試しましたが、最終的に実際に十分に速くレンダリングすることができましたが、それを非常に速くするためには、おそらく使用したいフォントのスプライトマップを構築し、代わりにそれから作業する必要があると思います.組み込みのフォントレンダリング機能を使用しようとすること。私はそれをしませんでした。
コアレンダリングエンジンを完成させたとき、フォントレンダリングの癖に関連するいくつかの厄介なアーティファクトが発生しました(固定幅フォントでさえ、時には幅がわずかに広い場合があります... )。は、C# ラッパーを備えた非常に印象的なローグライク エンジンです。それはすべてコンソールベースです。少し遊んで、圧倒されました。
1.5.1 の時点で、私が libtcod で触れたものはすべて、マウス入力とキーボード入力モードの 1 つ (最近捨てられたと思います) を除いてうまく機能しますが、ローグライクを作成するために必要なものはすべてそこにあります。これには、いくつかの見通し線、経路探索、さらにはダンジョン生成アルゴリズムも含まれています。視覚的にかなり進んでいます。このような RL を見たことがありますか?
http://doryen.eptalys.net/files/screenshot0014.png
一言で言えば、Silverlight でローグライク ゲームを構築することは可能ですが、Silverlight やゲーム開発の経験が豊富でない限り、簡単だとは思いません。ゲームプレイに集中できる強力なツールキットを使用しても、やるべきことがたくさんあります。
java - JavaSwingを使用してスプライトシートから描画するための最高のパフォーマンスオプション
Javaを使用してグラフィカルなローグライクゲームを作成しています。ゲームでは、タイルオブジェクトの2D配列をJPanelにペイントしています。これらのタイルオブジェクトは地面を表します。ペイントに使用するすべてのテクスチャを含む.bmpスプライトシートがあります。プレイヤーが移動するたびに、プレイヤーに表示されているタイルを再描画する必要があります。
私の質問はパフォーマンスの質問です。私は過去にこれを実装して、タイルにJPanelを拡張させ、各タイルはbufferedImage.getSubImage()を使用してスプライトシートの適切なセグメントを表示するだけですが、親JPanelは単にすべてのタイルでpaint()を呼び出します。 2D配列。これは前のプロジェクトの小さな30x20マップでは問題なく機能しましたが、現在のゲームで機能するかどうかはわかりません。
同じアプローチを使用する必要がありますか、それとも描画時間を短縮する他の可能な解決策がありますか?TileクラスはBufferedImageなどの他のSwingまたはAWTコンポーネントを拡張する必要がありますか、それとも効果がありませんか?
ありがとう。
ruby - Rubyでオブジェクトの2D配列を作成するには?
ローグライク ゲームのマップを作成していますが、すでに問題に遭遇しました。オブジェクトの 2 次元配列を作成したいと考えています。以前の C++ ゲームでは、次のようにしました。
Rubyでこれを行う方法がわかりません。
f# - F# の非常にシンプルな RogueLike により、より「機能的」になります
非常に単純な RogueLike エンジン用の既存の C# コードがいくつかあります。最小限の量をできるだけ単純にしようとしたという点で、意図的に素朴です。矢印キーと System.Console を使用して、ハードコードされたマップ内で @ 記号を移動するだけです。
最初は関数の概念を使用して記述しようとしていましたが、少し頭がおかしいことがわかったので、ほとんどストレートな移植を行いました - それは実際には F# プログラムではありません (ただし、これは、F# 構文で記述された手続き型プログラムです。
だから私の質問は、これをより機能的に書き直すために何を学ぶ必要があるのか 、いくつかのヒント、漠然とした概要、そのようなことを教えてもらえますか.
コードを見るだけでなく、正しい方向に押し込みたいと思いますが、それが私に説明する最も簡単な方法である場合は問題ありませんが、その場合は「方法」ではなく「理由」も説明していただけますかそれの?
java - ローグライク ゲーム用の Pure Java テキスト インターフェイス
OK、これはクレイジーなアイデアのように聞こえるかもしれませんが、1980 年代スタイルのローグライク ゲームテキスト インターフェイスを純粋な Java で、つまり Swing などを使用してエミュレートすることに興味があります。
必要なことはおおまかに次のとおりです。
- 「画面」として固定サイズの文字の固定サイズのグリッドを提供します (例: 100*75)
- 適切な等幅フォントを使用し、多くの興味深い記号を使用するのが理想的です
- 各文字位置の前景と背景の文字色を個別に設定できるようにする
- 画面の任意の場所で文字列または個々の文字を印刷できるようにします (これらの場所の画面バッファーに既にあるものはすべて上書きする必要があります)。
これを可能にする優れた既存のソリューションを知っている人はいますか? それとも、最初から一緒にハッキングすることにこだわっていますか?
ps純粋なJavaが必要な理由は、サンドボックス化されたアプレットで実行できるようにするためです。そのため、 jcursesのような JNI ソリューションは残念ながら除外されています.....
java - ローグライク ゲームでドロップ アイテムを実装する簡単な方法は?
基本的に私は自分が作っているローグゲームを持っていて、敵が死んだときのためにドロップアイテムを実装しようとしています. これを行う方法についていくつかの異なる方法を試しましたが、成功したものはありません。
そのようなことをどのように回避するかについて何かアイデアがあるかどうか疑問に思っていました。ありがとう!
c++ - ローグライクFOVの問題
私は大学の compsci プロジェクトに取り組んでおり、視野アルゴリズムの助けが必要です。ほとんどの場合、私は動作しますが、状況によっては、アルゴリズムが壁を透視し、プレイヤーが見ることができないはずの壁をハイライトします。
誰かが最初にブロックされたタイルを表示するのを手伝ってくれて、残りを止めることができれば、私はそれを感謝します.
ありがとう、Manderin87
c++ - Roguelike のコーディング: エンティティ配列のロジスティクスの支援
私は現在、ローグライクのコーディングを行っており、必要なことを独学しています。
私はここでいくらか答えられたことがわかった問題に行き詰まっています: ゲーム内のエンティティを整理する最良の方法?
その質問に対する最良の回答で説明されているクラスを持つエンティティツリーが必要です。
各エンティティの「スクリプト」を実行するために std::set を反復処理することについて言及していますが、説明できないことがいくつかあります。
そのような実装では、座標 (クラス内の int) で何かを検索するにはどうすればよいですか? 一致する結果が見つかるまですべてを繰り返す For を実行するよりも簡単だと思います...
同じ場所にある複数のもの (アイテム スタックなど) をどのように処理しますか? クラスの複数のインスタンスに同じ座標を含めることができることはわかっていますが、そのような状況でルックアップから何が返されるのでしょうか?
たとえば、エンティティの「速度」統計の降順で反復する方法はありますか?
ありがとう〜
c++ - 特定の変数値で派生クラスを開始する
以下のコード スニペットでは、Enemy クラスのインスタンスを変数 (x、y、type など) で初期化するにはどうすればよいですか? 私はそれが正しく機能しています。挿入したインスタンスの数に関係なく、インスタンスをトリガーします...インスタンスごとに異なる特定の変数を使用して敵を作成する最良の方法を知る必要があります...特にいくつかの場合これらの変数のうち、基本クラスにあるものとそうでないものがあります。