Império do Café

- ESTUDIO
- MILWEB
- TIPO
- PRODUCTO DIGITAL
- ESTADO
- PROYECTO PROPIO
02 / LA IDEA
Juego mobile de simulación · React Native/Expo
Mostrar dominio de mobile y de lógica compleja exige más que un CRUD. Pide un producto con profundidad real.
01 / 01
~20 módulos de simulación en logic/ no importan React, así que son testeables de forma aislada, sin UI.

02 / 02
Clima, plagas y eventos usan un generador propio: el save guarda solo el estado del RNG y reproduce el mismo destino al recargar.

03 / 03
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.

04 / 04
3 slots en AsyncStorage con migración automática del formato antiguo y descarte seguro de saves incompatibles.

01
02
03
04
04 / BAJO EL CAPÓ
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.
CONSTRUIDO CON — React Native · Expo · React 19 · JavaScript · AsyncStorageCÓDIGO ↗
06 / RESULTADO
AGRICULTURAREIMAGINADA.
