Un juego RPG multijugador en línea donde eres un hacker en la "Red Oscura". Compite, forma clanes, completa misiones y conquista nodos de la red.
- Autenticación: Login/Registro con Firebase Auth + verificación de email
- Perfiles de Jugador: Username, nivel, XP, créditos, scripts
- Sistema de Experiencia: Gana XP y sube de nivel con actividades
- Minería Automática: Acumula créditos ejecutando scripts de minería
- Chat Global & de Clan: Comunicación en tiempo real
- Comandos:
/rollpara tiradas de dados en chat
- Crear/Unirse a Clanes: Forma equipos con otros jugadores
- Banco de Clan: Depósito y retiro de créditos compartidos
- Mejoras de Defensa: Invierte en defensa del clan
- Territorialidad: Los clanes controlan nodos en el mapa
- Objetivos Dinámicos: Misiones con múltiples pasos
- Recompensas: XP y créditos por completar misiones
- Seguimiento de Progreso: Sistema de progreso persistente
- Nodos Conquistables: Diferentes zonas con niveles de seguridad
- Minijuego de Hacking: Completa desafíos para conquistar nodos
- Control de Territorio: Clanes compiten por control de zonas
- Minería (Level 1+): Genera créditos automáticamente
- Defensa (Level 0+): Protege contra ataques
- Ataque (Level 0+): Asalta otros jugadores
- Sistema de Upgrade: Mejora tus scripts con XP
- Node.js 18+
- npm o yarn
- Cuenta Firebase (free tier es suficiente)
git clone https://github.com/ShacktarMalacky/Red-Obscura.git
cd Red-Obscuranpm installa) Crear proyecto en Firebase Console
- Crear nuevo proyecto
- Habilitar Authentication (Email/Password)
- Crear Firestore Database (modo producción)
- Copiar credenciales
b) Crear archivo .env.local
NEXT_PUBLIC_FIREBASE_API_KEY=tu_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=tu_proyecto.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=tu_proyecto_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=tu_proyecto.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=tu_messaging_id
NEXT_PUBLIC_FIREBASE_APP_ID=tu_app_idEn Firebase Console, crear estas colecciones vacías (se poblaran automáticamente):
- jugadores/
- clanes/
- nodos/
- misiones/
- mensajes/
- progreso_misiones/
O ejecutar el script de inicialización:
npm run init:firebasenpm run devRed-Obscura/
├── src/
│ ├── app/
│ │ └── page.jsx # Página principal
│ │ └── layout.jsx # Layout global
│ ├── components/
│ │ ├── Login.jsx # Auth
│ │ ├── Dashboard.jsx # Panel principal
│ │ ├── Chat.jsx # Chat global/clan
│ │ ├── Clan.jsx # Sistema de clanes
│ │ ├── Misiones.jsx # Sistema de misiones
│ │ ├── Mapa.jsx # Mapa de nodos
│ │ └── HackingGame.jsx # Minijuego
│ ├── context/
│ │ └── GameContext.jsx # Estado global del juego
│ ├── firebase.js # Configuración Firebase
│ └── styles/
│ └── globals.css # Estilos globales
├── public/
├── next.config.js
├── package.json
└── .env.local # Variables de entorno (no versionar)
- Registrarse: Email + contraseña
- Verificar email: Se generará username automático
- Dashboard: Tu panel de control
- Minería Automática: Activa el script de minería para ganar XP/créditos pasivamente
- Misiones: Completa objetivos para recompensas
- PvP: Ataca a otros jugadores (cuando esté implementado)
- Crear Clan: Nombre único, eres el líder
- Unirse a Clan: Busca clanes públicos
- Banco Compartido: Deposita créditos para mejoras colectivas
- Defensa: Invierte en protección del clan
- Mapa: Visualiza nodos disponibles
- Hacking: Completa el minijuego para conquistar
- Territorios: Tu clan controla la zona
npm run dev # Iniciar servidor desarrollo
npm run build # Build producción
npm start # Iniciar servidor producción// src/firebase.js
const db = getFirestore(app);
// Usar en componentes con onSnapshot(), setDoc(), etc.touch src/components/MiComponente.jsxPlantilla:
'use client';
import React, { useContext } from 'react';
import { GameContext } from '../context/GameContext';
export default function MiComponente() {
const { player, updatePlayer } = useContext(GameContext);
return (
<div>
{/* Contenido */}
</div>
);
}En Firebase Console > Firestore > Reglas:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Jugadores: solo lectura pública, escritura del propietario
match /jugadores/{userId} {
allow read: if true;
allow write: if request.auth.uid == userId;
}
// Clanes: lectura pública, escritura restringida
match /clanes/{clanId} {
allow read: if true;
allow write: if request.auth != null;
}
// Mensajes: lectura pública, escritura autenticada
match /mensajes/{messageId} {
allow read: if true;
allow create: if request.auth != null;
}
// Más reglas según necesites...
}
}- ✅ Guardar
.env.localen.gitignore - ✅ Nunca committear claves privadas
- ✅ Usar variables
NEXT_PUBLIC_*solo para datos públicos
- Sistema de autenticación
- Perfiles de jugador
- Minería automática
- Chat global/clan
- Sistema de clanes
- Misiones
- Sistema PvP completo
- Tienda de items
- Guilds mejoradas
- Leaderboards
- Achievements
- Mobile responsive
- Fork el repo
- Crea rama:
git checkout -b feature/AmazingFeature - Commit:
git commit -m 'Add AmazingFeature' - Push:
git push origin feature/AmazingFeature - Abre Pull Request
Proyecto bajo licencia CC0 1.0 Universal - Dominio público
ShacktarMalacky
- GitHub: @ShacktarMalacky
- 📧 Issues: GitHub Issues
- 🎮 Jugar: Live Demo
Hecho con ❤️ y café. ¡Bienvenido a la Red Oscura! 🔴