自明ではない2DゲームをPythonで開発するのは良い考えですか?[閉まっている]


10

2DスペースRPGの開発を計画していて、選択肢に直面しています。それを書くのに最適な言語は何ですか?私の候補者はC ++、Java、Pythonです。言うまでもなく、その表現力、開発のスピード、およびスクリプトサポートの追加の単純さのために、Pythonでゲームを書きたいと思います。しかし、私は心配しています:

  • Pythonが遅くなりすぎませんか?ゲームは簡単ではありません(たとえば、テトリスのように)。宇宙にある何千もの船のタスクを計算する必要がある場合があります(それらの船がプレイヤーに表示されない場合、AIを大幅に簡略化できます)。もちろん、Cでいくつかの重要な部分を書くこともできますが、ビルドとデプロイがすぐに複雑になります。
  • ゲームが人気になり、スーパースターになったとしましょう。WindowsユーザーがPythonを使用することはめったにありません(幸い、py2exeがあります)。Mac OS X上のPythonは古くなっている可能性があり、あいまいな例外でゲームがクラッシュする場合があります。Pythonでゲームをデプロイするのは難しくありませんか?
  • Python 3のライブラリが不足しているため、Python 2でゲームを作成する必要があります。数年でPython 3に移行するのは、あまりに面倒で時間がかかりませんか?

2番目の質問については、展開をかなり簡単にするために使用できるpy2appもあると思います。
thedaian、

1
これをPythonで行うことにした場合は、numpyを使用して「遅い」部分を実行できるかどうかを確認する必要があります(ただし、必要ない場合もあります)。
ブレンダンロング、

回答:


8

Pythonが遅くなりすぎませんか?ゲームは簡単ではありません(たとえば、テトリスのように)。宇宙にある何千もの船のタスクを計算する必要がある場合があります(それらの船がプレイヤーに表示されない場合、AIを大幅に簡略化できます)。もちろん、Cでいくつかの重要な部分を書くこともできますが、ビルドとデプロイがすぐに複雑になります。

言うのは難しいですが、ほとんどの場合、パフォーマンスの制限要因は、言語ではなく、開発者としての能力/経験です。EVEはStackless Pythonを使用していることに注意してください(関連するプレゼンテーションのダウンロードについては、ここここを参照してください)。正確な詳細は思い出せませんが、サーバークラスターのほとんどがPythonを実行しているようです。したがって、確かにプロトタイプを作成することで十分ですが、スケーラビリティ要件を処理できると思います。

WindowsユーザーがPythonを使用することはめったにありません(幸い、py2exeがあります)。Mac OS X上のPythonは古くなっている可能性があり、あいまいな例外でゲームがクラッシュする場合があります。Pythonでゲームをデプロイするのは難しくありませんか?

ほとんどのユーザーは、ゲームがどのテクノロジーで書かれているかに関係なく、ゲームに適切なバイナリ依存関係を持っていることはめったにありません(Cでさえ、ランタイムコンポーネントを配布する必要があります)。py2exeまたは同等のものを介して展開する、または単に適切な依存関係を展開することは、現実の事実です。それが最も簡単なことではありませんが(ほとんどのインストーラーテクノロジは苦痛です)、それは実行可能であり、言語を回避する理由にはなりません。

Python 3のライブラリが不足しているため、Python 2でゲームを作成する必要があります。数年でPython 3に移行するのは、あまりに面倒で時間がかかりませんか?

これについてはあまり知りませんが、Python 3を実際に使用したことはありません。ただし、Python 2.Xがすぐになくなるとは思わないので、ゲームの寿命があなたのようになるとは思わないでしょう。 D「の必要性非問題のこの懸念に何かを作るあなたはしたくなかった場合はオーバー移行します。

他の人が言ったように、あなたはあなたのプロジェクトの言語選択の側面について心配しすぎています。Pythonは、ゲームを開発するための強力で便利なツールです。Pythonを知っていて気に入ったら、それを使って開発する必要があります。言語について心配しすぎてゲームが終了しない場合でも、ゲームの実行速度は問題ではありません。


Python 2.7をかなり広範囲に使用しているため、Python 3.2以降では、2.7で実行できないことはほとんどありません。それは時間とともに変化しますが、ライブラリのサポートも変化します。=)
Ken

14

最初のポイントとして、プロトタイプを作成して確認するだけです。あなたが私たちに本当に物事を変えないだろうすべての詳細を言ったとしても。

他の2つの点については、カートの前に馬を置いているような気がします。あなたの質問から、あなたはゲーム開発に慣れていないようですが、その場合は本当にツールを選んでそれを使うだけです。ほぼ同等に有用なツールの長所と短所を間違えることは、ゲーム開発の学習という本当の課題の邪魔になります。


0

#3に関して、Python 2.xはディストリビューターのサポートを少なくともさらに5〜10年間受けるでしょう。かなり最近のバージョン(2.7、または場合によっては2.6)を使用している場合、将来性のあるコード(新しいスタイルのオブジェクト、どこにでもユニコードなど)を記述すれば、移行パスはかなり簡単です。痛みは主に、古くて壊れた行動に依存していたものにあります。


気になる古い動作を特定するにはpython -3 filename.py、でゲームを実行します。これにより、Python 3でサポートされなくなったものに対する警告が出力されます
spiffytech
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.