🦆 The Golden Duck: Minha experiência construindo um web game educativo com Amazon Q Developer
Thalles Augusto(ThesllaDev)

Thalles Augusto(ThesllaDev) @theslladev

About: Brazilian and developer Front-end, enthusiastic about gamification and open source, always seeking to improve and actively collaborate on open source projects

Location:
Brazil
Joined:
Apr 18, 2021

🦆 The Golden Duck: Minha experiência construindo um web game educativo com Amazon Q Developer

Publish Date: May 12
1 0

Esta é uma submissão para o Desafio Amazon Q Developer "Quack The Code": That's Entertainment!

🎮 O que eu construí

The Golden Duck: As Crônicas da Navegação é um jogo educativo baseado em texto, com estética retrô inspirada no DOS/Windows 95. O jogador aprende a navegar em sistemas operacionais utilizando apenas o teclado, através de missões narrativas interativas. O jogo estimula a memória, lógica e habilidades de navegação em sistemas, sendo acessível para usuários com deficiência visual.

Cada cena é um módulo JavaScript independente e parte de um mecanismo de jogo modular mais amplo, criado com o uso e a orientação do Amazon Q Developer. A interface do usuário imita interfaces de terminal antigas, com considerações modernas de acessibilidade. O jogo foi construído inteiramente do zero com HTML, CSS e JavaScript puros — graças às sugestões arquitetônicas do Q Developer e às suas eficientes implementação.

Demonstração

Demonstração da interface do jogo

Website do jogo

💻 Repositório do Código

Explore o código e confira os documentos complementares, como:

Sinta-se à vontade para abrir sugestões, issues ou pull requests!

Repositório no GitHub – Golden Duck Game

🤖 Como utilizei o Amazon Q Developer

Todo o processo de desenvolvimento foi feito com Amazon Q Developer no VSCode e a experiência foi divertida, produtiva e educativa. Veja como foi:

1. Configuração Inicial

  1. Instalei o plugin Amazon Q Developer no VSCode.
  2. Registrei um Builder ID para autenticação.
  3. Criei o arquivo de contexto do projeto com as informações do jogo.

2. Primeiros Passos com o Q Developer

Solicitei ao Q Developer que me explicasse e ajudasse a analisar, planejar e estruturar o código do jogo. Ele:

  • Analisou o contexto fornecido.
  • Planejou a arquitetura do projeto.
  • Selecionei o botão de confirmação "Run" e ele criou e implementou os arquivos necessários.

Após isso, ele explicou como funciona o sistema modular em JavaScript para o jogo, passando uma visão geral sobre a arquitetura, o fluxo de cada capítulo, como funciona esse fluxo, as principais funcionalidades, benefícios da arquitetura e até ensina como adicionar um novo “capítulo” e fornece exemplos de um fluxo de capítulo completo

Resposta do Q Developer com descrição das implementações de cada arquivo e botão para rejeitar ou rodar o comando no terminal

Nota: Logo de começo já gostei da descrição das implementações de cada arquivo que ele gerou e também da integração ao terminal, dando a opção prática para criar as pastas e estrutura do diretório para implementação

3. Execução e Testes Iniciais

Interface do jogo ao carregar e a tela da cena do jogo em preto

  • Executei o projeto utilizando o Live Server.
  • A interface retrô estava conforme o esperado, mas o jogo não funcionava corretamente.
  • Então comecei a inspecionar o código e identificar os pontos de falha.

4. Depuração com o Q Developer

A depuração foi tranquila, considerando a explicação anterior que o Q Developer fez, a qualidade e os comentários no código e a implementação de mensagem de erro no console:

    render() {
        if (!this.gameEngine) {
            console.error('Game engine not set for scene:', this.id);
            return;
        }

        // Clear the screen first
        this.gameEngine.renderContent('');

        // Render each component
        this.components.forEach(component => {
            if (typeof component.render === 'function') {
                component.render();
            }
        });
    }
Enter fullscreen mode Exit fullscreen mode

Console exibindo a mensagem de erro “Game engine not set for scene: tutorial”

  • O console exibiu o erro: Game engine not set for scene: tutorial.
  • Informei e solicitei ao Q Developer uma análise do erro.
  • Ele identificou e corrigiu o problema no arquivo scene.js.

Depois de aplicar a correção, o jogo funcionou!

Ele até adicionou um pequeno utilitário auxiliar de depuração para auxiliar no desenvolvimento.

Interface do jogo com o painel de debug

Então antes de seguir com o desenvolvimento, eu testei o bate papo com várias abas e desabilitei o agente de código para utilizar uma das abas apenas para dialogo, perguntas, sugestões, etc. Conversei com ele sobre a escolha das tecnologias, o design system adotado e pedi uma explicação mais detalhada sobre o "debug helper".

Amazon Q Developer Chat com múltiplas abas e o botão de ativar/desativar o agente de código

5. Testes Unitários

  • Pedi ao Q Developer para gerar testes unitários
  • Ele configurou o package.json, criou a estrutura de testes e explicou o processo.
  • Alguns testes falharam inicialmente, mas com ajustes conseguimos validar a maioria deles.

Nota: O processo pode legar algum tempo

Terminal integrado ao VSCode com a mensagem informativa dos testes do Jest

6. Revisão de Código e Melhorias

Solicitei uma revisão da base de código focando em vulnerabilidades de segurança e acessibilidade. O Q Developer sugeriu e eu pedi para que ele implementou melhorias, atualizando também a documentação do projeto. Rodei os testes e teve uma falha a mais comparado a antes, mas estava tudo funcionando ok

7. Documentação e Fluxo de Trabalho

Para finalizar, utilizei o Q Developer para gerar as documentação e manter o README.md atualizado.
Ele também gerou arquivos adicionais como CONTRIBUTING.md, Chapter Creation Guide, Architecture Document, Educational Design Document e até um flowchart.

Por fim, pedi que ele gerasse um artigo de submissão para o desafio em Markdown resumindo toda a jornada, com tom educacional e formatação clara — o que se tornou a base para este post.

📚 Valor Educacional

O processo de desenvolvimento com o Amazon Q Developer foi altamente educativo. Aprendi sobre:

  • Estruturação de projetos modulares em JavaScript.
  • Implementação de testes unitários com Jest.
  • Melhores práticas de acessibilidade e segurança em aplicações web.
  • Importância da documentação clara e objetiva.

🧠 Conclusão

O Amazon Q Developer foi um parceiro essencial na criação do "The Golden Duck". Desde a concepção até a implementação, depuração, testes e documentação, sua assistência tornou o processo mais eficiente e educativo. Recomendo fortemente o uso do Amazon Q Developer — especialmente para quem deseja aprender na prática, com orientação contextualizada, e ganhar mais confiança ao desenvolver projetos reais.

O resultado é um jogo que não apenas ensina a navegação pelo teclado, mas também demonstra como a assistência de IA pode aprimorar o processo de desenvolvimento, permitindo que os desenvolvedores criem aplicativos mais robustos, acessíveis e educacionais.

Comments 0 total

    Add comment