Python Performance vs Game Maker [fermé]

14

Je pensais à l'origine à la création d'un jeu avec Python et SFML. Je comprends que Python est lent par rapport à C ++, mais comment est-il comparé à Game Maker?

La principale raison pour laquelle je pose la question est que j'ai récemment joué à un jeu Game Maker (The Iconoclasts) qui fonctionnait à une fréquence d'images assez mauvaise sur mon ordinateur (GMA 950). Je crains d'avoir des problèmes de performances similaires avec Python / SFML.


la source
Il y a eu des développements massifs dans Game Maker que vous voudrez peut-être examiner
Jeff

Réponses:

50

Dire «Python est lent par rapport à C ++» est une généralisation qui ignore beaucoup de détails pratiques et est généralement un mauvais jugement sur lequel s'appuyer. Ce que vous voulez vraiment faire, c'est examiner ce qu'une langue ou une technologie particulière peut apporter à la table en termes de vos besoins et, de la même manière, évaluer les éventuelles chutes de cette technologie par rapport à vos besoins.

Si vous devez poser ce genre de question, il y a de fortes chances que le facteur limitant en termes de performances de tout jeu que vous fassiez soit vous et non les choix technologiques eux-mêmes. Par conséquent, le choix optimal est celui qui vous donne le plus de pouvoir, en d'autres termes, la technologie ou le langage que vous connaissez déjà le mieux.

Quant aux mauvaises performances du jeu Game Maker auquel vous avez joué, cela peut être attribuable à un certain nombre de facteurs, dont certains sont spécifiques à ce jeu, tels qu'un mauvais code spécifique qui peut avoir été écrit via les outils ou les langages de script de Game Maker. Ce n'est pas nécessairement une faute de Game Maker lui-même.


la source
2
@Nevermind, vous pouvez - google pour sockpuppets . :) Je plaisante - je vais ajouter un vote pour vous. 5001 - cool, il peut désormais voter sur les modifications du tag-wiki ...
Cyclops
1
Sur un GMA 950, je ne serais pas du tout surpris si le jeu était lié au GPU plutôt qu'au CPU.
Adam
4

Si je devais deviner la plus grande raison pour laquelle le jeu auquel vous jouiez est si lent, ce n'est pas que ce soit un jeu de créateur de jeux, mais que ce fabricant se commercialise spécifiquement auprès des non-programmeurs. Parce que vous n'avez pas de programmeurs qui créent des jeux, il est fort probable que le jeu en question utilise des algorithmes très inefficaces qui le ralentissent.

Comme dans la plupart des cas, la vitesse de la langue n'affectera que légèrement les performances globales du programme. Lorsque les gens disent "omg, cette langue est 50% plus lente que cette autre langue" et que la vitesse est toujours stupide et rapide dans les deux cas, vous constaterez peu ou pas de différence perceptible pour l'utilisateur final.

Ken
la source
3

Game Maker est un bon outil pour débutant. Mais je recommande de passer à des programmes plus gros et meilleurs si vous avez une expérience de programmation précédente. J'ai utilisé GameMaker pour un cours collégial de développement de jeux 2D, il dispose d'un système de glisser-déposer agréable et facile à utiliser. Le problème, cependant, est que le glisser-déposer du programme n'utilise pas les commandes les plus efficaces (ou logiques). De plus, le glisser-déposer ne prend pas en charge de nombreuses commandes avancées que le programme est capable d'exécuter, donc le programmeur doit faire preuve de créativité avec lui ou apprendre à coder. Cependant, si vous apprenez à utiliser le code GameMaker, vous pourrez contourner cela avec une relative facilité.

Mais, il peut être difficile d'apprendre un code pour un seul programme avec les horaires chargés que nous avons tous, ce qui explique probablement la lenteur des performances.

Mais comme Kort Pleco l'a indiqué précédemment, la plupart des vitesses de langue ne sont pas sensiblement différentes. Tout dépend de la façon dont le code est écrit et exécuté. De nombreuses redondances peuvent le ralentir considérablement, ce qui est normalement dû à un manque d'expérience dans le codage.

Kyle Kudia
la source
2

Pour le jeu sur lequel je travaille, j'utilise un algorithme carré de diamant pour créer au hasard un terrain au démarrage d'un nouveau jeu. Pour décider entre l'utilisation de python avec pygame pour le projet ou GameMaker, j'ai implémenté le générateur de terrain dans les deux. Pygame s'est comporté légèrement plus vite, mais la différence était négligeable. En fin de compte, j'ai choisi GameMaker car je peux y travailler beaucoup plus rapidement.

Martin Bonde
la source
1

La réponse acceptée est morte, mais je voulais juste ajouter mes 2 cents en tant qu'utilisateur GM depuis près de 8 ans.

GM a eu de nombreux problèmes d'optimisation, il y a donc une préoccupation légitime. Il existe un groupe de méthodes obsolètes * _variable_exists? qui existait auparavant dans Gamemaker pre-studio. En raison de cette méthode pratique, elle a été exploitée dans presque toutes les bibliothèques et extensions imaginables qui ont été écrites pour GM. Il s'avère que ces méthodes étaient horriblement coûteuses et causaient un problème majeur lors de l'exécution de jeux à grande échelle.

Il y a donc de nombreux cas où GM peut être vraiment mauvais mais avec une bonne connaissance et une utilisation soigneuse, il n'est pas moins légitime que toute autre méthode (Unity2D, Pygame, etc.). Faites des jeux et amusez-vous.

Dan Bradbury
la source