Python Performance vs Game Maker [kapalı]


14

Başlangıçta Python ve SFML ile bir oyun yaratmayı düşünüyordum. Python'un C ++ ile karşılaştırıldığında yavaş olduğunu anlıyorum, ancak Game Maker ile karşılaştırıldığında nasıl?

Sormamın ana nedeni, son zamanlarda bilgisayarımda oldukça kötü bir kare hızında (GMA 950) çalışan bir Game Maker oyunu (The Iconoclasts) oynamıştım. Python / SFML ile benzer performans sorunları yaşayacağımdan endişeliyim.


Game Maker'da bakmak isteyebileceğiniz çok büyük gelişmeler oldu
Jeff

Yanıtlar:


50

"Python, C ++ ile karşılaştırıldığında yavaştır" demek, gerçek dünyadaki pratikliklerin çoğunu görmezden gelen ve genellikle güvenilmesi gereken kötü bir karar olan bir genellemedir . Gerçekten yapmak istediğiniz şey, belirli bir dilin veya teknolojinin ihtiyaçlarınız açısından tabloya neler getirebileceğine bakmak ve benzer şekilde, bu teknolojinin olası düşüşlerini ihtiyaçlarınıza göre değerlendirmektir.

Eğer bir soruya bu tür sormak yaşıyorsanız, yaptığınız oyunun performans açısından sınırlayıcı faktör olacağı çok iyi bir şans var sen değil teknoloji seçimlerini kendileri. Sonuç olarak en uygun seçim, sizi en çok güçlendiren, diğer bir deyişle, zaten en iyi bildiğiniz teknolojiyi veya dili seçenektir.

Oynadığınız Game Maker oyununun kötü performansına gelince, bu, bazıları Game Game'in araçları veya komut dosyası dilleri tarafından yazılmış olabilecek kötü kod gibi bazı faktörler ile ilişkilendirilebilir. Bu mutlaka Game Maker'ın bir hatası değildir.


2
@Nevermind, yapabilirsiniz - çorap için google . :) Şaka yapıyorum - Senin için oy vereceğim. 5001 - Harika, şimdi tag-wiki düzenlemelerine oy verebilir ...
Cyclops

1
Bir GMA 950'de oyun CPU'ya bağlı değil GPU'ya bağlıysa hiç şaşırmam.
Adam

4

Oynadığınız oyunun bu kadar yavaş çalışmasının en büyük nedenini tahmin etmek zorunda kalsaydım, bu bir oyun yapımcısı oyunu değil, bu oyun yapımcısı kendini özellikle programcı olmayanlara pazarlar. Oyun yapmayan programcılarınız olmadığı için, söz konusu oyunun yavaş çalışmasına neden olan çok verimsiz algoritmalar kullanması büyük olasılıktır.

Çoğu durumda olduğu gibi, dilin hızı programın genel performansını sadece hafifçe etkiler. İnsanlar "omg bu dil bu diğer dilden% 50 daha yavaş" dediğinde ve her iki durumda da hız hala aptalca olduğunda, son kullanıcı için çok az fark edilir veya fark edilebilir bir fark olmaz.


3

Game Maker iyi bir başlangıç ​​aracıdır. Ancak daha önce herhangi bir programlama deneyiminiz varsa daha büyük ve daha iyi programlara geçmenizi öneririm. GameMaker'ı bir kolej 2D oyun geliştirme kursu için kullandım, güzel, kullanımı kolay bir sürükle ve bırak sistemi var. Ancak sorun, programın sürükleyip bırakma işleminin en verimli (veya mantıksal) komutları kullanmamasıdır. Ayrıca sürükle ve bırak, programın çalıştırabileceği gelişmiş komutların çoğunu desteklemez, bu nedenle programcı onunla yaratıcı olmak veya kod yazmayı öğrenmek zorundadır. Ancak GameMaker kodunu kullanmayı öğrenirseniz, göreceli olarak kolaylıkla bu sorunu çözebilirsiniz.

Ancak, hepimizin sahip olduğu yoğun programlarla tek bir program için bir kod öğrenmek zor olabilir, bu nedenle yavaş performansı deneyimlemeniz büyük olasılıktır.

Ancak Kort Pleco'nun daha önce belirttiği gibi, çoğu dil hızı fark edilir derecede farklı değildir. Her şey kodun nasıl yazıldığına ve yürütüldüğüne bağlıdır. Bir çok fazlalık onu normalde kodlamada deneyim eksikliğinden dolayı oldukça yavaşlatabilir.


2

Üzerinde çalıştığım oyun için, yeni bir oyuna başladıktan sonra rastgele arazi oluşturmak için elmas kare bir algoritma kullanıyorum. Python'u pygame ile proje veya GameMaker için kullanma arasında karar vermek için her ikisine de arazi üretecini uyguladım. Pygame biraz daha hızlı performans gösterdi, ancak fark önemsizdi. Nihayetinde GameMaker'ı seçtim çünkü içinde çok daha hızlı çalışabiliyorum.


1

Kabul edilen cevap öldü, ancak 2 sentimi yaklaşık 8 yıldır GM kullanıcısı olarak eklemek istedim.

GM'nin optimizasyonla ilgili birçok sorunu vardı, bu yüzden bazı meşru endişeler var. Bir grup kullanımdan kaldırılmış yöntem var * _variable_exists? Gamemaker ön-stüdyosunda vardı. Bu kolaylık yöntemi nedeniyle, GM için yazılan hemen hemen her hayal edilebilir kütüphane ve uzantıda kaldı. Bu yöntemlerin korkunç derecede pahalı olduğu ve büyük ölçekli oyunlar oynarken büyük sorunlara neden olduğu ortaya çıktı.

Bu nedenle GM'nin gerçekten kötü olabileceği birçok durum vardır, ancak uygun bilgi ve dikkatli kullanım ile diğer yöntemlerden (unity2d, pygame, vb.) Daha az meşru değildir. Sadece oyun yapın ve eğlenin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.