Baixe o app para aproveitar ainda mais
Prévia do material em texto
EES102 | Projeto e Programação de Jogos - Revisão Olá pessoal! Este documento traz uma revisão do conteúdo visto na disciplina de Projeto e Programação de Jogos. A intenção é trazer os pontos mais importantes vistos até agora como forma de consolidar o aprendizado. Também serve para prepará-los para a realização da prova da disciplina. Introdução Os jogos digitais são cada vez mais presentes no dia a dia das pessoas. Seja para lazer, educação ou para realizar treinamentos técnicos diversos, o que faz com que a indústria de jogos esteja em plena expansão. A construção de jogos é uma tarefa bastante complexa e que envolve geralmente uma grande equipe de pessoas. Há várias fases e atividades que devem ser realizadas para concluir um projeto de jogos com sucesso. O processo começa pela idealização do tipo de jogo que se pretende criar: tema, objetivos, regras, personagens, cenários etc. Essas ideias são discutidas e elaboradas para que tenhamos uma organização do jogo. Durante o desenvolvimento do jogo, há várias questões técnicas importantes para que o jogo possa ser efetivamente jogado: é necessário lidar com a aparência do jogo, com o modo como os objetos do jogo interagem, e com a forma como eles devem se comportar durante colisões. Por fim, é fundamental entender as questões relacionadas aos processos e atividades que ocorrem durante o projeto de um jogo. Todos esses temas foram abordados nas semanas anteriores e serão retomados neste documento de revisão. Semana 1: Conceitos de jogo e regras Design de games: uma abordagem prática (Ler capítulo 1, p. 3-16) | Paul Schuytema O que é um jogo? Vamos começar falando sobre o que é um jogo. Um jogo pode ser visto como um universo particular que tem um cenário, personagens, objetos e suas próprias regras. Essas regras incluem os objetivos do jogo. O jogador deve então conhecer as regras, personagens e objetos para atuar no jogo com o objetivo de vencer os desafios propostos. A interação do jogador ocorre através de dispositivos de entrada e saída, entre os mais comuns estão, respectivamente, o joystick e a tela. Portanto, o jogo é um processo que leva a um resultado. Esse processo inclui não só o início e o resultado final do jogo, mas também o contexto do jogo, a diversão e a emoção do jogador, ou seja, tudo o que fazemos do início ao fim de um jogo, e é o que chamamos de gameplay. Portanto, o sucesso de um jogo não depende somente de regras e cenários bem definidos, mas de uma experiência lúdica que caia no gosto do jogador e que torne o jogo divertido. Os quatro ingredientes de uma experiência de diversão são: receptividade, expectativas, gostos subjetivos e o “ingrediente X”. Primeiro, o jogador precisa estar disposto a experimentar o jogo. Depois, o jogo deve atender ou superar as expectativas do jogador. Gosto não se discute, certo? Então o jogo também pode agradar ou desagradar alguns jogadores dependendo do estilo do jogo, ou a forma como ocorre a interação com o jogador, cenário, personagens, tudo isso pode ter uma influência sobre a relação entre jogo e jogador, que pode ou não gostar daquele jogo. Por fim, o chamado “ingrediente X” é a química que pode transformar a experiência do jogo em divertida e alegre, ou não. Esse ingrediente também tem muito de subjetividade e vai variar de acordo com o jogador. No caso positivo, é aquela sensação de euforia ou prazer imenso que o jogo pode causar e que leva o jogador a se identificar com o jogo. Design de games Atualmente, o processo de desenvolvimento de um jogo é uma tarefa complexa, feita por uma equipe de profissionais responsáveis pelas diversas atividades que vão resultar no produto final: o jogo. Existem três etapas principais de desenvolvimento de um jogo: pré-produção, produção e pós-produção. Na pré-produção ocorre a criação do conceito do jogo. É no processo de criação que surgem as discussões, brainstormings e pesquisa sobre jogos concorrentes. Este é o momento de criar regras, pensar personagens e cenários e definir um roteiro que seja divertido. Durante a pré- produção, as atividades de programação incluem o desenvolvimento de scripts para o jogo a ser desenvolvido, a implementação de novos recursos para o jogo, que devem ser pesquisados e estudados quanto à sua viabilidade antes da fase de produção. Ainda durante a pré-produção é que começam a ser elaborados os documentos de design, incluindo esboços dos conceitos do jogo e documentos técnicos mais detalhados para a equipe de desenvolvimento, contendo, por exemplo, as tecnologias a serem usadas no desenvolvimento. Esses documentos servem para nortear o trabalho de toda a equipe, e vão sendo atualizados e refinados com o avanço do projeto. Os designers são os responsáveis por conduzir a maior parte das atividades durante a pré-produção, incluindo a administração da documentação, a pesquisa de jogos concorrentes, a elaboração do roteiro, das regras, do cenário e dos conceitos do jogo. Durante a produção, o jogo é de fato construído. Enquanto os artistas fazem a criação dos personagens, objetos e cenários, os programadores estão criando o código-fonte do jogo. Os designers, além de gerenciar as atividades de arte e programação, desenvolvem o roteiro do gameplay. São criados protótipos para testar o jogo e as melhorias são então discutidas e implementadas. Os documentos de design sao aperfeiçoados para refletir o estado atual o jogo. Também é durante a produção que são criadas as estratégias de marketing do jogo. A etapa de pós-produção começa quando o jogo é lançado. É aí que começam a ser feitas as atualizações do jogo: melhorias, correções, produção de pacotes de expansão, entre outras necessidades que visam melhorar e dar suporte ao jogo lançado. Semana 2: Organização de um jogo digital Introdução ao desenvolvimento de games v. 2 (Ler pág. 233-238) | Steve Rabin Introdução ao desenvolvimento de games v. 2 (Ler pág. 242-252) | Steve Rabin Arquitetura do jogo A maioria dos jogos desenvolvidos atualmente possui estruturas complexas, que são divididas em duas partes: código específico do jogo e código do motor do jogo. O código específico é aquele que contém as partes que contém o domínio do jogo: comportamento dos personagens e objetos, regras do jogo etc. Já o código do motor do jogo tem a parte que controla as questões gerais e comuns a maioria dos jogos: a comunicação com os dispositivos de entrada e saída, renderização, detecção de colisão etc. O código do motor é genérico e, portanto, reutilizável em vários jogos. Entre as possíveis arquiteturas de um jogo, temos as seguintes: • Ad-Hoc: construídas de maneira não planejada e sem nenhuma estrutura aparente. São mais indicadas quando um jogo é pequeno, sendo difícil de modificar e até mesmo entender. • Modular: o jogo é planejadamente dividido em módulos, cada um com suas especificidades. Os módulos comunicam-se através de interfaces predefinidas, em que cada modulo e responsavel por uma parte do jogo. Esse tipo de arquitetura facilita o reúso do código, mas podem causar dependências entre os módulos que podem gerar um alto acoplamento. • Grafos acíclicos dirigidos: é uma estrutura modular na qual as dependências entre móulos são gerenciadas pelo grafo. Cada módulo é um nó do grafo e assim suas dependências são estruturadas de acordo com o nível de dependência dos módulos, evitando ciclos de dependência entre os módulos. Cada módulo só pode interagir com outros módulos de níveis inferiores. • Camadas: uma variação dos grafos acíclicos dirigidos em que os módulos com nívels equivalentes de dependência são agrupados em camadas. Um módulo só pode interagir somente com aqueles na camada imediatamente inferior. Loop principal do jogo Os jogos são executados a partir do chamado loop principal, uma estrutura de laço que contém as tarefas principais do jogo. É essa estruturaem laço que faz com que o jogo passe a sensação de movimento ou animação. Para garantir essa sensação de animação, as tarefas devem se executas dentro de um frame. Tarefas mais demoradas devem ser divididas para ocorrer em etapas de cada frame, sem prejudicar as demais tarefas. Assim, é necessário que as etapas dos jogos atuem de forma sincronizada para que o jogo não tenha atrasos e nem adiantamentos que prejudiquem a movimentação dentro do jogo. Há jogos que permitem variar a duração de um frame (jogos de PC) e outros cuja duração do frame é fixa (consoles). A seguir, estão descritas as principais tarefas que ocorrem durante o loop principal. Um jogo precisa reagir aos comandos feitos pelo jogador. Isso é feito a partir da captura dos sinais dos dispositivos de entrada do jogo, tais como: joystick, mouse, teclado, câmera etc. A simulação é uma tarefa que engloba várias subtarefas dentro da dinâmica de um jogo. Entre essas subtarefas estão a movimentação do jogo e a execução de código de comportamento das entidades. As tarefas da simulação costumam ser mais dispendiosas devido à necessidade de realizar cálculos para atualização de posição e a execução das regras do jogo. A colisão é uma tarefa diretamente relacionada com a movimentação ocorrida na simulação. A colisão determina mudanças no posicionamento de entidades e costuma ser dividida em duas fases: deteção da colisão e resposta de colisão. Após executar a simulação e a colisão, são feitas as atualizações dos objetos, que muitas vezes precisam ser reposicionados ou ter sua aparência alterada, por exemplo, quando um carro colide com o muro, ele deve aparecer amassado. É durante a renderização que todas as mudanças ocorridas nas tarefas anteriores serão exibidas em tela. Muitas vezes são aplicadas técnicas para renderizar somente aquilo que foi alterado, com o objetivo de melhorar o desempenho de renderização do jogo. Além dessas tarefas, podem haver outras relacionadas à especifidades do jogo, incluindo execução de áudio, recebimento e envio de pacotes de rede, entre outros. Entidades de jogo Uma entidade é qualquer objeto em um jogo com o qual podemos interagir, desde um personagem até uma nuvem que se move no cenário. Isso inclui objetos que não têm representação física no cenário, como a câmera com a visão do jogador. Geralmente, objetos sem ação não são considerados entidades. Por exemplo, uma pedra que simplesmente decora um cenário não é uma entidade. No entanto, se essa mesma pedra poder ser movida por alguma ação no jogo, ela passa a ser considerada uma entidade. As entidades costumam ser armazenadas em listas. Para renderizar as entidades, a lista é percorrida de forma linear. No entanto, os jogos usam estruturas de dados distintas para armazenar as entidades de acordo com cada necessidade, de forma a agilizar o acesso às entidades. É muito comum também o uso de estruturas de árvore para agrupar entidades de acordo com alguma hierarquia. A atualização das entidades pode seguir estratégias distintas. Pode-se, por exemplo, atualizar todas as entidades sequencialmente ou então somente as que estão a uma certa distância do personagem do jogador. Para isso, pode-se usar uma fila de prioridade, na qual entidades próximas do jogador são atualizadas primeiro. Semana 3: Renderização e estrutura de cena Introdução ao desenvolvimento de games v. 2 (Ler pág. 407-423) | Steve Rabin Renderização A renderização é o momento em que as atualizações feitas durante o loop principal do programa são exibidas para o jogador. A renderização de jogos costuma ser concluída antes de ser exibida para o jogador a para evitar que a construção do quadro tenha um efeito pertubador. Para isso, costuma-se usar duas áreas de memória, conhecidas como frame buffer e back buffer. O frame buffer exibe o frame para o jogador, enquanto que o back buffer é usado para construir o frame seguinte, que então é trocado de lugar com o frame buffer. Há ainda o depth buffer, uma área usada para cenários em 3D para priorizar a renderização dos objetos que estão próximos antes dos objetos mais distantes (mais profundos). O quarto tipo de buffer é o stencil buffer, que é usado para garantir que somente uma determinada área da cena seja renderizada. A forma geométrica mais comum para renderizar objetos é o triângulo, por ser a forma mais simples para descrever uma superfície no espaço. Os triângulos podem compartilhar vértices com outros triângulos, o que facilita a texturização de superfícies compostas por vários triângulos. Outra questão importante é a renderização de objetos no espaço do mundo do jogo. É necessário transformar cada vértice do espaço do objeto em espaço do mundo para que a posição do objeto possa ser caracterizada. Isso costuma ser feito através de uma matriz que descreve esse mapeamento entre objeto e mundo. Além dos objetos, um jogo também precisa de uma câmera, que vai delimitar a área da cena visível. Essa área é conhecida como frustum, e possui seis planos no espaço: quatro planos são as bordas da câmera e os outros dois planos são o plano proximal e o plano distal, paralelos à tela e que indicam, respectivamente, o recorte mais próximo e o mais distante da tela. Um objeto de renderização representa uma descrição renderizável de uma entidade do jogo. Geralmente trata-se de uma estrutura de esqueleto com uma animação simples e uma ou mais malhas que compartilham o mesmo esqueleto ou a mesma posição no espaço. Quando temos vários objetos iguais em cena, esses objetos são representados por instâncias de renderização, que compartilham o objeto de renderização, com as definições de como o objeto é renderizado, mas cada uma com sua informação de posição no espaço, estado da animação e iluminação. A malha é um conjunto de triângulos que representa uma superfície. Uma malha é considerada uma unidade de renderização. Um objeto de renderização pode ter múltiplas malhas. Quanto mais complexa a forma do objeto, mais malhas serão necessárias para representá-lo e, portanto, mais tempo é necessário para renderizar o objeto. Cada objeto de renderização possui um esqueleto, que descreve como seus ossos estão conectados. Cada instância do objeto tem informações sobre a posição atual dos ossos, o que possibilita definir a posição de cada instância em relação ao espaço. Particionamento do volume de renderização Para obter uma renderização eficiente é necessário renderizar somente uma parte das instâncias de objetos: preferencialmente aqueles que estão ou que estarão visíveis em cena. O processo de não desenhar instâncias é conhecido como culling. Por exemplo, objetos que estão fora da area de frustum podem ser ignorados durante a renderizaçao. Além de evitar a renderização da instância de objetos, muitas vezes também é necessário agrupar essas instâncias em sistemas baseados em gráficos para evitar que seja necessário verificar se cada instância precisa ou não ser renderizada. De forma geral, o espaço do jogo é dividido em nós, ou nodos, de uma estrutura de gráfico, e as instâncias ficam associadas a esses nós. Assim, as instâncias que estão em nós fora de um limite de visibilidade da câmera não precisam ser verificadas, o que ajuda a tornar a renderização mais eficiente. Alguns dos gráficos mais usado atualmente são os portais, BSP, quadtrees, octrees e PVS. No sistema de portais, cada nó é definido pela geometria que o contém. Os nós estão associados por algum polígono convexo (e.g. retângulo), que representa um portal. Cada portal visível em cena têm suas instâncias renderizadas, mesmo que as geometrias por trás desses portais ainda não estejam visíveis em cena. Por exemplo, se a câmera estiver em uma sala, e esta sala tiver portas para dois quartos, considerando que as portas são portais, as instâncias de objetos na sala e nos quartos serão renderizadas. O particionamentode espaço binário (BSP) é uma estrutura de árvore que representa todo o espaço do jogo. Cada nó representa uma seção do espaço e cada nó pode ter dois nós filhos. Cada nó filho representa uma parte do nó pai. Um nó sem filhos (folha) é aquele que possui instâncias de objetos. Assim é possível determinar quais instâncias devem ser renderizadas percorrendo a estrutura de árvore binária. Quadtrees e octrees são estruturas similares, respectivamente, para representações bidimensionais e tridimensionais. As quadtrees são estruturas de árvores em que cada nó ou tem quatro filhos ou é um nó folha. De maneira similar também a BSP, os nós filhos dividem o espaço do nó pai em quatro partes de mesmo tamanho, subdividindo o espaço de forma homogênea. Os nós folha contém instâncias de objetos. Assim, a partir da área em cena, é possível localizar quais instâncias devem ser renderizadas a cada instante. A mesma lógica também se aplica às octrees, porém dividindo cada espaço em oito partes. O conjunto potencialmente visível (PVS) também é baseado em nós, e pode ser representado com qualquer uma das estruturas anteriormente vistas. Cada nó no PVS tem uma lista de ligações para os outros nós que podem ser visíveis a partir daquele nó. Todos os nós da lista serão renderizados. Semana 4: Interação e comportamento Introdução ao desenvolvimento de games v. 2 (Ler pág. 499-514) | Steve Rabin Inteligência artificial para jogos O uso de inteligência artificial (IA) para definir o comportamento de personagens ou oponentes em jogos é cada vez mais frequente. Em jogos, o objetivo da IA é criar oponentes divertidos e desafiadores. A intenção não é que eles superem os jogadores, mas sim que tragam algum grau de dificuldade para os jogadores. A IA não deve ter um comportamento único, previsível, de forma que o jogador não possa derrotar o oponente sempre o mesmo jeito. A IA também não deve perder de forma vergonhosa para que o jogador não sinta que é fácil demais superar os oponentes. Outras características esperadas da IA em jogos são a possibilidade de configurar o nível de dificuldade da IA e a capacidade de reação em tempo real para jogos com essa característica. Agentes de jogos Um agente de jogo é um personagem não jogador dotado de IA, que pode ser um aliado, um inimigo ou mesmo uma entidade neutra. Um agente realiza três etapas, perceber-pensar-agir, realizadas em ciclos contínuos. Alguns agentes são dotados da capacidade de aprender ou recordar, principalmente em jogos mais recentes. Quanto à percepção, um agente deve ter informações sobre o estado do jogo para tomar decisões. Como o agente é um ente artificial, ele poderia ter acesso a informações perfeitas sobre o estado do jogo, o que traria uma vantagem indevida em relação ao jogador. Assim, é necessário limitar as informações que o agente pode perceber. Em geral, usa-se limitaçoes humanas para os agentes de forma a equilibrar seu desempenho com o do jogador humano. Por exemplo, pode-se limitar a visão do agente aos objetos do jogo que estão dentro de um determinado campo de visão. O mesmo pode-se aplicar aos sentidos de audição, comunicação e tempo de reação. Quanto ao pensamento, é comum codificar regras seguindo estruturas condicionais como if-else para determinar como o agente deve “pensar” dependendo das condições apresentadas. Esse tipo de estratégia é muitas vezes chamada de conhecimento especializado. Outra forma é o uso de algoritmos de busca para encontrar soluções para um determinado problema. Além disso, é possível usar técnicas de aprendizado de máquina para resolver problemas para os agentes. A ação é o momento em que a inteligência do agente torna-se perceptível para o jogador. É preciso planejar e executar as ações do agente para que a IA seja efetiva no jogo. Entre os recursos possíveis estão o uso de efeitos sonoros, comuunicação com o jogador, pegar itens etc. Máquina de estados finitos Máquinas de estados finitos são bastante utilizadas em IA para jogos. Entre as vantagens estão a facilidade de compreensão e a possibilidade de serem aplicadas a problemas diversos. Entre as desvantagens estão a forma ad-hoc de construí-las e dificuldade de mantê-las organizadas conforme o código cresce. Na máquina de estados finitos, define-se os possíveis estados de um problema ou domínio e uma série de valores que determinam qual estado será válido dependendo dos valores presentes. Os estados podem representar ações que um agente pode tomar dependendo dos valores apresentados. Por exemplo, dependendo do tamanho do inimigo que se aproximar do agente, ele pode atacar ou fugir. O formato das máquinas de estados finitos facilitam a compreesnão da regras que a definem, através do uso de nós e arestas ligando esses nós, em que cada nó representa um estado e as arestas direcionadas estão associadas a valores que indicam para qual estado se deve ir. As máquinas de estados finitos podem ser representadas por estruturas de comandos condicionais e laços. Semana 5: Detecção de colisão Introdução ao desenvolvimento de games v. 2 (Ler pág. 355-370) | Steve Rabin Em um jogo, a simulação física é toda feita através de recursos de programação. Como os objetos são intangíveis, deve-se usar estratégias e técnicas para identificar, por exemplo quando dois objetos ocupam o mesmo espaço dentro de um jogo. A verificação desse tipo de situação é conhecida como detecção de colisões. Além disso, quando uma colisão é detectada, é preciso saber o que fazer com os objetos envolvidos, o que é feito pela resolução de colisão. A detecção e a resolução de colisões são responsáveis por fazer com que objetos de um jogo tenham um comportamento sólido, adicionando os limites físicos que regem a forma como os objetos vão interagir em um jogo. Detecção de colisões Para determinar se dois objetos colidem, é necessário levar algumas situações em consideração. A velocidade na qual os objetos se movem e formas complexas de objetos podem dificultar a detecção. Por exemplo, imagine uma bala que se move a uma velocidade muito rápida: é preciso garantir que a bala que atravessa um determinado objeto muito fino seja detectada de forma que a bala não passe despercebida pelo objeto perfurado. Outra questão relacionada à detecção é a verificação de objetos que colidem. A princípio, todos os objetos devem ser testados contra todos para verificar a possibilidade de colisão, o que pode se tornar computacionalmente caro. Esses fatores levaram ao desenvolvimento de técnicas para lidar com detecção de colisões de formas menos custosas. O teste de sobreposição é a técnica mais usada para detecção. A cada passo da simulação, esse teste verifica os pares de objetos existentes para identificar aqueles que se sobrepõe, ou seja, ocupam o mesmo espaço. Ao detectar uma colisão, observa-se o momento em que a colisão ocorreu e o vetor normal de colisão. É necessário mover a simulação para trás para identificar o momento exato da colisão. No exemplo da bala que atravessa um objeto fino, para que o teste de sobreposição funcione para todos os casos, é preciso que o objeto mais rápido em um jogo tenha velocidade menor que o tempo de atravessar o objeto mais fino em cena, o que pode trazer limitações de tempo indesejáveis para o jogo. O teste de interseção prevê colisões antes que elas de fato ocorram. Podemos dizer que o teste de sobreposição é reativo, enquanto o teste de interseção é preventivo. O teste de interseção testa a geometria dos objetos que estão na direção de viagem de um dado objeto. Esse teste faz com que as geometrias verificadas sejam extrudadas, ou seja, alongadas na direção da viagem. Essas geometrias são então testadas quanto à possibilidade de colisão. Essa técnica funciona muito bem para jogos que não fazem uso de rede. Já jogos em rede podem resultar em colisões não detectadas devido aproblemas de latência. Complexidade de detecção Para lidar com a complexidade dos testes de detecção, principalmente quando há geometrias complexas envolvidas, costuma-se fazer uso de geometrias simplificadas envolvendo os objetos complexos. Uma forma de lidar com a detecção de colisões é a soma de Minkowski, que sobrepõe os volumes de dois objetos sendo testados para verificar se há possibilidade de eles colidirem. Outra técnica usada são os volumes delimitadores, que podem ser uma esfera ou caixa que envolvem um objeto de geometria complexa para simplificar a detecção. Existem dois tipos de volumes delimitadores mais comuns: a caixa delimitadora alinhada ao eixo, que acompanha o eixo das coordenadas da cena do jogo, e a caixa delimitadora orientada, que é mais compacta ao redor do objeto e acompanha o eixo do objeto. Resolução de colisão A resolução de colisão é realizada em três etapas. Durante o prólogo, verifica-se se a colisão deve ou não ser ignorada. Caso não seja ignorada, podem ser diparados eventos de colisão, como efeitos sonoros e notificações aos objetos envolvidos. Na etapa de colisão, os objetos envolvidos são colocados no ponto de impacto e suas velocidades são recalculadas. No epílogo, ocorre a inserção de efeitos pós-colisão, tais como a destruição de objetos ou a execução de efeitos sonoros. Semana 6: Projeto e documentação de um jogo digital Desenvolvimento de games (Ler páginas 339 a 352) | Jeannie Novak Para além do que vimos na Semana 1, existem outras fases de desenvolvimento de um jogo que devem ser consideradas como parte fundamental do processo. Essas fases são: conceito, pré‐ produção, protótipo, produção, alfa, beta, ouro e pós‐produção. Na fase de conceito são definidas as ideias iniciais do jogo, e geralmente envolvem uma pequena equipe. O resultado é um documento de conceito registrando as ideias iniciais sobre o jogo, público-alvo, avaliação de recursos da empresa, que servirão para nortear as fases seguintes. A fase seguinte, de pré-produção, envolve o planejamento do desenvolvimento, o que inclui a definição sobre a arte do jogo (guia de estilo de arte) e um plano de produção. Cria-se também o documento de design do jogo. A fase de protótipo é que dá início às avaliações das ideias do jogo. No início, é comum fazer uso de recursos simples, como a criação de protótipos em papel e cartões com o objetivo de validar ideias, atratividade e diversão. A seguir são feitos protótipos digitais, que também são avaliados antes de decidir pela continuidade do jogo. A fase de produção é a mais extensa, responsável por entregar o jogo proposto. É nesta fase que se concentra o desenvolvimento do código-fonte, da arte, roteiro e gameplay do jogo. As equipes trabalham intensamente para cumprir os prazos previstos. Após a produção, começa a fase alfa. Neste ponto, o jogo já pode ser jogado do início ao fim e são feitos os acabamentos no design e no código do jogo. Os testes são feitos durante esta fase. Além disso, esta fase é a última oportunidade de fazer mudanças no conteúdo a ser entregue. A fase beta é focada na resolução de problemas identificados nas fases anteriores. O objetivo aqui é estabilizar o projeto, testar a jogabilidade do jogo, avaliar o desempenho e testar a compatibilidade com as plataformas nas quais o jogo irá funcionar. No fim desta fase ocorre o congelamento do código do jogo para possibilitar o lançamento do jogo. A fase ouro é aquela na qual o jogo é considerado pronto e será enviado para fabricação, em mídia física ou em formato virtual. A fase final, de pós-produção, é a fase de manutenção do jogo, na qual são feitas melhorias, correções de erros e o desenvolvimento de conteúdos adicionais para o jogo Concluindo Espero que esta revisão seja útil para a complementação dos seus estudos e em caso de qualquer dúvida sobre o texto, contate a equipe de facilitação. Bons estudos!
Compartilhar