Apakah ide yang baik untuk mengembangkan game 2d non-sepele dengan python? [Tutup]


10

Saya berencana untuk mengembangkan RPG ruang 2D dan saya menghadapi pilihan: apa bahasa terbaik untuk menuliskannya? Kandidat saya adalah C ++, Java dan Python. Jelas, saya ingin menulis game dengan Python karena ekspresifnya, kecepatan pengembangan dan kesederhanaan menambahkan dukungan scripting. Tapi saya khawatir:

  • Bukankah Python terlalu lambat? Permainan tidak akan sepele (seperti Tetris misalnya), mungkin diperlukan untuk menghitung tugas untuk ribuan kapal di alam semesta (meskipun AI mereka dapat sangat disederhanakan jika kapal-kapal itu tidak terlihat oleh pemain). Tentu saja saya dapat menulis beberapa bagian penting dalam C, tetapi itu akan langsung menyulitkan pembangunan dan penyebaran.
  • Misalkan saja game itu menjadi populer, dan saya menjadi superstar. Pengguna Windows jarang memiliki Python sama sekali (untungnya kami memiliki py2exe). Python di Mac OS X dapat kedaluwarsa dan game mungkin macet dengan pengecualian yang tidak jelas. Bukankah sulit untuk menggunakan game di Python?
  • Karena kurangnya perpustakaan untuk Python 3 saya harus menulis permainan dengan Python 2. Bukankah transisi ke Python 3 dalam beberapa tahun akan terlalu menyakitkan dan memakan waktu?

Untuk pertanyaan kedua Anda, saya cukup yakin ada juga py2app yang dapat Anda gunakan untuk membuat penyebaran cukup mudah.
thedaian

1
Jika Anda memutuskan untuk melakukan ini dengan Python, Anda mungkin ingin melihat apakah Anda dapat melakukan bagian "lambat" menggunakan numpy (tetapi mungkin tidak perlu).
Brendan Long

Jawaban:


8

Bukankah Python terlalu lambat? Permainan tidak akan sepele (seperti Tetris misalnya), mungkin diperlukan untuk menghitung tugas untuk ribuan kapal di alam semesta (meskipun AI mereka dapat sangat disederhanakan jika kapal-kapal itu tidak terlihat oleh pemain). Tentu saja saya dapat menulis beberapa bagian penting dalam C, tetapi itu akan langsung menyulitkan pembangunan dan penyebaran.

Sulit dikatakan, tetapi sebagian besar waktu faktor pembatas kinerja adalah kemampuan / pengalaman seseorang sebagai pengembang, bukan bahasa. Perhatikan bahwa EVE menggunakan Stackless Python (lihat di sini dan di sini untuk mengunduh presentasi terkait). Saya tidak ingat detail yang tepat, tetapi tampaknya sebagian besar server cluster mereka menjalankan Python . Dengan demikian saya akan membayangkan bahwa itu bisa menangani persyaratan skalabilitas Anda, meskipun membuat prototipe untuk memastikan akan baik.

Pengguna Windows jarang memiliki Python sama sekali (untungnya kami memiliki py2exe). Python di Mac OS X dapat kedaluwarsa dan game mungkin macet dengan pengecualian yang tidak jelas. Bukankah sulit untuk menggunakan game di Python?

Sebagian besar pengguna jarang memiliki dependensi biner yang sesuai untuk game, terlepas dari teknologi apa game itu ditulis (bahkan C membutuhkan komponen runtime untuk didistribusikan). Menyebarkan melalui py2exe atau yang setara, atau hanya menggunakan ketergantungan yang sesuai, adalah sesuatu dari fakta kehidupan. Meskipun ini bukan yang termudah (sebagian besar teknologi pemasang menyakitkan), ini bisa dilakukan dan seharusnya tidak menjadi alasan untuk menghindari bahasa - seperti yang saya katakan, Anda mungkin harus menangani sesuatu yang serupa.

Karena kurangnya perpustakaan untuk Python 3 saya harus menulis permainan dengan Python 2. Bukankah transisi ke Python 3 dalam beberapa tahun akan terlalu menyakitkan dan memakan waktu?

Ini saya tidak tahu banyak tentang, tidak pernah benar-benar menggunakan Python 3. Saya tidak berharap Python 2.X akan menghilang dalam waktu dekat, jadi saya bahkan tidak curiga umur permainan Anda akan sedemikian rupa sehingga Anda Anda perlu transisi jika Anda tidak mau, yang membuat masalah ini bukan masalah.

Seperti yang orang lain katakan, Anda terlalu khawatir tentang aspek pemilihan bahasa proyek Anda. Python adalah alat yang ampuh dan berguna untuk mengembangkan gim dan jika Anda mengetahuinya dan menyukainya, Anda harus mengembangkannya. Tidak masalah seberapa cepat permainan Anda berjalan jika tidak pernah selesai karena Anda terlalu khawatir tentang bahasa.


Setelah menggunakan python 2.7 dengan cukup luas, tidak banyak yang dapat Anda lakukan dengan python 3.2+ yang tidak dapat Anda lakukan dengan 2.7. Itu akan berubah seiring waktu, tetapi juga akan mendukung perpustakaan. =)
Ken

14

Untuk poin pertama Anda, Anda hanya perlu membuat prototipe dan melihatnya. Bahkan jika Anda memberi tahu kami semua detail yang tidak akan benar-benar mengubah keadaan.

Adapun dua poin lainnya, saya agak merasa seperti Anda meletakkan kereta di depan kuda. Dari pertanyaan Anda, sepertinya Anda baru dalam pengembangan game, dalam hal ini Anda benar-benar hanya perlu memilih alat dan menggunakannya. Mengutip pro dan kontra dari sebagian besar alat yang sama berguna adalah gangguan dari tantangan nyata Anda: belajar pengembangan game.


0

kembali # 3, Python 2.x akan melihat dukungan distributor untuk setidaknya 5-10 tahun lagi. Jika Anda menggunakan versi yang cukup baru (2.7, atau mungkin 2.6) jalur migrasi cukup mudah jika Anda menulis kode yang terbukti di masa depan (objek gaya baru, unicode di mana-mana, dll, dll). Rasa sakit sebagian besar untuk hal-hal yang mengandalkan perilaku lama yang rusak.


Untuk membantu mengidentifikasi perilaku lama yang akan menggigit Anda, jalankan game Anda python -3 filename.py, yang akan mencetak peringatan untuk hal-hal yang tidak lagi didukung dalam Python 3
spiffytech
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.