documentacao2025 - JujuWeb/Jogo GitHub Wiki

Documentação do Projeto: Caos IFinito em Python com Pygame

1. Visão Geral

Tecnologia Utilizada: Python (3.12) + Pygame (2.6.0)
Descrição: Implementação do jogo de plataforma utilizando a biblioteca Pygame para renderização gráfica e lógica de jogo.
Objetivo: Criar um jogo funcional e modular com recursos básicos (controle de peças, desafios, níveis) e extensível para futuras melhorias.


2. Descrição prévia do Projeto

O que é Caos IFinito?

Caos IFinito é um jogo de mistérios e desafios em um ambiente escolar no Instituto Federal do Rio Grande do Norte, o qual está enfrentando sua maior crise. Um renomado professor do curso de Informática, conhecido por sua genialidade e dedicação, sofreu um colapso emocional após um código malsucedido em seu laboratório. Desde então, sua sanidade foi comprometida e passou a interferir no funcionamento do sistema, corrompendo acessos digitais e espalhando obstáculos físicos por todo o campus. Como consequência, o IFRN mergulhou no caos: aulas foram interrompidas, servidores pararam de funcionar e o ambiente escolar tornou-se instável. Em meio a todo esse caos que parece ser para sempre, existem três alunos veteranos do curso de Informática que estão em pontos estratégicos do mapa na esperança de um herói aparecer, eles explicarão a situação e fornecerão dicas cruciais para superar as dificuldades e entender melhor o que levou o professor àquele estado. Cabe agora ao protagonista, um estudante comum, porém destemido, embarcar nessa jornada de caos pelos diversos setores do instituto com o objetivo de restaurá-lo. Esse jogo foi criado em 2025 pelos alunos do IFRN no Campus Caicó, turma 2024 (2V), Isaac da Costa, Mateus Felipe e Valessia Juliany.

Curiosidade: (easter egg)

2.1 Funcionalidades Principais

  • Motor do Jogo:

    • Geração estimada de NPCs (Godot, Python, JS, e Java).
    • Movimentação (esquerda, direita, pulo, ataque).
    • Detecção de colisões.
    • Sistema de chances (4 vidas) e aumento de dificuldade por desafio.
  • Interface Gráfica:

    • Renderização do grid (10x20) e peças.
    • Exibição de pontuação e, próximo bloco.
    • Telas de início/pausa/game over.
  • Extras:

    • Efeitos sonoros (desafio cumprido, perca de vida, game over, ataque).
    • Persistência de pontuação alta (arquivo SQLite).

2.2 Arquitetura do Código

jogo.if/                                                                                                                                                     
├── main.py               # Ponto de entrada do jogo
├── game.py               # Loop principal e controle geral
├── level.py              # Carregamento e gerenciamento das fases
├── player.py             # Lógica do jogador (movimento, física, colisões)
├── enemies/              # Inimigos e IA básica
│   ├── _init_.py
│   ├── enemy_base.py     # Classe base de inimigo
│   └── slime.py          # Exemplo de inimigo específico
├── platforms.py          # Lógica das plataformas (fixas, móveis, etc)
├── items.py              # Itens coletáveis (moedas, vida, power-ups)
├── physics.py            # Regras físicas (gravidade, colisão, pulo)
├── ui/                   # Interface do usuário
│   ├── render.py         # Renderização gráfica (sprites, HUD)
│   ├── hud.py            # Heads-Up Display (vidas, pontuação)
│   └── sounds.py         # Efeitos sonoros e música
├── utils/                # Utilitários e constantes
│   ├── config.py         # Cores, dimensões, FPS, etc
│   └── helpers.py        # Funções auxiliares
└── assets/               # Recursos do jogo
    ├── images/           # Sprites e tilesets
    ├── sounds/           # Sons e músicas
    └── levels/           # Mapas e arquivos de fases

3. Etapas de Entrega (Cronograma Detalhado)

Etapa 1: Protótipo Básico (Semana 1-2)

  • Configuração do ambiente (Python 3.10+, Pygame 2.5+).
  • Estrutura inicial do projeto (módulos principais).
  • Sprites dos personagens em PixelArt.
  • Implementação de comandos básicos (movimentação, ação).
  • Detecção de colisões e limites do grid.

Etapa 2: Lógica do Jogo (Semana 3-4)

  • Desenvolvimento da fase 1, 2 e 3.
  • Implementação de comandos de voz.
  • Sprites dos ambientes em PixelArt.
  • Controles do jogador (teclado/configurável).

Etapa 3: Polimento (Semana 5)

  • Menu inicial e telas auxiliares (pausa/game over).
  • Produção do Easter Egg.
  • Sistema de níveis (velocidade aumenta progressivamente).
  • Efeitos sonoros.
  • Integração dos comandos de voz com as ações do jogo

Etapa 4: Testes e Entrega Final (Semana 6)

  • Testes de usabilidade (feedback de jogadores).
  • Correção de bugs (ex.: ghosting de peças).
  • Documentação final (README.md + comentários no código).

4. Requisitos técnicos

4.1 Exemplo de dependências (requirements.txt)

pygame==2.5.2
numpy==1.26.0  # Opcional para cálculos de matrizes