Aprendendo a programar jogos em Unity: melhorando a qualidade geral do labirinto do jogo

Realizaremos ajustes pontuais para deixar o núcleo do jogo mais responsivo e divertido.

em 26/04/2026
Seja bem-vindo(a) ao GameDev: Aprendendo a programar jogos em Unity! Depois de configurarmos, em nosso encontro anterior, ajustes no projeto que permitirão a flexibilização da gestão dos controles do game, vamos voltar a ajustar parâmetros do núcleo de nosso jogo, desta vez relacionados à velocidade com que a ação acontece durante a gestão da movimentação do labirinto.

Se esta for a primeira vez que você lê conteúdos de nossa série, aproveite a oportunidade para conhecer mais sobre os projetos de programação de jogos que estamos desenvolvendo periodicamente aqui no GameBlast. Por meio do uso da ferramenta Unity, a cada encontro estamos abordando métodos e técnicas interessantes para tirarmos do papel jogos de variados estilos gráficos e de gameplay.

Desenvolvendo projetos práticos de elaboração e codificação de games, a partir do primeiro texto da série aprendemos desde os passos elementares do processo, como a instalação e a configuração da ferramenta em nossos computadores, até as etapas em que colocamos a “mão na massa” pra valer. Isto é, ao codificarmos o comportamento de personagens, de adversários e outros elementos das fases, ao posicionarmos e configurarmos os elementos multimídia dos cenários, ao elaborarmos e desenvolvermos as regras de interação entre os elementos, dentre outras atividades essenciais que fazem parte do processo de criação de um game.

No momento, estamos elaborando o jogo Consultório do Dr. Tratanildo, um puzzle tridimensional ambientado em um excêntrico consultório médico, cujas características de gameplay prestam homenagem a clássicos dos anos 1980 e 1990, como Pac-Man (Namco, 1980) e Dr. Mario (Nintendo, 1990).


Além do jogo atualmente sendo desenvolvido, já produzimos anteriormente dois games 2D, Forest Ping Pong e Motorista da Pesada. Muitos dos conceitos utilizados para o desenvolvimento dos jogos anteriores da série são reaproveitados para a elaboração da aventura atualmente em construção. Vale muito a pena conferir o processo de elaboração dos três games por meio do índice disponibilizado no primeiro texto da série.

Fique despreocupado caso não tenha tido previamente a oportunidade de aprender conceitos sobre o desenvolvimento de jogos ou de sistemas em geral, pois nossa série é preparada justamente pensando em quem quer criar suas próprias aventuras virtuais utilizando as mesmas ferramentas adotadas pelos grandes estúdios de desenvolvimento de jogos, mas ainda não sabe bem ao certo por onde começar. Para tal, explicamos e testamos na prática todos os conceitos que abordamos durante a construção dos games, de forma a permitir que você possa aplicá-los em seus projetos pessoais posteriormente.

Dito isso, o que acha de juntar-se a nós em uma jornada repleta de aprendizados sobre o universo do desenvolvimento de jogos? Se gostou, venha conosco para trilharmos esta caminhada, repleta de novos conhecimentos e de muita diversão!

Acelerando os comandos

Depois de inúmeras intervenções e correções, estamos a poucos passos de finalizar a construção de nosso game. Uma das ações que são necessárias antes de se lançar um jogo é testá-lo diversas vezes, não apenas para procurar bugs, mas, também, para sentirmos se o “fator diversão” está presente ou se precisa de ajustes.

Em relação ao núcleo de nosso jogo, embora o manejo da movimentação do labirinto esteja funcionando adequadamente, é inegável que o processo para sua inclinação e a consequente reação de pílulas e agentes de doenças no cenário são um tanto quanto “lentas”, como podemos notar pela representação a seguir:

Existem formas de modificarmos os parâmetros responsáveis pela velocidade da inclinação do labirinto e do deslocamento dos demais elementos presentes em seu interior. Algumas são bem diretas, por envolverem simples ajustes em parâmetros de scripts que nós mesmos elaboramos; já outras envolvem ajustes relacionados à forma com que o Unity lida com a gravidade aplicada aos objetos em cena.

Para iniciarmos as intervenções, vamos abrir o projeto para edição. No Unity Hub, clique duas vezes sobre o item referente a ele. Na interface inicial do editor, na aba Project, abra a pasta AssetsScenes e, por fim, clique duas vezes no ícone da cena ConsultorioScene.

A primeira intervenção a ser realizada envolverá um pequeno ajuste nos parâmetros do controlador de inclinação do labirinto. Como são dois os elementos presentes em cena que têm atrelados a si componentes do tipo ControllerMov_Labirinto, para localizá-los, digite “ControllerMov_Labirinto” (sem aspas) no campo de buscas da aba Hierarchy.

Selecione os dois objetos localizados simultaneamente (Labirinto e Leito) e, na aba Inspector, dentro do grupo de configurações relacionadas ao componente Controller Mov_Labirinto, altere o valor do atributo Taxa Inclinacao de 10 para 20. Essa alteração visa aumentar a velocidade do processo de inclinação dos objetos, tanto para o labirinto quanto para o leito cenográfico. Caso considere que é necessário aumentar um pouco mais esse fator de velocidade, sinta-se à vontade para experimentar outros valores.

A segunda intervenção relaciona-se diretamente com a velocidade de deslocamento dos monstrinhos no labirinto, durante a etapa de tratamento das doenças.

Na aba Project, abra sequencialmente as pastas Assets, Multimedia, 3D e, por fim, NossasDoencas. Durante o desenvolvimento dos agentes de doenças em nosso projeto, configuramos o monstrinho de cor verde (DoencaVerde) como sendo base para a criação das demais variantes coloridas, por meio da funcionalidade de Prefabs. Sendo assim, ao alterarmos um parâmetro padronizado de DoencaVerde, os demais monstrinhos também serão impactados pela mudança.

Selecione DoencaVerde e, na aba Inspector, dentro do conjunto de atributos pertencentes ao componente Comportamento Doenca, altere o valor do atributo FatorDeslocamento de 1 para 3. Na prática, estaremos triplicando a velocidade de deslocamento dos agentes de doenças pelo labirinto. Caso queira deixá-los mais os menos rápidos do que o proposto, fique à vontade para conceder outro valor que desejar.

Para conferir se todos os monstrinhos receberam a atualização do valor desse atributo, selecione-os via aba Project e verifique se todos apresentam o novo valor de Fator Deslocamento em destaque na aba Inspector. Se quiser conceder valores de velocidade de deslocamento específicos para cada variante de monstrinho, basta alterá-los individualmente.

Um dilema de alta gravidade

Até o momento, as intervenções foram bem simples e diretas, sobretudo devido ao fato de serem modificações em valores de parâmetros de componentes derivados de variáveis que declaramos em alguns scripts controladores. Já em relação aos medicamentos, a “força motriz” que faz as pílulas rolarem pelo labirinto é a própria ação gravitacional presente no ambiente. Essa ação, por padrão, afeta a todos os elementos que tenham atrelados a si um componente de tipo Rigidbody com o atributo Use Gravity ativado.

A força gravitacional exercida sobre os elementos de uma cena tridimensional é controlada internamente pelo Unity a partir de coordenadas que podem ser programadas diretamente nas preferências do projeto. Vamos conferir como ela está programada indo ao menu Edit e selecionando a opção Project Settings.


Na janela que for exibida, selecione a opção Physics, presente na listagem de opções à esquerda da tela. Sendo o Unity uma engine que dá suporte a complexas interações físicas entre objetos, partículas e afins, como era de se esperar, uma grande variedade de configurações fica disponível para customização pelo desenvolvedor.

Em relação à força gravitacional, o primeiro conjunto de atributos, denominado Gravity, representa quais eixos sofrerão ação constante de aceleração por parte do núcleo de física do Unity. Tomando como valor padrão a aceleração da gravidade na Terra, a força gravitacional preestabelecida nos projetos é exercida no eixo Y, “para baixo”, acelerando a 9,81 m/s². Essa aceleração é representada pelo valor de Y = -9.81, conforme imagem a seguir.

Modificar toda a estrutura gravitacional do projeto para acelerar a rolagem das pílulas pelo labirinto poderia causar efeitos adversos em diferentes elementos do jogo como um todo, tais como sobre a movimentação de pacientes e do médico pelo cenário. Nesse caso, em vez de interferirmos nos valores do atributo Gravity, realizaremos uma interessante modificação voltada apenas aos componentes atrelados às pílulas do labirinto.

Feche a janela Project Settings e volte à interface principal do Unity. Na aba Project, abra sequencialmente as pastas AssetsMultimedia3D, NossasPilulas e, por fim, PilulasLabirinto. Diferentemente do realizado para os agentes de doenças, os Prefabs das pílulas do labirinto não derivam de uma pílula em específico do conjunto, portanto será necessário selecionar todos eles para modificar seus comportamentos.

Com todos os Prefabs selecionados, via aba Inspector, localize o atributo Use Gravity de seus componentes de tipo Rigidbody e desative-os. Iremos simular a força da gravidade de outra forma, agregando aos objetos um componente específico que nos auxiliará nessa empreitada.

Ainda com as cinco pílulas em evidência, na aba Inspector clique sobre o botão Add Component e adicione um componente de tipo Constant Force. Esse componente é responsável por aplicar, de forma constante, força a um objeto. Por meio de seu uso, podemos simular a força gravitacional de forma controlável a um conjunto de objetos.


Altere o valor do atributo Force Y para -19.62. Esse valor foi escolhido por ser o dobro do observado pelo parâmetro Gravity das opções de física do projeto. Na prática, as pílulas tendem a rolar pelo labirinto com o dobro de “intensidade” do que se submetidas às forças gravitacionais do projeto como um todo.

Feitas as intervenções, que tal experimentarmos a execução do jogo para notarmos as diferenças? Para tal, vá até a aba Game e clique sobre o ícone do botão Play.

Deu para perceber que todos os elementos que sofreram intervenções no encontro de hoje (labirinto, leito, pílulas e agentes de doenças) estão bem mais “espertos”, reagindo rápido às movimentações realizadas pelo jogador.

Ao término da simulação de execução, clique novamente sobre o ícone do botão Play e retorne à aba Scene. Não se esqueça de salvar a cena (menu File, opção Save) e o projeto (menu File, opção Save Project) antes de fechar o Unity.

Próximos passos

Dentre os fatores que podem determinar o sucesso ou não de um game, um dos principais é quão responsivas são as mecânicas de jogo. Esse fator pode impactar diretamente na percepção de diversão que se observa nas interações com os elementos do game; portanto, a melhoria que implementamos hoje, embora bem menor do que outras que realizamos anteriormente, agregou muito ao tornar mais dinâmica a interação entre o jogador e os principais elementos do núcleo de nosso game.

Em nossos próximos encontros, continuaremos a ajustar determinados pontos da experiência geral de nossa aventura virtual, envolvendo, dentre outros, a elaboração da sequência definitiva de desafios a ser enfrentada pelos gamers no consultório de Tratanildo Doencita.

Nosso próximo texto já encontra-se disponível, continue conosco nessa jornada de conhecimento e fique ligado sempre aqui no GameBlast!

Revisão: Ives Boitano
Siga o Blast nas Redes Sociais
Rodrigo Garcia Pontes
Entendo videogames como sendo uma expressão de arte e lazer e, também, como uma impactante ferramenta de educação. No momento, doutorando em Sistemas da Informação pela EACH-USP, desenvolvendo jogos e sistemas desde 2020. Se quiser bater um papo comigo, nas redes sociais procure por @RodrigoGPontes.
Este texto não representa a opinião do GameBlast. Somos uma comunidade de gamers aberta às visões e experiências de cada autor. Você pode compartilhar este conteúdo creditando o autor e veículo original (BY-SA 4.0).