Postagens

Engine de Inteligência Artificial

Imagem
Entende-se por Inteligência Artificial (IA) para jogos, os programas que descreverão o comportamento de entidades não controladas pelo jogador, tipicamente os NPCs (NonPlayer Characters). Na maioria dos casos, o comportamento inteligente desses agentes computacionais é implementado através de máquinas de estados. Os algoritmos de máquinas de estados procuram resolver problemas formalizando diversos possíveis estados em que um elemento pode se encontrar (no caso de uma televisão, por exemplo, poderia-se ter estes estados: Desligada, Acesa e Stand-by). A transição de um estado para outro estará atrelado a algum evento que dispare esta mudança (no exemplo anterior, ao apertar a tecla a TV muda do estado de desligada para Stand-by). Desta maneira, a inteligência de um personagem de um jogo pode ser descrita por diversos estados em que o mesmo pode se encontrar (no caso de um jogo de ação, poderíamos descrever estes estados como espera, perseguição, ataque, fuga, morte, por exemplo). Este ...

Engine de Som

O engine de som é um componente fundamental para dar vida ao seu jogo, trazendo imersão e realismo através de efeitos sonoros e trilhas que acompanham a ação. Ele funciona como um maestro, gerenciando todos os arquivos de áudio que fazem parte da biblioteca de recursos do projeto. Por baixo dos panos, esse sistema costuma utilizar tecnologias consolidadas como DirectSound ou OpenAL, que são APIs especializadas em manipular arquivos de som de forma eficiente. Mas o engine de som vai muito além de simplesmente tocar músicas e efeitos. Uma de suas características mais interessantes é o controle de som posicional, que permite criar uma experiência auditiva espacialmente coerente. Imagine um personagem andando em um ambiente 3D: se ele se aproxima de uma fonte sonora, como uma cachoeira, o som fica mais alto e claro; ao se afastar, o volume diminui e a direção do áudio muda, dando a sensação de profundidade e localização. Isso acontece porque o engine calcula a posição dos objetos em cena e...

Engine de Física

 Grande parte da interatividade de um jogo se deve ao funcionamento de algumas leis da física sobre o mundo virtual criado. Assim, ao andar sobre um labirinto e bater numa parede o jogador não pode atravessá-la; ao dar um pulo, o jogador deve colidir com o chão e não continuar caindo para sempre; ao acelerar um carro, sua velocidade deverá ir crescendo gradualmente e não abruptamente. Os cálculos de física básicos num jogo são: – Colisão: Objetos 3D devem colidir com outros. Esta colisão não é trivial de ser realizada para um mundo virtual como é para o mundo real, já que em última instância corresponderia em verificar se cada um dos polígonos de um determinado objeto possui interseção com cada um dos polígonos do restante da cena. Existem inúmeras formas de otimizar estes cálculos (ver [EBE 03]), sendo a mais comum a técnica de bounding-boxes, que consiste em englobar cada objeto por uma caixa e calcular a colisão para a caixa e não para a malha completa do objeto; – Resultante de...

Engine de Renderização

Imagem
O engine 3D será responsável basicamente pelo pipeline gráfico (Figura 59), que é o processo de gerar imagens 2D partindo de modelos 3D (figura 8). Este processo é dividido em diversas etapas [LAM 03], sendo as mais importantes:  – Transformações 3D: Nesta etapa aplica-se o movimento aos modelos 3D. Este movimento consiste no seguinte: a cada passo do jogo uma matriz irá acumulando o resultado de todos os movimentos que o objeto sofreu ao longo de seu histórico. Antes de visualizar a cena, será aplicada esta matriz sobre cada vértice que o compõem, posicionando-o no local que lhe corresponde naquele instante; – Projeção 3D → 2D: Os vértices que compõem o objeto são coordenadas 3D, porém a imagem do modelo deverá ser desenhada numa superfície bidimensional (tela do computador). Nesta etapa, os vértices do modelo serão projetados sobre o plano de projeção da câmera. É comum encontrar esta etapa do pipeline junto com a etapa de transformações 3D, pois em última instância realizar es...

Engines

Imagem
Um motor de um carro é responsável por fazê-lo andar. Ao dar a ignição do veículo, o motorista coloca o motor em funcionamento e começa a mover-se com ele, sem precisar saber como funciona todo o processo mecânico. A transferência do movimento dos eixos para as rodas, a sincronização das explosões dos pistões, a injeção de combustível na câmara de combustão, tudo fica a cargo do motor.  Um engine para jogos basicamente segue o mesmo princípio de funcionamento. Dentro do conceito de engenharia de software trata-se da parte do projeto que executa certas funcionalidades para um programa.  Dentro da área de jogos, um engine se encarregará por entender-se com o hardware gráfico, irá controlar os modelos para serem renderizados, tratará das entradas de dados do jogador, tratará de todo o processamento de baixo nível e outras coisas que o desenvolvedor de jogos normalmente não deseja fazer ou não tem tempo para se preocupar.  Existem inúmeras definições para um engine. Entr...

Terrenos em Jogos 3D

Imagem
Os terrenos também são conhecidos como height maps e consistem em imagens com diversas tonalidades de cinzas. Os pixels escuros corresponderão a áreas baixas do terreno e os claros a partes mais altas. Assim sendo, elaborar um terreno resume-se a criar um mapa de altura adequado para o cenário. Este mapa de altura pode ser pintado manualmente, usando algum software de edição de imagem. Entretanto, para relevos mais complexos existem inúmeras ferramentas capazes de gerar mapas mais detalhados, bem como editá-los de forma mais intuitiva. Além de gerar os mapas de altura, estes softwares são capazes de gerar suas texturas correspondentes. Algumas das ferramentas mais utilizadas são o Corel Bryce [DAS 05], VueD’Espirit [EON 05], Terragen [TER 05] e Mojo Word Generator [PAN 05]. Veja Figura 56. Posteriormente, estes mapas de altura serão projetados sobre malhas regulares de polígonos. Dependendo do engine, isto será feito na ferramenta de modelagem 3D ou no editor específico do engine. Veja...

ANIMAÇÃO EM 3D

Imagem
O movimento dos personagens, cenários e demais elementos são criados através da animação. Segundo o Senac (2019a, s. p.), “A animação dos personagens pode ser simples trocas de sprites, ou uma animação 3D baseada em movimentos de bones (esqueletos de animação)”. O processo de criação de animações em 3D segue uma sequência de etapas, conforme apresentado pela Figura 11 (JASMIN, 2018 apud DERAKHSHANI; MUN, 2008). Na modelagem são criados os modelos tridimensionais dos elementos (personagens, cenários e objetos) que irão compor as cenas de animação. A texturização é onde é escolhida a aparência de cada elemento que irá fazer parte. Na animação são definidas as câmeras e as luzes das cenas. Já na iluminação, são escolhidas as luzes, definido se será com sombras ou iluminação global. Por último, na renderização, é o processo de mesclar todas as definições escolhidas nas etapas anteriores. O tempo de processamento pode variar conforme a resolução da imagem ou da cena que foi criada (JASMIN, ...

Modelagem 3D

Imagem
A equipe de modelagem 3D será responsável por criar os objetos geométricos das fases. A geometria de um jogo pode ser dividida em dois tipos: modelagem estrutural e modelagem de elementos dinâmicos. Esta diferenciação existe pelo fato de que os modelos estruturais, por não sofrerem alteração de posição, sofrerão um préprocessamento, de maneira a otimizar o processo de renderização, como será apresentado na sessão 3. A modelagem estrutural consistirá basicamente na criação do cenário em si, o terreno e alguns outros elementos estáticos. Para esta etapa os principais softwares utilizados são o Discreet 3DS MAX [DIS 05], MAYA [ALI 05], Avid Softimage [AVI 05] e Ligthwave [NEW 05], pois fornecem recursos avançados tornando-os ótimos para este processo. Tais recursos estão descritos abaixo:  • Ferramentas de modelagem baseadas em polígonos: Toda a modelagem deverá ser feita por polígonos. Assim sendo, é importante que haja uma fácil e intuitiva forma de manipulá-los;  • Ferramentas...

Uso de Modelos 3D

Imagem
Se no desenvolvimento de jogos 2D temos os sprites, que demonstram quadro a quadro personagens e elementos em movimento, no desenvolvimento de jogos 3D utilizamos outro termo para a definição dos elementos que irão compor o jogo: são chamados de Modelos 3D. Os modelos podem ser criados utilizando um software de edição 3D ou utilizado um pacote com modelos 3D prontos. A Figura 8 ilustra um pacote de modelos 3D. Na literatura, é comum acharmos o termo de modelagem para abordar os modelos 3D. A modelagem, segundo Jasmin (2018, p. 17): (...) é o processo de criação dos modelos tridimensionais que irão compor as cenas da animação. Modelagem de objetos orgânicos, como animais pessoas e plantas é muito mais complexa do que objetos formados de cubos esferas e outras formas geométricas básicas. Para se modelar os elementos 3D em um software de edição, inicia-se com a construção de uma malha, onde serão organizados os materiais, texturas e por último os elementos de iluminação. A modelagem 3D é ...

Introdução aos Jogos 3D

Imagem
Você se lembra do significado da expressão 2D? Se 2D significa duas dimensões (largura e comprimento), a expressão 3D significa que além da largura e comprimento temos a profundidade, ou seja, são tridimensionais. Jogos 2D e 3D diferem, segundo Mioto (2010, p. 10), na “(...) quantidade de dimensões em que se trabalha. Um jogo 2D possui apenas duas dimensões (X, representando a diretriz horizontal e Y representado a vertical), sendo que um projeto 3D também inclui a diretriz Z que representa a profundidade”. Dicas:  Criar um jogo em 2D ou 3D, eis a questão. No artigo ‘É melhor criar um jogo em 2D ou 3D?’, o autor Wenes Soares apresenta os prós e contras em desenvolver jogos 2D e 3D. Confira o artigo em: https://www.crieseusjogos.com.br/e-melhor-criar-um-jogo2d-ou-3d/ . Jogos 3D são os mais desenvolvidos atualmente. Cople (2019, p. 160) identificou que “o fascínio pelos jogos 3D é cada vez maior, isto devido ao grande aumento da qualidade gráfica nas diversas plataformas, inicialmen...

Produção de Áudio e Imagens 2D

Imagem
Antes de abordar os engines propriamente ditos é importante destacar outros aspectos tecnológicos que são utilizados na produção de um jogo – áudio e imagens 2D. Para produção de áudio existem duas ferramentas comerciais bastante arrojadas e bem utilizadas profissionalmente – Cubase e o SoundForge [SON 05]. O Cubase é usado basicamente para mixagem de canais MIDI e o SoundForge é usado para produção de trilhas e efeitos sonoros. O SoundForge é comumente usado no cinema, na televisão e na produção de vinhetas para o rádio. O Audacity [AUD 05] é uma ferramenta livre que permite a criação de áudio, inclusive combinando diferentes canais de som, importando e exportando arquivos no formato WAV, MP3 e Ogg Vorbis. Entretanto não possui todos os recursos oferecidos pelo SoundForge. No aspecto de áudio, a OpenAL desenvolvida pela Loki Software, trata-se de uma alternativa de implementação de som bastante interessante, pois a OpenAL permite adicionar som 3D, uma biblioteca estruturada na forma d...

Etapas do Processo de Elaboração de um Jogo

Imagem
Como qualquer outro software a produção de um jogo computadorizado, seja esse 2D ou 3D, requer a adoção de um processo de desenvolvimento. No caso das aplicações de entretenimento digital, tais com os jogos, é necessário tratar dos aspectos artísticos neste processo. Simplificadamente o processo de desenvolvimento de um jogo 3D envolve as seguintes etapas [ROL 04]: 1. Confecção do Design Bible;  2. Produção de áudio e imagens 2D;  3. Modelagem 3D;  4. Desenvolvimento dos artefatos computacionais. Basicamente trata-se da escolha ou desenvolvimento do engine;  5. Integração dos aspectos artísticos com os aspectos computacionais. Nas próximas subseções serão descritos os três primeiros passos no processo de desenvolvimento de um jogo. O passo 4 é descrito nas seções 3,4 e 5. Design Bible Assim como não é possível criar um filme sem antes ter um roteiro bem elaborado, também é impossível desenvolver um jogo sem antes ter um documento com todas as suas especificações. Cos...