Javaでゲームを作成したいのですが、Windows、Linux、Macで動作するようにしたいと思います。これにはC#が悪い選択であり、CまたはC ++の十分な経験がないと確信しています。Flashから離れたい。したがって、Javaは私にとって良い選択ですか?ほとんどの場合、私はC#を使用しており、Javaも似ていると思うので、学習するのはそれほど難しくないと思います。しかし、それは十分速いですか?Javaよりも私のニーズに適した言語はありますか?
Javaでゲームを作成したいのですが、Windows、Linux、Macで動作するようにしたいと思います。これにはC#が悪い選択であり、CまたはC ++の十分な経験がないと確信しています。Flashから離れたい。したがって、Javaは私にとって良い選択ですか?ほとんどの場合、私はC#を使用しており、Javaも似ていると思うので、学習するのはそれほど難しくないと思います。しかし、それは十分速いですか?Javaよりも私のニーズに適した言語はありますか?
回答:
Javaは、クロスプラットフォームゲームの作成に非常に適しています。主な利点:
あなたが取らなければならない主な決定は、使用するGUIフレームワークです。いくつかの異なるオプションがありますが、最も顕著なオプションは次のとおりです。
ゲーム用のJavaの主な短所は、おそらくあなたには影響を及ぼさないが、ゲームのいくつかのクラスに関連する「エッジケース」に関するものです。
考慮すべき展開オプションもいくつかあることに注意してください。
最後に、他のいくつかのJVM言語も検討する価値があります。これらは上記のJavaプラットフォームのすべての利点を備えていますが、一部はJava自体よりも優れた言語であると考えています。Scala、Clojure、Groovyは最も有名なものであり、上記のJavaツールとライブラリをすべて使用できます。
MinecraftとMatter that MatterはどちらもJavaで構築されているため、ゲームを作成するのに十分です。Javaを使用しているときに遭遇する主な問題は、そのルートに進んでネイティブアプリを作成することを選択した場合、モバイルプラットフォームに移植することです。Androidは、独立したライブラリを備えた一種のフランケンシュタインJava SEです。RIMのBlackberryはJava MEを使用します。iOSは理論的にはJavaでプログラミングできますが、そのプラットフォームにはObjective-Cの方が適していると思われます。
JavaはC#によく似ています。Javaしか知らなくても、C#コードは理解できることがよくあります。それらは異なる設計哲学を持っていますが、最小限の手間で広く展開できる限り、両方とも法案に適合します。C#は、ゲームの展開においてひどい選択ではありませんが、モバイル展開はより難しくなり、Windows以外のプラットフォームへの展開は、使用する特定の外部ライブラリなどに応じて、より時間がかかるか困難になります。
最も明白で抵抗の少ない方法は、HTML5 + javascriptコンボを使用することです。これを使用して作成されたアプリケーションまたはゲームは、ほぼすべてのデバイスとブラウザーで実行されます。
利点:-さまざまなプラットフォームやデバイスでゲームを実行するためのゼロ構成が必要になります。
注:-上記のテクノロジーを使用してビルドされたゲームはほとんど見ませんでしたが、サイズが小さかったです。しかし、牛乳からバターを作ることができれば、チーズは不可能ではないと思います
短い答え:いいえ。
Javaはバイナリ実行可能ファイルを生成せず、C#と同様にバイトコードのみを生成し(CLI)、これは2つの主な理由で「オープン環境」での深刻なビジネスには適していません。
もちろん、すべての言語には独自のライブラリがありますが、それぞれの言語に膨大な数のライブラリがあるため、これは実際の問題ではなく、このトピックの目的ではないと思います。
たぶんプロのレベルでは、すべてのC#ステートメントを実際のマシンのアセンブリコードに変換できるdev-Kitのようなルールを破ることができるものを見つけることができますが、この種のアプローチがカードになければ強制的に強制されますオープン環境で製品を販売する場合は、開発用のCおよびC ++のみを考慮してください。
実世界のROMのソースが一般に公開されていないという事実を考慮してAndroidは実際には閉じられているため、モバイルデバイスにとっては物事が少し異なります。Androidはオープンソースと考えられますが、 actualsデバイスのROMの%はそうではありません。この場合、あまり議論することはできません。すべてがすでに設定されており、すべてのプラットフォームには、誰もが知っているような独自の言語があります。
最終的に、この製品をオープンな環境で販売する場合、コンパイルされたバイナリ/アセンブリコードを生成できる言語のみを提案できますが、クローズドな環境では、さまざまな理由で決定が一般的に簡単になります。