Python Performance vs Game Maker [geschlossen]

14

Ich hatte ursprünglich überlegt, ein Spiel mit Python und SFML zu erstellen. Ich verstehe, dass Python im Vergleich zu C ++ langsam ist, aber wie ist es im Vergleich zu Game Maker?

Der Hauptgrund, den ich frage, ist, dass ich kürzlich ein Game Maker-Spiel (The Iconoclasts) gespielt habe, das auf meinem Computer mit einer ziemlich schlechten Bildrate lief (GMA 950). Ich fürchte, ich hätte ähnliche Leistungsprobleme mit Python / SFML.


quelle
Es gab massive Entwicklungen in Game Maker, die Sie untersuchen möchten
Jeff

Antworten:

50

Zu sagen, dass "Python im Vergleich zu C ++ langsam ist", ist eine Verallgemeinerung, die viele praktische Aspekte ignoriert und in der Regel ein schlechtes Urteilsvermögen darstellt. Was Sie wirklich tun möchten, ist zu prüfen, was eine bestimmte Sprache oder Technologie in Bezug auf Ihre Bedürfnisse auf den Tisch bringen kann, und in ähnlicher Weise mögliche Nachteile dieser Technologie anhand Ihrer Bedürfnisse zu bewerten.

Wenn Sie diese Art von Frage zu stellen haben, ist es eine sehr gute Chance , dass der limitierende Faktor in Bezug auf die Leistung eines Spiels werden Sie machen sein Sie und nicht die Technologie seiner Wahl selbst. Folglich ist die optimale Wahl diejenige, die Sie am meisten befähigt, mit anderen Worten, die Technologie oder Sprache, die Sie bereits am besten kennen.

Die schlechte Leistung des Game Maker-Spiels, das Sie gespielt haben, kann auf eine Reihe von Faktoren zurückzuführen sein, von denen einige für das jeweilige Spiel spezifisch sind, z. Es ist nicht unbedingt ein Fehler von Game Maker.


quelle
2
@Nevermind, du kannst - googeln nach Sockenpuppen . :) Nur ein Scherz - ich werde eine Stimme für Sie hinzufügen. 5001 - cool, er kann jetzt über Tag-Wiki-Änderungen abstimmen ...
Cyclops
1
Auf einem GMA 950 wäre ich überhaupt nicht überrascht, wenn das Spiel eher an die GPU als an die CPU gebunden wäre.
Adam
4

Wenn ich den Hauptgrund dafür erraten müsste, dass das von Ihnen gespielte Spiel so langsam ist, dann ist es nicht ein Game Maker-Spiel, sondern der Game Maker vermarktet sich speziell an Nicht-Programmierer. Da Sie keine Programmierer haben, die Spiele herstellen, ist es sehr wahrscheinlich, dass das betreffende Spiel einige sehr ineffiziente Algorithmen verwendet, die dazu führen, dass es langsam läuft.

Wie in den meisten Fällen wirkt sich die Geschwindigkeit der Sprache nur geringfügig auf die Gesamtleistung des Programms aus. Wenn Leute sagen "omg diese Sprache ist 50% langsamer als diese andere Sprache" und die Geschwindigkeit in beiden Fällen immer noch dumm ist, dann werden Sie kaum bis gar keinen Unterschied zum Endbenutzer feststellen.

Ken
quelle
3

Game Maker ist ein gutes Werkzeug für Anfänger. Ich empfehle jedoch, aufwärts zu größeren und besseren Programmen zu wechseln, wenn Sie bereits Programmiererfahrung haben. Ich habe GameMaker für einen 2D-Spieleentwicklungskurs am College verwendet. Es hat ein schönes, einfach zu verwendendes Drag & Drop-System. Das Problem ist jedoch, dass beim Ziehen und Ablegen des Programms nicht die effizientesten (oder logischsten) Befehle verwendet werden. Außerdem unterstützt Drag & Drop viele der erweiterten Befehle, die das Programm ausführen kann, nicht. Daher muss der Programmierer damit kreativ werden oder lernen, Code zu schreiben. Wenn Sie jedoch lernen, GameMaker-Code zu verwenden, können Sie dies relativ einfach umgehen.

Es kann jedoch schwierig sein, einen Code für ein einzelnes Programm zu lernen, da wir alle überlastete Zeitpläne haben. Dies ist höchstwahrscheinlich der Grund, warum Sie die langsame Leistung erlebt haben.

Aber wie Kort Pleco bereits sagte, unterscheiden sich die meisten Sprachgeschwindigkeiten nicht merklich. Es hängt alles davon ab, wie der Code geschrieben und ausgeführt wird. Viele Redundanzen können es erheblich langsamer machen, was normalerweise auf mangelnde Erfahrung im Codieren zurückzuführen ist.

Kyle Kudia
quelle
2

Für das Spiel, an dem ich arbeite, verwende ich einen Diamantquadrat-Algorithmus, um beim Starten eines neuen Spiels zufällig Gelände zu erzeugen. Um zu entscheiden, ob Python mit Pygame für das Projekt oder GameMaker verwendet werden soll, habe ich den Geländegenerator in beiden implementiert. Pygame lief etwas schneller, aber der Unterschied war vernachlässigbar. Letztendlich habe ich mich für GameMaker entschieden, da ich damit viel schneller arbeiten kann.

Martin Bonde
quelle
1

Die akzeptierte Antwort ist tot auf, aber ich wollte nur meine 2 Cent als GM-Benutzer für fast 8 Jahre hinzufügen.

GM hatte viele Probleme mit Optimierungen, sodass berechtigte Bedenken bestehen. Es gibt eine Gruppe veralteter Methoden * _variable_exists? das gab es früher im Gamemaker Pre-Studio. Aufgrund dieser praktischen Methode wurde es in fast jeder vorstellbaren Bibliothek und Erweiterung eingesetzt, die für GM geschrieben wurde. Es stellte sich heraus, dass diese Methoden schrecklich teuer waren und beim Ausführen von Spielen im großen Maßstab ein großes Problem darstellten.

Es gibt also viele Fälle, in denen GM wirklich schlecht sein kann, aber bei korrektem Wissen und sorgfältiger Anwendung ist es nicht weniger legitim als jede andere Methode (unity2d, pygame usw.) Mach einfach Spiele und hab Spaß.

Dan Bradbury
quelle