Desempenho do Python vs fabricante de jogos [fechado]


14

Eu estava originalmente pensando em criar um jogo com Python e SFML. Entendo que o Python é lento comparado ao C ++, mas como é comparado ao Game Maker?

A principal razão pela qual pergunto é que recentemente joguei um jogo Game Maker (The Iconoclasts) que rodava com uma taxa de quadros bastante ruim no meu computador (GMA 950). Estou preocupado que eu tenha problemas de desempenho semelhantes com o Python / SFML.


Houve desenvolvimentos maciços no Game Maker que você pode querer examinar
Jeff

Respostas:


50

Dizer "Python é lento em comparação com C ++" é uma generalização que ignora muitas práticas do mundo real e geralmente é um tipo de julgamento ruim em que se pode confiar. O que você realmente deseja fazer é analisar o que uma linguagem ou tecnologia específica pode trazer para a mesa em termos de suas necessidades e, da mesma forma, avaliar quaisquer quedas potenciais dessa tecnologia em relação às suas necessidades.

Se você tiver que fazer esse tipo de pergunta, há uma chance muito boa de que o fator limitante em termos de desempenho de qualquer jogo que você faça seja você e não as próprias escolhas tecnológicas. Conseqüentemente, a escolha ideal é aquela que mais lhe capacita, ou seja, a tecnologia ou o idioma que você já conhece melhor.

Quanto ao fraco desempenho do jogo Game Maker que você jogou, isso pode ser atribuído a vários fatores, alguns dos quais são específicos para esse jogo, como código ruim específico que pode ter sido escrito pelas ferramentas ou pelas linguagens de script do Game Maker. Não é necessariamente uma falha do próprio Game Maker.


2
@ Nevermind, você pode - google for sockpuppets . :) Brincadeirinha - vou adicionar um voto para você. 5001 - legal, ele agora pode votar em edições de tag-wiki ...
Cyclops

1
Em um GMA 950, eu não ficaria surpreso se o jogo fosse vinculado à GPU e não à CPU.
Adam

4

Se eu tivesse que adivinhar, a maior razão pela qual o jogo que você jogou é tão lento não é um jogo de criador de jogos, mas esse criador de mercado se comercializa especificamente para não programadores. Como você não tem programadores fazendo jogos, é muito provável que o jogo em questão use algoritmos muito ineficientes que o fazem ficar lento.

Como na maioria dos casos, a velocidade do idioma afeta apenas levemente o desempenho geral do programa. Quando as pessoas dizem "omg, esse idioma é 50% mais lento que esse outro idioma" e a velocidade ainda é estúpida e rápida nos dois casos, você encontrará pouca ou nenhuma diferença discernível para o usuário final.


3

O Game Maker é uma boa ferramenta para iniciantes. Mas eu recomendo avançar para programas maiores e melhores, se você tiver alguma experiência anterior em programação. Eu usei o GameMaker em um curso de desenvolvimento de jogos 2D para faculdade, ele possui um sistema de arrastar e soltar fácil de usar. O problema, no entanto, é que o arrastar e soltar do programa não usa os comandos mais eficientes (ou lógicos). Além disso, o recurso de arrastar e soltar não suporta muitos dos comandos avançados que o programa é capaz de executar; portanto, o programador precisa ser criativo com ele ou aprender a codificar. Se você aprender a usar o código GameMaker, no entanto, poderá contornar isso com relativa facilidade.

Porém, pode ser difícil aprender um código para um único programa com os agendamentos ocupados que todos temos, e é provavelmente por isso que você teve um desempenho lento.

Mas como Kort Pleco afirmou anteriormente, a maioria das velocidades de idioma não é notavelmente diferente. Tudo depende de como o código é escrito e executado. Muitas redundâncias podem torná-la consideravelmente mais lenta, o que normalmente ocorre devido à falta de experiência em codificação.


2

Para o jogo em que estou trabalhando, uso um algoritmo de diamante quadrado para criar aleatoriamente terrenos ao iniciar um novo jogo. Para decidir entre usar python com pygame para o projeto ou GameMaker, implementei o gerador de terreno em ambos. Pygame teve um desempenho um pouco mais rápido, mas a diferença foi insignificante. Por fim, escolhi o GameMaker, pois posso trabalhar muito mais rápido nele.


1

A resposta aceita está morta, mas eu só queria adicionar meus 2 centavos como usuário da GM por quase 8 anos.

A GM teve muitos problemas com otimizações, então há alguma preocupação legítima. Há um grupo de métodos obsoletos * _variable_exists? que existia no pré-estúdio Gamemaker. Por causa desse método de conveniência, ele foi aproveitado em quase todas as bibliotecas e extensões imagináveis ​​que foram escritas para a GM. Acontece que esses métodos eram terrivelmente caros e estavam causando um grande problema ao executar jogos em grande escala.

Portanto, existem muitos casos em que o GM pode ser realmente ruim, mas com conhecimento adequado e uso cuidadoso, não é menos legítimo que qualquer outro método (unity2d, pygame, etc.). Basta fazer jogos e se divertir.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.