• Nenhum resultado encontrado

Existem vários �ame engines para HTML 5 + Javascript. Já que a Adobe discontinuou o desenvolvimento do Flash player para dispositivos móveis, a galera que fazia jogos em Flash está migrando para HTML 5 e Javascript.

Em meu último livro, “Mobile Game Jam”, eu mostrei como desenvolver games móveis usando HTML 5 e Javascript, e mostrei um engine multiplata- forma: o Phone�ap (Cordova). Mas n�o mostrei nenhum �ame engine desta plataforma.

O ImpactJS (impactjs.com) é uma boa opç�o. Ele permite criar games em HTML 5 + Javascript para Desktops e dispositivos móveis. Vem com um editor de níveis (o Weltmeister), que facilita muito a criaç�o de cenários para diferentes níveis do jogo. Ele vem com ferramentas de depuração e empacota- dores, que permitem colocar sua aplicação diretamente na AppStore iOS. Seu custo é relativamente barato (US$ 99,00).

Existem vários outros game engines para HTML 5 + Javascript, porém o ImpactJS, na minha opini�o, é o mais profissional.

Nativos

Um Game engine nativo é aquele que possui bibliotecas nativas e executa fora do ambiente do Browser. Geralmente, apresentam melhor performance do que os �ame engines baseados em HTML 5 + Javascript.

O Cocos2D for iPhone (http://www.cocos2d-iphone.org/) é um port do Game engine original “Cocos2D”, para Python. É bastante popular, com vá- rios games famosos no mercado. Ele vem com um ambiente de desenvolvi- mento (CocosBuilder), a biblioteca do �ame engine em si (cocos2D), e um engine de física (Chipmunk). Existem versões para HTML 5 (http://cocos2d-x.

googlecode.com/files/Cocos2d-html5-v2.1.zip) e Android (http://code.google. com/p/cocos2d-android/). É gratuito.

O AndEngine (http://www.andengine.org/blog/) é um game engine para Android, similar ao Cocos2D. Também é gratuito e open source.

Para quem quer um engine mais profissional, tem o Antiryad Gx (http:// www.arkham-development.com/antiryadgx.htm), que permite criar games 2D ou 3D para várias plataformas, entre elas: iOS e Android. Ele possui vários tipos de licenças, desde gratuita até “enterprise” (900 euros).

Porém, se você quiser realmente “detonar” com um �ame 3D animal, use o UDK – Unreal Development Kit (www.udk.com) para iOS, Android, PS3, Xbox, Windows, Mac OSX etc. Com o UDK, você pode desenvolver seu game sem custo e, quando estiver pronto para publicar, pagará uma taxa de US$ 99,00 (única). Porém, há mais cobranças se você alcançar US$ 50.000,00 em vendas.

Finalmente, temos o Unity (http://unity3d.com/), que é um engine para ga- mes 3D muito interessante. A versão básica é gratuita e permite criar games para MS Windows e Apple Mac OSX, e você pode criar games comerciais com ela. Se quiser criar games para dispositivos móveis, você deve adquirir os “add-ons” específicos, como: Unit iOS (US$ 400,00) e Unit Android (US$ 400,00). Também existem as licenças “pro” para estes ambientes. O Unity é sensacional e vem com um editor fantástico.

Ilustraç�o 13: Jogo que estou criando com o Unity

Se você vai criar um game 3D, é melhor considerar uma ferramenta de de- senho apropriada. Eu recomendo o AutoDesk Maya (http://usa.autodesk.com/ maya/), apropriado para criaç�o de personagens 3D com animaç�o. Agora, se

preferir um software gratuito, o Blender (http://www.blender.org/) é uma ex- celente opção. E os modelos 3D criados com o Blender podem ser importados em game engines 3D, como o Unity.

Usar a plataforma nativa

Embora um Game Engine possa acelerar o desenvolvimento do seu game, ele também tem algumas desvantagens, entre elas:

• Ficar “preso” aos recursos disponíveis no Engine; • Complexidade de aprender a API;

• Preço da licença;

• Dependência de suporte (ou comunidade) para Bugs;

Além destas possíveis desvantagens, é necessário considerar que as APIs das plataformas nativas, tanto do Android, como do iOS, permitem criar ga- mes com recursos avançados, como o OpenGL ES, por exemplo.

Mesmo que você queira utilizar um �ame Engine, eu considero funda- mental que você saiba o que está acontecendo e, para isto, nada melhor do que criar um game “na mão”, sem engine algum. Depois, se considerar rele- vante para o seu projeto, poderá escolher um Game Engine apropriado, porém saberá avaliar e usar melhor as funcionalidades, pois já sabe os detalhes de programação de games.

a

mbienteS multiplataforma

Fora os Game engines, existem alguns ambientes multiplataforma para criaç�o de aplicações móveis, alguns deles com recursos para �ames. Para começar, vou vender o meu “peixe”. No nosso portal The Code Bakers (www. thecodebakers.org), criamos um framework de aplicações móveis multiplata- forma, o AAMO (www.aamoframework.org). Ele é baseado em Lua e pode ge- rar aplicações em iOS e Android. Futuramente, haverá versões para Desktop e também um game engine embutido: o AAMO Xtreme. O AAMO é totalmente gratuito e Open Source, mas ainda não contempla os recursos para criação de Games.

Outro ambiente multiplataforma interessante é o CoronaSDK (http://www. coronalabs.com/products/corona-sdk/). Ele também é baseado na linguagem Lua e possui recursos muito interessantes para criação de games. Ele foi escolhido pela EA (famosa por vários games) para criar seu jogo móvel: World Smack (http://www.coronalabs.com/blog/2012/11/08/corona-spotlight-ea-chooses-corona- -for-word-smack/). O corona n�o é gratuito, mas tem licença de baixo custo, só necessária quando você for publicar o game.

p

rototipadoreS

Um grande recurso, geralmente ignorado pelos desenvolvedores de game, é a prototipação. Este recurso nos permite capturar, de maneira simples e cla- ra, os requisitos de uma aplicação. Como games possuem requisitos muito subjetivos (jogabilidade é um deles), a prototipaç�o pode ser um excelente instrumento para acelerar o desenvolvimento, evitando retrabalho.

Seja utilizando um Game engine ou não, o comprometimento do projeto de um game cresce rápida e exponencialmente. Em poucas semanas, já temos tanto código escrito que criamos um forte comprometimento com ele, deixan- do de ver coisas óbvias. Com um protótipo isto é evitado, pois podemos jogar tudo fora e começar novamente.

Felizmente, existem alguns softwares excelentes para prototipação de ga- mes e aplicações em geral. Eu uso dois deles, que considero excelentes.

Para começar, gostaria de falar do Codea (http://twolivesleft.com/Codea/), uma ferramenta que roda diretamente (e apenas) no iPad. Com ela, podemos programar diretamente no iPad, sem necessidade de um laptop ou desktop. Infelizmente, só existe vers�o para iPad. Podemos até baixar o Codea Runti- me (https://github.com/TwoLivesLeft/Codea-Runtime) e distribuir a aplica- ç�o na AppStore. A licença do Codea custa US$ 9,99 e acredite: ela se paga rapidamente!

Vou mostrar o protótipo de um game que foi feito originalmente no Codea em menos de 4 horas! Eu aprendi a usar o Codea, aprendi a linguagem Lua e criei o Game enquanto estava hospitalizado, aguardando uma cirurgia renal. Quando fui para a sala de cirurgia, o Game estava pronto. É claro que era um protótipo, mas estava funcionando completamente.

Eu sou f� do Codea, porém, fiquei completamente atônito e pasmo quando conheci a oitava maravilha do mundo: O Processing (http://processing.org/)! É aquele tipo de coisa bombástica que nos faz gritar: “Para tudo!” O Processing é um ambiente de simulação e prototipação, que já vem com tudo em cima para criar Games. Ele usa uma linguagem “tipo” java, mas também permite exportar seu projeto para HTML 5 + Javascript e até mesmo Android, ou seja: lava, passa, cozinha e, ainda por cima: é gratuito!

b

ibliotecaS auxiliareS

Como já discutimos, um Game é um projeto muito complexo, com várias macrofunções diferentes. Certamente, podemos utilizar Game engines para nos auxiliar, porém, ainda existem alguns motivos importantes para estudar- mos as bibliotecas em separado:

1. Custo. Se criarmos diretamente o game, não necessitaremos adquirir licenças e, como já discuti, alguns Game engines possuem requisitos de licença meio complexos;

2. Domínio. Se você souber o que está “por baixo do capô”, vai saber tirar maior proveito dos componentes para seu Game;

Uma ferramenta importante é um engine gráfico que permita utilizar os re- cursos de aceleraç�o de sua placa de vídeo (�PU – �raphics Processing Unit) e esta ferramenta é a biblioteca OpenGL ES (http://www.khronos.org/opengles/), que é uma versão da OpenGL (http://www.opengl.org/) para dispositivos mó- veis. A principal vantagem é renderizar imagens mais rapidamente, utilizando multiprocessamento compartilhado entre CPU e �PU, tanto para gráficos 2D como para 3D. Tanto no iOS como no Android, existem recursos para facilitar o uso do OpenGL ES na criação de games.

E, finalmente, temos a biblioteca Box2D (http://box2d.org/), que é um “phy- sics engine”, ou seja, uma biblioteca que fornece funções físicas, como: movi- mento, forças e colisões para nossos games parecerem mais realistas. Para ter uma ideia de quanto a Box2D é importante, o game “Angry birds” a usa como seu “physics engine”.

Capítulo 4