Hoje resolvi compartilhar aqui uma curiosidade que acho que muitos pensam sobre, mas acaba ficando mais na dedução. Estou falando dos jogos em mundo aberto, que por muito tempo eu sempre olhei e falei "É grande assim porque você vai andando e carregando na hora", mas ao mesmo tempo sempre me pareceu meio esquisito, afinal de contas não deveria ir pesando cada vez mais na medida em que carregasse ou algo assim? E foi só depois que comecei a mexer com criação de jogos, que realmente pude comprovar como exatamente esse tipo de coisa é feita, ou ao menos uma das técnicas usadas, já que provavelmente deve existir mais, visto que quando se cria um jogo depende da pessoa o jeito de fazer certas coisas, alguns vão por caminhos mais longos, e outros pegam belos atalhos.
Antes de tudo vou falar um pouco sobre os polígonos do jogo. Um gráfico 3D é feito de arestas, vértices e faces. As arestas são basicamente as linhas que ligam o objeto, vocês já devem ter visto alguns modelos sem texturas, apenas com as linhas, cada uma dessas linhas termina em um ponto que normalmente se divide em outras linhas, e assim vai, esses pontos são as vértices. E por fim há as faces, que são as partes "lisas" do modelo 3D, ou seja você liga três arestas formando um triângulo, e esse triângulo é uma face, mas triângulo é apenas um exemplo, pode ser quadrado, hexágono, o que importa é que aquela área do centro seja lisa. E isso vai formando os polígonos do modelo 3D.
Quanto mais faces tem um modelo, mais detalhado ele é, porque mais irá disfarçar o quanto a face é reta, por exemplo se você fizer um nariz e tiver apenas três faces, você vai ver algo extremamente chamado e pontiagudo, porém se você colocar 100 faces, as mesmas vão ser pequenininhas, e não enormes, fazendo com que seja um nariz muito bem detalhado. Normalmente para jogos um artista 3D prefere não fazer muitas faces pra não ficar pesado, e é aí que entra a textura, que são basicamente imagens que são colocadas em cima do modelo 3D e fazem parecer realista, e também a textura serve pra disfarçar certas coisas e simular o 3D, por exemplo ao invés de você fazer uma espinha na testa do personagem, o que precisaria de mais faces pra fazê-la, você pode simplesmente por na textura a espinha, e assim a imagem irá dar conta disso. Em jogos antigos víamos mais o quanto as texturas eram usadas no lugar das faces, por exemplo os personagens não mexiam a boca, apenas falavam e ficava quieto, isso porque só tinha a textura da boca, mas ela não era 3D, e por isso não abria.
Mas eu estou falando isso tudo porque uma coisa engraçada é que para um jogo em mundo aberto nem sempre é preciso ter um PC potente para rodar, mas para se criar sim. Pode ser que um computador com configuração fraca rode um jogo com um gráfico muito belo, mas na hora de criar um jogo desses, se o mundo for muito grande, o PC pode precisar ser um verdadeiro monstro. E isso acontece porque aquele computador fraco só terá que carregar o que estiver ali naquele momento, enquanto um computador que está criando vai ter que ver o cenário inteiro de uma só vez e carregar aquilo.
Mas enfim, indo agora ao ponto principal da matéria, que é explicar como exatamente funciona para fazer isso o programador coloca um cenário inteiro do lugar, depois coloca o ponto onde o personagem irá estar. Após isso ele escolhe a distância que o personagem irá enxergar, essa distância normalmente uma certa quantidade de casas que estão a vista do personagem. A partir daí ele faz um código onde tudo que estiver a essa distância seja carregado, e tudo o que estiver mais distante que isso deva ser destruído, sendo assim o jogo não vai pesando cada vez mais porque ao mesmo tempo que o PC vai usando mais memória para carregar os novos objetos, ele também vai liberando memória com os objetos que vão sendo destruídos.
Uma outra técnica usada para disfarçar ainda mais, é a névoa, que faz com que não seja possível ver a distância, isso impede que o jogador tenha a desagradável visão do objeto sendo carregando e surgindo no meio do nada. Para visualizar melhor a névoa, imagine um círculo ao redor do personagem que simboliza a distância onde os objetos devem ser carregados, agora imagine um círculo menor dentro desse, que esse que é a névoa. Graças a isso quando o personagem estiver andando, e um objeto entrar no círculo de carregamento o jogador não vai ver ele sendo carregado, pois dentro do círculo de carregamento está a névoa, e assim o jogo tem um pouco mais de tempo pra carregar o objeto sem o jogador ver, daí se o personagem continuar andando, a névoa vai se afastar e o objeto será revelado.
Mas claro, existem várias técnicas dentro disso, por exemplo a névoa não precisa ser branca, pode ser que a pessoa coloque apenas algo transparente embaçado, pra dar a sensação de distância e ao mesmo tempo não dê para o jogador ver direito, e assim não notar. Há também quem substitua o cenário distante por imagens, por isso enquanto se está distante fica apenas uma foto daquele lugar e quando a pessoa se aproxima, a imagem desaparece e vira 3D. Varia mesmo de criador pra criador.
Enfim, resolvi colocar aqui essa curiosidade, pois antes de mexer com jogos eu apenas ficava pensativo sobre mais ou menos como funcionava, mas não tinha uma ideia concreta da técnica, e imagino que muitos aqui tivessem essa curiosidade também. Se você quiser aprender mais sobre a criação de jogos ou mesmo aprender a fazer, pode dar uma conferida no grupo de criação de jogos para iniciantes.
0 Comentários