• Nenhum resultado encontrado

Estudo e desenvolvimento de um jogo utilizando unreal development kit

N/A
N/A
Protected

Academic year: 2021

Share "Estudo e desenvolvimento de um jogo utilizando unreal development kit"

Copied!
67
0
0

Texto

(1)

UNIJUÍ

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL CURSO DE CIÊNCIA DA COMPUTAÇÃO

DCEEng

DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS

EDUARDO RAFAEL MALLMANN

ESTUDO E DESENVOLVIMENTO DE UM JOGO UTILIZANDO

UNREAL DEVELOPMENT KIT

SANTA ROSA-RS 2012

(2)

EDUARDO RAFAEL MALLMANN

ESTUDO E DESENVOLVIMENTO DE UM JOGO UTILIZANDO

UNREAL DEVELOPMENT KIT

Trabalho de Conclusão de Curso apresentado ao curso de Ciência da Computação, do Departamento de Ciências Exatas e Engenharias, da Universidade Regional do Noroeste do Estado do Rio Grande do Sul, como requisito parcial para obtenção do grau de Bacharel em Ciência da Computação.

Orientador: Prof.º Marcos R. Cavalheiro

SANTA ROSA - RS 2012

(3)

Dedicatória.

Aos meus pais, Jair e Elisa, meu irmão Fernando, minha namorada Ana Roberta, e a todos os amigos, minha eterna gratidão pela força e conforto ao longo destes anos de curso .

(4)

AGRADECIMENTOS

Agradeço a Deus pela vida que tenho. Aos meus pais por me guiarem, colocarem minha vida no caminho certo, me darem as oportunidades que me trouxeram aonde estou hoje. Minha namorada e meu irmão, pelo suporte não só durante o trabalho, como todo o tempo que conviveram comigo. Ao meu orientador pelas dicas e conselhos que me proporcionou. A todos os professores por terem me ensinado tudo o que sei hoje e base para muitas outras coisas que ainda irei aprender. Aos meus amigos por ficarem ao meu lado e a todos aqueles de alguma forma ajudaram neste caminho durante esses anos de vida.

(5)

"A sabedoria não nos é dada. É preciso descobri-la por nós mesmos, depois de uma viagem que

ninguém nos pode poupar ou fazer por nós."

Marcel Proust

(6)

RESUMO

O mercado de jogos é uma área em ascensão no mundo todo, com a evolução do hardware, o surgimento de novas plataformas e a utilização de softwares e engines para desenvolvimento de games, o processo tem se tornado cada vez mais rápido mantendo um nível de qualidade elevada e cada vez mais atrativo. Este trabalho tem como objetivo o estudo da Unreal Engine, uma das engines mais utilizadas atualmente, o desenvolvimento de um jogo utilizando a ferramenta Unreal Development Kit mostrando passo a passo o processo. Também busca verificar de que outras formas pode ser empregado o uso dessa ferramenta. O trabalho também apresenta o processo de desenvolvimento de games mostrando um padrão de requisitos e técnicas usadas por desenvolvedores profissionais.

(7)

ABSTRACT

The gaming market is rising worldwide, with the evolution of hardware, the emergence of new platforms and the use of software for engines and game development, the process has become faster and faster while maintaining a high level of quality and increasingly attractive. This work aims to study the Unreal Engine, one of the most used engines currently developing a game using the Unreal Development Kit tool showing step by step the process. It also seeks to verify that other forms can be employed using this tool. The paper also presents the development process of games showing a pattern of requirements and techniques used by professional developers.

(8)

LISTA DE FIGURAS

Figura 1 - Counter-Strike: Global Offensive ... 15

Figura 2 - Assassin’s Creed 2 ... 16

Figura 3 - Chessmaster 10th Edition ... 17

Figura 4 - Jogo de Colorir da Turma da Mônica ... 18

Figura 5 - FIFA 2013 ... 19

Figura 6 - StarCraft 2 ... 20

Figura 7 - The Sims ... 21

Figura 8 - Street Fighter 4 ... 22

Figura 9 - World of Warcraft ... 23

Figura 10 - The Incredible Machine ... 24

Figura 11 - The Elder Scrolls V: Skyrim ... 25

Figura 12 - Microsoft Flight Simulator X ... 26

Figura 13 - Imagem do game Dishonored ... 33

Figura 14 - Imagem do game Mass Effect 3 ... 33

Figura 15 - Tela Principal do UDK ... 34

Figura 16 - Content Browser ... 35

Figura 17 - Modo de prévia de jogo ... 36

Figura 18 - Tela do Kismet ... 37

Figura 19 - Tela do Unreal Matinee ... 38

Figura 20 - Material Editor ... 39

Figura 21 - Tela do Unreal Cascade, Editor de Partículas ... 40

Figura 22 - Partida no modo Capture the Flag ... 45

Figura 23 - Partida no modo Team Deathmatch ... 45

Figura 24 - Cube Brush utilizado para criação do chão ... 46

Figura 25 - CSG adicionado para criação do chão ... 47

Figura 26 - Textura aplicada no objeto chão e cúpula do céu ... 48

Figura 27 - Muralhas para delimitar o ambiente do jogo ... 49

Figura 28 - Formações rochosas que transformam o mapa em um labirinto ... 50

(9)

Figura 30 - Bunker mobiliado com diversos Static Meshes ... 52

Figura 31 - Vista externa do bunker com os caixotes e cercado ... 53

Figura 32 - Dominant Directional Light simulando a luz do sol ... 54

Figura 33 - PointLights responsáveis pela iluminação interna ... 55

Figura 34 - Tela do Kismet ... 57

Figura 35 - Trigger responsável pela animação de abertura das portas ... 58

Figura 36 - TeamPlayerStarts ... 59

Figura 37 - FlagBase e DefensePoint ... 60

Figura 38 - HealthPack e BaseArmor ... 61

Figura 39 - JumpPad e PathNode ... 62

(10)

LISTA DE SIGLAS

2D Duas dimensões

3D Três dimensões

CTF Capture the Flag

DM Deathmatch

UE Unreal Engine

FPS First Person Shooter

HUD Head up Display

IA Inteligência Artificial

MMO Massively Multiplayer Online

MMORPG Massively Multiplayer Online Role-playing Game

RPG Role-playing Game

RTS Real-time Strategy

(11)

SUMÁRIO

1 INTRODUÇÃO...12

2 ASPECTOS GERAIS NO DESENVOLVIMENTO ...14

2.1 GÊNEROS DE JOGOS...14 2.1.1 AÇÃO...15 2.1.2 AVENTURA...16 2.1.3 CASUAIS...17 2.1.4 EDUCACIONAIS...18 2.1.5 ESPORTES...19 2.1.6 ESTRATÉGIA...20 2.1.7 GOD GAMES...21 2.1.8 LUTA...22 2.1.9 ONLINE...23 2.1.10 QUEBRA CABEÇA...24 2.1.11 RPG...25 2.1.12 SIMULADORES...26

2.2 METODOLOGIA DE DESENVOLVIMENTO DE JOGOS...27

2.3 UNREAL ENGINE...30

2.4 UNREAL DEVELOPMENT KIT...34

3 PROTOTIPAÇÃO DO JOGO...44

3.1 DEFINIÇÕES DO JOGO...44

3.2 DESENVOVIMENTO...46

3.2.1 CENÁRIO...46

3.2.2 ILUMINAÇÃO…...53

3.2.3 KISMET E MODOS DE JOGO...56

4 CONCLUSÃO...64

TRABALHOS FUTUROS...66

(12)

1 INTRODUÇÃO

Atualmente os jogos eletrônicos são produtos que dispensam apresentações, fazendo parte da vida da milhões das pessoas, sejam eles de computador, consoles ou até mesmo para dispositivos portáteis. Essa popularidade alavancou muito o mercado de jogos, gerando cada vez mais novos empregos na produção destes produtos. Embora novas oportunidades de trabalho surjam diariamente, o processo de criação de jogos requer conhecimentos em diversas áreas e técnicas. Atualmente, as engines, ferramentas que facilitam o desenvolvimento da física e da parte gráfica, são largamente utilizadas no processo de criação de games.

Antigamente, para produzir seus games, quase todos os estúdios de desenvolvimento criavam suas próprias engines, era comum também a criação de uma engine para cada game desenvolvido. Devido ao avanço tecnológico acelerado, elaborar uma boa engine tem se tornado cada vez mais difícil, caro e demorado (SILVA; AGUIAR, 2005).

Embora alguns estúdios ainda criem suas próprias engines, o licenciamento de engines desenvolvidas por outras companhias surge como uma grande tendência na indústria para se obter redução de custos (SILVA; AGUIAR, 2005).

Os jogos estão muito mais sofisticados, não só na qualidade gráfica e sonora, como também no sentido desafiador, games mais complexos e envolventes são capazes de prender a atenção do jogador por horas. Apesar disso, desenvolver um jogo não é mais tão complicado quanto era antigamente. Com os diversos frameworks, bibliotecas de programação, material de apoio facilmente encontrados na web, e principalmente as engines gratuitas, desenvolver um jogo , o que é tarefa para uma equipe de profissionais de diferentes especialidades pode ser feito até por um único aluno.

Existem engines voltados para tipos específicos de jogos, como os de ação, estratégia e simuladores. A Unreal Engine é um motor gratuito com licença para uso não comercial muito utilizada atualmente, suas funcionalidades serão comentadas no decorrer do trabalho. Através dela é possível o desenvolvimento de jogos de alto nível devido aos seus recursos. A ferramenta necessária esta disponível gratuitamente, sendo necessário apenas a criatividade, um pouco de conhecimento em programação e adquirir experiência com cada desenvolvimento realizado.

O mercado de jogos é uma área em ascensão hoje em dia, e no Brasil, a busca por desenvolvedores, ou pessoas que saibam trabalhar na produção de games vem crescendo junto com o mercado. O Brasil é responsável por 0,16% do faturamento mundial na indústria dos

(13)

jogos. Em 2008, a produção de jogos movimentou cerca de R$ 87,5 milhões, é o que diz a ABRAGAMES (Associação Brasileira das Desenvolvedoras de Jogos Eletrônicos)

Hoje em dia, o mercado de jogos é um mercado altamente lucrativo, já superou o valor de $100 bilhões a algum tempo e movimenta bilhões de dólares anualmente. Nos últimos anos, as vendas de jogos eletrônicos faturaram mais do que a indústria cinematográfica (SANTAELLA, 2004). Em 2009 faturou $57 bilhões contra $29 bilhões do cinema e em 2012 a previsão era de $71 bilhões. Segundo pesquisas realizadas em 2011, estima-se que que hajam 35.000.000 jogadores ativos no Brasil, dos quais, 47% gastam dinheiro em jogos, o que demonstra o potencial do mercado de jogos no Brasil, apesar dos altos impostos cobrados sobre os jogos e os altos índices de pirataria(ABRAGAMES, 2008). Apesar desses fatores, o mercado Brasileiro, no que diz respeito ao desenvolvimento de jogos, apesar de estar crescendo cada vez mais e mais, ainda não atingiu seu potencial máximo, principalmente pela falta de profissionais qualificados.

A maior parte dos produtores de jogos ainda são programadores ou designers, pois as faculdades e cursos específicos voltados para a produção de jogos no brasil ainda não são muitos, nem altamente difundidos.

O domínio de ferramentas para criação de jogos, tais como a Unreal Development Kit, que será abordada nesse trabalho, é uma das formas de se ingressar nesse mercado, pois grandes jogos desenvolvidos atualmente, foram desenvolvidos utilizando como base essa ferramenta. Este trabalho propõe estudar a engine, a metodologia para criação de jogos e desenvolver um protótipo de jogo, comentado as fases do processo de desenvolvimento realizado.

O capítulo 2 traz a revisão bibliográfica, demonstrando os gêneros de jogos existentes e sua classificação, a metodologia para desenvolvimento de jogos utilizada atualmente, bem como a complexidade do processo e de que forma são compostas as equipes de desenvolvimento. Aborda a também a engine que será utilizada nesse trabalho falando sobre aspectos da mesma e da ferramenta de desenvolvimento, a Unreal Development Kit.

O capítulo 3 fala sobre o game que será implementado no decorrer do trabalho, onde serão definidos os aspectos do jogo, como o tipo de jogo, e objetivos do mesmo. Neste capitulo também são mostrados detalhadamente os passos do desenvolvimento do jogo ,desde a criação do ambiente até a definição do modo de jogo.

No capitulo 4 são apresentadas as conclusões atingidas após o estudo e realização do trabalho, além dos projetos futuros baseados no próprio trabalho.

(14)

2 ASPECTOS GERAIS NO DESENVOLVIMENTO

Este capítulo traz os aspectos gerais do desenvolvimento abordados durante a realização do trabalho. A seção 2.1 descreve e exemplifica os gêneros de jogos existentes. A seção 2.2 tem enfoque em descrever a metodologia e o processo de desenvolvimento de jogos pelas empresas atualmente, além de relatar a composição das equipes da área. As seções 2.3 e 2.4 falam sobre a Unreal Engine e a ferramenta Unreal Development Kit respectivamente, abordando aspectos da engine e da ferramenta de desenvolvimento.

2.1 GÊNEROS DE JOGOS

Os jogos eletrônicos são divididos em varias categorias, segundo BATES (2004) essa divisão é feita através da classificação dos elementos do jogo, dos objetivos e da forma com que o jogo é jogado Esta seção tem por objetivo descrever os gêneros de jogos e exemplificar cada um com títulos e imagens referentes ao gênero em questão.

(15)

2.1.1 AÇÃO

Os jogos de ação são jogos em tempo real nos quais os jogadores precisam reagir rapidamente a o que esta acontecendo na tela. Essa categoria é dominada por jogos de tiro em primeira pessoa. Nesse gênero, pode-se destacar também os jogos híbridos de ação e aventura, onde o a mecânica do jogo além de constituída de muita ação possui elementos que utilizam enigmas para a resolução de problemas. Exemplos deste gênero são as séries Counter-Strike, Battlefield , Medal of Honor e Call of Duty, jogos de tiro em primeira pessoa jogados online entre vários jogadores.

Figura 1: Counter-Strike: Global Offensive

Fonte: http://mitrasdosgames.blogspot.com.br/2012/09/cs-go-counter-strike-global offensive.html

(16)

2.1.2 AVENTURA

Os jogos de aventura contém histórias envolventes, cenários temáticos e geralmente utilizam a solução de enigmas e quebra cabeças como mecanismo para que o jogador possa prosseguir no curso da jogo. A maioria dos games de aventura também contem traços de ação, fazendo com que derrotar adversários seja parte do decorrer do jogo. Muitos jogos são híbridos de ação e aventura. Um série que faz muito sucesso atualmente é a série Assassin’s Creed, que mistura traços destes 2 gêneros. Outros exemplos é a série God of War, que também incorpora elementos de quebra-cabeça e ação.

Figura 2 : Assassin’s Creed 2

(17)

2.1.3 CASUAIS

Os jogos casuais constituem adaptações de jogos tradicionais, como por exemplo xadrez e paciência. Jogos de televisão também são incluídos nessa categoria. O gênero de jogos casuais também contempla jogos que apesar de não serem adaptações, são jogos de regras simples, onde a característica é um jogo rápido, jogado apenas para passar o tempo. Como exemplo podemos citar os jogos de Xadrez, ou até mesmo o famoso jogo de Paciência do Windows.

Figura 3: Chessmaster 10th Edition

(18)

2.1.4 EDUCACIONAIS

Os jogos educacionais tem por objetivo fazer com que o jogador aprenda enquanto se diverte. Normalmente esses jogos são destinados a um publico infantil. Os desenvolvedores trabalham em conjunto com especialistas em educação para que o jogo sirva como uma ferramenta de apoio à aprendizagem. O jogo brasileiro Coelho Sabido é um belo exemplo deste gênero, outros títulos bastante conhecidos como a Turma da Mônica e o Sítio do Pica Pau Amarelo também foram utilizados em jogos desta categoria.

Figura 4: Jogo de Colorir da Turma da Mônica

(19)

2.1.5 ESPORTES

Os jogos de esporte permitem ao jogador participar de seu esporte favorito, atuando como um jogador ou um gerenciando uma equipe como um treinador. Nesse estilo de jogo, as regras e estratégias dos esportes são rigorosamente reproduzidas. Existem games de praticamente todos os esportes, sendo mais populares os jogos de futebol, como o Winning Eleven e o FIFA, onde o jogador controla os jogadores durante uma partida simulando um jogo real. Já no estilo de treinador, existem games como o Football Manager, onde o jogador é responsável pelo gerenciamento e direção da equipe, simulando resultados de acordo com as escolhas feitas pelo jogador.

Figura 5: FIFA 2013

Fonte: http://jornalclassea.com.br/classificados/games/fifa-2013-ps3-ndash-original-lacrado-games-rs-13990

(20)

2.1.6 ESTRATÉGIA

Os jogos de estratégia requerem que o jogador gerencie um conjunto limitado de recursos para que possa alcançar um objetivo predeterminado. Este gerenciamento de recursos frequentemente envolve decisões de que tipos de unidades serão criadas e de que forma serão colocadas em ação. Os jogos de estratégia dividem se basicamente em 2 tipos, jogos de turnos e jogos de estratégia em tempo real. Os jogos de turno permitem que o jogador leve o tempo que quiser para fazer sua jogada, neste jogo é necessário premeditar todos os passos das rodadas futuras, quase como um jogo de xadrez, jogos como M.A.X, Age of Wonders, e a saga Heroes of Might and Magic são bons exemplos desta categoria.. Os jogos de estratégia em tempo real requerem agilidade na tomada de decisões por parte do jogador, fazendo com que o gerenciamento de recursos e unidades no menor tempo possível seja a o caminho para a vitória. As sagas StarCraft e Warcraft são exemplos de sucesso dessa categoria.

Figura 6: StarCraft 2

(21)

2.1.7 GOD GAMES

Nesse tipo de jogo, o jogador age como se fosse Deus, controlando ou assistindo tudo que acontece no jogo. Um exemplo muito bom para este tipo de jogo é a série The Sims. Existem também jogos híbridos como toda a série Tycoon, onde o jogador é responsável pelo gerenciamento de um parque de diversões, ou um zoológico, mas também pode atuar como Deus, pegando uma pessoa específica e afogá-la em um lago se assim desejar.

Figura 7: The Sims

(22)

2.1.8 LUTA

Os jogos de luta são podem ser jogados por contra o computador ou contra outro jogador. Cada jogador controla um personagem, e usa uma combinação de movimentos e golpes para atacar seu oponente ou se defender. Normalmente esses jogos são vistos sob uma perspectiva lateral sendo 2D ou 3D, e cada batalha dura alguns minutos. As Séries de Dragon Ball, Mortal Kombat, Street Fighter são exemplos bastante famosos, possuindo inúmeros jogos de cada uma delas.

Figura 8: Street Fighter 4

Fonte: http://hadouken.wordpress.com/2010/03/09/nojento-deslizante-e-cheio-de-oleo-hakan-completa-a-lista-de-super-street-fighter-iv/super-street-fighter-iv-20100309115624591/

(23)

2.1.9 ONLINE

Atualmente os jogos online incluem praticamente qualquer um dos gêneros, tendo como diferença o fato de que estes jogos podem ser disputados contra outros jogadores pela Internet, fazendo com que a competição se torne um agente motivador muito forte. Dentre todos os gêneros, os que se destacam são os jogos tiro em primeira pessoa, estratégia em tempo real e MMORPG. Estes três gêneros são os jogos online mais jogados atualmente. Como exemplo podemos citar a série Counter-Strike, Age of Empires, Warcraft, StarCraft e World of Warcraft, este último tendo mais de 11 milhões de assinantes mensais.

Figura 9: World of Warcraft

(24)

2.1.10 QUEBRA-CABEÇA

Os jogos de quebra-cabeça tem por objetivo proporcionar um desafio intelectual ao jogador focado na resolução de problemas. Os quebra-cabeças não são integrados a histórias como um jogo de aventura, embora hajam muitos jogos híbridos, pois muitos jogos de aventura possuem diversos elementos de quebra cabeça durante o decorrer do jogo. Embora seja um jogo antigo, The Incredible Machine é um excelente exemplo para este gênero.

Figura 10: The Incredible Machine

Fonte: http://baixandogratis002.blogspot.com.br/2011/07/pc-incredible-machine-pack-full-rip.html

(25)

2.1.11 RPG

Nos jogos de RPG, o jogador normalmente controla um personagem que desempenha o papel de herói em várias aventuras, evoluindo gradualmente esses personagens, aumentam suas habilidades e conseguindo equipamentos, armaduras e armas melhores para seu personagem. Como em um jogo de aventura, um RPG possui um mundo enorme para ser explorado. Outro elemento importante nesse gênero é o combate, que permite que os personagens apurem suas técnicas evoluindo e ganhando novas habilidades. Em RPGs de fantasia, além dos elementos citados, existe normalmente um complexo sistema de magias bem como vários tipos de raças de personagens que podem ser controlados pelo jogador. De modo geral, os RPGs também possuem histórias interessantes que vão sendo contadas a medida que o jogador evolui seu personagem e completa missões. Atualmente esse é um gênero de jogo que vem fazendo muito sucesso em jogos online, botando jogador contra jogador na busca pelo personagem mais forte. Mas não são apenas os RPGs Online que fazem sucesso, jogos como o Elder Scroll fizeram e continuam fazendo sucesso sem ter que se render ao modo online. Outro exemplo é a série Final Fantasy, um dos mais famosos RPGs.

Figura 11: The Elder Scrolls V: Skyrim

(26)

2.1.12 SIMULADORES

Os simuladores são jogos que, como o nome já diz, procuram simular a operação de máquinas complexas, como aviões ou helicóptero. Os jogadores recebem instruções e passam horas aprendendo como operar os mecanismos complexos da máquina. Simuladores são um gênero bastante utilizado para fins educativos, embora tenham como alvo uma faixa etária mais elevada. Um exemplo famoso de simulador é o Flight Simulator, cujo objetivo é fazer com que o jogador aprenda a pilotar aviões.

Figura 12: Microsoft Flight Simulator X

(27)

2.2 METODOLOGIA DE DESENVOLVIMENTO DE JOGOS

Esta seção descreve a metodologia utilizada pelas equipes de desenvolvimento e a composição das empresas que atuam na área de desenvolvimento de jogos mostrando de que forma é feito o processo de criação e desenvolvimento de um game por empresas especializadas e profissionais da área passando por todas as etapas do processo e como é dividida a equipe de profissionais responsáveis pelo desenvolvimento de um jogo.

Para o desenvolvimento de jogos, pode-se afirmar que é preciso ter conhecimento de programação e diferentes outras áreas de desenvolvimento, um planejamento do projeto e o conhecimento do que o mercado está interessado. A empresa que decidir iniciar o desenvolvimento de um jogo necessita antes pensar em qual jogo criar, pensar em termos de negócio, se estará criando algo novo ou apenas mais um jogo, pois existem jogos muito parecidos uns com outros. As empresas de jogos atuais estão muito bem estruturadas, e seguindo padrões como outras quaisquer, onde há planejamento, gerenciamento de projetos, produção, marketing, vendas, setor financeiro etc. Tudo de forma organizada, na qual se tem uma estrutura de trabalho com cumprimento de metas e trabalho em equipe.

O design de jogos é um processo constituído de quatro tarefas essenciais (ROLLINGS; ADAMS, 2003). Definir como será o game, seu funcionamento, descrição dos elementos de jogo (conceituais, funcionais, artísticos, etc.) e a transmissão de tudo para a equipe que irá desenvolve-lo. O mesmo processo também é definido por PERUCIA et. al (2007), que faz uma definição um pouco mais elaborada, antes de se começar o desenvolvimento de um jogo é necessário pensar e esquematizar, ou seja, planejar. Qualquer modificação radical do rumo no decorrer da fase de produção do jogo pode gerar um custo extremamente alto. BITTENCOURT e GIRAFFA (2003) definem que no planejamento de jogos e simulações é de vital importância definir e fixar os objetivos da atividade, a determinação do contexto desejado para a mesma, a identificação dos recursos utilizáveis para se alcançar os objetivos finais e a determinação da sequência de interações.

Um bom planejamento traz grandes vantagens ao desenvolvimento não só de softwares como de jogos também. PERUCIA et. al (2007) descreve que uma grande vantagem seria a reutilização de módulos que são comuns em alguns jogos, gerando consequentemente ganho de tempo e de qualidade, PERUCIA et. al (2007) define o ciclo de desenvolvimento pelas seguintes etapas.

A etapa de Brainstorming consiste em reunir toda a equipe para discutir originalidade, inovação e público-alvo, e também elaborar todo o detalhamento da ideia desde a

(28)

apresentação até as especificações técnicas de um jogo, em outras palavras é a etapa onde o jogo é pensado e repensado várias vezes.

A etapa de Game Design é onde são descritas todas as características mais importantes de um jogo, como jogabilidade, controles, interfaces, golpes, personagens, inimigos, armas, fases e tudo sobre o projeto. Em paralelo com essa etapa também é feita a etapa de Document Design, a etapa de documentação e descrição do jogo. Funciona como um roteiro de cinema, onde descrevem-se todas as funcionalidades do jogo de modo que todas as áreas envolvidas possam extrair informações indispensáveis para desenvolverem suas funções.

A elaboração de um cronograma também é importante, sabendo as etapas de desenvolvimento, é feito um levantamento que consiste em descrever a ordem em que as tarefas serão cumpridas e o tempo necessário para concretizar cada uma delas e o projeto como um todo.

O Level Design é responsável pelo mapeamento geral de todos os desafios e missões que o jogador necessita exercer para concluir a fase. É de extrema utilidade, pois é referência para que os artistas desenvolvam os cenários e o visual dos cenários.

A etapa de Testes consiste no lançamento de várias versões alphas até atingir a versão beta, uma versão mais completa do jogo que possui todas as fases e interatividade do jogo. Nessa fase é feita a detecção de erros, mais conhecidos como bugs. Também é nessa fase que se coletam opiniões com o intuito de melhorar o produto.

Finalmente é lançada uma Versão Final, uma versão pronta do jogo com supostos bugs encontrados durante a fase de testes já corrigidos. Uma versão que já pode ser comercializada.

Geralmente é distribuída uma versão Demo, meses antes do lançamento do produto final, eles são lançados e atualizados constantemente e possuem algumas funcionalidades para testar a jogabilidade, detectar alguns bugs, criar expectativa entre os jogadores e oferecer uma pequena amostra que o jogo completo lhe reserva.

Uma empresa séria deve seguir todos os passos do ciclo de desenvolvimento, para garantir um desenvolvimento de alto nível e com grande chance de sucesso e de reuso em futuras aplicações, garantido assim um desenvolvimento mais rápido.

Para um jogo ser desenvolvido e lançado é necessário um grupo bastante qualificado e diversificado de profissionais. PERUCIA et. al (2007) define que para a maior parte das empresas que tem como meta o desenvolvimento de jogos bons e de qualidade, são requeridos cargos específicos em diversas áreas.

Programadores que são encarregados do desenvolvimento do jogo, desenvolvendo técnicas de inteligência artificial, computação gráfica, efeitos sonoros, interação, etc.

(29)

Artistas responsáveis pelo layout do jogo. Inventam e desenham objetos, texturas, ilustrações, personagens e animações.

Level Designers responsáveis por pensar e inventar as fases dos jogos, estruturando seus desafios e surpresas. Dependendo da dimensão da empresa, um Level Designer pode ser responsável exclusivamente pela fase de design ou participar em todas as suas etapas, desde a concepção até o desenvolvimento.

Game Designers são considerados os administradores dos projetos. Eles são de extrema importância na fase de elaboração dos projetos, por envolver-se em praticamente todas as áreas da produção de jogos eletrônicos. Eles são responsáveis desde a criação das ideias, concepção do jogo e preparação do design document, que é um documento bastante detalhado que contém todas as características e especificações do jogo. Esse profissional possui uma visão bem ampla de todo o jogo, necessitando manter comunicação constante com todos outros profissionais do grupo de produção para certificar que o jogo desenvolvido vai estar de acordo com a proposta do design document.

Planejadores de software(Software Planners) são responsáveis por dividir o projeto do jogo em um conjunto de requisitos e avaliar o grau de dificuldade para desenvolver os requisitos levantados e o tempo necessário.

O Arquiteto-chefe trabalha em conjunto com o planejador de software para elaborar um conjunto de especificações e módulos, levando em consideração os requisitos técnicos identificados pelo planejador de software. A arquitetura geral do projeto é de responsabilidade do arquiteto-chefe.

O Gerente de projeto é responsável por balancear a carga das tarefas geradas pelo planejador de software e pelo arquiteto-chefe para a elaboração de um planejamento bom e organizado.

Músicos e sonoplastas compõe as trilhas sonoras, efeitos especiais e vozes para os jogos. Algumas empresas possuem até sua própria orquestra, outras contratam profissionais para a criação dos efeitos sonoros que serão utilizados no jogo.

Por último, os Testadores, responsáveis de procurarem falhas e erros conhecidos como bugs nos jogos. Podem ser fãs da empresa ou do jogo, jogadores experientes ou profissionais contratados para este serviço

(30)

2.3 UNREAL ENGINE

A Unreal Engine 3 é um motor gráfico que traz um framework de desenvolvimento completo que fornece uma vasta gama de tecnologias de núcleo, ferramentas de criação de conteúdo, suporte de infraestrutura e conteúdo, possui licença proprietária liberada para uso não-comercial. Foi escrita em C++ e utilizada para o desenvolvimento do game Unreal em 1998, sua versão atual serve de base para muitos jogos de sucesso já lançados como Batman: Arkham City, Bioshock 1 e 2, Borderlands 1 e 2, Dishonored, Gears of War 3, Mass Effect 1,2 e 3 , etc. Hoje em dia é o motor gráfico mais popular para jogos de ação, mais especificamente jogos de tiro em primeira pessoa, mas pode ser utilizada também para jogos MMORPG e RPG entre outros. Outro aspecto importante da Unreal Engine, é que ela foi desenvolvida para rodar em diversas plataformas , ou seja uma ferramenta multiplataforma completa e poderosa que roda em aparelhos Apple iOS, Google Android, Mac OS, Microsoft Xbox 360, Sony PlayStation 3 e PS®Vita e Windows PC, com suporte a versões 32/64 bits e DX 9 e 11 (UNREAL ENGINE, 2012).

A Unreal Engine 3 é integrada com as principais tecnologias de middleware por meio do programa de parceiros integrados da Epic Games. Otimizações contínuas são feitas para as maduras ferramentas da Unreal Engine, bem como suporte mundial massivo e performance multiprocessadores. O conjunto de ferramentas avançadas da Unreal Engine 3 é especificamente projetado para acelerar a produtividade dos desenvolvedores para o complexo conteúdo da próxima geração (UNREAL ENGINE, 2012).

Cada aspecto da Unreal Engine foi projetado para dar facilidade de criação de conteúdo e programação, com o objetivo de colocar o máximo possível de poder nas mãos dos artistas e designers para desenvolver em um ambiente visual com assistência mínima de programação, bem como dar aos programadores um quadro altamente modular, escalável e extensível framework para trabalhar, testar e produzir jogos de uma ampla gama de gêneros(UNREAL ENGINE, 2012).

O suporte a animações da UE proporciona flexibilidade completa da animação e um alto nível de detalhes. O sistema de animação esqueletal da suporte de até 4 ossos por vértice, e permite a mistura de dezenas de animações simultâneas. A ferramenta AnimSet Viewer disponibiliza uma forma simples e eficiente de organizar e fazer buscas por animações e meshes, texturas e etc.

(31)

O Sistema de Inteligência Artificial fornece uma noção espacial aumentada do ambiente que cerca os personagens, bem como uma otimização no uso de performance e memória, além criação de caminhos e adaptação automática a obstáculos.

O Sistema de Partículas em Cascata proporciona a criação e controle de efeitos como fogo, chuva, fumaça ou poeira, um completo editor de partículas que se integra facilmente com o Unreal Editor.

O sistema de áudio próprio da Unreal Engine proporciona ao usuário total imersão em um sistema de som 3D baseado em posição e localização, além dos mais atuais métodos de compressão de e diversas opções sobre os controles de som como loops , filtros e tonalidade.

A Unreal Engine 3 também fornece ferramentas para edição e criação de cinemáticas, através da Unreal Matinee onde é possível criar cenas de filme com completo controle de câmera, objetos e luminosidade e ainda reproduzi-los em tempo real e in-game.

O sistema Lightmass proporciona avançadas técnicas de iluminação e sombreamento inclusive em escala global, além do suporte para sunshafts, que cria sombras e raios de luz, baseados na posição das fontes de iluminação móveis ou estáticas. Suporte para sombras dinâmicas e estáticas pré-processadas e otimizadas. Grade de coloração e um sistema de reflexos de imagem em outros objetos também são características notáveis.

Gemini, o sistema de renderização multi-thread, permite um pipeline de renderização HDR 64-bit, correção de gamma, espaço linear de cores e precisão de cor dando suporte para uma ampla gama de efeitos de pós-processamento, tais como o motion blur(borrão de movimento), profundidade de campo, vegetação realistas, oclusão de ambiente e materiais criados pelo artista. O sistema de escalabilidade permite que o jogo rode em uma diversidade de computadores de configurações diferentes.

A ferramenta de edição de terreno, permite a criação de extensas áreas em mapas dinamicamente deformáveis baseados em altura e profundidade formados por diversas camadas e diferentes materiais que se misturam suavemente sem deixar que o usuário note uma mudança brusca de terreno ou estilo. Também fornece um excelente controle climático, capaz de mudar entre diversos climas e intensidades com facilidade. Quanto a vegetação, possibilita selecionar diferentes tipos de plantas, vegetação e objetos em um layer, capaz de cobrir grandes áreas inserindo randomicamente a vegetação com os meshes escolhidos pelo usuário que também controla qual o tipo e a frequência com que determinada planta aparecerá no ambiente. Outra característica muito importante é o sistema LOD (Load on Demand), que permite ao usuário, que o terreno a sua volta seja carregado suavemente sem que ele perceba ou tenha que entrar em telas de Loading.

(32)

Em critérios de conectividade, a UE apresenta suporte a LAN e IP direto. O modelo cliente servidor é escalável entre os diversos tipos de jogos. Suporte a servidores não dedicados. Capaz de transferir na demanda, mapas ou conteúdos criados por usuários.

O sistema de física da engine é provido pela PhysX da NVIDIA, proporcionando um controle sem precedentes sobre os movimentos do personagem, bem como simulações de fluidos dinâmicos. A ferramenta Unreal PhAT permite criar ou modificar o sistema de física do jogo.

O sistema de população permite que o desenvolvedor simule centenas de personagens em uma mesma cena. Cenário e objetos destruíveis, bem como personagens desmembráveis e o sistema de roupagem fisicamente simulada através dos módulos NVIDIA APEX também estão fortemente integradas a UE3.

O sistema de criação de interface de usuário, Scaleform 4.0, permite a fácil criação de menus, elementos de UI e gráficos 2D para modernos jogos 3D além da compatibilidade com ActionScript 2 e 3. O Scaleform 4.0 está integrado em um renderizador multi-thread, obtendo uma melhora substancial no tempo de processamento.

O sistema de scripting visual, Kismet, proporciona aos artistas e level designers um controle ilimitado sobre como o nível funcionará sem escrever uma única linha de código. Permite a conectividade de eventos e ações criadas pelos programadores dando vida a um gameplay mais completo. Tem suporte a funções de matemática, lógica condicional e criação de eventos e ações especificas para o jogo. Fornece uma interface intuitiva para a programação com comandos visuais e um código claro organizado em grupos.

A UnrealScript , uma linguagem de programação de alto nível, provê controle completo de scripting aos programadores em uma linguagem orientada a objeto, com sintaxe e funções muito similares ao Java, como herança e interfaces. A UnrealScript também dá possibilidade ao programador de invocar funções nativas da engine.

Suporte multi-core também faz parte da Unreal Engine, através da Unreal Swarm, um sistema de computação distribuída que escalona o trabalho de forma otimizada e utiliza o melhor do poder computacional de máquinas multi-core alocando automaticamente as tarefas em tempo real gerando um drástico aumento de desempenho. O Swarm Foi desenvolvido para dar suporte ao sistema de iluminação global da Unreal Engine, o Lightmass, gerando impressionantes resultados. Pode ser gerenciado através de uma interface visual que proporciona informações detalhadas sobre os trabalhos em andamento, incluindo agentes locais e remotos participando do trabalho.

(33)

Atualmente está em fase final de desenvolvimento a Unreal Engine 4, que promete mudanças visuais, um novo Unreal Kismet, suporte e novas funções para desenvolvimento em C ++, novidades no editor e no modo de prévia de jogo dentre outras novidades ainda não divulgadas até o presente momento.

Figura 13: Imagem do game Dishonored.

Fonte: http://www.invisioncommunity.co.uk/review/dishonored-review/

Figura 14 : Imagem do game Mass Effect 3.

Fonte: http://www.xboxblast.com.br/2012/08/bioware-anuncia-leviathan-novo-dlc-de-mass-effect-3-x360.html

(34)

2.4 UNREAL DEVELOPMENT KIT

A Unreal fornece um ambiente de edição totalmente integrado chamado Unreal Development Kit. Todas as características-chave da Unreal Engine estão contidas e disponíveis dentro do editor, fornecendo tudo que é necessário para a criação de um jogo. Um sistema baseado na arquitetura do tipo pincel e drag-and-drop (arrastar e soltar) permite a criação de imensos ambientes detalhados em pouquíssimo tempo.

Figura 15: Tela principal do UDK.

Fonte: Imagem de autoria própria criada para o trabalho.

A seguinte lista destaca as principais funções do Unreal Development Kit, sendo algumas já relatadas dentro da Unreal Engine.

(35)

 Unreal Content Browser

Uma completa ferramenta de organização e busca que gerencia toda a variedade de conteúdo que será utilizada no desenvolvimento do jogo através de drag-and-drop além de permitir ao usuário acesso a diversas opções dos meshes .

Figura 16: Content Browser.

(36)

 Fast Game Preview

Permite fazer uma prévia do jogo dentro do próprio editor, em janelas externas ou tela cheia etc.

Figura 17: Modo de prévia do jogo.

Fonte: Imagem de autoria própria criada para o trabalho.

 Accurate Graphics

O editor renderiza os gráficos da mesma forma que o game final . Permitindo uma prévia da versão final em questão gráfica.

(37)

 Unreal Kismet

Linguagem de programação visual própria do UDK para scripting de eventos e cenários para jogos sem a necessidade de programação escrita.

Figura 18: Tela do Kismet

(38)

 Unreal Matinee

Ferramenta de animação de cena que traz vida ao jogo e permite a criação de cinemáticas dentro do jogo ( in-game cinematics) assim como animações de objetos e personagens .

Figura 19: Tela do Unreal Matinee.

(39)

 Material Editor

Uma ferramenta intuitiva para design de materiais visuais e shaders usando uma rede gráfica que disponibiliza diversas opções de edição e comportamento dos mesmos.

Figura 20: Material Editor.

Fonte: Imagem de autoria própria criada para o trabalho.

 Mesh Painting

Ferramentas customizáveis de pincel para pintar efeitos materiais nos meshes . Meshes são as linhas que formam as faces de um material, ou seja, o desenho do exoesqueleto de um personagem ou material. Uma grade ou malha, que da forma a algo.

(40)

 Unreal Cascade

Um editor para a física do sistema de partículas da UE e efeitos de ambiente.

Figura 21 : Tela do Unreal Cascade , Edição de Partícula. Fonte: Imagem de autoria própria criada para o trabalho.

 Instant Lightning Preview

Possibilita a prévia em tempo real de luminosidade e shaders nos cenários e animações.

 Level Construction tools

Inclui opções de edição de figuras geométricas e criação de modelos baseados em BSP.  Autodesk FBX

Permite a importação de meshes, animações, texturas e alterações em materiais , etc.  Animation Editors

Permite a configuração de comportamento do esqueleto da animação, criando complexos estados de animação e ligando os a eventos in-game como sons e notificações de script.

 Unreal Facade

(41)

Performance and Memory optimization tools

A Unreal Engine inclui muitas ferramentas comprovadas para otimização de conteúdo e acompanhamento de gargalos de desempenho, incluindo modos de visualização de renderização , navegador de estatística de cena e dezenas de ferramentas de comando para manutenção e métricas.

 Unreal PhAT

A ferramenta que permite alterar e modificar os princípios de física de personagens e objetos  FaceFX Studio

Um conjunto de ferramentas para animações de características faciais.  Level Manager

Para design de um mundo cheio de sub-níveis sem apresentar pontos de emenda entre eles, ou seja com transição suave entre diferentes cenários e terrenos sem a necessidade de telas de loading.

 Mesh editor

Ferramenta para visualizar e editar os exoesqueletos ou meshes dos personagens bem como suas especificações físicas. Capaz de simplificar as malhas, coordenar as texturas e definir pontos de fratura dos objetos ou personagens.

 Scene Browser

Ferramenta de organização de conteúdo de nível usada para facilitar a localização e edição de atores.

 Terrain Editor

Ferramenta de desenho de paisagem ou terreno, com suporte para esculpir e pintar com alpha layers sobre os terrenos e suavização no encontro dos mesmos.

 SpeedTree Editor

Ferramenta de design da classe global dos cenários integrada na UE3.  Archetypes and Prefabs

Permite aos artistas a criação de templates de objetos customizadas e grupos de conteúdos de objeto fazendo com que diversos objetos possam ser utilizados como grupos.

 Scaleform GFx Importer

Para Construção de interfaces de usuário mais interativas e detalhadas.  Sound Editor

(42)

 Attachment Editor

Permite visualizar e modificar o relacionamento de objetos em um gráfico.  Texture Editor

Ferramentas de ajuste de imagem, como contraste e brilho e melhoramento de mipmap.  Group Editor

Permite a organização de cenas convenientemente em camadas.  Post-process Editor

Para fazer a ligação de efeitos posteriores, como borrões de movimento e profundidade de campo.

 Reference Graph Viewer

Para manter organizados as dependências dos recursos dos níveis automaticamente.

Abaixo segue uma lista de premiações, ou Awards, que reconhecem e comprovam o poder, desempenho e eficiência da gama de ferramentas e funções fornecidas pela Unreal Engine.

(43)

Best Engine \ Game Developer Magazine Front Line Awards – 2011

Top Industry Driven Tech of the Year \ NCTA – 2011

Best Engine \ Develop – 2011

Best Engine \ Game Developer Magazine Front Line Awards – 2010

Best Engine \ Develop – 2010

Best Engine \ Game Developer Magazine Front Line Awards – 2009

Best Engine \ Develop – 2009

Best Tools Provider \ Develop – 2008

Top Industry Driven Technology of the Year \ NCTA – 2008

Hall of Fame \ Game Developer Magazine Front Line Awards – 2008

Best Engine \ Game Developer Magazine Front Line Awards – 2007

Best Technology \ Game Developer Choice Awards – 2007

Outstanding Achievement in Online Game Play \ AIAS Interactive Achievement Awards – 2007

Outstanding Achievement in Visual Engineering \ AIAS Interactive Achievement Awards – 2007

Best Engine \ Game Developer Magazine Front Line Awards – 2006

Best Graphics (Technical) \ GameSpot – 2006

Best Graphics:Reader’s Choice (Technical) \ GameSpot – 2006

Best Graphics \ Spike TV Video Game Awards – 2006

Best Graphics \ TeamXbox – 2006

Best Engine \ Game Developer Magazine Front Line Awards – 2005

Best Graphics Technology (Xbox 360), Technological Excellence \ IGN – 2005

(44)

3 PROTOTIPAÇÃO DO JOGO

3.1 DEFINIÇÕES DO JOGO

Para se desenvolver um game, o primeiro passo é definir como será esse game, seu estilo, temática, objetivos, público alvo, como o usuário poderá interagir com o mesmo e de que forma ele se comportará, ou seja, o Game Design.

Após muita pesquisa bibliográfica, tutoriais e estudos em diversos materiais encontrados, foi definido que o game seria do gênero de ação em primeira pessoa, também chamado de tiro em primeira pessoa (First Person Shooter, FPS) no qual o jogador enxerga apenas o ponto de vista do protagonista, como se o jogador e personagem do jogo fossem o mesmo observador, tem por objetivo matar o oponente antes que seja morto pelos mesmos. No game foram implementados dois modos de jogo, Team Deathmatch e Capture the Flag, permitindo que o jogador escolha o modo que deseja, embora os dois sejam jogados em mapas semelhantes, ambos tem peculiaridades e diferenças no mapa.

O modo Team Deathmatch consiste em um duelo entre duas equipes rivais, Blue(Azul) e Red(Vermelha), tem por objetivo atingir uma pontuação X , cujo valor default é 50, a primeira equipe a atingir dada pontuação é declarada a vencedora da partida, cada morte de um membro da equipe conta um ponto para a equipe adversária. Caso o tempo limite seja atingido, a equipe que estiver na liderança será a vencedora, se ambas as equipes possuírem a mesma pontuação, a partida será considerada um empate.

O modo Capture the Flag também é composto por duas equipes, Azul e Vermelha, que tem por objetivo, capturar a bandeira da cor rival. Cada bandeira está situada em uma extremidade do mapa, o jogador deverá cruzar o mapa em busca da bandeira do time oposto e trazê-la para sua base. Ambas as equipes podem estar com a bandeira adversária em sua posse porem só poderão capturá-la uma vez que sua própria bandeira seja recapturada. A primeira equipe que capturar a bandeira adversária três vezes será declarada a vencedora da partida. Caso o tempo limite seja atingido, a equipe que estiver na liderança será a vencedora, se ambas as equipes possuírem a mesma pontuação, a partida será considerada um empate.

Além de escolher o modo de jogo, o jogador pode escolher outras opções do jogo, como a dificuldade dos adversários de Inteligência Artificial, número de oponentes, pontuação alvo e limite de tempo se assim desejar, caso essas opções não sejam modificadas, o usuário jogará com os valores padrão. Configurações adicionais permitem ao jogador opções especiais, como jogar em câmera lenta, gravidade baixa, e outras configurações que não alteram os objetivos ou as regras de jogo.

(45)

Figura 22: Partida no modo Capture the Flag. Fonte: Imagem de autoria própria criada para o trabalho.

Figura 23: Partida no modo Team Deathmatch. Fonte: Imagem de autoria própria criada para o trabalho.

(46)

3.2 DESENVOLVIMENTO

Esta seção tem por objetivo relatar detalhadamente o processo de desenvolvimento do jogo. Na seção 3.2.1 é relatado a criação do cenário do jogo. A seção 3.2.2 trata os aspectos da iluminação do ambiente. A seção 3.2.3 aborta o desenvolvimento no Kismet, comportamento da IA, propriedades do cenário e regras de jogo.

3.2.1 CENÁRIO

Um cenário é composto de elementos físicos e/ou virtuais que definem o espaço cênico, bem como todos os objetos no seu interior, como cores, texturas, estilos, mobiliário e pequenos objetos, todos com a finalidade de caracterizar o ambiente. Para começar o desenvolvimento do jogo iniciou-se pela criação do cenário, mais especificamente do chão. Para criar o chão foram inseridos os valores de 8000,8000 e 320 respectivamente nas coordenadas XYZ do brush (pincel) na forma de cubo. Isto fez com que o brush alcançasse um tamanho considerável de comprimento e largura, também é importante que o chão não seja muito fino, o que poderia causar bugs e falhas posteriormente no jogo.

Figura 24: Cube Brush utilizado para criação do chão. Fonte: Imagem de autoria própria criada para o trabalho.

(47)

Após o dimensionamento do brush é adicionado o CSG (Constructive Solid Geometry), de modo que na área delimitada pelo brush seja adicionada uma superfície sólida, um objeto, capaz de receber texturas e ter propriedades de colisão. Esta grande área delimitada pelo brush será utilizada como chão para o mapa do jogo.

Figura 25: CSG adicionado para criação do chão. Fonte: Imagem de autoria própria criada para o trabalho.

Para o objeto que será utilizado como chão para cenário, foi escolhida uma textura no Content Browser, M_NEC_Walls_BSP_Brick1, uma textura original do UDK, criada para ser utilizada em paredes de tijolos, aqui redimensionada e aplicada no objeto que será utilizado como chão.

Criado o chão, o próximo passo foi a criação do céu, para isto foi utilizado um SkyDome, SM_SkySphere, uma cúpula que simula o céu, que nada mais é do que um Static Mesh em forma de domo gigante que engloba o cenário todo. Esse Static Mesh gira lentamente fazendo com que pareça que as nuvens estão se movendo vagarosamente com o passar do tempo.

(48)

Figura 26: Textura aplicada no objeto chão e cúpula do céu. Fonte: Imagem de autoria própria criada para o trabalho.

Uma vez concluído o objeto utilizado como solo do cenário, o próximo passo é a criação de algo que impossibilite o jogador de cair para fora do mapa e delimite a área onde será permitido interagir durante o jogo. Existem vários modos de se atingir esse objetivo, como montanhas ou volumes invisíveis com propriedades de colisão, nesse caso o jogador vai agir como se estivesse sendo barrado por uma espécie de campo de força que o impossibilita de seguir naquela direção, alcançando o objetivo desejado por esses objetos. Neste cenários foram utilizadas muralhas em torno de todo o mapa, para que o mesmo ficasse com um aspecto de arena, um cenário comum em jogos de ação, onde o objetivo é derrotar os oponentes. Estas muralhas são Static Meshes encontradas originalmente no Content Browser do UDK com o nomes de S_LT_Buildings_SM_BunkerWallC_CUR2 e S_LT_Buildings_SM_BunkerWallC_STR. Depois de selecionados e redimensionados os componentes da muralha, foram utilizados nos segmentos dos cantos da muralha os Static Meshes em curva, terminados CUR2. Enquanto que nos segmentos retos, foram utilizados os

(49)

outros Static Meshes terminados STR, provavelmente proveniente do inglês straight que pode ser traduzido como “ em linha reta”.

Figura 27: Muralhas para delimitar o ambiente de jogo. Fonte: Imagem de autoria própria criada para o trabalho.

Depois de criada a base do cenário, chão e muralhas para delimitar até onde o jogador pode ir e interagir, o próximo passo foi preencher o mapa com objetos para que não fosse apenas um espaço vazio. Foram utilizadas algumas formações rochosas de diferentes tamanhos e ângulos, além disso foram criados 2 bunkers, estruturas semelhantes a abrigos que serão descritas posteriormente. Os Static Meshes das rochas utilizadas são: SM_CastleRock_01, SM_CastleRock_02, SM_CastleRock_03, SM_CastleRock_06 e SM_CastleRockBG_01. Estes Static Meshes foram colocados por todo o cenário, em diferentes dimensões e ângulos, dando a impressão de que as formações rochosas são diferentes uma das outras. Curiosamente, nenhuma das Static Meshes de formações rochosas possuía configurações de colisão já configuradas adequadamente a função necessária, bloquear o jogador e projéteis disparados pelas armas. Foi necessário adicionar em cada uma delas a opção COLLIDE_BlockAll que faz com que o objeto bloqueie tudo, tanto o jogador

(50)

como projéteis disparados contra o objeto. Essas formações rochosas também transformam o mapa em um labirinto, obstruindo a visão do mapa todo, fazendo que os jogador se encontre inesperadamente com os adversários.

Figura 28: Formações rochosas que transformam o mapa em um labirinto. Fonte: Imagem de autoria própria criada para o trabalho.

Os bunkers foram criados para que dar mais riqueza ao cenário e mostrar como a ferramenta também é capaz de produzir e trabalhar com cenários diferentes e mais detalhados. Primeiramente foi criada a estrutura, com o brush em forma de cubo, foram criados objetos semelhantes ao utilizado na criação do chão porém em proporções diferentes. Depois de criados, foram posicionados verticalmente para simular paredes, e horizontalmente, um na parte inferior, o chão, e outro na parte superior, o teto. Duas das paredes, uma interna, e outra externa possuem aberturas, criadas com o brush do cubo porém ao invés de adicionar CSG foi usado o botão de remover CSG, assim uma parte dos sólidos em questão foi removida fazendo aberturas que podem ser utilizadas para adicionar as portas. Uma vez definida a estrutura, foram escolhidas texturas de materiais para as paredes, piso e teto. As texturas

(51)

utilizadas são M_LT_Buildings_BSP_Bunkerwall1a, M_LT_Floors_BSP_Master, e M_LT_Floors_BSP_Organic05b respectivamente. Criada a estrutura, foi necessária integrá-la ao cenário. Por questões de balanceamento, foram adicionados dois bunkers, um em cada lado do mapa contendo em seu interior itens úteis ao jogador.

Figura 29: Vista da parte interna da estrutura do bunker já com as texturas aplicadas. Fonte: Imagem de autoria própria criada para o trabalho.

Criada, texturizada e devidamente posicionada a estrutura passamos para a parte da mobília. No interior dessa estrutura foram colocados diversos Meshes de maquinário, canos, luzes e caixas, simulando uma bunker usado como sala de controle. Dentro do bunker serão adicionados posteriormente, bônus para os jogadores que se dirigirem primeiro para o local, o bônus será um Kit de Vida e Armadura. Os Static Meshes utilizados no interior do bunker foram:

 SM_VendorCrate_01_E  S_HU_Mech_SM_Light

(52)

 S_LT_Light_SM_Light01  S_HU_Deco_SM_GasTanks01  S_HU_Deco_SM_GasTanks03  S_HU_Deco_SM_StorageTanks03  S_HU_Deco_SM_StorageTanks04  S_HU_Deco_SM_StorageTanks06  S_HU_Deco_SM_StorageTanks07  S_HU_Deco_Pipes_SM_PipeSetB01  S_HU_Deco_Pipes_SM_PipeSetB02  S_HU_Deco_Pipes_SM_PipeSetB03  S_HU_Deco_Pipes_SM_PipeSetB04  S_HU_Deco_Pipes_SM_PipeSetB05  S_HU_Deco_SM_Machinery04Alt  S_HU_Deco_SM_HydraulicSupport_C

 S_EV_SimpleLightBeam_03 (Static Mesh que representa um feixe de luz)

Figura 30: Bunker mobiliado com diversos Static Meshes. Fonte: Imagem de autoria própria criada para o trabalho.

(53)

Por último, foi criado o ambiente externo ao redor do bunker. Foram adicionados barris, caixas, canos, grades e as portas da estrutura. As caixas foram empilhadas do lado de fora, juntamente com alguns barris, e o local foi cercado. Posteriormente as grades foram derrubadas, dando a impressão que o lugar já sofreu tentativas de arrombamento ou de saque. As portas utilizam os modelos S_HU_Doors_SM_BlastDoor01 e S_HU_Doors_SM_Blast Door02, são portas de um abrigo anti-bomba. Mais tarde serão abordadas as animações da parte de entrada do cercado, e das portas anti-bomba. As caixas e os canos colocados são os mesmos Static Meshes utilizados no interior da estrutura. O barril é o RemadePhysBarrel.

Figura 31: Vista Externa do bunker com os caixotes e cercado. Fonte: Imagem de autoria própria criada para o trabalho.

3.2.2 ILUMINAÇÃO

Criar a iluminação de um cenário no Unreal Development Kit é relativamente simples graças ao sistema Lightmass que proporciona avançadas técnicas de iluminação e sombreamento inclusive em escala global. Possui suporte do suporte para sunshafts, raios de luz visíveis quando o jogador olha em direção a fontes de luz e sombras realistas de alta

(54)

qualidade, baseadas na presença de uma ou mais fontes de iluminação. Suporte para sombras dinâmicas e estáticas pré-processadas e otimizadas. Grade de coloração e um sistema de reflexos de imagem em outros objetos também são características notáveis.

Para iniciar a descrição dos componentes responsáveis pela iluminação deste cenário inicia-se pelo componente mais importante, Dominant Directional Light. Esse item deve ser único em um mapa, ele é responsável pela simulação da luz solar, fazendo com que o cenário inteiro seja banhado pela luz vinda de uma fonte gigante e muito distante que afeta o mapa todo de um mesmo modo. A direção, e a coloração da luz podem ser editados, simulando por exemplo, uma diferente hora do dia. Esta é a única fonte de luz na parte externa do cenário e é responsável não só pela iluminação como também pelas sombras estáticas e animadas dos personagens.

Figura 32: Dominant Directional Light simulando a luz do sol. Fonte: Imagem de autoria própria criada para o trabalho.

(55)

A parte interna dos bunkers não é afetada pela luz da Dominant Directional Light, criando assim um ambiente completamente escuro onde foram utilizadas diversas outras fontes de luz, PointLights, e luzes provenientes de alguns Static Meshes. PointLights são como esferas que emitem luz em todas as direções, a intensidade dessas luzes depende do componente radius, ou raio esférico em português. Quanto maior o radius, maior será o alcance dos raios de luz de um PointLight. Outra característica importante é a coloração da luz, definida por valores no padrão RGB. Alguns Static Meshes também podem ser fontes emissoras de luz, por default, nenhum deles é ativo, porém se o desenvolvedor assim desejar pode fazer com que determinados Static Meshes, como lâmpadas emitam luz, de dada cor e intensidade. Nesse cenário foram usadas diversas PointLights, uma em cada fonte de luz, cada uma delas possui um raio esférico muito curto, fazendo com que sejam luzes fracas, criando um ambiente escura, apesar de possuir várias fontes de luz ativas. Os Static Meshes semelhantes ao gerador e aos painéis de controle emitem luz própria, mas de forma mínima para não prejudicar o visual do ambiente.

Figura 33: PointLights responsáveis pela iluminação interna. Fonte: Imagem de autoria própria criada para o trabalho.

(56)

Por último, mas não menos importante, foi adicionado um LighassImportanceVolume que engloba o mapa todo. Esse volume serve para informar ao sistema Lightmass regiões onde a iluminação é priorizada. Sua forma é semelhante a um brush ou a uma figura

geométrica com linhas de cor amarela.

3.2.3 KISMET E MODOS DE JOGO

Esta seção descreve o comportamento do jogo, dos oponentes e de objetos do cenário. Começando pelo cenário, onde foram adicionados alguns itens especiais, portas que abrem de acordo com a proximidade do jogador e ainda reproduzem som de abertura e fechamento. Foram usadas os modelos de duas Static Meshes para formar a porta do bunker, S_HU_Doors_SM _BlastDoor01 e S_HU_Doors_SM_BlastDoor02, porém ambos foram adicionados no cenário como InterpActors, que diferentemente dos Static Meshes podem ser usados em animações criadas no Unreal Matinee. A criação da lógica por trás das portas, e as animações foram criadas no Kismet, a interface de scripting visual do UDK, que tem a função de fornecer controle ilimitado sobre como o nível funcionará sem escrever uma única linha de código.

(57)

Figura 34: Tela do Kismet.

Fonte: Imagem de autoria própria criada para o trabalho.

O primeiro passo foi posicionar perfeitamente os objetos na abertura externa da estrutura do bunker. Em seguida é criado um Trigger, um gatilho, que foi redimensionado e colocado no centro da porta. Quando este Trigger é tocado por algum personagem, ele desencadeia uma série de eventos começando com um Matinee, uma animação de 1.5 segundos, onde cada uma das partes da porta desliza suavemente para seu respectivo o lado. Para criar esse Matinee foi preciso simplesmente dizer a posição de cada um dos objetos nos tempos de 0 e 1.5s respectivamente, os quadros durante esse período são criados automaticamente. Juntamente com essa animação, também é tocado um som de portas de metal se abrindo, A_Door_Metal03_OpenStartCue. Quando o personagem deixa a área de contato com o Trigger, essa animação é reproduzida de forma reversa, com um som diferente ao final, A_Door_Metal03_CloseStopCue. O cercado do lado de fora do bunker possui uma animação semelhante. Para que os bunkers de cada lado do mapa não ficassem exatamente iguais, algumas cercas diferentes foram derrubadas, simulando uma tentativa de arrombamento da propriedade. Também é preciso ressaltar que InterpActors não possuem

(58)

colisão originalmente, e se tratando de portas, foi necessário alterar as propriedades dos mesmos para COLLIDE_BlockAll, para que apresentem o comportamento de portas sólidas.

Figura 35: Trigger responsável pela animação de abertura das portas. Fonte: Imagem de autoria própria criada para o trabalho.

O próximo passo foi definir aonde o jogador e os oponentes irão surgir assim que o jogo começar. Normalmente são utilizados PlayerStarts para definir estes locais. Porém como este será um cenário disputado em equipes, foi utilizado um outro componente, UDKTeam PlayerStart, que usa os valores 0 e 1 , para definir se este será um ponto inicial de um jogador do time Azul ou Vermelho respectivamente. Foram utilizados 12 TeamPlayerStarts no total, o que significa que cada equipe tem 6 pontos de origem para seus jogadores, de modo que cada equipe comece em um lado do mapa.

(59)

Figura 36: TeamPlayerStarts.

Fonte: Imagem de autoria própria criada para o trabalho.

Inseridos os TeamPlayerStarts, os oponentes de IA (Inteligência Artificial) já podem aparecer no jogo, porém, ficarão parados no exato lugar onde iniciarem. Para que a os bots de IA possam se mover pelo cenário, é necessário a adição caminhos para que os mesmos possam segui-los. Para isso foram colocados diversos PathNodes por todo o cenário. Os PathNodes fazem com que a IA possa se mover de um ponto a outro, eles determinam aonde a AI irá uma vez que o jogo é iniciado.

O próximo item encontra-se presente apenas no modo de jogo Capture the Flag, o FlagBase, a base onde a bandeira irá aparecer. É necessário que as duas equipes possuam FlagBase para que o jogo possa ser jogado neste modo e em cada time possua sua própria base, uma em cada lado do mapa e de cor específica, Azul ou Vermelha.

Outro item presente apenas no modo Capture the Flag é o DefensePoint. Quando a bandeira de um time é capturada, a AI passa para um modo defensivo, recuperar sua bandeira também passa a ser um objetivo dos jogadores AI. O DefensePoint possui a função de indicar aonde os bots devem defender, ou retornar buscando sua própria bandeira uma vez que ela encontra-se em posse da equipe adversária.

(60)

Figura 37: FlagBase e DefensePoint.

Fonte: Imagem de autoria própria criada para o trabalho.

A localização dos bunkers nas extremidades do cenário faz dos mesmos pontos pouco atraentes para os jogadores, apenas um atraso na disputa pela bandeira e até mesmo para o modo Deathmatch. Para que os mesmos sejam atrativos, dentro de cada um dos bunkers foram adicionados dois itens especiais. Um deles é um HealthPack, item que restaura parte da vida do jogador, mais especificamente 25% dos HP( Health Points, Pontos de Vida), o outro é um BaseArmor, que dá 50 pontos de uma armadura, aumentando a quantidade de danos que um jogador pode suportar antes de ser abatido. Para adicionar esses dois itens ao cenário foram usados UTArmorPickp_BaseArmor e UTPickupFactory_HealthPack, estes dois objetos estão contidos originalmente na aba Actor Classes dentro do Content Browser do Unreal Development Kit, estes objetos fazem com que de tempos em tempos os dois itens reapareçam em seus devidos lugares para que os jogadores possam utilizá-los novamente.

Referências

Documentos relacionados

Effects of the bite splint 15-day treatment termination in patients with temporomandibular disorder with a clinical history of sleep bruxism: a longitudinal single-cohort

Os principais passos para o planejamento do processo estão baseados no fatiamento dos modelos 3D (geração das camadas), no posicionamento da peça na mesa de trabalho e

Lisboeta de nascimento e com dupla formação em música clássica e jazz na Escola Superior de Música de Lisboa, na Escola de Jazz Luiz Villas-Boas e no Conservatoire Superieur

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

◦ Os filtros FIR implementados através de estruturas não recursivas têm menor propagação de erros. ◦ Ruído de quantificação inerente a

A mãe do Roberto, antes de sair – tem sempre alguma coisa para fazer, o seu curso de Italiano, a inauguração de uma exposição, um encontro no clube de ténis –, faz- -lhe

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

A principal modalidade a ser estudada será a coleta seletiva de material reciclável, e o desenvolvimento das empresas sociais dentro da cadeia de logística reversa