Meu TCC e a Criação de uma Visualização 3D do Sistema Solar com Unity 3D
Olá, pessoas. Neste artigo, vou descrever um pouco da minha experiência como estudante da Ciência da Computação que resolveu unir duas áreas de que gosta muito, Games e Astronomia, para desenvolver o TCC. Foi escolhido desenvolver uma visualização 3D do nosso Sistema Solar para auxiliar no estudo introdutório da Astronomia, visando um melhor entendimento e interesse nos alunos. A grande motivação para isso foi iniciar meus estudos em desenvolvimento de jogos enquanto desenvolvo algo que motive ainda mais meus estudos em Astronomia.
Vale ressaltar que tudo que vou relatar aqui foi e ainda é, pois não concluí por completo meu projeto, minha experiência com as ferramentas e a forma de desenvolver utilizando uma Game Engine. Qualquer comentário desnecessário para inflar o próprio ego não é bem-vindo. Mas aqueles que quiserem deixar suas notas respeitosas para me ajudar e ajudar outras pessoas a não passarem pelo mesmo, é muita mais do que desejado. Agora vamos começar.
Minha máquina deu conta de rodar o projeto
Quando decidi que esse seria o meu tema, não tinha pensado direito que talvez o Unity poderia exigir muito dos requisitos do meu notebook que possui apenas um processador AMD A8-7410 com uma AMD Radeon R5 Graphics e 12 GB de RAM. O que levou minha Orientadora e eu procurarmos uma máquina como um bom processador e uma placa gráfica para o desenvolvimento, e conseguimos encontrar um bom notebook no campus para eu utilizar. Mas assim que comecei a desenvolver no notebook de campus, fiquei mais tranquilo e fui tentar desenvolver no meu por curiosidade, e para minha surpresa rodou.
Hoje em dia, consigo fazer muita coisa daqui de casa mesmo, mas quando preciso modelar algumas coisas ou ganhar um pouco mais de tempo, tenho que recorrer ao notebook da faculdade, já que para modelar no Blender na minha máquina é impossível, e mesmo rodando o projeto dentro do Unity, toda modificação é necessária muita paciência com o carregamento das modificações e alguns travamentos ocasionais. Mas nunca tive o projeto corrompido ou fechado de forma inesperada durante esses travamentos.
Os sistemas utilizados são Windows 11 no notebook da faculdade e o Linux Mint no meu notebook pessoal. E não, não tive nenhum problema eu utilizar Unity e o C# no Linux, toda modificação feita funciona perfeitamente em ambas as máquinas sem precisar de nenhuma configuração antes de dar o pull no projeto.
Dificuldades ao trabalhar pela primeira vez com o Unity 3D
Aqui confesso que foi bem difícil entender o que eu precisava fazer dentro daquela janela com tantas informações, já que estava acostumado a usar apenas IDEs com código na tela como Intellij, Eclipse, VS e VS Code. Comecei com alguns vídeos tutoriais bem simples explicando o mais básico de cada janela e depois como criar os objetos da cena e como programar componentes para eles. Depois de quase um ano de experiência trabalhando na plataforma, ainda tem muita coisa que não entendo direito e que não faço ideia de como funciona, mas vou me virando assim mesmo.
Outra grande dificuldade foi entender qual a melhor maneira de organizar os arquivos do projeto. Quais pastas criar, onde guardar e qual nome dar foram questões bem simples para mim quando peguei o jeito com projetos Web o Mobile, até porque em qualquer tutorial da internet você encontra uma orientação para isso. Mas com Unity, cada vídeo que eu assistia, a organização utilizada por cada professor era diferente e até mesmo não existia. Depois que comprei um curso, fui me orientando melhor em como organizar e agora ficou mais fácil de entender como estruturar os projetos na plataforma.
O que e como pesquisar?
Quando tinha que fazer conexão do projeto com o banco de dados, um CRUD ou um sistema de validação, foi tranquilo encontrar tutoriais na internet, independente da tecnologia utilizada. Mas como eu iria pesquisar que precisava fazer um rastro no meu planeta para desenhar sua órbita em torno do Sol? Ou, como configurar a câmera da forma que eu precisava com os comandos que eu precisava?
Para você com experiência, pode até parecer bobo, e hoje em dia me parece bobo. Só que quando você não tem experiência nenhuma com uma tecnologia diferente da grande maioria que conhece, tudo é muito mais difícil. Tive que assistir vídeos que não tinham o que eu precisava, ler a documentação e consultar o GPT para então fazer meus testes. Depois que fui entendendo, pesquisar foi ficando natural, até mesmo lidar com a falta do resultado desejado e resolver o problema.
Unity atualiza com muita frequência
O que aconteceu muito foi de achar um tutorial que resolvesse o meu problema ou que me explicasse como fazer algo, mas quando fui aplicar tudo estava diferente. Isso aconteceu porque a plataforma atualiza com certa frequência, fazendo você se adaptar com os conhecimentos que adquire de tutoriais de alguns anos atrás. Mas nada que vai te travar permanentemente, apenas gastar um tempo procurando onde foi parar aquela bendita opção que o professor(a) utilizou durante o vídeo ou artigo.
Conclusões
Ainda não concluí meu projeto, está em uns 85%, e mesmo assim posso afirmar que foi um dos melhores projetos que desenvolvi. Gosto muito de desenvolver sistemas "comuns" em Java e C#, porém desenvolver algo em uma engine de jogos é muito mais divertido e intuitivo já que mesmo após horas digitando código ou posicionando objetos no lugar correto é só dar um play você tem um resultado visual que estimula e muito a continuar mais algumas horas ali pesquisando e aplicando.
Acredito que todo desenvolvedor deveria experimentar algumas dessas engines ou até mesmo desenvolver a própria para ter uma visão mais diferente da que está acostumado.
Pensando no futuro, tenho grandes expectativas para o projeto. Pretendo finalizá-lo com sucesso e espero que ele se torne uma ferramenta valiosa para o estudo introdutório da Astronomia. Além disso, planejo continuar aprimorando e expandindo o projeto mesmo após a conclusão do TCC, buscando maneiras de torná-lo ainda mais acessível e envolvente para os alunos.
Acredito que projetos como este têm o potencial de fazer uma diferença significativa na educação, despertando o interesse e a curiosidade dos alunos para a ciência de uma forma diferente do convencional. Espero que minha experiência ajude outros desenvolvedores a explorarem novas formas de utilizar a tecnologia para promover a aprendizagem e a descoberta em áreas tão fascinantes.
Fontes de produção:
Ilustrações da capa: geradas por lexica.art
Conteúdo escrito por: José Carlos da Silva Esteves
Projeto no GitHub: https://github.com/JoseCarlos67/Sistema-Solar
#Unity3D #Jogos #Simuladores #Educacao