PRODUCTO DIGITAL
Império do Café
Juego mobile de simulación · React Native/Expo
PROYECTO PROPIOPROYECTO PROPIO

CONTEXTO
Mostrar dominio de mobile y de lógica compleja exige más que un CRUD. Pide un producto con profundidad real.
QUÉ SE HIZO
Juego mobile completo de gestión de finca de café (Zona da Mata), 100% offline con saves locales: variedades, plagas y enfermedades, ciclo agronómico y mercado, en decenas de sistemas interconectados.
APP MOBILE · 100% OFFLINE
SOLUCIONES
Lógica pura, cero React
~20 módulos de simulación en logic/ no importan React, así que son testeables de forma aislada, sin UI.
RNG seedeable (mulberry32)
Clima, plagas y eventos usan un generador propio: el save guarda solo el estado del RNG y reproduce el mismo destino al recargar.
Tiempo híbrido semana/día
El paso por defecto de 1 semana baja a 1 día automáticamente durante el secado del café, donde la humedad es crítica.
Save multi-slot versionado
3 slots en AsyncStorage con migración automática del formato antiguo y descarte seguro de saves incompatibles.
DETALLE TÉCNICO
01El nombre del repositorio (rpg-mobile) es un resquicio del borrador inicial. El producto final no es un RPG, es un simulador de gestión agrí…
El nombre del repositorio (rpg-mobile) es un resquicio del borrador inicial. El producto final no es un RPG, es un simulador de gestión agrícola al estilo "Brasfoot del café": navegación por menús y pantallas, sin escena 3D ni sprites. Construido en React Native 0.81 con Expo SDK 54 y Expo Go para probar directo en el celular vía código QR (--lan), corre 100% offline: ninguna llamada de red, save local en AsyncStorage. El juego simula a un caficultor de la Zona da Mata de Minas Gerais, desde la primera parcela hasta el imperio de fincas certificadas, respetando la fidelidad temporal real del cultivo. Un cafetal nuevo tarda cerca de 3 años en formarse y producir.
02La arquitectura sigue una regla central documentada en el propio README: ningún componente tiene lógica de simulación, y ningún módulo de lo…
La arquitectura sigue una regla central documentada en el propio README: ningún componente tiene lógica de simulación, y ningún módulo de logic/ importa React. El src/data/ guarda catálogos puros (variedades, plagas, mercado, glosario), el src/logic/ concentra ~20 módulos de funciones puras y testeables sin runtime de UI (ciclo agronómico, cosecha, poscosecha, mercado, financiamiento), y solo el src/hooks/useJogo.jsx hace el puente con React vía useReducer y Context, sin Redux ni Zustand. El reducer central procesa decenas de acciones y orquesta sistemas interconectados: 11 variedades de café con rasgos propios, 6 plagas con estacionalidad, clasificación multidimensional del lote (Tipo BRASIL × Zaranda × SCA), bolsa con índice oscilante y eventos macro, certificaciones acumulativas y financiamiento subsidiado (Funcafé).
03Dos detalles de ingeniería resuelven problemas reales de un juego offline. Primero, la aleatoriedad (clima diario, spawn de plagas, eventos …
Dos detalles de ingeniería resuelven problemas reales de un juego offline. Primero, la aleatoriedad (clima diario, spawn de plagas, eventos extremos) usa un generador seedeable propio (mulberry32, en src/logic/rng.js) en vez de Math.random(): el save guarda solo el entero del estado del RNG, no el historial de eventos, y al recargar el juego reproduce exactamente el mismo "destino" a partir de ahí. Segundo, el avance del tiempo es híbrido. El paso por defecto es de 7 días, pero baja automáticamente a 1 día en las fases sensibles como el secado del café, donde la humedad necesita seguirse día a día (de 60% a 12%) y el "salto de semana" rompería la simulación.
04La persistencia evolucionó de un save único a multi-slot (3 slots, cada uno con su clave AsyncStorage), con migración automática y silencios…
La persistencia evolucionó de un save único a multi-slot (3 slots, cada uno con su clave AsyncStorage), con migración automática y silenciosa del formato antiguo al slot 0 y un campo de versión (versao: 1) en el JSON serializado. Un save de versión incompatible se descarta con log de aviso en vez de trabar la app. El proyecto es deliberadamente JS puro, sin TypeScript, sin lib de gráficos y sin UI kit externo, usando solo Pressable, View, Text y StyleSheet de React Native, para mantener baja la barrera de entrada. Es una elección explícita, documentada en el propio README para facilitar contribuciones futuras.
RESULTADO
Juego mobile completo de gestión de finca de café (Zona da Mata), 100% offline con saves locales: variedades, plagas y enfermedades, ciclo agronómico y mercado, en decenas de sistemas interconectados.








