ルビーはゲーム開発に適した言語ですか?[閉まっている]


33

ゲーム開発に移りたいと思っていますが、私が本当によく知っている言語はRubyだけです。私が読んだもののほとんどは、ゲーム開発用のC ++などの低レベル言語、またはXNAを使用するC#などの特定のフレームワーク用の言語を指しているようです。ゲーム開発にルビーのような言語を使用した経験はありますか?もしそうなら、あなたはそれに対して賛成または反対ですか?

回答:


47

私は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でゲームを開発できます。


+1しかし、コンソールなどの独自プラットフォームでの一部の言語の使用制限について追加する必要があります...(ハードウェアおよびコンストラクターポリシーの制限)ゲーム自体にRubyを使用することは、この面ではあまり役に立ちません。ただし、デスクトップゲームの場合、「なぜ?」
クライム

@Klaim私はそれがより関連性が低くなっていると主張するだろう、そして私は次世代のコンソールまたはおそらくその後のコンソールに使用される言語を知ることに興味があるだろう。C ++で引き続き開発される可能性はありますが、個人的には、より高レベルの言語に向かって進む可能性が非常に高いと考えています。たとえば、Android開発はJavaで行われます。Androidがゲームコンソールであることはまったくありません。しかし、おそらくGoのようなハイブリッド言語は、1〜2世代のコンソールで新しい人気のある言語になるでしょう。
リケット

1
私はこの原則に同意し、GoまたはDがこの面で何かを成し遂げることができます。しかし、この業界ではシステム言語のみが「標準」になり得ると思います。しかし、私はビデオゲーム分野のインディーサイドではなく、業界について話している。自分のやり方で(大企業の給料ではなく)自分のやり方で行けば、好きなものを使うチャンスがあると思います。ただし、コンソール以外で何かを実行する場合は、コンストラクターが要求するツールを使用する必要があります。電話機はJavaを使用しますが、同じ電話機のパフォーマンスが必要なアプリケーションで多くのC ++が使用されます。
クライム

実際、ビデオゲーム業界は現在の標準C ++でさえ採用するのが遅いため、コンソールでC ++以外のものを使用するまでに何年も待たなければならない可能性が高いと思います。コンストラクターと開発者の作業方法に変化が生じるかもしれませんが、今日から想像するのは本当に簡単ではありません。
クライム

最大のパフォーマンスが問題にならないゲームには多くの種類があることを付け加えます。もちろん、新しいCrysisを作成している間は、そこからすべてのフレームを絞ることができますが、必要のないゲームがたくさんあります。また、このようなゲームで作業する場合、他の言語もほとんど必要ないかもしれません(たとえば、シェーダー言語、Civilization 4&5などのゲームはスクリプト言語にも依存しています)。
MartinTeeVarga

9

http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/

URLはおそらく少しネタバレです。

tl; dr:素朴なガベージコレクターは本当の問題です。


非常に有益です!Rubyの専門家は、これが今日でも適用可能かどうかについてコメントできますか?この記事の日付は2009年1月であり、それ以来多くのことが起こっても驚くことはありません。編集さて、2010年9月3日付の記事を見つけましたが、これは「Rubyのガベージコレクターを実行することを意図したものではない」という事実が今日でも事実であることを示唆しています。jabberwocky.eu/2010/09/03/ruby-garbage-collection
リケット

1
Rubyのガベージコレクターはマークアンドスイープですが、サイクルの場合はPythonとLuaも同じです(実際、Pythonゲームでは、まさにその理由でGCを遅延させる必要がありました)。ベンチマークは行っていませんが、Rubyの場合は根本的に遅くなるのではなく、偶然に遅いだけかもしれません。特に質問者のように完全にゲームをRubyで構築することについて話している場合、Rubyを避ける大きな説得力のある理由とは思いません。適切な時間までGCを無効にします。

1
これが投稿されてからしばらく経ちましたが、この興味深い記事をチェックしてください。patshaughnessy.net/2012/3/23/…Ruby 2.0のガベージコレクターについてです。以下は、GCビルダーによる基調講演ですyoutube.com/watch?v=4fIdEeM0Fygこのビデオは、Ruby 2.0が登場するまでに、おそらく1.5〜2年前になるため、さらに多くのパフォーマンスとGCの改善が行われた可能性があります。 。これにより、Rubyがより多くのオブジェクトの多いゲームで使用できるようになります。私は確かにそう願っています!私は、Ruby 2.0は、2013年に出てくると考えている
マイケル・バンRooijen

1
増分ガベージコレクションシステムを含むMatz自身の新しいmrubyなど、さまざまなガベージコレクションシステムをサポートするMRI以外のVMもあります。これまでのところ、mrubyはゲームに最適な選択肢になりつつあります。iOSとAndroidでも動作します!
スティーブンベランジャー

5

できない理由はありません。言語のマルチメディアサポートがある限り、それはgamedevマテリアルです。ヘック、Rollercoaster Tycoonゲームの1つの大部分はASMで手作業で行われました。


3
あなたは一種の自分自身に矛盾しています。「asmでのゲームのハンドコーディング」は、「ルビーでのゲームのコーディング」または他の高レベル言語の正反対です。
bobobobo

1

私はRubyを取り巻く深いスペックの仕事の多くに精通していませんが、EnterbrainはRubyベースのゲームスクリプトを使用するゲーム作成プログラムRPG Maker VXとRPG Maker XPを作成しました:http//www.rpgmakerweb.com/

これは実際に私の言語への最初の飛び込みでした。ほとんどの人が言ったように、おそらく他の言語の高いパフォーマンスは得られませんが、2D RPG(または実際に他の2Dゲーム)を開始しようとしている場合、おそらく最も洗練されたゲームエディターの1つです助けて。


0

Rubyは素晴らしい言語ですが、ゲームが正直であることはあまりありません。C ++を使用したくないが、Rubyのようなものが必要な場合は、Pythonをチェックしてください。優れたPythonフレームワークについては、www.cocos2d.org /のようなものをチェックアウトする必要があります。


3
...またはwww.pygame.org
イアンシュライバー

6
これはナンセンスです。RubyはPythonと同じように「ゲーム用」の言語です。
リケット

2
...ナンセンス。Luaはゲーム用ではないと言うこともできます。
コーネルKisielewicz

2
pygameに相当するルビーはありますか?ある言語が他の言語よりも適しているとは言いません。しかし、Pythonにはより優れたゲームライブラリとgamedevコミュニティがあると言うのが妥当かもしれません。
deft_code

ルビーへのSFMLポートがあると感じています。
共産主義のダック

0

書くことに興味のあるゲームの種類によって異なります。ルビーを使用して、外交、ポーカー、ロストシティズなど、いくつかのゲームのAIクライアントを記述しました。さまざまな概念をすばやく試すのに非常に使いやすい言語だと思います。一方、リアルタイムシューティングゲームを作成するためにそれを使用したくはありません。必要なパフォーマンスが得られないだけです。


0

あなたの質問は一般的すぎます。趣味のプロジェクトとしてコンピューターゲームを書くだけですか、それともインディー/プロフェッショナルゲームの開発に入りますか?グラフィックはありますか?どのプラットフォームで実行することになっていますか?

一般に、Rubyは趣味のプロジェクト(私のお気に入りのRubyゲームはRuby Warriorです)やFarmvilleのようなWebベースのゲームの開発に適しています。そのようなプログラマーには一定の要求さえあります。「ruby Programmer Social Game」のようなグーグルを試してみてください。

一方、デスクトップベースまたはモバイルベースのグラフィックスゲームを開発する場合、Rubyは最適な選択肢ではありません。考慮してください:

  • CoffeescriptをサポートするJavascriptライブラリ(構文はRubyに非常に似ています)
  • Python-Rubyと非常によく似た、より優れたゲームライブラリ

0

高性能でプロフェッショナルな商用の3DゲームをRubyで書くことを期待しないでください。しかし、Rubyはゲーム開発の概念を学ぶ際に使用するのに最適な言語です。

Gosuは、Rubyで2Dゲームを作成するための最も人気のある(積極的に管理されている)ライブラリです。パフォーマンスを改善し、OpenGLなどの基になるディスプレイレンダリングライブラリと対話するために使用する基になるC ++ライブラリがあります。

パフォーマンスに関する限り、「デフォルト」Ruby実装(MRI)は正常に動作します(最高のパフォーマンスを得るには最新のRuby 2.0をお勧めします)が、Rubinius、JRubyなどのネイティブスレッドと代替ガベージコレクションアルゴリズムを持つ代替実装があります。スレッドを使用している場合は、Rubiniusを試してください。そうしないと、MRI Rubyが正常に機能します。


-2

Pythonを言ったのは、ゲーム開発用のフレームワーク/ライブラリに関しては、より大きなユーザーベースとより多くの選択肢があるためです。この人はゲーム開発の経験がないことは明らかなので、可能だからといってRubyのようなものを使うことを勧めるのは意味がありません。

LuaでC ++を使用するゲームで作業する場合、メディアサポートがあるという理由だけで、Visual Basicでゲームを作成することはありません。ここの誰もが誰かが特定の仕事のための特定のツールを言うのを聞いたと確信しています。靴で釘を打つことができると確信していますが、ハンマーを使用できるのになぜそうするのでしょうか。


2
C ++は素晴らしい言語ですが、ゲームが正直であることは実際にはありません。アセンブリを使用したくないが、C ++のようなものが必要な場合は、Cをチェックアウトします。優れたCフレームワークの場合は、libsdl.orgのようなものをチェックアウトする必要があります。(C ++には下位互換性があるためうまく動作しませんが、ポイントは得られます)
リケット

私はあなたのポイントを取得しません。正直言って、私はあなたが何を言っているのか気にしないので、私に返信するのを気にしないでください。プログラミング言語の正当性について議論するのではなく、誰かを助けようとしているだけです。
UnknownDevice

5
彼の要点は、あなたの元の答えは、質問に対する絶対的な本質を持たなかったということです。あなたはRubyは「ゲーム用ではない」と断言しますが、それだけです。その価値はほとんどありません。OPがRubyを使用する理由については、明確です。それは「彼が本当によく知っている唯一の言語」です。それは「可能だからというだけ」ではありません。
Neverender

@Neverender、それは完全に真実ではありません。彼は、Pythonには単にゲーム開発用に完成したより多くのユーザーベースとより多くのライブラリがあるという主張をしました。これらは、ゲーム開発の経験がない人にアドバイスを与える際に行うべき正当な観察であると思います。
ザックコネティカット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.