Arquivo da tag: multiplataforma

[Desnv_Multp] A Vez do Flash

Bem, a minha intenção era ter começado pela MOAI, mas por ocasião do concurso de desenvolvimento que mencionei semana passada, acabei indo tirar a poeira do meu ActionScript 3 e ir brincar com a Flixel, pra ver se dá pra encarar ou não (ainda não decidi).

Depois de algumas horas de trabalho já consegui fazer quase tudo. Tenho uma splash screen, o menu principal, a tela de jogo e o gameplay (sem ajustes de level design), incluindo pontuação e condições de derrota. Mas ao invés de seguir as especificações que eu havia dito, resolvi trabalhar com o gênero “lobos e ovelhas”, que é consiste basicamente em separar dois grupos de personagens que vão aparecendo na tela (um bom exemplo desta mecânica é o minigame com os Bob-ombs que existe no Super Mario 64 para Nintendo DS).

Bom, o meu foco, por enquanto, é fazer para o desktop/web, e não me preocupar muito com  as plataformas móveis. Porém, como consegui fazer o protótipo rapidamente, aproveitei que o processo para gerar o build para Android é bem simples com o FlashDevelop e dei uma testada.

De cara não consegui rodar o jogo num Galaxy Ace, mas não sei bem porque, pois o aparelho, em teoria, suporta o Air Mobile e tem um processador ARM11. Porém, também testei com um Galaxy S III e lá funcionou, apesar de que eu percebi um certo lag na hora de tocar e arrastar os personagens.

Ao chegar em casa pude testar em um G-Tablet e a coisa ficou séria. A responsividade do toque está péssima, não dá pra jogar, apesar de não dar nenhuma engasgada, eu imagino que seja problema de alocação da objetos. De toda forma, não pretendo parar para otimizar agora, só depois que o jogo estiver concluído, afinal, o importante é terminar o jogo, os ajustes ficam para depois.

Sobre o código do jogo, uma coisa que me ajudou bastante foi o uso da Flixel Power Tools, um plugin para a Flixel que adiciona várias funcionalidades bem úteis. As que usei até agora foram o componente FlxButtonPlus (que dá uma incrementada no botão padrão), o FlxExtendedSrpite (para usar a função de drag-n-drop) e o FlxBitmapFont (para usar no placar).

Ainda que não seja prioridade, uma coisa legal para a parte Android que estou usando no FlashDevelop é o seguinte, o meu projeto Air Mobile tem apenas a classe de ponto de entrada (document class) e todo o resto do código está referenciado como uma biblioteca, na pasta do meu projeto original.

Desta forma não preciso duplicar o código, e qualquer alteração no código do jogo está disponível para ambas as plataformas. Além disso, por ter pontos de entrada diferentes é possível fazer caminhos alternativos até começar o jogo para, por exemplo, configurar a resolução e o posicionamento dos elementos na tela. Inclusive achei até um código que faz justamente isto:

http://forums.flixel.org/index.php/topic,6031.msg34096.html#msg34096

Por fim, eu sei que o problema da performance é do meu código porque enquanto eu procurava dicas para usar a Flixel em Android, acabei esbarrando em alguns jogos feitos desta forma, e que rodaram muito bem no G-Tablet:

Etiquetado , ,

Desenvolvimento Multiplataforma, Parte 1

Depois da minha decepção com a AndEngine, eu resolvi apostar em desenvolvimento multiplataforma.

Tomei esta decisão porque eu queria fazer algo para plataformas móveis, mas ainda acredito muito na plataforma web, existem vários casos de sucesso nela, e na pior das hipóteses é um excelente mercado para trabalhar a marca e aumentar o buzz em cima do seu jogo.

A primeira coisa a fazer é pesquisar as opções disponíveis. Eu comecei, na verdade, procurando alternativas à AndEngine, pois no começo mesmo a ideia era achar uma nova abordagem par ao curso de jogos para Android. Só que em pouco tempo comecei a ver que as alternativas ofereciam mais do que Android/iPhone.

A lista até agora está assim:

  • MOAI
    Licenças free e paga, linguagem Lua, gráficos 2D e plataformas Android, iOS e Chrome
  • EMO
    Licença free, linguagem Squirrel, gráficos 2D e plataformas Android e iOS
  • libGDX
    Licença free, linguagem Java, gráficos 2D e plataformas Android, Windows, OSX, Linux e HTML5
  • Papaya
    Licença free, linguagens Python/AS3, gráficos 2D e 3D e plataformas Android e iOS
  • Cocos2D
    Licença free, linguagem Java, gráficos 2D e plataforma Android (o porting para iOS não seria tão traumático)
  • Flixel
    Licença free, linguagem ActionScript 3, gráficos 2D e plataformas Android, iOS, Windows, OSX, Linux e Chrome
  • Unity3D
    Licença free e paga, linguagens JavaScript e C#, gráficos 2D e 3D e plataformas Android, iOS, Windows, OSX, Linux e Chrome

Bem, agora é a hora de começar a estudar cada uma delas e analisar seus custos e benefícios. Eu deixei a Flixel e a Unity por último por que sei que elas funcionam muito bem e já tenho experiência com elas, e não quero ser tendencioso.

Fiquem ligados que estarei relatando aqui os meus avanços e impressões!

Etiquetado , ,