Skip to content

caramelotech/snake-battle

Repository files navigation

Snake Battle

Este é o repositório do Snake Battle, um jogo multijogador competitivo baseado no clássico "Snake", desenvolvido com:

  • Frontend: Phaser 3 (HTML5 2D Game Engine)
  • Backend: Express.js + Socket.io
  • Linguagem: TypeScript (Full-Stack)
  • Estilo: Pixel Art Retro 8-bit

🎮 Sobre o Jogo

Snake Battle é uma versão moderna e competitiva do clássico jogo da cobrinha. Duas cobras competem em um mapa fechado, comendo frutas para crescer enquanto evitam colisões (consigo mesmas, uma com a outra e com as paredes).

Mecânicas Principais

  • 🐍 Solo ou 2 Jogadores Locais: modo solo ou P1 (WASD) vs P2 (Setas)
  • 🍎 Sistema de Frutas: Coma frutas para crescer e ganhar pontos
  • Poderes Especiais: 6 poderes únicos para ganhar vantagem tática (Fase 2+)
  • 🎯 Níveis de Dificuldade: Easy, Normal, Hard, Insane
  • 🗺️ Obstáculos: Blocos estáticos e móveis em Hard e Insane (Fase 3+)
  • 🎨 Estética Retro: Visual pixel art 8-bit com cores vibrantes

🚀 Como Rodar Localmente

Pré-requisitos

  • Node.js 18+ LTS (download)
  • npm 8+ ou yarn 3+
  • Git

Instalação

  1. Clone o repositório:
git clone https://github.com/felurye/joguinho-o-retorno.git
cd joguinho-o-retorno
  1. Copie o arquivo de variáveis de ambiente:
cp .env.example .env
  1. Instale as dependências:
npm install

Desenvolvimento

Para rodar o servidor E cliente em modo desenvolvimento com hot reload:

npm run dev

Isso iniciará:

Qualquer alteração em .ts será refletida instantaneamente!

Build para Produção

npm run build
npm run start

Isso vai:

  1. Compilar o TypeScript
  2. Fazer bundle do Phaser com Vite
  3. Servir o cliente via Express

🎮 Controles

Controles (2 Jogadores)

Ação Jogador 1 Jogador 2
Cima W
Baixo S
Esquerda A
Direita D
Pausa P P

Browser Support

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

🛠️ Stack Tecnológico

Componente Tecnologia Versão
Language TypeScript 5.0+
Game Engine Phaser 3.55+
Backend Express 4.18+
Real-time Socket.io 4.5+
Build Tool Vite 4.3+
Runtime Node.js 18+ LTS

🐛 Troubleshooting

Porta 3000 já em uso

# Windows
netstat -ano | findstr :3000
taskkill /PID <PID> /F

# macOS/Linux
lsof -i :3000
kill -9 <PID>

Problemas com Node modules

rm -rf node_modules package-lock.json
npm install

Socket.io não conecta

Verifique se o servidor está rodando em http://localhost:3000 e a variável CORS_ORIGIN está correta no .env

🎯 Status Atual

Fase atual: Fase 0 - Fundação e Single Player ✏️

  • Fase 0: Fundação técnica + cobra solo jogável
  • Fase 1: Multiplayer local + 4 dificuldades
  • Fase 2: Poderes set 1 (Speed Boost, Invisibilidade, Speed Reversal) + polish visual
  • Fase 3: Poderes set 2 (Sabre, Caracol, Pedra) + obstáculos em Hard/Insane
  • Fase 4 (opcional): Online, skins e leaderboard
  • Fase 5: Pós-lançamento

👨‍💻 Autores

Daniele Araújo
Daniele Araújo

💻 📖 🤔
Samantha Kellen
Samantha Kellen

💻 💡 🤔
Natanael Ferreira
Natanael Ferreira

🎨 🤔
Vitor Gonçalves
Vitor Gonçalves

🎨 🤔

📚 Documentação

🤝 Contribuindo

Este é um projeto em desenvolvimento. Contribuições são bem-vindas!

  1. Faça um Fork
  2. Crie uma branch (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Distribuído sob a Licença MIT. Veja LICENSE para mais informações.

About

Competitive multiplayer Snake game with real-time mechanics, built with TypeScript.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors