回答:
私はRuby(またはPython)を好みません。私はJavaの人間です。しかし、Rubyはどういうわけか「ゲームには向いていない」、PythonはどのようになっているのかというUnknownDeviceの答えは、私をイライラさせます。彼が明らかにすることを願っています。
私はPygameが存在し、存在していることを知っています。PythonはRubyよりも大きなユーザーベースを持っていることを認識しています。しかし、正直なところ、どちらも「ゲーム用」の言語のようには見えません。Javaもそうではなく、それが私の選択したゲームプログラミング言語です。(そして、私が「選択の」と言うとき、私は選択によって意味します、それが学校で教えられるものであるからでなく、それが私が「知っている」ものであるからではありません)そして実際、「ゲーム用」言語とは何ですか?まあ、速度は要因であり、グラフィックスや他のゲームシステム(オーディオ、入力など)のライブラリが必要です。
速度に関しては、RubyとPythonの間のトッサップのようです。いくつかの検索を行うと、スペクトルの両側のベンチマークと引数、およびどちらかを優先するさまざまな構成がすぐに見つかります。「Psycho」と呼ばれるものを備えたPythonは、Rubyに比べて人気のある速度の悪魔のようですが、通常のPythonはRubyよりも少し遅いようです。最終的に、このような高レベルの言語を選択している場合は、とにかくネイティブの速度に関心がないことは明らかです。あなたが最もよく知っている言語で行く。そして、明らかにあなたはRubyを最もよく知っているので、私はそれを奨励します!
もう1つの要因は、ゲームを作成するためにテクノロジーが存在するかどうかです。画面への描画と入力の収集とオーディオの再生をサポートできるかどうか。Rubyはこれらすべてを実行できます。実際、この点で多くのオプションがあります。RubyにOpenGLサポートを提供するRubyForgeにはruby-openglパッケージがあります(または、デフォルトで含まれるかもしれません)。または、Chinguは「超高速のOpenGLアクセラレーション2Dグラフィックス」を提供します。ホームページによると。Gosuの上に追加の機能を構築します。Chinguがあまりにも使いやすい場合は、使用することもできます。あなたはルビー、OpenGLを使用しない場合や3Dグラフィックスのために、試してみてくださいG3DRubyを、「より高度のOpenGLの多くのラッパークラスの非常にきれいなセットが特徴」。そこ'Rubygameについてはあまり情報を見つけることができませんが、「クロスプラットフォームマルチメディアライブラリ」であると主張し、名前を付けて、ゲーム開発に重点を置く必要があります。C ++用の一般的なSDLライブラリに精通している場合は、Ruby / SDLまたはRUDLがあります。どちらもSDLのRubyラッパーです。または、より新しく、オブジェクト指向のSFMLを好む場合は、Rubyでも利用できます!
RubyがPythonほどゲームプログラミング言語にならない理由はありません。もしあれば、私はそれを聞きたいと思うので、私はそれに反論することができます。Rubyで最も快適にプログラミングでき、他の一般的な言語と比較して長所と短所を認識している場合は、必ずRubyでゲームを開発できます。
http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/
URLはおそらく少しネタバレです。
tl; dr:素朴なガベージコレクターは本当の問題です。
私はRubyを取り巻く深いスペックの仕事の多くに精通していませんが、EnterbrainはRubyベースのゲームスクリプトを使用するゲーム作成プログラムRPG Maker VXとRPG Maker XPを作成しました:http://www.rpgmakerweb.com/
これは実際に私の言語への最初の飛び込みでした。ほとんどの人が言ったように、おそらく他の言語の高いパフォーマンスは得られませんが、2D RPG(または実際に他の2Dゲーム)を開始しようとしている場合、おそらく最も洗練されたゲームエディターの1つです助けて。
Rubyは素晴らしい言語ですが、ゲームが正直であることはあまりありません。C ++を使用したくないが、Rubyのようなものが必要な場合は、Pythonをチェックしてください。優れたPythonフレームワークについては、www.cocos2d.org /のようなものをチェックアウトする必要があります。
あなたの質問は一般的すぎます。趣味のプロジェクトとしてコンピューターゲームを書くだけですか、それともインディー/プロフェッショナルゲームの開発に入りますか?グラフィックはありますか?どのプラットフォームで実行することになっていますか?
一般に、Rubyは趣味のプロジェクト(私のお気に入りのRubyゲームはRuby Warriorです)やFarmvilleのようなWebベースのゲームの開発に適しています。そのようなプログラマーには一定の要求さえあります。「ruby Programmer Social Game」のようなグーグルを試してみてください。
一方、デスクトップベースまたはモバイルベースのグラフィックスゲームを開発する場合、Rubyは最適な選択肢ではありません。考慮してください:
高性能でプロフェッショナルな商用の3DゲームをRubyで書くことを期待しないでください。しかし、Rubyはゲーム開発の概念を学ぶ際に使用するのに最適な言語です。
Gosuは、Rubyで2Dゲームを作成するための最も人気のある(積極的に管理されている)ライブラリです。パフォーマンスを改善し、OpenGLなどの基になるディスプレイレンダリングライブラリと対話するために使用する基になるC ++ライブラリがあります。
パフォーマンスに関する限り、「デフォルト」Ruby実装(MRI)は正常に動作します(最高のパフォーマンスを得るには最新のRuby 2.0をお勧めします)が、Rubinius、JRubyなどのネイティブスレッドと代替ガベージコレクションアルゴリズムを持つ代替実装があります。スレッドを使用している場合は、Rubiniusを試してください。そうしないと、MRI Rubyが正常に機能します。
Pythonを言ったのは、ゲーム開発用のフレームワーク/ライブラリに関しては、より大きなユーザーベースとより多くの選択肢があるためです。この人はゲーム開発の経験がないことは明らかなので、可能だからといってRubyのようなものを使うことを勧めるのは意味がありません。
LuaでC ++を使用するゲームで作業する場合、メディアサポートがあるという理由だけで、Visual Basicでゲームを作成することはありません。ここの誰もが誰かが特定の仕事のための特定のツールを言うのを聞いたと確信しています。靴で釘を打つことができると確信していますが、ハンマーを使用できるのになぜそうするのでしょうか。