Pular para o conteúdo
Jogos Digitais
Nesta página
  1. A proposta
  2. Requisitos obrigatórios
  3. Cronograma sugerido (12 h)
  4. O que entregar
  5. Entrevista de código (5 minutos por aluno)
  6. Rubrica do projeto (28 pontos, convertidos para 4,0)
  7. Questões de saída (individuais, 20 minutos)

Projeto do Módulo 8 · Sementes do Sertão em Godot

Duração: 12 horas-aula (16 se a turma não fizer a Aula 8.9). Formato: individual. Cada aluno escreve o próprio código. Ferramenta: Godot 4.7, renderizador Compatibilidade.

A proposta

Refazer em Godot, com GDScript, o jogo de coleta do Projeto 1 (Módulo 3): o seu jogo, e não o de referência. Quem fez o Sementes do Sertão refaz o Sementes; quem fez outro tema (catar latinhas, pegar frutas) refaz o seu. As regras são as mesmas; o que muda é a ferramenta. No fim, o aluno compara as duas versões.

O projeto projetos/sementes-godot/ é a referência para consulta, não para copiar. Copiar o código sem entender aparece na entrevista de saída.

Requisitos obrigatórios

NºRequisitoAula
1Projeto com renderizador Compatibilidade, pastas cenas, scripts, imagens, sons8.1
2Jogador como cena própria (CharacterBody2D + desenho + colisão)8.1, 8.3
3Ações próprias no Mapa de Entrada, com duas teclas cada8.3
4Movimento com get_vector, animação e virada8.3
5Item coletável como cena Area2D com sinal próprio8.4
6Inimigo ou obstáculo que avisa por sinal8.4
7Itens criados pelo código, em lugar sorteado, sem mensagens de erro8.5
8Tempo de partida com Timer e dificuldade que cresce8.5
9Telas de início e fim, placar numa CanvasLayer8.6
10Autoload com os dados da partida e recorde salvo em user://8.6
11Código com nomes em português, sem acento, e comentários nas partes difíceistodas
12Tabela comparando GDevelop e Godot no seu jogo8.1

Cronograma sugerido (12 h)

HorasEtapaEntrega parcial
1Projeto, pastas, desenhos e sons do Projeto 1 importadosprojeto abre
3Jogador e Mapa de Entradajogador anda
3Itens, inimigo, sinais e criação pelo códigopartida jogável
2Telas, Autoload, recordedo início ao fim
1Teste com 3 colegas e correçõesdiário
1Tabela GDevelop × Godot e READMEentrega
1Mostra e entrevista de códigoapresentação

O que entregar

  1. Pasta do projeto do Godot (sem a pasta oculta .godot, que o Godot recria sozinho).
  2. README.md: nome, como jogar, controles, versão do Godot, autor, créditos.
  3. Tabela GDevelop × Godot (pelo menos 8 linhas).
  4. Diário, com pelo menos um erro encontrado e como foi resolvido.
  5. Exportação para web, se a turma tiver feito a Aula 8.10.

Entrevista de código (5 minutos por aluno)

O professor aponta três trechos do código do aluno e pergunta "o que acontece aqui?". Serve para confirmar autoria e entendimento, e conta no critério Domínio do código.

Rubrica do projeto (28 pontos, convertidos para 4,0)

Critério1 (iniciando)2 (em desenvolvimento)3 (adequado)4 (avançado)
Funcionamentonão rodaroda com erros na Saídaos 12 requisitos funcionam, sem errostrata casos raros (sair e voltar, recorde sem arquivo)
Organização em cenastudo numa cenajogador separadojogador, item e inimigo como cenascenas reaproveitadas em outra fase
Sinaissem sinaissó sinais prontossinal próprio emitido e conectadosinais com valores (coletada(valor))
Código legívelnomes sem sentidoalguns nomes clarosnomes em português e comentáriosfunções curtas, cada uma com uma tarefa
Dados e persistênciatudo some ao trocar de cenaAutoload sem recordeAutoload e recorde salvoranking ou mais dados salvos
Domínio do códigonão explicaexplica com ajudaexplica os três trechospropõe melhoria e mostra onde mexer
Comparaçãosem tabelatabela rasa8 linhas com exemplos do próprio jogoconclusão própria sobre quando usar cada ferramenta

Nota = soma ÷ 7.

Questões de saída (individuais, 20 minutos)

  1. Qual a diferença entre _process e _physics_process? Onde fica o movimento do jogador?
  2. Por que a semente avisa coletada em vez de somar o ponto ela mesma?
  3. O que acontece se criar a semente nova sem call_deferred?
  4. Por que os pontos ficam no Autoload e as vidas no script do jogo?
  5. Por que o recorde é salvo em user:// e não em res://?

Gabarito

  1. _process roda a cada quadro desenhado; _physics_process roda no ritmo fixo da física. O movimento com colisão (move_and_slide) fica no _physics_process.
  2. Para a semente não depender da cena: ela só avisa, e quem ouve decide. A mesma semente serve em outro jogo.
  3. O Godot mostra "Can't change this state while flushing queries..." e, no teste do Sementes, os pontos passaram a ser contados errado.
  4. Os pontos precisam chegar à tela de fim, e as variáveis do jogo somem ao trocar de cena; as vidas só importam durante a partida.
  5. res:// é a pasta do projeto, que vira só leitura no jogo exportado; user:// é a pasta de dados do jogador e continua depois de fechar.