Proyecto para crear una aplicación móvil multijugador de interacción social inspirado en dinámicas como Mafia o Hombres Lobo, pero con personajes, habilidades y reglas propias.
Usando:
- Expo + React Native + TypeScript
- Supabase + PostgreSQL + Realtime (Servidor y base de datos)
- GitHub para control de versiones
- Funciones del servidor para la lógica secreta
- Codex en VS Code (Se utilizaría Codex para desarrollar el sistema)
Condiciones:
- Es importante que el juego se construya como una máquina de estados, no como un conjunto de pantallas desconectadas. Cada transición debe validarse en el servidor.
- Cada acción debe tener un identificador único para evitar que un doble clic o una mala conexión la ejecute varias veces.
Estructura general
Aplicación React Native
│
├── Autenticación
├── Crear o unirse a sala
├── Pantalla de personaje
├── Acciones del turno
├── Votaciones
└── Resultados
│
▼
API / funciones seguras
│
▼
Base de datos Supabase
API
- Asignación de personajes
- Resolución de acciones
- Comprobación del ganador
Etapas
- Especificación:
- Define las reglas, personajes iniciales y condiciones de victoria.
- Define el flujo de partida y los estados.
- Define los casos límite.
- Define los requisitos del MVP.
- Estructura técnica:
- Define la arquitectura.
- Configura navegación, variables de entorno, ESLint, Prettier y una estructura por módulos.
-
Genera la interfaz (Pantallas, Assets).
- Explicación personalizada de habilidades.
- BDs:
- Crea la base de datos.
- Añade claves foráneas, restricciones, índices y políticas de seguridad.
- Diseña las migraciones de Supabase.
- Implementación:
- Programa la lógica de partidas.
- Implementa las funciones del servidor. Con un motor determinista para resolver acciones por prioridad.
- Escribe pruebas unitarias y revisa errores.
- IA dentro del juego
- Narrador que redacta los acontecimientos de cada ronda.
- Personajes controlados por IA cuando falten jugadores.
- Resumen final de estrategias y decisiones.