Skip to content

DevRafa2007/Doom-Recreated-in-Python

Repository files navigation

DoomPython

Um jogo de tiro em primeira pessoa (FPS) inspirado no clássico Doom, desenvolvido em Python com a biblioteca Pygame.

Visão Geral

DoomPython é um projeto que recria a experiência de um jogo de tiro em primeira pessoa, utilizando a técnica de raycasting para renderizar um ambiente 3D a partir de um mapa 2D. O objetivo do jogo é simples: sobreviver a hordas de inimigos e acumular o máximo de pontos possível.

Funcionalidades

  • Gráficos 3D com Raycasting: Renderização de um ambiente 3D a partir de um mapa 2D.
  • Inimigos com IA: Inimigos que perseguem e atacam o jogador.
  • Armas e Combate: Sistema de armas com munição, recarga e dano.
  • HUD (Heads-Up Display): Interface que exibe informações vitais como vida, munição e pontuação.
  • Efeitos Sonoros: Sons para armas, inimigos e ambiente, criando uma experiência mais imersiva.
  • Telas de Vitória e Game Over: Telas que indicam o final do jogo.

Tecnologias Utilizadas

  • Python: Linguagem de programação principal do projeto.
  • Pygame: Biblioteca para desenvolvimento de jogos em Python.

Instalação

Para rodar o DoomPython em sua máquina local, siga os passos abaixo:

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/DoomPython.git
  2. Navegue até o diretório do projeto:

    cd DoomPython
  3. Instale as dependências: Certifique-se de ter o Python instalado. Em seguida, instale a biblioteca Pygame:

    pip install pygame
  4. Execute o jogo:

    python main.py

Como Jogar

  • W, A, S, D: Mover para frente, esquerda, trás e direita.
  • Mouse: Mirar e girar a câmera.
  • Botão Esquerdo do Mouse: Atirar.
  • R: Recarregar a arma.
  • ESC: Sair do jogo.

Objetivo: Mate 20 inimigos para vencer o jogo. Se sua vida chegar a zero, você perde.

Estrutura do Projeto

O projeto está organizado da seguinte forma:

DoomPython/
├── .venv/
├── resources/
│   ├── sound/
│   ├── sprites/
│   └── textures/
├── game.py
├── hud.py
├── main.py
├── map.py
├── npc.py
├── object_renderer.py
├── pathfinding.py
├── player.py
├── raycasting.py
├── settings.py
├── sound.py
├── sprite_object.py
└── weapon.py
  • main.py: Ponto de entrada do jogo.
  • game.py: Loop principal do jogo e gerenciamento de estado.
  • settings.py: Configurações globais do jogo (resolução, FOV, etc.).
  • player.py: Classe do jogador, controla movimento e interações.
  • raycasting.py: Lógica de raycasting para renderização 3D.
  • object_renderer.py: Renderiza os objetos na tela.
  • npc.py: Lógica e comportamento dos inimigos.
  • weapon.py: Gerencia a arma do jogador.
  • hud.py: Exibe a interface do usuário (vida, munição).
  • map.py: Define o mapa do jogo.
  • sound.py: Gerencia os efeitos sonoros.
  • sprite_object.py: Classe base para objetos de sprite.
  • pathfinding.py: Algoritmo de pathfinding para os NPCs.
  • resources/: Contém todos os assets do jogo (imagens, sons, etc.).

Contribuições

Contribuições são bem-vindas! Se você tiver ideias para novas funcionalidades, correções de bugs ou melhorias, sinta-se à vontade para abrir uma issue ou enviar um pull request.

Licença

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.

About

I Recreate Doom in Python, only for studying pygame

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published