🤖🤖🤖
Hoje é lua cheia e coincidência ou não, sempre estou mais inclinado a iniciar novos projetos na lua cheia (ou retomar velhos projetos, como é o caso).
Descobri hoje que a Godot versão 4 foi lançada oficialmente.
Eu estava muito ansioso por isso, mesmo tendo pausado o projeto Space Punkers no inicio de janeiro devido a problemas de agenda, eu esperava colocar minhas garras nesta nova versão da Engine para poder testá-la com o meu projeto em andamento em algum momento desse semestre.
Hoje, navegando na internet, resolvi visitar a página oficial da Godot para ver as novidades e eis que me deparei com a agradável surpresa: a versão 4 já está disponível para download. Como não acesso desde janeiro, pode ser que ela já esteja disponível a um tempo.
Fui logo testar a importação do meu projeto para a engine nova e eis que o motor dá logo um alerta: eu precisaria converter meu projeto para a nova versão e para fazer isso deveria escolher entre converter todo o projeto ou apenas o arquivo principal que nomeia o projeto.
Escolhi converter todo o projeto; afinal, só assim eu poderia testar todas as funcionalidades e mudanças na ferramenta.
Claro que com isso, muitos erros de versão irão ocorrer e eu precisaria arrumá-los todos (mas só vou seguir com isso se a quantidade de erros não for intratável).
Ao término da conversão a Godot me avisa que o arquivo da cena inicial (Start Game.tscn) deu um problema durante a conversão.
Cliquei em "Ok" para finalizar a conclusão e após isso tentei rodar o projeto e já me deparei com o primeiro erro em uma chamada para uma função global (escrita na cena OneRing_Script.tscn: sim, minha cena de funções globais para a todas as outras cenas dominar). O erro diz respeito a função que eu uso para ler e contar diretórios e arquivos em um diretório. Essa é uma função muito útil e que eu adaptei da função padrão de exemplo na documentação da própria Godot.
O erro diz respeito à palavra reservada Directory como é possível ver no print abaixo, pois é exibida a mensagem informando que essa palavra não está declarada. Sendo assim, ela deve ter sido modificada na linguagem GDScript (alias, eu uso a linguagem oficial da Godot, que é a GDScript, para programar na ferramenta, ainda que ela permita o uso de outras linguagens).
erro na palavra reservada Directory |
Consultei a documentação atualizada e encontrei novamente o exemplo de como escrever uma função para contar diretórios e arquivos. Com base nessa documentação, fiz os ajustes necessários no meu código (conforme o print abaixo) e aparentemente deu certo, porque após executar o projeto, o mesmo não parou nessa tela de erro referente à palavra Directory. Em contrapartida, parou em outra função, o que indica que a quantidade de erros que precisarei tratar para finalizar essa conversão para a Godot 4 é bem grande. Basicamente agora a palavra Directory mudou para DirAccess e a forma de usá-la está um pouco diferente; mais simples: não é mais preciso criar uma instância da classe e depois usar a instância para abrir o diretório desejado. Agora você já cria uma instância do próprio "diretório", encurtando um pouco o caminho.
ajuste realizado |
Talvez eu faça um teste convertendo apenas o arquivo principal do projeto, sem alterar a estrutura dos demais arquivos, mas deixarei para testar isso em outro momento.