CryENGINE: uma opção para indies – Parte 5/6

CryENGINE_post

Olá Pessoal! Capítulo de número 5 da série sobre os recursos que o CryEngine oferece. Neste capítulo é comentada a facilidade para criação de ambientes destrutíveis e de cutscenes, além de relatórios sobre desempenho.

O trabalho feito com a CryENGINE possui dois objetivos principais que estão extremamente relacionados: criar um jogo utilizando a CryENGINE, e utilizar neste jogo quinze funcionalidades previamente selecionadas da ferramenta como forma de estudo e documentação. Ou seja: a grande novidade do trabalho é que seu resultado final gerou uma determinada quantidade de documentação de diversas funcionalidades da CryENGINE, todas com foco direto ao jogo que foi criado com a ferramenta, criando uma sincronia de cada funcionalidade com sua utilização no game, servindo como uma espécie de exemplo de uso funcional que pertence a um produto maior. E foi suficiente para me formar sim!

A última parte desta história você confere no próximo capítulo.

4.1 Ambientes Interativos e Destrutíveis

Objetos destrutíveis estão presentes no decorrer do jogo Cryshooter. Alguns objetos podem se destruir em dois estágios, como por exemplo, o veículo, que primeiro pega fogo e depois explode. A Figura 1 ilustra o resultado da funcionalidade aplicada no cenário principal do jogo.

FIGURA 1 – Ambientes Interativos e Destrutíveis

A figura acima exibe outro tipo de destruição de objetos. Nela, a vegetação foi destruída, mais especificamente algumas árvores. Pode-se observar que este tipo de objeto não se destrói em estágios, 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 três partes distintas.

A simplicidade de uso é o ponto positivo desta funcionalidade, uma vez que os objetos destrutíveis tem toda sua lógica de destruição implementada pela CryENGINE.

4.2 Ferramentas de Análise de Desempenho

Como ferramenta de análise de desempenho, a CryENGINE fornece a geração de arquivos XML com dados estatísticos extremamente detalhados sobre o jogo, para que o desenvolvedor possa visualizar em um único local diversas informações úteis sobre o seu projeto. Esses arquivos XML seguem um padrão de formatação, e podem ser lidos em programas como o Microsoft Excel. A Tabela 1 descreve alguns dados referentes à geometria estática do jogo Cryshooter.

TABELA 1 – Dados estatísticos do jogo

Filename Refs Mesh Size (KB) Texture Size (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 1 29 127

Todos os objetos presentes no jogo são considerados “Static Geometry”, ou Geometria Estática. Nos dados apresentados na Tabela 1, pode-se observar quatro tipo de informações diferentes, que são: nome do arquivo que contém o objeto, quantidade de vezes que ele é referenciado no cenário, tamanho em kilobytes da malha do objeto e tamanho em kilobytes da textura do objeto.

A Tabela 1 contém a informação de quatro objetos inseridos no jogo Cryshooter, que seguindo a ordem apresentada de cima para baixo são: arma acoplada no inimigo (que possui aparência alienígena) e parede de pedra (objetos localizados no Level 02), porta e escada para acesso ao telhado da casa de pescador (objetos localizados no cenário principal).

FIGURA 2 – Geração de dados estatísticos

Gerar esses relatórios é extremamente simples, bastando apenas acessar o item de menu “Save Level Statistics”, dentro do menu Tools. Somado a isso, o alto nível de organização dos dados contidos nesses relatórios é o que torna essa funcionalidade essencial para qualquer jogo que necessite ter um desempenho otimizado.

4.3 Renderização Offline

A Renderização Offline contempla um elemento muito notável para os jogos: as cut-scenes (cenas pré-renderizadas). Através do módulo “Track View” da CryENGINE é possível criar quantas cut-scenes forem necessárias para o jogo. A Figura 3 ilustra as informações contidas dentro de uma das cenas do jogo Cryshooter.

FIGURA 3 – Renderização Offline

A figura acima resume toda a lógica de execução da cena inicial do jogo, que inicia assim que o jogo é carregado. Na engine, essas cenas são identificadas como sequências, portanto, a cena inicial do jogo é a sequência “Intro”. Para cada sequência, deve ser criada uma câmera, que irá “filmar” a cena em si. A trajetória da câmera é baseada em uma linha de tempo (em segundos), cuja duração é configurada nas propriedades da sequência. Para fazer a câmera se movimentar, deve-se gravar em determinadas posições da linha do tempo a posição e a rotação da câmera, de modo que a engine irá, no decorrer do tempo, gradualmente posicionar a câmera de uma posição para outra. Estas posições são obtidas dinamicamente pela Viewport (tela de edição do ambiente do jogo) da engine, através das coordenadas X, Y e Z atuais do objeto câmera.

FIGURA 3.A – Propriedades da sequência Intro

No jogo Cryshooter, além das posições inicial e final da câmera, ainda há a posição intermediária, que ocorre no segundo número trinta. Foram adicionados também efeitos de transição de imagem, através 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, também gradualmente, ambas configuradas para duração de quatro segundos.

FIGURA 3.B – Criação de um objeto do tipo Camera

Uma ótima prática para agilizar o processo de criação das cut-scenes é visualizar em tempo real o que está sendo exibido na câmera vinculada a cut-scene. A câmera padrão da CryENGINE sempre exibe a visão de perspectiva do jogo. Uma maneira de alterar a câmera 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 câmera de perspectiva, basta seguir o mesmo caminho de menus, apenas trocando a seleção 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 vídeos são magníficas. Isso se dá pelo fato de que a cut-scene fica armazenada em uma linha do tempo, que assim como em outros editores de vídeos, possui diferentes camadas, uma para cada tipo de elemento a ser nela inserido.

Chegamos ao fim de mais um capítulo da série CryENGINE. No próximo episódio, seguiremos para o último recurso estudado nesta ferramenta, conhecido como Música e Som!

Até mais!

– Leonardo Dalmina

Autor: Luiz Nörnberg Ver todos os posts de
Sou Bacharel em Ciência da Computação pela Universidade Católica de Pelotas (UCPel), onde também atuei como professor. Desde a época da faculdade (mais de quinze anos atrás) a paixão por jogos tem sido importante no meu direcionamento profissional. Sou sócio-fundador do Izyplay Game Studio, onde exerço o cargo de Diretor de Tecnologia. Sempre tive grande foco em desenvolvimento em Java, embora tenha migrando para a tecnologia Adobe AIR em função de sua portabilidade. Ah, e é claro, dou meus palpites no game design.

Deixar um Comentário