Criando jogos em Go para iniciantes absolutos
(threedots.tech)Redescobrindo a diversão em programar: superando o burnout com desenvolvimento de jogos
- Reclamação frequente nas comunidades de desenvolvedores: a paixão por programar desapareceu
- Dica para aliviar o burnout: criar seu próprio jogo para voltar a gostar de programar
- Compartilhamento de uma experiência pessoal de como o desenvolvimento de jogos levou alguém a se apaixonar por programação
- Recomendação de desenvolver jogos usando a linguagem Go e a biblioteca Ebitengine
Princípios básicos do desenvolvimento de jogos
- Assim como nos filmes, jogos são um conjunto de imagens consecutivas rápidas (frames)
- Jogos geram imagens em tempo real e alteram o próximo frame de acordo com a entrada do usuário
- Jogos são basicamente um loop infinito, repetindo o desenho de imagens e a atualização da lógica
Configuração do projeto
- Criar um módulo Go e adicionar a biblioteca Ebitengine
- Executar uma janela vazia com a implementação mínima da interface do jogo
Carregamento de assets
- Recomenda-se usar arte feita por programadores ou aproveitar assets gratuitos
- Usar o pacote
embedpara carregar assets no código
Desenhando imagens
- Realizar todo o trabalho de desenho dentro do método
Draw - Usar o método
DrawImagedeebiten.Imagepara desenhar uma imagem sobre outra - Ajustar posição, rotação e escala da imagem por meio da struct
DrawImageOptions
Lógica do jogo
- A struct
Gamemantém o estado do jogo e altera esse estado com o métodoUpdate - Como exemplo, manter a posição do jogador como um vetor (X, Y)
Movimento
- Implementar movimento atualizando a posição do jogador no método
Update - Alterar a posição do jogador conforme a entrada do teclado
Timer
- Implementar timers para alterar a lógica do jogo com base no tempo
- Usar a struct
Timerpara disparar eventos em intervalos específicos
Objetos de jogo
- Encapsular e gerenciar objetos de jogo, como o jogador
- Cada objeto tem seus próprios métodos
UpdateeDraw
Criação de objetos
- Criar objetos de meteoro e fazê-los surgir nas bordas da tela
- A struct
Gameacompanha os objetos de meteoro
Disparo de balas
- Implementar a lógica de disparo e um timer de cooldown
- O
Playercria as balas e oGameas acompanha
Detecção de colisão
- Implementar a struct
Recte o métodoCollider()para detecção de colisão - Verificar colisões entre objetos no
Updatedo jogo
Opinião do GN⁺
O ponto mais importante deste texto é mostrar uma forma de os desenvolvedores superarem o burnout e recuperarem a motivação para programar. O desenvolvimento de jogos oferece uma oportunidade de praticar habilidades de programação por meio de projetos criativos e divertidos, ao mesmo tempo em que permite aprender uma nova linguagem ou biblioteca. O texto inspira desenvolvedores a voltar a aproveitar a programação como hobby e desperta interesse ao explicar uma abordagem básica para desenvolvimento de jogos usando a linguagem Go e a biblioteca Ebitengine.
1 comentários
Comentários do Hacker News