Aprendendo a programar jogos em Unity: introdução à migração de projetos entre versões da ferramenta

Entenderemos as diferenças básicas entre diferentes versões do Unity e nos prepararemos para a atualização de nossos projetos.

em 18/10/2026
Seja bem-vindo(a) ao GameDev: Aprendendo a programar jogos em Unity de hoje! Depois de finalizarmos, em nosso encontro anterior, a construção do terceiro game de nossa série, vamos investigar aspectos importantes da construção de projetos com a ferramenta, como, por exemplo, as particularidades da atualização de projetos entre versões do editor.


Se esta for a primeira vez que você acessa conteúdos de nossa série, considere-se especialmente convidado a conhecer mais sobre os projetos práticos de programação que estamos elaborando, que nos possibilitam aprender mais sobre métodos e técnicas para o desenvolvimento de jogos digitais, de diferentes estilos gráficos e de gameplay.

A partir do primeiro tópico da série, abordamos desde as etapas mais elementares do processo de criação de um game, como a instalação e a configuração da plataforma Unity em nossos computadores, até as etapas em que colocamos a mão na massa para tirar do papel os elementos que formam os desafios de um game: cenários, personagens, adversários, itens, regras e fases.

Já finalizamos, até o momento, a construção de três jogos distintos: Forest Ping Pong, uma “homenagem florestal” ao clássico Pong (Atari, 1972); Motorista da Pesada, um platformer com aspectos de gameplay inspirados no arcade japonês City Connection (Jaleco, 1985); e Consultório do Dr. Tratanildo, um puzzle ambientado em um consultório médico tridimensional, com elementos inspirados em games dos anos 1980 e 1990, como Dr. Mario (Nintendo, 1990), Pac-Man (Namco, 1980) e Tama (Time Warner Interactive, 1994).



A construção dos três games nos proporcionou oportunidades de experimentarmos conceitos utilizados na construção de jogos 2D e 3D de diferentes níveis de complexidade. Aspectos envolvendo a utilização de sprites e de modelos tridimensionais, posicionamento de câmeras e configuração de controles de jogo são exemplos de tópicos abordados durante nossos encontros.

Mesmo se você não tiver experiências prévias em programação de jogos ou de sistemas, recomendo fortemente acompanhar as etapas de elaboração dos games, a partir dos textos destacados no índice da primeira entrada da série. Os conceitos são abordados utilizando exemplos práticos, replicáveis a nossos projetos pessoais. É possível, inclusive, experimentar os games diretamente de seu navegador, por meio de links nos últimos textos de seus projetos.

Se você tem a vontade de tirar do papel suas próprias aventuras digitais mas ainda não sabe como realizá-la, junte-se a nós nesta jornada, repleta de novos conhecimentos e de muita diversão!

Sistema de nomenclatura de versões do Unity

Uma propriedade interessante do Unity, enquanto fabricante da ferramenta de desenvolvimento de jogos, é a disponibilização de diferentes famílias de versões do editor utilizando sistemas de numeração e de nomenclatura próprios para a identificação, dentre outros, de versões do editor ainda em testes, de uso geral ou em suporte estendido.

Desde o lançamento da ferramenta, em 2005, as seguintes famílias de versões do Unity foram lançadas ao público:
  • Unity 1.0 (2005);
  • Unity 2.0 (2007);
  • Unity 3.0 (2010);
  • Unity 4.0 (2015);
  • Unity 5 (2015);
  • Unity 2017 a 2023 (lançamentos anuais, com o número correspondendo ao nome de cada família); 
  • Unity 6 (2024).
O lançamento de uma família de versões indica a implementação de novos recursos ou de melhorias  substanciais a funcionalidades pré-existentes, em relação às anteriores. Por exemplo, no lançamento da família 3.0 do Unity a ferramenta recebeu suporte à criação de jogos para a plataforma Android; já a partir do lançamento do Unity 5 foi possível a compilação de jogos em formato WebGL, jogável pelo navegador, semelhante aos que disponibilizamos nos últimos textos dos três games que criamos durante a série.

A imagem a seguir mostra a diferença visual entre versões do editor do Unity pertencentes a famílias diferentes.

Cada família de versões contempla diferentes linhas de versões, identificadas pelo número subsequente ao nome “principal” da versão. Essas linhas de versões também contemplam diferenças significativas entre si, mas não tão relevantes quanto entre famílias de versões.

Um exemplo notável foi a evolução observada entre as linhas de versões 2020.1 e 2020.2 em relação ao funcionamento da função Time.DeltaTime, que apresentava inconsistências consideráveis entre plataformas antes da atualização realizada.

Por fim, as versões individuais do editor são identificadas por um conjunto de letras e números, presentes no último campo do nome, também com significados próprios.

O editor do Unity em versão 2020.3.48f1, que utilizamos para a criação dos jogos da série até o momento, é identificado como sendo:
  • Pertencente à família 2020 da ferramenta;
  • Pertencente à terceira linha de versões da família (2020.3);
  • A quadragésima oitava versão (48) final (f) do editor.
A letra presente no trecho final do nome da versão indica se a versão é:
  • Alpha (a): em estágio de testes inicial, podendo apresentar diversos bugs e comportamentos inesperados ou features temporariamente incompletas;
  • Beta (b): também em estágio de testes, mas já com correções apontadas pelos testadores para as principais funcionalidades novas da linha de versões criada;
  • Final / de uso público (f): versões estáveis, recomendadas para uso em versões finais de jogos comerciais; são versões que continuam a receber melhorias referentes a aspectos de segurança ou de funcionalidades, caso necessário.
O último dígito do nome completo da versão indica a “versão menor” da compilação do editor. Raramente ocorre do fabricante necessitar elaborar, às pressas, uma versão “f2”, para mitigar algum erro mais sério identificado pouco após o lançamento de uma versão final.

De tempos em tempos, a fabricante da ferramenta lança linhas de versões de suporte estendido, que recebem atualizações constantes durante um determinado período de tempo, normalmente entre dois a três anos após o lançamento. Essas linhas de versões são identificadas pela sigla LTS (Long-Term Support).

A existência de versões LTS se justifica pelo fato de que as modificações de funcionalidades implementadas entre atualizações de famílias ou de linhas de versões podem acabar por modificar o funcionamento esperado de características dos projetos criados em versões anteriores do Unity; dependendo do tamanho de um projeto, migrações pode ser demoradas e custosas, por isso, a manutenção dos códigos e funcionalidades de um projeto em uma linha de versões estável, sem mudanças significativas, pode ser uma alternativa interessante, enquanto não se atualiza o projeto para a família subsequente.

As linhas de versões não-LTS também são identificadas pelo termo Tech Stream, normalmente as primeiras a serem lançadas em uma nova família do Unity.

O diagrama a seguir, disponibilizado pelo fabricante em 2022, ilustra a data de lançamento de algumas das famílias de versões do Unity até aquele momento, e o suporte planejado para cada linha planejada. 

A importância das atualizações

Assim como normalmente ocorre com diferentes tipos de sistemas, ferramentas de criação de jogos, como a Unity, também recebem frequentes atualizações de versões. Essas atualizações podem trazer correções de segurança ou novas funcionalidades que, por vezes, não se restringem à melhorias ao ambiente do editor em si.

Um exemplo concreto é o referente à versão que utilizamos para o desenvolvimento dos três projetos práticos de programação de jogos durante a série: ao iniciarmos nossa jornada, recomendei a utilização da versão 2020.3.48f1 para a criação dos games, devido a seu uso menor de recursos do computador em relação à versões mais recentes. Porém, em outubro de 2025, a fabricante da ferramenta relatou a descoberta de uma falha de segurança presente nos jogos criados nessa versão do editor e em anteriores, disponibilizando uma atualização para a plataforma (2020.3.49f1), recomendando a posterior recompilação dos jogos afetados com a atualização.

Esse alerta pode ser verificado ao passarmos a seta por cima da versão do editor, em um de nossos projetos presentes na listagem do Unity Hub.

Conforme apontado anteriormente a respeito das linhas de versões LTS do Unity, atualizações de projetos entre versões da mesma linha não costumam dar muitas dores de cabeça aos desenvolvedores, pois as mudanças costumam ser pontuais e não bruscas. Já entre diferentes linhas ou famílias de versões, é normal haver a necessidade de se realizar ajustes extensos em scripts, em objetos de cenas ou em configurações de importação de elementos multimídia para os projetos.

Uma boa prática recomendada é a realização de baterias de testes dos jogos diante de atualizações entre versões, mesmo sendo elas da mesma família e linha da versão anterior.

O Unity permite a migração de projetos entre versões nos seguintes sentidos:
  • Dentro de uma mesma linha de versões, das mais antigas para a mais novas;
  • Entre linhas de versões, das anteriores para as mais recentes;
  • Entre famílias de versões, também das anteriores para as mais recentes.
Não é indicado migrar projetos no sentido contrário aos indicados (até é possível em alguns casos, mas exige extensa edição de propriedades nos arquivos do projeto, o que não é recomendado pela fabricante). Mesmo se uma versão específica do editor em uma linha LTS for mais recente do que uma versão de uma família mais avançada do que a atual, o editor não permitirá a migração de forma suportada.

Próximos passos

Para que possamos ver na prática alguns dos desafios enfrentados durante processos de migração, nos próximos encontros utilizaremos os projetos de referência de nossos três games como base para observarmos o que ocorre durante a atualização para versões mais recentes de projetos em uma mesma linha de versões LTS e, também, entre famílias diferentes.

Nos encontraremos novamente no dia 25 de outubro. Até mais! Fique ligado sempre nas novidades do GameBlast!

Revisão: Ives Boitano
Referência do diagrama: Unity Blog
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).