Estamos planejando desenvolver um jogo de quebra-cabeça 2D baseado em grade e, embora ainda seja muito cedo nos estágios de planejamento, gostaríamos de tomar nossas decisões bem desde o início.
Nossa estratégia será disponibilizar o jogo para o maior número possível de plataformas, por exemplo, PCs (Windows, Mac e / ou Linux), telefones celulares (telefones baseados em iPhone e / ou Android), consoles de jogos (XBLA e / ou PSN) O PC terá ênfase, mas acredito que essa é a plataforma mais flexível, para que não seja um problema.
Então, qual linguagem de programação, mecanismo de jogo, estruturas e ferramentas ao redor seriam mais adequadas para o nosso objetivo?
PS: Aposto que um conjunto de ferramentas não cobrirá TODAS, e que ainda haverá algum tipo de esforço de "tradução" para algumas plataformas, mas gostaríamos de saber quais são as de maior alcance.
fonte
Respostas:
Temos uma estrutura C ++ espessa sobre uma fina camada de plataforma, também C ++. Portar um jogo para uma nova plataforma é uma questão de implementar uma nova camada de plataforma, que, por ser bem fina, é bastante rápida.
Além disso, todas as nossas dependências são bibliotecas de código aberto e de plataforma cruzada, como SDL, Ogg, LibPNG, etc.
Por exemplo, temos uma plataforma Win32 / DirectX, uma plataforma SDL / OpenGL para Linux e Mac, trabalhando em uma plataforma iOS para iPhone / iPad e uma porta Android também seria possível. Por algum tempo, tínhamos uma plataforma Playground, o que significa que nossa estrutura funcionava sobre o mecanismo Playground da PlayFirst. Essa abordagem em camadas permite que você aproveite qualquer interface que você tenha para o hardware / sistema operacional subjacente, desde que você possa desenhar um quad texturizado, obter alguma entrada e tocar um som, está pronto.
Eu vou ser criticado por isso, mas C ++ é provavelmente a linguagem mais multiplataforma que existe. Toda arquitetura e sistema operacional provavelmente possui um compilador C ++ ou o gcc pode ser portado para ele.
fonte
Basta usar o Unity
fonte
Acabei de descobrir a NME há alguns dias em outra pergunta e achei que valeria a pena espalhar a notícia. Sobre o assunto de suporte multiplataforma, a primeira página declara o seguinte:
Eu ainda não testei pessoalmente, mas me pareceu interessante por vários motivos:
Não tenho muito tempo para experimentá-lo no momento; portanto, se alguém o fizer, seria útil se você pudesse deixar algum feedback sobre ele.
fonte
Bem, isso depende, você pode programar em C / C ++, Obj-C e C #?
O Unity3D é o melhor tamanho 1, mas todos os jogos em 2D podem ser complicados (para um jogo em 2D).
Se você estiver direcionando o Xbox com o XNA (também conhecido como loja independente), precisará usar o C #. Mas você realmente não pode usar C # com iOS (exceto com unidade). Embora você possa usar o C / C ++ para iOS, você ainda precisará usar um pouco de Obj-C, a menos que use algum tipo de mercadoria intermediária.
Se você não usa um mecanismo, acho que a melhor coisa a fazer é escrever sua própria camada de abstração. Para que todas as chamadas para sua biblioteca precisem passar por essa camada intermediária, portanto, quando chegar a hora de portar, basta alterar a implementação da camada de abstração e o código do jogo ficar mais ou menos intacto.
fonte
Outras respostas cobriram muito bem as ferramentas e os idiomas, mas no lado gráfico, eu recomendaria definitivamente criar seus gráficos (2D) em um formato vetorial e garantir que eles fiquem bem em tamanhos pequenos e grandes. Muitos detalhes diminuem de tamanho, poucos detalhes diminuem de tamanho.
fonte
O Moai SDK é uma estrutura de código aberto e atualmente pode publicar no Android, IOS e Chrome. O Moai poderia ser estendido para cobrir hosts como consoles de jogos, dependendo da sua habilidade e conhecimento nessas áreas.
fonte
Eu diria que sua melhor escolha de idioma seria c #. Você pode usá-lo para desenvolver no Unity para várias plataformas. c # também é o idioma usado no MonoTouch (para desenvolvimento para iOS) e no MondoDroid (ainda não lançado, mas permite segmentar as plataformas Android). E, é claro, o c # pode ser usado no XNA, o que permite segmentar o XBOX 360 e o Windows Phones.
Isso praticamente cobre tudo. Ainda haverá trabalho a ser feito no fato de que você usará ferramentas diferentes para manipular o conteúdo do jogo, mas sua lógica principal do jogo não precisará ser alterada se estiver tudo em c #.
ah, e é claro que o c # é usado no Silverlight, o que permite segmentar a web também.
fonte
O primeiro passo deve ser tornar o jogo, pelo menos, um protótipo decente, usando suas ferramentas / tecnologia favoritas, para uma única plataforma (ou pequeno número de plataformas).
É muito fácil ficar atolado no desenvolvimento de ferramentas / tecnologia de plataforma cruzada. Focar muito na plataforma cruzada antes de ter um jogo é como uma otimização prematura. Certamente vale a pena pensar desde o início, mas não gaste todo o seu tempo até que você realmente tenha um jogo.
Tentar dar suporte a todas as plataformas antes de saber se o jogo será um sucesso parece uma estratégia de alto risco - especialmente se for um jogo simples e de baixo orçamento (onde o custo do desenvolvimento de sistemas multiplataformas possa compensar enormemente o custo do desenvolvimento do jogo) em si?).
Não faria sentido lançá-lo em um pequeno número de plataformas, ver o quão bem ele funciona e determinar se vale a pena apoiar as plataformas mais desafiadoras (por exemplo, sistemas menos potentes, aqueles com dispositivos de entrada desonestos ou aqueles que exigem uma instalação completa) porta para C # ou Java)
fonte
Sei que é impopular, mas o AS3 da Starling pode ser sua resposta para dispositivos móveis, computadores e web. É impressionante e funciona de maneiras surpreendentes. Eu fiz um jogo iOS e Kinect que também rodava no Windows e Android. Não havia mais nada que pudesse lidar com as necessidades computacionais e era essa plataforma cruzada. Além disso - você pode conectar qualquer projeto do Arduino sem problemas. A maioria das pessoas simplesmente não percebeu o que a Adobe fez com as ferramentas do flash / flash builder ultimamente ....
fonte
Flash e Java têm suporte muito amplo; eles funcionam em todos os PCs (mais ou menos) e em muitos dispositivos móveis (mais ou menos), e tenho certeza de que eles são tão fáceis de portar para um console quanto qualquer outro projeto com influência de PC.
fonte