Python Performance vs Game Maker [chiuso]


14

Inizialmente stavo pensando di creare un gioco con Python e SFML. Capisco Python è lento rispetto al C ++, ma come è rispetto a Game Maker?

Il motivo principale per cui lo chiedo è che di recente ho giocato a un gioco Game Maker (The Iconoclasts) che girava a un frame rate piuttosto basso sul mio computer (GMA 950). Sono preoccupato di avere problemi di prestazioni simili con Python / SFML.


Ci sono stati enormi sviluppi in Game Maker che potresti voler esaminare
Jeff

Risposte:


50

Dire "Python è lento rispetto al C ++" è una generalizzazione che ignora molte funzionalità del mondo reale e di solito è un cattivo tipo di giudizio su cui fare affidamento. Quello che vuoi davvero fare è guardare a ciò che un particolare linguaggio o tecnologia può portare al tavolo in termini di esigenze e, allo stesso modo, valutare eventuali potenziali cadute di tale tecnologia rispetto alle tue esigenze.

Se devi fare questo tipo di domanda, ci sono ottime possibilità che il fattore limitante in termini di prestazioni di ogni gioco che fai sia tu e non le scelte tecnologiche stesse. Di conseguenza, la scelta ottimale è quella che ti dà più potere, in altre parole, la tecnologia o il linguaggio che già conosci meglio.

Per quanto riguarda le scarse prestazioni del gioco Game Maker a cui hai giocato, ciò potrebbe essere attribuibile a una serie di fattori, alcuni dei quali specifici di quel gioco, come specifici codici poveri che potrebbero essere stati scritti tramite gli strumenti di Game Maker o i linguaggi di scripting. Non è necessariamente colpa di Game Maker stesso.


2
@Nevermind, puoi - google per sockpuppets . :) Sto scherzando, aggiungerò un voto per te. 5001 - figo, ora può votare le modifiche tag-wiki ...
Ciclope

1
Su un GMA 950 non sarei affatto sorpreso se il gioco fosse associato alla GPU piuttosto che alla CPU.
Adam,

4

Se dovessi indovinare il motivo principale per cui il gioco a cui hai giocato è così lento non è che si tratta di un gioco, ma quel produttore si commercializza specificamente per i non programmatori. Poiché hai programmatori che non fanno giochi, è molto probabile che il gioco in questione utilizzi alcuni algoritmi molto inefficienti che ne rallentano il funzionamento.

Come nella maggior parte dei casi, la velocità della lingua influenzerà solo leggermente le prestazioni complessive del programma. Quando la gente dice "omg questa lingua è più lenta del 50% rispetto a questa altra lingua" e la velocità è ancora stupida in entrambi i casi, allora troverai poca o nessuna differenza riconoscibile per l'utente finale.


3

Game Maker è un buon strumento per principianti. Ma ti consiglio di passare a programmi più grandi e migliori se hai precedenti esperienze di programmazione. Ho usato GameMaker per un corso di sviluppo di giochi 2D universitari, ha un sistema di trascinamento della selezione piacevole e facile da usare. Il problema, tuttavia, è che il trascinamento della selezione del programma non utilizza i comandi più efficienti (o logici). Inoltre, il trascinamento della selezione non supporta molti dei comandi avanzati che il programma è in grado di eseguire, quindi il programmatore deve essere creativo con esso o imparare a programmare. Se impari a usare il codice GameMaker, tuttavia, sarai in grado di aggirare questo con relativa facilità.

Tuttavia, può essere difficile imparare un codice per un singolo programma con i programmi occupati che tutti noi abbiamo, il che è molto probabilmente il motivo per cui hai riscontrato prestazioni lente.

Ma come affermato in precedenza da Kort Pleco, la maggior parte delle velocità linguistiche non sono notevolmente diverse .. Tutto dipende da come viene scritto ed eseguito il codice. Molti licenziamenti possono renderlo notevolmente più lento, il che è normalmente dovuto alla mancanza di esperienza nella programmazione.


2

Per il gioco a cui sto lavorando, uso un algoritmo a diamante quadrato per creare casualmente terreno all'avvio di un nuovo gioco. Per decidere se usare python con pygame per il progetto o GameMaker, ho implementato il generatore di terreno in entrambi. Pygame si è comportato in modo leggermente più veloce, ma la differenza era trascurabile. Alla fine ho scelto GameMaker perché posso lavorarci molto più velocemente.


1

La risposta accettata è morta ma volevo solo aggiungere i miei 2 centesimi come utente GM per quasi 8 anni.

GM ha avuto molti problemi con le ottimizzazioni, quindi c'è qualche legittima preoccupazione. Esistono un gruppo di metodi obsoleti * _variable_exists? che esisteva nel pre-studio di Gamemaker. A causa di questo metodo di praticità, è stato sfruttato in quasi tutte le librerie ed estensioni immaginabili scritte per GM. Si scopre che questi metodi erano orribilmente costosi e stavano causando gravi problemi durante l'esecuzione di giochi su larga scala.

Quindi ci sono molti casi in cui GM può essere davvero cattivo ma con una conoscenza adeguata e un uso attento non è meno legittimo di qualsiasi altro metodo (unity2d, pygame, ecc.). Crea giochi e divertiti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.