ローグライク RPG (Nethack、Rogue、ADOM など) を作成する場合、どのプログラミング言語が最も適していますか?またその理由は?
選択した言語について、その言語が特に適しているライブラリやファセットを必ずリストアップしてください。
ローグライク RPG (Nethack、Rogue、ADOM など) を作成する場合、どのプログラミング言語が最も適していますか?またその理由は?
選択した言語について、その言語が特に適しているライブラリやファセットを必ずリストアップしてください。
ずっと昔、 QuickBASICを使ってローグライク ゲームを書こうとしました(それは 1988 年でした)。推奨されるアプローチではありません...
そこにはまだいくつかの開発サークルがあります。ローグライク開発に関する FAQと、これに特化したブログがあります。
私の使用言語 (私もローグライクを作成しようとしています) は Python です。
いつものように、それは非常に個人的な選択です:-)
以下の理由から、ローグライク ゲーム (Tyrant) を Java で作成しました。
編集: 興味のある方はオープン ソースです。すべてのコードはSourceForgeで入手できます。
ローグライクの開発に関連するあらゆるものに最適なサイトであるroguebasinでかなりの時間を費やして、C でいくつかのローグライクを作成しました。
どの言語を使うべきかについては、私はそれが大きな違いを生んでいるとは本当に思っていません。私は移植性のために C を選びます。多くのライブラリは C でうまく機能します。しかし、オブジェクト指向言語は、追跡したくないいくつかのものをクリーンアップすることができます。
ローグライクの他の言語よりも特に優れていると私が考える言語はありません。グラフィカルにする場合は、フラッシュ/シルバーライトなど、それが組み込まれているものを好むかもしれません。しかしそれでも、他の言語用のライブラリがあり、その点でほぼ同じ程度の困難をもたらします。
だから私は、あなたが知っていて好きな言語、または知らないが学びたい言語を選ぶと思います..
これらの回答のほとんどは素晴らしいものですが、C++ で悪用される可能性のあるオブジェクト指向の機能と低レベルのコマンドの組み合わせについては、言いたいことがあります。何らかのインスピレーションを求めている場合は、NetHack の C ソースコードが広く入手可能であり、十分に文書化されているため、いくつかのことを学ぶことができます。とは言っても、これは何十年にもわたって成長してきた巨大なプロジェクトであり、すべてが自分のプロジェクトに必要なほどきれいであるとは限りません. .
正直なところ、オブジェクト指向言語を使用することを強くお勧めしますが、何を使用するかという点では、おそらくまったく問題ではありません。ローグライク (実際には、実際にはどの CRPG でも) で処理するのは非常に多くのがらくたであるため、OOP は正気を保つための最も簡単な方法です。
私の最初の質問は、ゲームが Web ベースの UI を持つのか、それとも元の Rogue のようなゲームのような何らかのコンソール/ウィンドウの問題になるのかということです。前者の場合は、使い慣れた言語を選択するとよいでしょう。Ruby on Rails、Python/Django、PHP/CakePHP などはどれも素晴らしいものです。
しかし、答えが後者である場合、これは人々がローカルにダウンロードしてインストールできるようにしたいゲームであり、私は Java を使用します。これは、対処しなければならないメモリ管理のない優れた言語です。ジャストインタイムのコンパイルと最適化のおかげで非常に高いパフォーマンスを実現し、データ構造を支援する非常に豊富なライブラリを備えています。Swing はいくつかの非常に美しい UI を実現し、2D ライブラリは最も豊富なクロスプラットフォームを可能にします。 PostScript の外でレンダリングします。また、他の選択肢では得られない、Windows、Mac OS X、および Linux での可用性も備えています。
最後に、Java Web Start を介してアプリケーションを簡単に配布できるため、Java を入手したら数回クリックするだけでゲームをダウンロードしてインストールし、好きなだけ実行するためにマシンに保持できます。
元の nethack は C で書かれており、どのように書かれたかについてのアイデアを知りたい場合や、言語を決定するための良い方法となる可能性のある課題について知りたい場合は、ソースを利用できます。
どのゲームを作る場合でも、次の場合はどの言語も適切です。
ローグライクの場合、ターゲットで実行される限り、知っている言語はどれでも正しいと思います。この種のゲームでは、パフォーマンスは実際には問題になりません。ただし、ワールド生成が非常に複雑な場合、ワールド生成には高いパフォーマンスが必要になる可能性があります...
低レベルの詳細を処理するものを使用してください。あなたが知っていることは何でもうまくいくはずです。
ねえ、彼らはjavascriptで書くことができます.
Silverlight を検討することができます。
C# と .Net の上にあるため、メモリ管理について心配する必要はあまりありません。SL を使用すると、シーン グラフ タイプのレンダリングのサポートが組み込まれます。画面上にないもののカリング、キーボード、マウス イベント、オブジェクトのクリックなどです。
初歩的な学習曲線がありますが、働くには素晴らしい環境だと思います。
Actionscript
そんなゲームにお勧めです。