Sei sulla pagina 1di 29

Parte 1

Meu nome Leonardo Dalmina, sou Bacharel em Sistemas de Informao da faculdade


FACCAT, do Rio Grande Do Sul. Vim apresentar a vocs uma srie de seis captulos
sobre o estudo da engine para jogos CryENGINE. Nesta srie estarei aqui relatando
minha experincia com o trabalho de concluso que fiz na faculdade no ano passado
(2012), bem como o trabalho em si, que envolve o estudo de diversas funcionalidades da
ferramenta.
Ah! Legal Leonardo, voc fez um trabalho de concluso relacionado com jogos! Mas o
que eu, desenvolvedor de jogos, vou aproveitar desse seu trabalho acadmico para minha
carreira profissional? A resposta simples! A CryENGINE pode ser uma opo muito
interessante para voc utilizar no desenvolvimento dos seus jogos!

Desenvolvedores Indie em geral optam por iniciar com jogos casuais. E mesmo quando
no se trata de um jogo casual, normalmente um jogo que precisa ser feito com baixo
custo (caso dos jogos casuais). Mesmo tendo que investir em uma ferramenta (e existem
as opes sem custo), esse investimento baixo comparado com o custo de criar e dar
manuteno na prpria engine. Se voc um desenvolvedor Indie, importante estudar
as principais opes de engines disponveis para lhe auxiliar na tarefa de desenvolver um
game.
Um artigo publicado no portal GameCareerGuide mostra que no desenvolvimento de
jogos grandes (tradicionais, ou AAA), comum os desenvolvedores criarem a prpria

engine ou usarem apenas APIs. Mas ao criar jogos casuais, 60% preferiram adquirir uma
engine pronta (veja Figure 6: Preferred technology building methodology).

Como citei anteriormente, alm do estudo, eu tambm fiz um jogo com a engine. Esse
jogo foi intitulado Cryshooter, fazendo uma analogia s palavras Cry (presente no incio
do nome da engine) e shooter (traduo do idioma ingls para atirador). No final da
leitura, quem ficar interessado em ver as funcionalidades em execuo, pode baixar o
jogo no seu blog oficial (as informaes necessrias esto contidas nas respostas das
perguntas 3 e 7 no final deste post) e dar preferncia verso de 64-bits, pois a de 32-bits
est muito instvel.
Nesta srie conheceremos 5 recursos importantes do CryEngine, cada um com vrias
funcionalidades. Mas antes, iniciaremos com uma srie de perguntas e respostas sobre a
ferramenta.

1. Como funciona o sistema de licena?


Existem vrios tipos de licena, para vrias finalidades que a ferramenta ser utilizada,
como a criao de Games tradicionais, Serious Games, Animaes etc. As licena mais
acessveis so a CryENGINE Free Use e a CryENGINE 3 Independent Developers
Platform. A CryENGINE Free Use a licena para estudantes, 100% gratuita, com acesso
a ferramenta completa, mas para uso no-comercial. Isso permite que o estudante use a
ferramenta ilimitadamente desde que no ganhe dinheiro (direta ou indiretamente) com
os jogos feitos nela. possvel divulgar seu game, desde que este seja completamente
gratuito. A CryENGINE 3 Independent Developers Platform a licena para
desenvolvedores, tambm com acesso a ferramenta completa, e desta vez permitindo o
uso comercial. Este modelo de licena baseado em royalties, onde a partir do
lanamento do game, 20% de toda a receita que voc obter com ele ficar com a Crytek.
Informaes sobre outros tipos de licena (para estdios, grandes companhias etc) podem
ser
obtidas
na
pgina
de
licenas
da
CryENGINE
(http://mycryengine.com/index.php?conid=3).

2. Onde posso baixar esta engine?


A CryENGINE pode ser obtida no portal da Crydev.net.

3. Preciso fazer algum tipo de cadastro?

Sim. Para abrir a engine voc ter que informar o seu usurio e senha de acesso ao portal
da Crydev.net. Voc pode fazer o registro no momento em que abrir a engine ou pelo
prprio portal da Crydev.net (http://www.crydev.net/ucp.php?mode=register).

4. Quais so os requerimentos de hardware para execut-la?


Requerimentos do Sistema [Desenvolvedor]

Sistema Operacional: Windows XP SP2, Windows Vista SP1, Windows 7


CPU: Intel Core 2 Duo 2GHz, AMD Athlon 64 X2 2GHz ou superior (um
processador com vrios ncleos fortemente recomendado)
Memria: 2 GB RAM (recomendado 4 GB)
Placa de Vdeo: nVidia 8800GT 512MB RAM, ATI 3850HD 512MB RAM ou
superior (no mnimo SM 3.0)

Requerimentos do Sistema [Usurio Final]


Usurios finais que somente usam o Launcher (para rodar jogos j compilados) da
CryENGINE sem o Sandbox possuem requisitos de sistema mais baixos.

Sistema Operacional: Windows XP SP2, Windows Vista SP1, Windows 7


CPU: Intel Core 2 Duo 2GHz, AMD Athlon 64 X2 2GHz ou superior (um
processador com vrios ncleos fortemente recomendado)
Memria: 1 GB RAM (recomendado 2 GB)
Placa de Vdeo: nVidia 8800GT 512MB RAM, ATI 3850HD 512MB RAM ou
superior (no mnimo SM 3.0)

Pacotes de Software necessrios:

DirectX Package
VS2010 32-bit
VS2010 64-bit

5. Quero aprender mais! Onde posso encontrar tutoriais? Existe algum


livro?
Maiores informaes sobre a ferramenta esto presentes na documentao oficial da
CryENGINE 3. Nesta documentao algumas funcionalidades esto descritas em forma
de tutorial, fazendo um passo-a-passo bem intuitivo. Para tutoriais em forma de vdeo,
aconselho fortemente a adquirir as vdeo-aulas do portal Eat 3D, eles tem uma grande
variedade de tutoriais para diversos programas, e claro, tutoriais especficos para a
CryENGINE. Existem livros j publicados, eu utilizei para o meu trabalho o CryENGINE
3 Cookbook, que na poca era a nica publicao existente. Hoje j existem novas
publicaes, como por exemplo, o livro CryENGINE 3 Game Development: Beginners
Guide.

6. Se eu tiver dvidas, onde posso resolv-las?

Existe um frum no portal da Crydev.net onde vrios usurios e empresas postam suas
dvidas para que outros usurios e tambm desenvolvedores que trabalham na Crytek as
solucionem. Este frum utiliza o mesmo usurio e senha da CryENGINE.

7. Onde posso baixar o jogo Cryshooter?


O jogo Cryshooter est disponvel para download no seu blog oficial.

8. Porque o blog do jogo Cryshooter est todo em Ingls?


Por uma questo de pblico alvo. Ao desenvolver o jogo, optei por interagir com os
usurios da comunidade/frum do portal da Crydev.net, afinal, eles tinham tanto interesse
quanto eu na ferramenta. Como o idioma utilizado no frum o ingls, ao criar o blog
utilizei este idioma para que os usurios do frum pudessem ter mais facilidade para
entender meu trabalho.

9. Que verso da CryENGINE voc usou quando fez este trabalho?


Utilizei a verso 3.4.0. A verso atual pode ser conferida em www.crydev.net.

10. possvel trabalhar na empresa Crytek? Como fao para entrar em


contato?
Sim, possvel, desde que voc saiba se comunicar (escrita e verbalmente) muito bem
em ingls. No website oficial da Crytek existe uma seo de carreira onde voc pode obter
informaes gerais, ver as vagas disponveis e tambm aprender sobre os Estdios que
eles possuem. Atualmente, existem 9 estdios, sendo a sede da empresa localizada em
Frankfurt, na Alemanha, onde normalmente est aberta a maior quantidade de vagas em
relao aos outros estdios. O endereo de acesso para a pgina de ofertas de trabalho
http://www.crytek.com/career/offers/overview, escolha um estdio e boa sorte!
Iniciando ento o nosso estudo da CryENGINE, comeamos nos organizando em
relao aos recursos que sero apresentados nesta srie:
1)

Grficos em Tempo-Real

2)

Personagens Realistas

3)

Sistema Modular Avanado de Inteligncia Artificial

4)

Velocidade Mxima em Alcance de Viso

5)

Msica e Som

Cada um destes recursos possui vrias funcionalidades, que sero apresentadas aqui,
uma a uma. A ideia cada captulo apresentar apenas um recurso. Seguindo a ordem
listada anteriormente, o primeiro deles ser o recurso Grficos em Tempo-Real. Como
este o recurso que mais possui funcionalidades, vou dividi-lo e apresentar apenas 3

funcionalidades dele neste post, as restantes ficam para o prximo captulo juntamente
com as funcionalidades do recurso Personagens Realistas.
Confiram ento agora as funcionalidades do recurso Grficos em Tempo-Real (Parte 1):

1.1 Vegetao Integrada e Sistema de Gerao de Cobertura de Terreno


Toda a vegetao do jogo foi feita utilizando esta funcionalidade. Atravs dela, foi
possvel cobrir diversas partes do mapa do jogo com vegetaes variadas. A Figura 1
ilustra o resultado da funcionalidade aplicada no cenrio principal do jogo.
FIGURA 1 Vegetao Integrada e Sistema de Gerao de Cobertura de Terreno

Pode-se observar na figura acima que possvel controlar a rotao dos objetos que
sero adicionados ao terreno, bem como a variao dos seus tamanhos. Isso pode ser
feito atravs do mdulo Vegetation, atribuindo um valor para o Brush Radius
(tamanho do crculo que representa o local da superfcie que receber a vegetao) e
selecionando qual vegetao ser utilizada em uma lista de objetos (do tipo vegetao)
estruturalmente organizada.
FIGURA 1.A Criao e Edio de Vegetaes

Outros dois pontos importantes a serem considerados so os atributos Bending e


Density. O primeiro faz o objeto balanar, simulando um efeito de vento passando por
ele. Quanto maior o valor bending, maior ser a intensidade com que o objeto ir
balanar. O segundo corresponde densidade do objeto no momento em que ele for
adicionado ao terreno, tratando-se neste caso do tamanho do espao que ele ocupar no
terreno (independente do seu tamanho visual). Quanto maior for o valor density, mais
espao o objeto ir ocupar. Como os objetos no se sobrepem, se o valor density for
bastante elevado, haver muito espao entre os objetos de vegetao (chegando ao
limite de nem serem adicionados caso a densidade ocupe um espao maior que o valor
Brush Radius), todavia se o valor for muito baixo, os objetos ficaro extremamente
prximos, portanto definir um valor adequado se faz necessrio para um cenrio mais
realista.
Agilidade no processo de criao, fcil parametrizao e alto realismo podem ser
considerados os pontos positivos desta funcionalidade. A falta de um aviso ou
mensagem de erro ao utilizar um valor inadequado nos atributos como, por exemplo, o
atributo density, um ponto onde a ferramenta poderia melhorar.

1.2 Sistema de Partculas Suaves em Tempo Real e Editor de FX Integrado


O sistema de partculas foi responsvel pela criao de efeitos como fogo, gua e
fumaa no jogo. Atravs dele, possvel controlar como a partcula ir se comportar,
qual a quantidade de partculas que sero propagadas pelo objeto, e tambm a
intensidade destas.
FIGURAS 2.A e 2.B Criao e edio de um objeto do tipo partcula

H ainda as partculas que emanam sons, de acordo com seu respectivo efeito. A Figura
2 ilustra o resultado da funcionalidade aplicada no Level 02 do jogo.
FIGURA 2 Sistema de Partculas Suaves em Tempo Real e Editor de FX Integrado

A figura acima exibe uma cachoeira. A cachoeira, a primeira vista, parece ser um
elemento nico. Todavia, no jogo Cryshooter, ela foi criada utilizando trs tipos de
partculas diferentes, que so: middle_rapids, que faz o efeito da gua respingando
acima das pedras, fall_Wide, que faz o efeito de gua fluindo para um determinado
ponto, e bottom_splash, que d o efeito da gua colidindo com uma superfcie.
FIGURA 2.C Visualizador e Gerenciador de efeitos de partculas

O alto controle sobre as caractersticas das partculas bem como a simplicidade de uso
podem ser considerados os pontos fortes desta funcionalidade.

1.3 Ferramentas Dedicadas para Estrada e Rios


Todas as estradas e rios criados no Cryshooter foram feitos utilizando esta
funcionalidade. Seus princpios de criao so muito similares.
FIGURAS 3.A e 3.B Criao e edio de uma Estrada

Quando se cria uma estrada utiliza-se o objeto Road desenhando uma linha que
corresponde ao trajeto da estrada. Para a criao de rios, utiliza-se o objeto
WaterVolume desenhando uma figura poligonal 2D. A Figura 3 ilustra o resultado da
funcionalidade aplicada no Level 02 do jogo.
FIGURA 3 Ferramentas Dedicadas para Estrada e Rios

A figura acima exibe a utilizao de uma estrada e um rio em um s cenrio. Ambos os


objetos, depois de desenhados, precisam receber um material. A parte mais escura da
estrada apenas o terreno do mapa levemente elevado, a parte mais clara o material
aplicado na estrada, que segue a linha que foi desenhada na criao desta. Em um nvel
um pouco mais abaixo est o rio, que recebeu o material que lhe d o efeito de gua.

No jogo Cryshooter existem dois tipos de gua: um o oceano, que est presente em
todo o mapa. O outro so os objetos WaterVolume, identificados aqui como rios. Estes
rios esto presentes no Level 02 do jogo e tambm atrs do topo da cachoeira (tambm
presente no Level 02), que embora no seja uma parte navegvel do mapa, aparece na
cena final do jogo.
FIGURAS 3.C e 3.D Criao e edio de um Rio (WaterVolume)

Um ponto importante que deve ser observado ao se utilizar objetos WaterVolume a


extremidade do objeto. Uma vez que este objeto uma figura poligonal 2D, suas
extremidades determinam o ponto onde a gua acaba, e portanto, devem ser escondidas
do jogador para aumentar o realismo do cenrio. Uma boa maneira para esconder estas
extremidades posicion-las dentro de outro objeto. Na Figura 3, as extremidades do
rio esto posicionadas dentro do muro do cenrio e tambm dentro das montanhas.
O baixo custo para edio, tanto para a estrada como para o rio, a caracterstica mais
formidvel desta funcionalidade, pois mesmo depois do objeto estar pronto, com o
material aplicado e j posicionado no cenrio, ainda possvel modific-lo em vrios
aspectos sem resultar em incompatibilidades no objeto final.
1.4 Criador Dedicado de Veculos
O criador dedicado de veculos permite que um veculo seja modificado e at mesmo
criado desde o incio. Estas modificaes so prprias do comportamento do veculo,
diferenciando-se das propriedades que ele possui como muitos outros objetos da
CryENGINE.
FIGURAS 4.A e 4.B Criao e edio de um objeto do tipo Veculo

No Cryshooter foram utilizados dois veculos. O primeiro o HMMWV, um carro


tanque que j vem com a ferramenta. O segundo, apesar de ser visualmente igual ao
primeiro, diferente nas configuraes, pois consiste em uma modificao do carro
tanque original, tratando-se de um novo veculo, denominado WaterproofHMMWV,
uma vez que um carro tanque impermevel. A Figura 4 ilustra o resultado da
funcionalidade aplicada no cenrio principal do jogo.
FIGURA 4 Criador Dedicado de Veculos

A figura acima exibe o carro tanque impermevel. Diferente do modelo original, este
modelo no afunda quando est em contato com a gua. A figura ilustra um momento
quando o jogo j est sendo executado, e o veculo permanece boiando na superfcie
lquida. O que difere o carro tanque original (que afunda) do carro tanque impermevel

a configurao de sua densidade. Enquanto o carro tanque original possui 50 unidades


de densidade, o carro tanque impermevel possui 10 mil unidades, um valor
extremamente elevado que faz com que a estrutura principal do veculo no afunde (isso
no se aplica s rodas).
FIGURA 4.C Editor de Veculos

A principal qualidade desta funcionalidade a maneira como ela separa bem as partes
do Veculo em diferentes categorias, o que facilita a organizao tanto para edio
deste, como para criao de um Veculo totalmente novo, desde o incio.
1.5 Iluminao Global Dinmica em Tempo Real
A iluminao global uma parte crucial para o realismo do cenrio, pois calcula como a
luz ir se comportar, de acordo com os objetos que foram adicionados, alterados ou
removidos do ambiente. Os objetos responsveis por fazer este clculo de luz so
conhecidos como EnvironmentProbes. A Figura 5 ilustra o resultado da funcionalidade
aplicada no cenrio Level 02 do jogo.
FIGURA 5 Iluminao Global Dinmica em Tempo Real

A figura acima exibe a funcionalidade antes e depois de ser aplicada. Para calcular o
local de incidncia da luz, o objeto EnvironmentProbe deve cobrir toda a rea que se
deseja aplicar a luz. Como o objeto uma esfera, deve se levar em conta at objetos que

esto posicionados no cu do ambiente, uma vez que estes tambm influenciam na


distribuio da luz.
FIGURA 5.A e 5.B Criao e edio de um objeto EnvironmentProbe

No jogo Cryshooter esta funcionalidade foi aplicada no cenrio principal e no Level 02.
Como pode ser visto na Figura 5, na parte da esquerda est o Level 02 com o objeto
EnvironmentProbe desativado. J na parte da direita, encontra-se ativado, e todos os
elementos no cenrio agora recebem a quantidade de luz apropriada, assim como a
intensidade de sombra projetada por outros objetos corrigida.
FIGURA 5.C Visualizao e Edio de um objeto EnvironmentProbe

O alto realismo gerado no cenrio atravs desta funcionalidade torna o seu uso
indispensvel, podendo ser classificado como sua melhor caracterstica. Todavia, por
causar um grande impacto na luz, alguma reconfigurao de luminosidade no cenrio

poder ser necessria aps utiliz-la, para se conservar o equilbrio e a proporo de luz
adequada.
Bom pessoal, estas foram as cinco funcionalidades (somadas as trs do post anterior) do
recurso Grficos em Tempo-Real. O prximo recurso que ser apresentado no est
dividido, pois foram exploradas apenas duas funcionalidades dele.
Confiram agora as funcionalidades do recurso Personagens Realistas:
2.1 Sistema de Animao de Personagens
Esta funcionalidade permite que tanto a animao como a criao do personagem seja
manipulada. No jogo Cryshooter existem quatro personagens diferentes. O primeiro
deles o agent, identificado como o prprio jogador. O segundo o neutral_male, um
inimigo localizado no Level 01. O terceiro personagem o allied, um aliado localizado
no Level 01. O quarto o humanoid, outro inimigo, porm localizado no Level 02. A
Figura 1 ilustra os trs ltimos personagens citados anteriormente.
FIGURA 1 Sistema de Animao de Personagens

A figura acima exibe, da esquerda para a direita, os personagens neutral_male, allied e


humanoid, respectivamente. Os personagens neutral_male e humanoid j vm com a
ferramenta, j o personagem allied exclusivo do jogo Cryshooter, pois foi feito
utilizando esta funcionalidade, atravs da combinao de partes do personagem
neutral_male com partes do personagem agent.
FIGURA 1.A e 1.B Criao e edio de um objeto do tipo Personagem

FIGURA 1.C Editor de Personagens

A similaridade de como esta funcionalidade trata os objetos bpedes em relao a outros


aplicativos de modelagem de personagens 3D notvel. Uma vez concebida a estrutura
de um bpede pela funcionalidade, torna-se extremamente simples manuse-lo e
incorporar a ele novos elementos, bem como alterar elementos j existentes.
2.2 Espalhamento de sub-superfcie
Esta funcionalidade permite a utilizao de objetos translcidos dentro do jogo. A luz
age de uma forma diferente nesses objetos, pois ao invs de iluminar somente sua
superfcie, ela o atravessa. A Figura 2 ilustra o resultado da funcionalidade aplicada no
cenrio principal do jogo.

FIGURA 2 Espalhamento de sub-superfcie

A figura acima exibe uma pedra de gelo muito prxima. Pode-se observar na figura que
a luz atravessou o objeto, pois possvel enxergar atravs dele, ou seja, podemos ver
todos os elementos do ambiente que se encontram atrs da pedra de gelo.
FIGURA 2.A e 2.B Criao e edio de um objeto translcido

A facilidade de uso o ponto forte desta funcionalidade, bastando-se apenas selecionar


um objeto que possua essa camada translcida e adicion-lo ao cenrio, uma vez que a
ferramenta automaticamente exibe o que est alm do objeto em suas partes
translcidas.

FIGURA 2.C Editor de Materiais

Encerrando este recurso chegamos ao fim de mais um captulo da srie CryENGINE. No


prximo episdio, partiremos para o terceiro recurso da ferramenta, que estuda a parte
de Inteligncia Artificial!
3.1 Sistema de Edio de IA Amigvel e Desenhvel
A CryENGINE possui um estilo de programao visual por fluxograma, conhecido
como FlowGraph. Os FlowGraphs so criados atravs desta funcionalidade, sendo
responsveis por conduzir boa parte da lgica do jogo. No jogo Cryshooter, os
FlowGraphs so responsveis por controlar o cronmetro, ativao e desativao das
cenas de introduo e fim, entrada e sada de fases, contagem de mortes etc. A Figura 1
ilustra o resultado da funcionalidade aplicada no jogo Cryshooter.
FIGURA 1 Sistema de Edio de IA Amigvel e Desenhvel

A Figura 1 exibe um trecho do fluxograma ScoreTrigger. O fluxograma recebe este


nome, pois foi criado a partir de um objeto com este mesmo nome, cuja utilizao foi
somente para a criao do fluxograma. Neste trecho, esto os diversos nodos que
compem a caixa de comentrio Create Time. Dentro desta caixa est a lgica
responsvel pela criao do cronmetro.
Para um melhor esclarecimento do funcionamento do Sistema de Edio de IA, a
estrutura e a comunicao dos nodos exibidos na Figura 1 so identificadas da seguinte
maneira: um evento externo altera o estado do nodo Time (do tipo cronmetro) para
parado ou no. Quando no est parado, a cada perodo de tempo em segundos
especificado no atributo period, um evento ser gerado na sua sada out. A partir da, o

nodo Seconds (do tipo contador) comea a contagem dos segundos. Toda vez que os
segundos so alterados, quatro outros nodos so atualizados. Desses quatro nodos, um
serve para verificar se a contagem de segundos menor que dez, e outro para verificar
se igual a sessenta. Os outros dois nodos so Strings (do tipo concatenar), e um exibe
os segundos quando forem menores que dez (incluindo um zero na frente), e o outro
exibe quando forem maiores, sempre ativados de acordo com o resultado do nodo que
verifica se os segundos so menores que 10. Por fim, o nodo que verifica se os segundos
atingiram sessenta ativa o nodo Minutes (do tipo contador) para comear a contagem
dos minutos e tambm reinicia a contagem do nodo Seconds. Este nodo Minutes ativa
outro nodo String para exibir os minutos, que por sua vez vai disparando novos eventos
(paralelamente aos outros nodos) para ir concatenando o tempo at um ltimo nodo
String que ir enviar o valor para nodos fora do Create Time que iro formatar a hora
e atualiz-la na tela para o jogador.
Recomenda-se sempre criar um fluxograma a partir de um objeto. Este objeto pode ser
muito variado, desde que seja uma Entidade. Para criar o fluxograma, basta clicar com o
boto direito do mouse sobre o objeto e selecionar a opo Create Flow Graph.
FIGURA 1.A Criao de um Fluxograma

Como nem sempre determinadas aes esto relacionadas a um objeto em especfico,


comum a criao de Triggers (objetos que funcionam como gatilho para aes), pois
no so exibidos quando o jogo est em execuo, e por serem Entidades, podem ser
vinculados a fluxogramas.
FIGURA 1.B Criao de um objeto do tipo AreaTrigger

FIGURA 1.C Caminho para acessar um fluxograma j criado para uma Entidade

Parte dos nodos contidos no fluxograma abaixo ser explicada futuramente, pois faz
parte de uma funcionalidade que pertence a um recurso que est por vir nesta srie.
Assim sendo, no necessrio compreender a imagem abaixo, ela serve apenas como
exemplo alternativo desta funcionalidade.
FIGURA 1.D Trecho de um fluxograma executado no encerramento do Jogo

Um cuidado extra deve ser tomado quando se trabalha com os fluxogramas, pois uma
vez que estes mudam o comportamento do sistema, dependendo do tipo de alterao
realizada (e tambm da quantidade de uma s vez), h o risco dos eventos no sistema
no corresponderem com o que foi programado no fluxograma. Nesse caso, deve-se
acessar o item de menu Generate All AI (dentro do menu AI), que far com que toda a
IA do jogo seja compilada novamente para o ambiente de execuo, incluindo qualquer
tipo de alterao realizada nos fluxogramas.
Sistema altamente intuitivo, mecanismo de busca por nodos e abstrao de codificao
em uma linguagem especfica so as caractersticas mais interessantes desta
funcionalidade, pois possuindo apenas a lgica de programao e conhecendo seus
elementos bsicos, qualquer desenvolvedor pode criar grandes sistemas de lgica
atravs da programao em alto nvel oferecida pela ligao de nodos desta
funcionalidade.
3.2 Sistema de Tempo do Dia
Esta funcionalidade da CryENGINE permite que toda a atmosfera do jogo seja
configurvel, desde a posio do sol at mesmo seu efeito no ambiente, como sua

intensidade, cor refletida no solo, cor do cu, neblina etc. A Figura 2 ilustra o resultado
da funcionalidade aplicada no cenrio principal do jogo.
FIGURA 2 Sistema de Tempo do Dia

A figura acima exibe o sol configurado para o jogo Cryshooter. Embora a


funcionalidade permita que haja dia e noite no jogo, com transies graduais e
velocidade parametrizvel, neste jogo foi utilizado o horrio fixo das onze horas da
manh. Assim sendo, o horrio atual, horrio de incio e horrio de fim sempre esto
posicionados s onze horas da manh.
FIGURA 2.A Mdulo de Tempo do Dia

FIGURA 2.B Ferramenta de Iluminao

Fcil utilizao o ponto forte desta funcionalidade, uma vez que qualquer projeto j
inicia com esta funcionalidade ativada, incluindo a existncia de dia e noite, cabendo ao
desenvolvedor personalizar, sem muita complexidade, o sistema de tempo do dia
conforme sua necessidade.
Novamente chegamos ao fim de mais um captulo da srie CryENGINE. No prximo
episdio, seguiremos para o penltimo recurso da ferramenta, conhecido como
Velocidade Mxima em Alcance de Viso!
4.1 Ambientes Interativos e Destrutveis
Objetos destrutveis esto presentes no decorrer do jogo Cryshooter. Alguns objetos
podem se destruir em dois estgios, como por exemplo, o veculo, que primeiro pega
fogo e depois explode. A Figura 1 ilustra o resultado da funcionalidade aplicada no
cenrio principal do jogo.
FIGURA 1 Ambientes Interativos e Destrutveis

A figura acima exibe outro tipo de destruio de objetos. Nela, a vegetao foi
destruda, mais especificamente algumas rvores. Pode-se observar que este tipo de
objeto no se destri em estgios, mas sim em partes. Toda vez que o jogador acerta
uma grande quantidade de tiros em um mesmo local desse objeto, ele se divide a partir
desse local em duas partes. Se uma dessas partes for acertada novamente por uma
quantidade de tiros em um determinado ponto, esta parte se dividir em mais duas,
tornando agora o objeto original que era uma rvore nica em trs partes distintas.
A simplicidade de uso o ponto positivo desta funcionalidade, uma vez que os objetos
destrutveis tem toda sua lgica de destruio implementada pela CryENGINE.
4.2 Ferramentas de Anlise de Desempenho
Como ferramenta de anlise de desempenho, a CryENGINE fornece a gerao de
arquivos XML com dados estatsticos extremamente detalhados sobre o jogo, para que o
desenvolvedor possa visualizar em um nico local diversas informaes teis sobre o
seu projeto. Esses arquivos XML seguem um padro de formatao, e podem ser lidos

em programas como o Microsoft Excel. A Tabela 1 descreve alguns dados referentes


geometria esttica do jogo Cryshooter.
TABELA 1 Dados estatsticos do jogo

Filename

Mesh Texture
Refs Size Size
(KB) (KB)

characters/humanoid/plasma_rifle.cgf

62

130

49.338

structures/walls/farm_wall/farm_wall_6m_high.cgf

38

97

9.333

structures/buildings/fishing_houses/fishing_house_door_a.cgf 2

21

9.599

structures/ladders/mp_ladder1.cgf

29

127

Todos os objetos presentes no jogo so considerados Static Geometry, ou Geometria


Esttica. Nos dados apresentados na Tabela 1, pode-se observar quatro tipo de
informaes diferentes, que so: nome do arquivo que contm o objeto, quantidade de
vezes que ele referenciado no cenrio, tamanho em kilobytes da malha do objeto e
tamanho em kilobytes da textura do objeto.
A Tabela 1 contm a informao de quatro objetos inseridos no jogo Cryshooter, que
seguindo a ordem apresentada de cima para baixo so: arma acoplada no inimigo (que
possui aparncia aliengena) e parede de pedra (objetos localizados no Level 02), porta e
escada para acesso ao telhado da casa de pescador (objetos localizados no cenrio
principal).
FIGURA 2 Gerao de dados estatsticos

Gerar esses relatrios extremamente simples, bastando apenas acessar o item de menu
Save Level Statistics, dentro do menu Tools. Somado a isso, o alto nvel de
organizao dos dados contidos nesses relatrios o que torna essa funcionalidade
essencial para qualquer jogo que necessite ter um desempenho otimizado.
4.3 Renderizao Offline

A Renderizao Offline contempla um elemento muito notvel para os jogos: as cutscenes (cenas pr-renderizadas). Atravs do mdulo Track View da CryENGINE
possvel criar quantas cut-scenes forem necessrias para o jogo. A Figura 3 ilustra as
informaes contidas dentro de uma das cenas do jogo Cryshooter.
FIGURA 3 Renderizao Offline

A figura acima resume toda a lgica de execuo da cena inicial do jogo, que inicia
assim que o jogo carregado. Na engine, essas cenas so identificadas como
sequncias, portanto, a cena inicial do jogo a sequncia Intro. Para cada sequncia,
deve ser criada uma cmera, que ir filmar a cena em si. A trajetria da cmera
baseada em uma linha de tempo (em segundos), cuja durao configurada nas
propriedades da sequncia. Para fazer a cmera se movimentar, deve-se gravar em
determinadas posies da linha do tempo a posio e a rotao da cmera, de modo que
a engine ir, no decorrer do tempo, gradualmente posicionar a cmera de uma posio
para outra. Estas posies so obtidas dinamicamente pela Viewport (tela de edio do
ambiente do jogo) da engine, atravs das coordenadas X, Y e Z atuais do objeto cmera.
FIGURA 3.A Propriedades da sequncia Intro

No jogo Cryshooter, alm das posies inicial e final da cmera, ainda h a posio
intermediria, que ocorre no segundo nmero trinta. Foram adicionados tambm efeitos
de transio de imagem, atravs do ScreenFader. Quando o tempo est passando sobre
o trecho In, a tela est escura e vai clareando gradualmente, quando passa pelo trecho

Out, a tela est clara e vai escurecendo, tambm gradualmente, ambas configuradas para
durao de quatro segundos.
FIGURA 3.B Criao de um objeto do tipo Camera

Uma tima prtica para agilizar o processo de criao das cut-scenes visualizar em
tempo real o que est sendo exibido na cmera vinculada a cut-scene. A cmera padro
da CryENGINE sempre exibe a viso de perspectiva do jogo. Uma maneira de alterar a
cmera a ser utilizada selecionar o seu objeto correspondente no jogo, ir at o item de
menu Switch Camera (dentro do menu Display) e selecionar o item Selected Camera
Object. Para voltar a utilizar a cmera de perspectiva, basta seguir o mesmo caminho de
menus, apenas trocando a seleo final pelo item Default Camera.
FIGURA 3.C Viewport do jogo visualizada pelo objeto CameraIntro

A alta facilidade de uso e a similaridade desta funcionalidade com outros editores de


vdeos so magnficas. Isso se d pelo fato de que a cut-scene fica armazenada em uma
linha do tempo, que assim como em outros editores de vdeos, possui diferentes
camadas, uma para cada tipo de elemento a ser nela inserido.
Chegamos ao fim de mais um captulo da srie CryENGINE. No prximo episdio,
seguiremos para o ltimo recurso estudado nesta ferramenta, conhecido como Msica e
Som!
5.1 Sons Dinmicos e Msica Interativa

A msica interativa uma parte em destaque no jogo Cryshooter, uma vez que todo o
jogo possui msica de fundo. Esta funcionalidade permite que, de uma forma clara e
intuitiva, sejam manipuladas as diferentes msicas que iro tocar no decorrer do jogo,
ativadas por determinados eventos e seguindo uma programao lgica. A Figura 1
ilustra a utilizao da funcionalidade aplicada dentro de um fluxograma.
FIGURA 1 Sons Dinmicos e Msica Interativa

A figura acima exibe um nodo Music:PlayPattern interagindo com outros nodos


atravs de eventos, responsveis por deslocar o jogador de um ponto do mapa para outro
ao entrar no Level 01 e tambm ativar a msica de fundo deste Level. No jogo
Cryshooter, este nodo Music:PlayPattern teve apenas alguns atributos utilizados, que
so: Play (responsvel por iniciar a msica), Stop (responsvel por parar a msica),
Pattern (responsvel por guardar a msica que ir ser reproduzida) e Finished (que
dispara um evento quando a msica chega no fim). O atributo Play ativado sempre
que um evento for recebido, que pode ser tanto o evento do jogador ter entrado no Level
01 quanto o evento da msica ter chegado ao fim. O atributo Stop tambm ativado
sempre que um evento for recebido, porm estes eventos so externos caixa de
comentrio Warp To Level 01, podendo ser tanto um deslocamento para fora do Level
01 quanto a execuo da cena final do jogo.
Um atributo que deve ser utilizado com cuidado o atributo Done. Este atributo
ativado no apenas quando a msica chega ao fim, mas tambm quando abortada.
Portanto, a menos que seja necessrio disparar o mesmo evento para ambas as situaes,
o correto utilizar ou o atributo Finished ou o atributo Aborted.
5.2 udio Ambiental
O udio Ambiental uma funcionalidade que, alm de ter um uso simples e objetivo,
aumenta ainda mais o realismo do jogo Cryshooter, caracterizando determinados pontos
do jogo com sons ambientais, como por exemplo, o som da chuva presente no Level 01
que est coberto por nuvens e com uma relativa quantidade de gua caindo do cu sobre
todo o Level. A Figura 2 ilustra o resultado da funcionalidade aplicada no cenrio Level
02 do jogo.

FIGURA 2 udio Ambiental

A figura acima exibe o udio ambiental aplicado em uma cachoeira pequena. A


cachoeira feita com o sistema de partculas, porm como citado anteriormente,
algumas partculas no emitem som, o que se aplica a esta partcula em questo.
Visando melhorar a identificao das partes importantes da figura acima, a mesma foi
modificada de modo a aumentar a intensidade de determinadas linhas (na cor rosa e
azul) em relao intensidade original fornecida pela funcionalidade. Para dar ao
jogador o realismo do som da cachoeira, devemos incluir um objeto no jogo do tipo
AmbientVolume (identificado na figura acima pelo cone com um alto-falante na cor
azul), que armazenar o som ambiente a ser reproduzido. Todavia, este objeto sozinho
no ir emitir um som, ele precisa de uma rea para a engine saber em que parte do
cenrio ela deve reproduzir o som. Esta rea pode ser tanto um objeto Shape (que cria
um segmento de linhas) quanto um objeto AreaBox (que cria uma caixa com dimenses
configurveis). Ambos os objetos serviro para delimitar o alcance do som, porm
como o objeto Shape no possui altura, o som no possui limites para esta direo, o
que j no acontece com o objeto AreaBox, que o som fica limitado a altura da caixa.
FIGURA 2.A e 2.B Criao e edio de um objeto do tipo AmbientVolume

Uma vez decidido qual objeto ser utilizado para emitir o som, basta lig-lo ao objeto
AmbientVolume desejado, adicionando ao atributo Target do objeto Shape ou AreaBox
o objeto em questo. A linha em azul exibida na figura 2 representa o resultado visual
desta ligao.
FIGURA 2.C e 2.D Criao e edio de um objeto do tipo Shape

Atravs da figura 2, pode-se observar que foi utilizado um objeto Shape (sem limites de
altura), identificado pelas linhas na cor rosa. Quando o jogador entrar no objeto,
gradualmente comear a escutar o som da cachoeira, e quando se afastar, gradualmente
notar o som ficando mais baixo, at sumir.
5.3 Modos de Som
Os modos de som adicionam ao jogo Cryshooter, de uma maneira simplificada e
altamente eficiente, equalizaes especficas para um determinado local do jogo. Essas
equalizaes no so msicas nem sons especficos, apenas tratam-se de ajustes feitos
no udio nativo do jogo, como barulho dos passos do jogador, por exemplo. A Figura 3
ilustra o resultado da funcionalidade aplicada no cenrio principal do jogo.
FIGURA 3 Modos de Som

A figura acima exibe a funcionalidade aplicada sobre uma vegetao especfica. Seu
funcionamento muito similar ao da funcionalidade udio Ambiental, a nica
diferena que ao invs de ligarmos um objeto AmbientVolume ao objeto Shape ou
AreaBox, agora ligamos um objeto SoundMoodVolume (identificado na figura acima
pelo cone com um alto-falante na cor cinza), que responsvel por armazenar a
configurao dos equalizadores do jogo.
FIGURA 3.A e 3.B Criao e edio de um objeto do tipo SoundMoodVolume

FIGURA 3.C Gerenciador de Modos de Som

Conforme ilustrado na figura 3, tem-se um tipo especfico de vegetao posicionada em


um local onde o jogador pode pisar. Esta vegetao repleta de pequenos galhos e
folhas, portanto uma equalizao que represente um tipo de atrito com esta vegetao se
faz necessria. Para isso, foi selecionada a equalizao in_cover. Todavia, para que essa
equalizao seja utilizada, preciso armazen-la no atributo SoundMoodName do
objeto SoundMoodVolume.
FIGURA 3.D e e3.E Criao e edio de um objeto do tipo AreaBox

Uma vez armazenada a equalizao, basta ligar o objeto SoundMoodVolume ao objeto


que delimitar os limites do novo udio, que neste caso, trata-se de um objeto AreaBox.
Concluso
Chegamos ao fim do ltimo captulo da srie CryENGINE. Sim, exatamente! No
haver novos episdios, mas nada impede que voc, desenvolvedor de jogos, continue
estudando e aprofundando seus conhecimentos sobre esta incrvel ferramenta, e quem
sabe at outras engines?
Falando em aprofundar os conhecimentos, eu prometi no primeiro captulo que ao
trmino deste estudo seria disponibilizado aqui no blog o artigo original que foi
utilizado para fazer esta srie. Como promessa dvida, segue a URL para acessar o
artigo do trabalho de concluso:
http://www.slideshare.net/LeonardoDalmina/artigo-tcc-2012
Finalizando, gostaria de lembr-los que o mundo do desenvolvimento de jogos
imenso, permanece em constante evoluo e sempre h o que aprender! Nosso estudo
termina aqui, agora cabe a voc, caro leitor, escolher quais sero seus prximos passos
na estrada dos games!

Potrebbero piacerti anche