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:

  1. Expo + React Native + TypeScript
  2. Supabase + PostgreSQL + Realtime (Servidor y base de datos)
  3. GitHub para control de versiones
  4. Funciones del servidor para la lógica secreta
  5. Codex en VS Code (Se utilizaría Codex para desarrollar el sistema)

Condiciones:

  1. 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.
  2. 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

  1. Asignación de personajes
  2. Resolución de acciones
  3. Comprobación del ganador

Etapas

  1. 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.
  1. 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.
  1. BDs:
  • Crea la base de datos.
  • Añade claves foráneas, restricciones, índices y políticas de seguridad.
  • Diseña las migraciones de Supabase.
  1. 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.
  1. 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.