Recentemente lecionei um curso de desenvolvimento de jogos para Android na Coresoft (João Pessoa/PB). Nós escolhemos usar a AndEngine, uma engine para jogos escrita em Java e em cima do Android Application Framework, pois queríamos passar conhecimentos básicos de Android aos alunos, e também deixá-los a vontade no ambiente nativo da plataforma.
Pois bem, passado o curso eu posso dizer que não gostei da AndEgine. No começo eu estava estranhando um pouco, mas à medida que o curso foi avançando e eu fui a estudando mais, pude confirmar minhas suspeitas.
Antes que me atirem pedras, tenho que admitir que a engine é bem feita, implementa o modelo entidade-componente de forma legal, e tem muitas, mas muitas funcionalidades mesmo. São tantas classes utilitárias que o desenvolvedor se perde fácil no meio delas, e só vai descobrir mais tarde algumas soluções já prontas para problemas que ele resolveu de outra forma.
Mas apesar destes pontos positivos, existem pontos negativos que pesaram bastante pra mim.
O primeiro foi a quantidade de código que é preciso escrever, algum desse código é consequência da abordagem em cima do OpenGL ES (principalmente no carregamento de imagens, nunca vi coisa mais tosca). Mesmo depois de adquirir certa fluência com a AndEngine, você ainda tem que escrever muita coisa para poder colocar um sprite controlável na tela.
Tudo bem que neste ponto eu acabo fazendo uma comparação com a Flixel. Eu sei que esta última é feita em ActionScript 3, que o framework do Flex é mais simples que o OpenGL ES, mas no fim não importa. A curva de aprendizado é bem mais suave do que com a AndEngine. E a proficiência vem mais facilmente, e com ela a velocidade para prototipar é bastante alta.
O segundo ponto é a documentação. Ou a falta dela no caso. A AndEngine não possui uma documentação centralizada, o código-fonte não é bem comentado, e você acaba precisando procurar pelos fóruns da vida. Pra piorar, o desenvolvimento dela é bem ativo e se você utilizar a versão mais recente (o que é recomendado) você vai acabar sem achar nada e ter que perguntar diretamente ao autor, Nicholas Gramlich. O que não é tão ruim, pois ele costuma se dar bem com a comunidade, mas nem por isso o processo não deixa de ser um entrave.
Enfim, depois dessa experiência eu decidi tentar, mais uma vez, tocar um projeto pessoal e quero tentar algo para dispositivos móveis.
E que de preferência fosse multi-plataforma…
(Continua em um próximo post :))
Eu já usei essa Engine, a utilizei p/ escrever uma versão de um app que eu havia feito p/ iOS usando cocos2D. Minha escolha foi devido ao Box2D que é utilizado em ambas engines… mas de fato, para pegar fluência nela foi meio Punk! E também senti muita dificuldade para achar uma documentação decente, acabei comprando um livro na Amazon sobre ele, ajudou bastante mas, a versão utilizada no livro estava defasada e tive que procurar muito p/ saber como adaptar algumas coisas! Estou estudando C++ para usar o Cocos2d-X que é multi-plataforma.
Valeu pelo post!
Diogo
Boa tarde Diogo, estou iniciando em cocos2d-x, a minha dificuldade é na compilação a parti do eclipse… como vc procedeu com isso, já fiz varias tentativas mais sem sucesso.
Cara, eu não cheguei a usar a Cocos2d-x. Então não tenho muito como te ajudar. 😦
[…] da minha decepção com a AndEngine, eu resolvi apostar em desenvolvimento […]
parece ate que foi eu quem escreveu o texto…vc disse tudo que to sentindo…estou a uma semana estudando a andengine e nao consigo avancar…todo exemplo que eu acho usa formas desatualizadas que nao funcionam mais … assim fica dificil de aprender…
Galera, testem a LibGDX! Documentação excelente, comunidade bem ativa! E ainda é Muitplataforma (Android, IOS, Web, Desktop, tudo com exatamente o mesmo código 🙂 )
Já usei Cocos e AndEngine, e LibGDX pra mim foi a melhor.