este é um post que detalha minha pesquisa da maneira mais agradável para um programador de jogos amadores adocicar seu tempo livre ao fazer um jogo.
Meus requisitos: olhei primeiro para o Flash, fiz alguns jogos pequenos, mas duvido do desempenho. Eu gostaria de fazer um jogo de estratégia bastante grande, com várias centenas de unidades lutando simultaneamente, incluindo explosões e animações. Também mapas com zoom. Vi que a Adobe possui uma nova API 3D para Flash, mas não sei se isso também melhora o desempenho em 2D. Não encontrei nada relacionado a essa pergunta nas sessões do MAX10. Você diria que o Flash é uma boa tecnologia para criar jogos 2D grandes facilmente? Gosto muito do Actionscript e adoro a facilidade com que tudo é no Flash. Existem vários mecanismos disponíveis que facilitam ainda mais.
Eu apenas faço isso por diversão, e seria ainda melhor se houvesse editores adequados de animação / partículas disponíveis e se o mecanismo que eu fosse usar estivesse disponível para várias plataformas. (para que mais pessoas possam jogar meu jogo assim que terminar). Gostaria de tê-lo disponível em muitas plataformas móveis também. (porque eu amo a entrada por toque por algum motivo)
Conheço muito bem a estrutura do XNA, mas não há bons mecanismos disponíveis para ela, e ela só será executada no Windows, o que é um grande desligamento. Ainda maior é que você precisa instalar o XNA redistribuível toda vez que quiser dar o jogo a alguém. Se eu usar o XNA, teria que fazer todas as ferramentas pessoalmente e provavelmente teria que fazê-las com o WPF. (Adoraria criar ferramentas com o Adobe AIR, mas, infelizmente, as APIs para manipulação de imagens etc. são muito piores no Flash do que no XNA / WPF.) Agora, estou ciente de que poderia criar meu próprio mecanismo que suporta cada uma dessas plataformas, mas, francamente, isso seria muito trabalho através das APIs. Afinal, eu quero fazer um jogo, não um motor.
Portanto, a pergunta se torna: Existe um mecanismo de plataforma cruzada (livre ou livre para desenvolver?) Disponível que eu poderia usar no desenvolvimento 2D? Eu prefiro: C #, Actionscript. Não me importo de usar c ++ se o conjunto de ferramentas estiver acima da média, mas duvido muito que exista algo assim por aí. Por favor, prove que estou errado :) Então, resumo: eu gostaria de usar o Flash, mas não sei se ele é bem dimensionado. Não sou scripter, quero algumas APIs reais com as quais possa trabalhar dentro de um IDE adequado.
Só para obter informações, procurei várias alternativas, já estou procurando há muito tempo. Você me ajudaria muito a tomar uma decisão finalmente.
Em termos de recursos, o mecanismo Flatredball seria o ideal. Mas eu tentei suas ferramentas e, francamente, elas são horríveis. Absolutamente inutilizável, eu precisaria fazer o meu próprio com certeza. Eu não olhei para a API deles, mas se suas ferramentas são tão ruins, não estou inclinado a procurar mais.
Unity3D. Este é muito bom, mas eu realmente não preciso de 3D , e é bastante ... muito trabalho para aprender. Também não gosto que seja tão caro usá-lo em plataformas diferentes e que só posso codificá-lo através de scripts. Você precisa comprar cada plataforma separadamente. A usabilidade do editor é média, o produto em geral é bom o suficiente para a maioria dos propósitos, mas aprender por mim mesmo seria um exagero.
Shiva 3D. Parece bom o suficiente, mas novamente: eu realmente não preciso de 3D. A usabilidade do editor é um pouco pior que o Unity3D na minha opinião e não estava claro para mim como começar a programar. Eu acho que requer C ++ para codificação, então isso também é negativo. Eu quero me divertir, e c # é divertido;)
SDL. Francamente, eu ainda precisaria portar para todas essas implementações diferentes de SDL. E eu não gosto de programação no estilo OpenGL, é simplesmente feio. E ele precisa de c ++, eu sei que pode haver alguns wrappers disponíveis, mas eu não gosto de usar wrappers, porque ...
Irrlicht. Muitos recursos, mas o suporte parece ser baixo e é voltado para entusiastas. As ligações C # são descartadas repetidamente. Não sou entusiasta de motores, só quero fazer um jogo. Não vejo isso acontecendo com Irrlicht.
Ogre3D. Muito trabalho, é apenas um mecanismo gráfico. Também não há suporte a múltiplas plataformas e c ++.
Torque2D. Custa algo para usar, e eu não ouvi muitas coisas boas sobre suporte e documentação. Também custa extra para cada plataforma.
fonte
Respostas:
Pygame é de longe o meu favorito. Como programar em python significa que você programará rápido e como as coisas 2D são rápidas, pygame será divertido ...
fonte
Estou usando o LÖVE há algum tempo e gosto muito. Você precisaria aprender Lua, mas é uma pequena e divertida linguagem para aprender de qualquer maneira. As pessoas no fórum são extremamente úteis.
fonte
love .
Eu decidi ir com o Flash. A nova API Molehill 3D também pode ser usada para desenhar sprites 2D no espaço 3D muito mais rápido. Não vejo razão para que o Flash não seja rápido o suficiente para o jogo que descrevi anteriormente. Terei que construir as ferramentas pessoalmente, mas provavelmente precisaria fazer isso de qualquer maneira. Usar o AIR para criar ferramentas também é muito legal na minha opinião. O Flash também tem o maior alcance com plataformas, o que é legal.
fonte
Experimente o SFML
fonte
Experimente o Cocos2d-x . É o que estou usando no meu desenvolvimento de jogos independentes.
É uma plataforma OpenGL (ES) testada e comprovada, com som, física e até um pouco de 3D que já está disponível para o iPhone há um tempo e está chegando a outras plataformas.
fonte
Como você disse que gosta do Actionscript, mas está procurando uma plataforma cruzada, dê uma olhada no HaXe + NME . O HaXe é uma linguagem semelhante ao Actionscript, mas pode ser compilada para Flash, Javascript, PHP ou C ++. O NME é uma biblioteca semelhante à biblioteca de gráficos do Flash, mas também roda em outras plataformas. Essa combinação permite que você compile em várias plataformas diferentes.
Ainda não usei o NME, mas meu primeiro teste com o HaXe + Molehill (apenas alguns dias atrás) produziu 60fps ao renderizar 10.000 sprites rotativos 16x16 no meu laptop. Só uso o HaXe há alguns dias e não tenho experiência suficiente para garantir que seja a coisa certa para você, mas vale a pena dar uma olhada.
fonte
Pessoalmente, sou um grande fã do Allegro 5 , mas é uma API C. Ainda assim, é uma API simples que sai do seu caminho e fornece acesso a:
O 5.1 também adicionará suporte ao sombreador.
O SDL 1.3 também está se desenvolvendo muito bem. Sam parece ter feito as principais alterações na API, e o que já está disponível já é bastante estável. Ainda assim ... ainda não é beta, e o Allegro 5.0 foi lançado.
É verdade que, para jogos mais complexos e avançados, você provavelmente deseja emparelhar o Allegro 5 com algum tipo de biblioteca de física ( Box2D , por exemplo). Ainda assim, você pode percorrer um longo caminho e se divertir muito, com nada mais do que o Allegro 5, a biblioteca padrão C ou C ++ e seu próprio código.
fonte