Kinerja Python vs Game Maker [ditutup]

14

Saya awalnya berpikir untuk membuat game dengan Python dan SFML. Saya mengerti Python lambat dibandingkan dengan C ++, tapi bagaimana ini dibandingkan dengan Game Maker?

Alasan utama saya bertanya adalah saya baru-baru ini memainkan game Game Maker (The Iconoclasts) yang berjalan pada frame-rate yang cukup buruk di komputer saya (GMA 950). Saya khawatir saya akan mengalami masalah kinerja yang serupa dengan Python / SFML.


sumber
Ada perkembangan besar dalam Game Maker yang mungkin ingin Anda tinjau
Jeff

Jawaban:

50

Mengatakan "Python lambat dibandingkan dengan C ++" adalah generalisasi yang mengabaikan banyak kepraktisan dunia nyata dan biasanya merupakan jenis penilaian yang buruk untuk diandalkan. Apa yang benar-benar ingin Anda lakukan adalah melihat apa yang dapat dibawa oleh bahasa atau teknologi tertentu dalam hal kebutuhan Anda dan, juga, mengevaluasi setiap potensi jatuhnya teknologi itu terhadap kebutuhan Anda.

Jika Anda harus mengajukan pertanyaan semacam ini, ada peluang yang sangat bagus bahwa faktor pembatas dalam hal kinerja permainan apa pun yang Anda buat adalah Anda dan bukan pilihan teknologi itu sendiri. Akibatnya, pilihan optimal adalah yang paling memberdayakan Anda, dengan kata lain, teknologi atau bahasa yang sudah Anda kenal paling baik.

Adapun kinerja buruk dari game Game Maker yang Anda mainkan, itu bisa disebabkan oleh sejumlah faktor, beberapa di antaranya spesifik untuk game itu, seperti kode buruk tertentu yang mungkin telah ditulis melalui alat Game Maker atau bahasa scripting. Itu belum tentu kesalahan dari Game Maker itu sendiri.


sumber
2
@Nevermind, Anda dapat - google untuk sockpuppets . :) Just kidding - Saya akan menambahkan suara untuk Anda. 5001 - keren, dia sekarang dapat memberikan suara pada suntingan tag-wiki ...
Cyclops
1
Pada GMA 950 saya sama sekali tidak akan terkejut jika game itu terikat GPU daripada terikat CPU.
Adam
4

Jika saya harus menebak alasan terbesar mengapa game yang Anda mainkan berjalan begitu lambat bukanlah karena itu adalah game maker game, tetapi game maker itu memasarkan dirinya sendiri secara khusus kepada non-programmer. Karena Anda memiliki non programmer yang membuat game, kemungkinan besar game tersebut menggunakan beberapa algoritma yang sangat tidak efisien yang menyebabkannya berjalan lambat.

Seperti dalam kebanyakan kasus, kecepatan bahasa hanya akan sedikit mempengaruhi kinerja keseluruhan program. Ketika orang mengatakan "omg bahasa ini 50% lebih lambat dari bahasa lain ini" dan kecepatannya masih sangat cepat dalam kedua kasus ini maka Anda akan menemukan sedikit perbedaan yang tidak dapat dilihat oleh pengguna akhir.

Ken
sumber
3

Game Maker adalah alat pemula yang bagus. Tapi saya sarankan pindah ke program yang lebih besar dan lebih baik jika Anda memiliki pengalaman pemrograman sebelumnya. Saya menggunakan GameMaker untuk kursus pengembangan game 2D perguruan tinggi, ia memiliki sistem drag and drop yang bagus dan mudah digunakan. Masalahnya, bagaimanapun, adalah bahwa program drag and drop tidak menggunakan perintah yang paling efisien (atau logis). Plus drag and drop tidak mendukung banyak perintah tingkat lanjut yang dapat dieksekusi oleh program, sehingga programmer harus berkreasi dengannya, atau belajar membuat kode. Namun, jika Anda belajar menggunakan kode GameMaker, maka Anda bisa menyiasatinya dengan relatif mudah.

Tetapi, mungkin sulit untuk mempelajari kode untuk satu program tunggal dengan jadwal sibuk yang kita semua miliki, yang kemungkinan besar mengapa Anda mengalami kinerja yang lambat.

Tetapi seperti yang Kort Pleco katakan sebelumnya, sebagian besar kecepatan bahasa tidak terlalu berbeda. Itu semua tergantung pada bagaimana kode ditulis dan dijalankan. Banyak redudansi yang membuatnya lebih lambat, yang biasanya karena kurangnya pengalaman dalam pengkodean.

Kyle Kudia
sumber
2

Untuk game yang sedang saya kerjakan, saya menggunakan algoritma diamond-square untuk secara acak membuat medan setelah memulai game baru. Untuk memutuskan antara menggunakan python dengan pygame untuk proyek atau GameMaker, saya mengimplementasikan generator medan di keduanya. Pygame tampil sedikit lebih cepat, tetapi perbedaannya dapat diabaikan. Pada akhirnya saya memilih GameMaker karena saya dapat bekerja lebih cepat di dalamnya.

Martin Bonde
sumber
1

Jawaban yang diterima sudah mati tetapi saya hanya ingin menambahkan 2 sen saya sebagai pengguna GM selama hampir 8 tahun.

GM memang memiliki banyak masalah dengan optimasi sehingga ada beberapa kekhawatiran yang sah. Ada sekelompok metode usang * _variable_exists? yang dulu ada di pra-studio Gamemaker. Karena metode kenyamanan ini, itu digunakan di hampir setiap perpustakaan yang ada dan ekstensi yang ditulis untuk GM. Ternyata metode ini sangat mahal dan menyebabkan masalah besar ketika menjalankan game skala besar.

Jadi ada banyak kasus di mana GM bisa benar-benar buruk tetapi dengan pengetahuan yang tepat dan penggunaan yang hati-hati itu tidak kurang sah dari metode lain (unity2d, pygame, dll.). Hanya membuat game dan bersenang-senang.

Dan Bradbury
sumber