Java como linguagem de programao em games Cezar Taurion (ctaurion@br.ibm.com e blog http://www.ibm.com/ developerworks/blogs/page/ctaurion) formado em Economia e Cincias da Computao, atualmente gerente de Novas Tecnologias Aplicadas da IBM Brasil.
ecentemente foi lanado o jogo online Taikodom, pela Hoplon Infotainment
(www.hoplon.com), empresa genuinamente brasileira. Esta empresa foi criada no ano de 2000, em Florianpolis e investiu cerca de 15 milhes de reais e quatro anos de rduo trabalho para desenvolver o jogo. O Taikodom um jogo interessantssimo, no qual os participantes agem como se estivessem no sculo XXIII. Mas o corao do jogo uma tecnologia chamada Bitverse, que permite criar ambientes de terceira dimenso, que podem ser usados por exemplo, alm de jogos em aes de ensino a distncia. O Bitverse foi escrito em Java, demonstrando de forma inequvoca a potencialidade desta linguagem para jogos. Uma caracterstica diferenciadora do Taikodom que ele opera em um mainframe System z10 da IBM! Este um ponto que chama a ateno. Por que em mainframe? Um jogo como Taikodom, chamado de MMOG (massive-multiplayer on-line game) tem como caracterstica uma demanda massiva e escalvel de jogadores. A cada instante pode variar muito a demanda. O Hoplon, por exemplo, pretende conquistar pelo menos 100 mil jogadores em alguns meses. O ambiente operacional de um jogo MMOG demanda no apenas uma mquina cliente poderosa, com boa capacidade grfica, mas tambm uma largura de banda bem rpida. Alm disso, a arquitetura dos servidores tambm deve ser desenhada para eliminar a latncia, que o maior inimigo dos jogos on-line. A latncia faz com que as aes do jogo paream irreais, lentas, tirando o prazer de jogar. Os servidores nos jogos MMOG tm adicionalmente a tarefa de gerenciar a interao entre os milhares de jogadores, garantindo inclusive que suas aes estejam corretas. Os servidores so, portanto, cruciais para que o jogo opere adequadamente. Uma tcnica usada em muitos jogos e ambientes tridimensionais a adoo de inmeros servidores fsicos separados (como no caso do mundo virtual Second Life). Isso acontece porque um nico servidor de pequeno porte no consegue dar conta de centenas de milhares de jogadores ao mesmo tempo. O problema de se usar vrios servidores fsicos a latncia que aparece quando a ao sai de um servidor para o outro. Quem usa ou usou o Second Life
nota isso vrias vezes, quando os avatares parecem
congelar em determinadas situaes. No Second Life, cada ilha virtual est em um servidor diferente e o teleporte de uma ilha para outra pode sofrer alguma latncia. Outro aspecto interessante que os jogos MMOG podem explorar bem os chips multicore. As aes do jogo podem e geralmente ocorrem em paralelo. Embora milhares de jogadores possam estar on-line ao mesmo tempo, eles no interagem todos entre si, mas apenas entre pequenos grupos. O Taikodom est rodando em um mainframe hbrido (gameframe), combinando a capacidade computacional desta mquina com o processador Power Cell B/E (broadband engine), multicore. Uma curiosidade, em relao a servidores x86, o z10 equivale a aproximadamente 1.500 servidores, apresentando at 85% menos de custo de energia e at 85% menos de espao fsico. Bem, no URL http://spectrum.ieee.org/ aug08/6518 temos uma coletnea de papers e discusses sobre o assunto gameframe e jogos MMOG. Mas, geralmente quando se fala em games, imaginase apenas entretenimento e lazer, para adolescentes e vadios. Mas o uso de ambientes tridimensionais est se disseminando rpido e medida que a gerao Y se "entranhe" nas empresas, mais e mais veremos presso para termos estas tecnologias em nossas empresas. Games est se tornando coisa sria, de uso empresarial, para diversos usos como o Energyvlle criado pela Chevron para divulgar sua poltica ecoconsciente (http://www.economistgroup.com/our_news/ press_releases/2007/the_economist_group_and_ chevron_launch_interactive_energyville_game. html) ou Americas Army (http://www.americasarmy. com/) criado pelo exrcito americano para motivar recrutamento. Existe inclusive um site especfico para discutir os chamados Serious Games que o Serious Games Initiative, acessado em http://www. seriousgames.org/. A IBM lanou h algum tempo o INNOV8, um jogo (simulador) que mostra os fundamentos do BPM (Business Process Management), que pode ser visto em http://www-01.ibm.com/software/solutions/soa/ innov8.html. O INNOV8 orientado a universidades que estejam ensinando BPM, um jogo free, e faz parte do programa Academic Initiative da IBM.
Bem, e como o Brasil est posicionado na indstria de
games? Entrei no site da Abragames e descobri uma pesquisa sobre a indstria brasileira de jogos eletrnicos (http://www.abragames.org/docs/AbragamesPesquisa2008.pdf). Alguns dados da pesquisa: a) Existem 42 empresas que produzem games no Brasil. b) O PIB (hardware e software) de jogos eletrnicos aqui de cerca de 87,5 milhes de reais. c) 43% da produo dos softwares de jogos brasileiros destinada exportao. O mercado interno prejudicado pela pirataria e importao ilegal. d) Artistas grficos e programadores so os perfis profisisonais mais comuns na indstria brasileira de games. e) Em termos mundiais, o Brasil apenas 0,16% da indstria global de games. f) A indstria brasileira de games est mais focada em consoles e celulares. Claramente temos imenso potencial para crescimento! E falando em celulares, os mobile games esto se popularizando cada vez mais. Nos EUA, estima-se que este mercado ser, agora em 2009, de mais de 1,5 bilhes de dlares. Por que? Celulares cada vez mais poderosos, com melhores recursos grficos, disponibilidade de redes de banda larga (3G) e base instalada crescente. Alguns estudos apontam que em 2010 o mercado de mobile games ter um valor de mercado maior que os jogos de console e PCs. E como se ganha dinheiro produzindo games? Por exemplo, o mercado de MMOG permite basicamente dois modelos de receita: venda de assinaturas ou o que foi adotado pela Hoplon, de entregar o jogo de graa, mas ofertar produtos pagos, como roupas, armas, espaonaves etc. Estes produtos so virtuais, mas custam dinheiro real! No Brasil vejo a opo de jogos para celulares como altamente atrativa. Existe tecnologia Java (J2ME) e o esforo de desenvolvimento relativamente pequeno, quando comparado a um jogo MMOG. Alm disso, caminhamos rapidamente para termos ambientes abertos em celulares, como a plataforma 73
Android do Google. Esta plataforma, que baseada
em Linux e inteiramente Open Source, se prope a criar um ecossistema para desenvolvimento de aplicaes para celulares. Qual o resultado esperado pelo Google? Criando uma plataforma nica, possibilita um avano mais rpido no desenvolvimento de aplicaes inovadoras, aumenta a demanda pelo uso de novos servios e gera maiores oportunidades de advertising, de onde o Google obtm sua receita. O Android um stack inteiro de software, composto de sistema operacional (construdo em cima do kernel do Linux 2.6) que implementa ferramentas de desenvolvimento e APIs especficas para os desenvolvedores criarem suas aplicaes mveis. A fora do projeto se baseia no conceito de colaborao (leia-se Web 2.0 e Open Source) e um grupo bastante heterogneo de empresas j associou, de operadoras a fabricantes de celulares. O stack de software ser distribudo sob a licena da Apache Software Foundation (http://www.apache. org/licenses/LICENSE-2.0). O SDK (System Development Kit) baseado no Eclipse. Entretanto, nem tudo so flores. O Java do Android no totalmente compatvel com o padro J2ME. Ente outras diferenas, ele utiliza outra VM, chamada Dalvik que um subset Java, isto , no implementa a API completa. Esta VM foi escolhida por ser otimizada para dispositivos com pouca capacidade de memria e no utiliza os arquivos padro bytecode. Por exemplo, o Dalvik delega ao sistema operacional do Android o isolamento de memria e o suporte a threads. Ou seja, explora o ponto forte do kernel do Linux 2.6, que a estrutura bsica do SO do Android. Alm disso, o Android implementa API prpria para tratamento de GUI. Outra diferena marcante e bastante polmica entre o Java ME e o Android que a plataforma do Google no tem a sua evoluo regida pelo JCP (Java Community Process). A razo para isso simples: o Google alega que fez esta opo para no ter que esperar pela burocracia de aprovao necessria para que uma nova funcionalidade seja disponibilizada. realmente polmico se a velocidade deve ser mais prioritria que a padronizao. Existem argumentos prs e contras. O que o Android pode trazer de mudanas? Bem, 74 www.mundoj.com.br
acredito que os custos de desenvolvimento de
aplicaes tendam a cair substancialmente, pois no haver tantos retrabalhos de portar aplicativos de um celular para outro, como tambm no haver mais necessidade de pagamento de royalties para uso de tecnologias como Windows Mobile. Uma plataforma aberta tem grande potencial. O cenrio atual para desenvolvimento de aplicaes para celulares espinhoso. So pelo menos trs stacks de software diferentes e os celulares no so padronizados, o que demanda um esforo muito grande para desenvolver e testar os aplicativos. Alm disso, de forma diferente da Web, onde qualquer pessoa tem acesso a qualquer um dos milhes de sites disponveis na Internet, no cenrio atual dos celulares, na maioria das vezes, o acesso do usurio restrito apenas aos sites autorizados pelas operadoras. O resultado que apesar de termos muito mais celulares que PCs, o uso da Internet mvel ainda bem restrito. Alm disso, provvel que muito cdigo seja desenvolvido de forma colaborativa e aberta, reduzindo mais ainda os custos. O resultado final ser uma barreira de entrada bem menor, abrindo espao para novos entrantes, principalmente empresas de pequeno porte. Ateno: esta uma excelente oportunidade para empresas e desenvolvedores brasileiros, que j tm experincia no desenvolvimento de celulares, uma vez que vrios jogos de sucesso mundial foram desenvolvidos aqui. E pelo efeito de rede, com mais usurios interessados em usar Internet pelos celulares, com aplicaes inovadoras (nada impede outras empresas, como Yahoo, adotarem o Android, aumentando a demanda. As operadoras abriro seus modelos fechados para incorporar novas modalidades propostas pela plataforma aberta. Ou seja, todos saem ganhando. Bem, nem todos: quem ganha dinheiro com royalties de licenciamento, como a Microsoft com seu Windows Mobile, s tem a perder. Mais um desafio para o pessoal de Redmond! Ok, vamos explicar melhor este ltimo comentrio. Coincidentemente, h poucos dias estava lendo um relatrio da VDC, Linux in the Embedded Systems Market, que pode nos ajudar a entender um pouco mais o que ser este impacto. O modelo atual dos fornecedores de tecnologia ba-
seado fortemente em pagamento de royalties, o que
encarece o custo final e consequentemente o preo dos equipamentos para o usurio final. Por exemplo, em 2006, dos quase 600 milhes de dlares movimentados pelo mercado de sistemas operacionais em celulares, 82,2% foram pagamentos de royalties. As empresas lderes neste segmento, em receita de royalties so a Microsoft e a Symbian. O Linux quebra este paradigma. A maioria dos projetos de software embarcado no usa verses Linux de distribuidores oficiais e mesmo quando, usa verses oficiais, os modelos de negcio dos distribuidores so baseados em subscrio anual e no pagamento de royalties. J existe uma forte tendncia de uso de Open Source para sistemas embarcados e a vinda do Android vai realmente anabolizar o uso do Linux nos celulares. Em minha opinio, o Android representa o ponto de inflexo para Linux Mobile e acredito que a partir de agora o Linux deve crescer bem mais rapidamente em celulares. E outro ponto positivo, no meu entender, ser uma mais rpida tendncia padronizao do Linux no contexto dos sistemas embarcados, pois vai existir um forte fator catalizador para isso. J existem alguns grupos debatendo padres Linuxbased para sistemas embarcados como a prpria Linux Foundation (merge da OSDL e da Free Standards Group, http://www.linux-foundation.org/). A Linux Foundation bem conhecida por todos (Linus Torvalds trabalha l) e tem um workgroup especfico para Mobile Linux que pode ser acessado em http:// www.linux-foundation.org/en/Mobile_Linux. Sua misso bem clara The Mobile Linux workgroup has as its mission to accelerate adoption of Linux on next-generation mobile handsets and other converged voice/data portable devices and to provide a mobile profile for the LSB. O resultado final? Veremos mais e mais jogos programados em Java e rodando em Linux!