Um jogo Python seria executado em várias plataformas?

10

Tenho planos de escrever um jogo em Python e provavelmente um pouco de SQL. Estou preocupado com a versatilidade do meu programa ao finalizá-lo. Idealmente, eu gostaria que ele fosse executado no Windows, Mac, Android e iPhone ... no entanto, tenho a sensação de que os telefones estariam fora dos limites. tipo de coisa. Como eu escreveria um programa que é executado em várias plataformas? Isso é viável para um programador iniciante?

Videira
fonte

Respostas:

12

O Python é bastante portátil por si só (é executado em muitas plataformas), mas você deve levar em consideração o seguinte:

  • Quais são as limitações da plataforma que você está segmentando? Deseja vender através de uma loja móvel?

    Por exemplo, o mercado WP7 permite apenas vender aplicativos escritos em código gerenciado (.NET). A AppStore também é bastante bloqueada e permite apenas aplicativos nativos escritos em Objective-C. O Android permite a execução de código Java e nativo por meio do NDK. As pessoas desenvolveram soluções alternativas para permitir executar, por exemplo, JavaScript em aplicativos nativos no iOS ou converter aplicativos da Web em aplicativos nativos

  • Como portáteis são as bibliotecas que você deseja usar?

    Aqui está um exemplo: Cocos2D é uma biblioteca Python com uma porta Objective-C. Você pode criar seu jogo no Python para plataformas de desktop e reescrevê-lo no Objective-C, mantendo a maior parte da estrutura graças à biblioteca. Mas você só tem suporte para desktop + iOS.

No geral, o Python não é fácil para plataformas móveis, devido à falta de suporte. Aqui estão três alternativas viáveis:

  • O XNA foi criado para criar jogos para Windows, Xbox 360 e Windows Phone 7. Existem dois projetos ( MonoGame e ExEn ) que permitem transformar esses jogos, com quase nenhuma modificação, em aplicativos para iOS (através do MonoTouch), aplicativos para Android (através do MonoDroid ) O MonoTouch e o MonoDroid têm custos de licença .

  • O Unity é muito portátil e permite direcionar quase todas as plataformas (embora ainda não haja suporte ao Linux )

    É grátis para jogos de mesa. Eles têm uma versão Pro, mas para a maioria dos jogos você pode se sair bem sem ela. Há um gráfico comparando as várias edições de cada plataforma: http://unity3d.com/unity/licenses

  • Os aplicativos da Web (chamado HTML5) com a API Canvas 2D ou WebGL são executados em navegadores e smartphones recentes. O suporte só melhorará com o tempo. Existem muitos mecanismos, como o ImpactJS ou o Three.JS, acima mencionados, para fazer coisas em 3D.

Elisée
fonte
gostaria de acrescentar que Unity suporta 3 idiomas: C #, JavaScript e Boo, que é muito semelhante em sintaxe para Python
George Profenza
3

O PyGame diz isso na página Sobre :

Verdadeiramente portátil. Suporta Linux (pygame vem com a maioria das distribuições principais de fluxo linux), Windows (95, 98, ME, 2000, XP, Vista, Windows de 64 bits, etc), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX e QNX. O código contém suporte para AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS e OS / 2, mas estes não são oficialmente suportados. Você pode usá-lo em dispositivos portáteis, consoles de jogos e o computador One Laptop Per Child (OLPC).

O próprio Python é extremamente portátil e fácil de transportar para novas plataformas (supondo que alguém ainda não tenha feito isso por você). As coisas ficarão "interessantes" sempre que você precisar acessar alguns bits específicos da plataforma, e é aí que o PyGame pode ajudá-lo, se ele suportar as plataformas que você está vendo ou se você pode portá-lo.

Um problema semi-relacionado é que alguns métodos de distribuição (lojas de aplicativos) podem não permitir aplicativos que podem executar código de terceiros desconhecido. Você precisará bloquear seu Python e seus scripts para que eles não possam acessar nada fora do aplicativo e possivelmente impedir que ele execute scripts que você não forneceu como parte do jogo.

chrish
fonte
1

Não tenho certeza sobre o Android, mas o Python não pode ser executado no iPhone. Atualmente, as melhores ferramentas para implantar um jogo no Windows, Mac, Android e iPhone seriam usar HTML5 ou Unity3D. Existem várias outras ferramentas menos conhecidas e, portanto, menos comprovadas, como o Ideaworks Gamestudio.

jhocking
fonte