Estou criando uma estrutura de batalha Mãe/Terra no Godot 4.3. Será de código aberto e o grande ponto disso é que qualquer pessoa sem conhecimento de codificação pode criar novos inimigos e membros do grupo com simples caixas de seleção e controles deslizantes. pode ser encontrado aqui e aqui.
O único problema é que a arquitetura do jogo é confusa e difícil de depurar! Estou tentando muito manter tudo relacionado a uma coisa em um só lugar. Então, o código do membro do grupo está na cena do membro do grupo e o código dos inimigos está na cena dos inimigos, mas isso provou ser um desafio. que não tenho certeza de como devo passar informações entre os membros do grupo, os inimigos e o gerente de batalha.
A função para os membros do grupo sofrerem dano está na cena do gerenciador de batalha, por exemplo (A raiz da cena), pensei que faria mais sentido tê-la no topo para que pudesse apenas chamar funções na cena dos membros do grupo, mas esta foi uma má ideia porque a maneira como lidei com os inimigos que sofrem dano é, na verdade, na cena do membro do grupo, diretamente quando esse membro causa dano ao inimigo. Então, ambos sofrem danos de maneiras estranhas e inconsistentes.
e agora funções aleatórias estão por todo lado e depurar coisas consome tempo e honestamente se tornou uma tarefa árdua, posso encontrar os bugs, mas leva tempo e muito se pular pelas 3 cenas principais (membro do grupo, inimigo, gerente de batalha) E muitos pontos de interrupção.
Tenho assistido a esses vídeos realmente incríveis sobre estrutura de código e comparações entre os diferentes paradigmas (OOP, Procedural, Funcional, Orientado a Componentes), assim vídeo e isso vídeo e eles são honestamente muito perspicazes e me fizeram pensar muito mais profundamente sobre a estrutura do meu código.
Por exemplo, um problema em meu código é o quão descuidadamente estou passando variáveis em diferentes cenas e tornando certas variáveis globais. Isso torna o rastreamento de bugs muito confuso.
Quero aprender como melhorar a estrutura do código dos meus jogos Godot! Faça com que a colocação das funções faça sentido, Tenha menos efeitos colaterais nas funções, Entenda melhor os padrões de design, Entenda quando chamar e quando sinalizar, Entenda quando tornar as variáveis globais, Esse tipo de coisa!
Existem recursos de aprendizagem para esse tipo de coisa! A propósito, não precisa ser Godot, apenas código de videogame em geral.