Block Drop Merge
Fusión de Tetris clásico con merge estilo 2048: piezas tetrominó que caen con SRS, donde cada celda tiene un valor numérico que se fusiona con adyacentes iguales en cadenas de reacciones. Scoring dual, sistema de prestige, 8 modos y Target Mode con 30 niveles.
25.6K+
Líneas de código
8
Modos de juego
11
Merge tiers (2→2048)
30
Niveles Target Mode
5
Power-ups
v1.0.2
Versión
Características principales
Core — Tetris × 2048
Merge Engine con Chain Reactions
Motor custom: escaneo de abajo hacia arriba, fusión de adyacentes iguales, gravedad individual, cadenas ilimitadas con animaciones secuenciales.
Freeze Merge Preview
Al aterrizar, las celdas a fusionar parpadean 500ms antes de ejecutar. Ventana para activar power-ups estratégicamente.
Sistema de Prestige
Al crear un 2048: limpia tablero completo, bonus de puntos y multiplicador permanente escalable con cada prestige.
Scoring Dual
Merge points (valor × 10) + line clears (× nivel). Chain multipliers hasta ×4.0, combos y prestige bonus.
Modos de Juego
Classic Merge
Velocidad incremental por nivel. Game over al tocar el tope. Combina strategy de Tetris con merge de 2048.
Target Mode (30 niveles)
Objetivos específicos: "Llegar a 512", "3 cadenas ×3", "5 líneas con límite de piezas". Sistema de estrellas 1-3.
Contrarreloj (60s/90s/120s)
3 variantes de tiempo. Máximo puntaje combinando drops y merges antes del timer.
Daily Challenge + Duels
Seed determinístico para equidad. Daily con ranking global. Duelos con stakes de monedas (10% comisión).
Power-ups
Multiplier Bomb
Duplica el valor de un bloque seleccionado.
Color Merge
Fusiona todos los bloques de un mismo valor en el tablero.
Row Shuffle + Downgrade
Reordena una fila o baja un tier. Herramientas tácticas para desbloquear situaciones.
Wildcard
Pieza comodín que mergea con cualquier número adyacente.
Social y Monetización
Amigos Cross-App
Lista de amigos compartida con Block Drop Play via tabla global. Friend codes de 8 chars.
AdMob + Premium
Banner/interstitial/rewarded con ATT compliance. Premium $0.99/mes: sin ads, ×2 coins, Zen, descuentos.
Stack Tecnológico
Frontend / Mobile
React Native 0.81
Framework mobile cross-platform
Expo SDK 54
Build, deploy, OTA updates
TypeScript 5.9 (estricto)
25,600+ líneas tipadas
Zustand 5
9 stores: game, auth, user, premium, friend, duel, target, theme, localStats
Reanimated 4
Animaciones de merge, cadenas, prestige a 60fps
Backend
Supabase (compartido)
Auth, DB, RPC functions, Realtime
PostgreSQL
Schema blockmerge, 10+ tablas, vistas bm_*, RLS
PRNG Determinístico
Seeds para Daily + Duelos con mismas piezas y valores
Servicios
Google AdMob + ATT
Banner, interstitial, rewarded. ATT compliance iOS
react-native-iap
Suscripciones mensual + anual
Firebase Crashlytics
Crash reporting en producción
EAS Build + Update
CI/CD con OTA para fixes urgentes
Testing
Jest + jest-expo
Unit tests: merge engine, score calculator, board engine
Librerías principales
Desafíos Técnicos
App Store Rejection (4.3a — Spam)
Problema: v1.0.1 rechazada: AdMob IDs copiados de Block Drop Play, USE_TEST_ADS=true en producción, storage keys y IAP SKUs de otra app, ícono genérico.
Solución: Auditoría completa con grep. Corrección de todos los IDs, rediseño de ícono (bloques numerados en forma L), screenshots nuevos, respuesta formal a Apple.
→ Protocolo de auditoría documentado para futuros lanzamientos derivados. v1.0.2 enviada.
Chain Reaction Engine
Problema: Motor de merge con cadenas arbitrariamente largas: merge → gravity → re-merge. Cada celda debe participar en un solo merge por ronda.
Solución: Algoritmo iterativo bottom-up, left-to-right. Set de celdas mergeadas por ronda. Gravedad individual post-merge. Re-escaneo hasta estabilizar. Pausa animada 300ms por paso.
→ Cadenas de 5+ rondas con multiplicadores escalados. Momentos de gameplay satisfactorios.
OTA Update Channel Mismatch
Problema: Updates enviados a --branch preview nunca llegaban a builds de producción.
Solución: Builds de producción usan channel production. Todos los eas update van a --branch production.
→ OTA updates funcionales. Fixes urgentes sin pasar por review de tiendas.
Safe Area + Fixed Height
Problema: Contenido solapado con notch/dynamic island. paddingBottom no funcionaba en containers con height fijo.
Solución: SafeAreaView consistente, edges configurados por tipo de screen, paddingBottom en vez de height fijo.
→ UI sin solapamientos en todos los dispositivos iOS y Android.
Números Legibles en Tablero
Problema: Tablero 10×20 (Tetris estándar) hacía números ilegibles en mobile.
Solución: Tablero reducido a 8×16. responsive.ts con wp()/hp() para escalado proporcional. Fuente monospace.
→ Números de 1-4 dígitos (2→2048) legibles en cualquier dispositivo.
Estado del Proyecto
Completado
- Merge engine: chain reactions, gravity, freeze merge
- Score calculator: chains, combos, prestige
- 9 stores Zustand, 13 pantallas, componentes especializados
- Backend: schema blockmerge, vistas bm_*, RLS
- AdMob con ATT compliance + IAP suscripciones
- 30 niveles Target Mode con objetivos variados
- Daily challenge + duelos asincrónicos (PRNG)
- i18n ES/EN, Crashlytics, onboarding
- Unit tests: merge engine, score, board
- Builds iOS + Android enviados a tiendas
Pendiente
- Resultado de review Apple v1.0.2
- Calibración de rewards Target Mode
- Sonidos de merge con pitch escalable
- Expansión a 100+ niveles Target
- Testing de duelos en producción multi-usuario
Logros Destacados
Motor de merge custom desde cero: adyacencias, fusión con prioridades, gravedad individual, cadenas ilimitadas a 60fps
Mecánica de juego original: Tetris + 2048 que no existe como género establecido
PRNG determinístico para competencias justas en Daily y Duelos
Multi-app en infraestructura compartida: Supabase único con schemas aislados y capa social global
Resolución de App Store rejection 4.3a: auditoría sistemática y protocolo documentado
~25,600 líneas de TypeScript estricto, 9 stores, 13 pantallas, unit tests
Full-stack indie: diseño de mecánica, frontend, backend SQL con RLS, ads, IAP, submission a tiendas
30 niveles de Target Mode con objetivos variados y sistema de estrellas
Información adicional
Evolución de Merge — 11 Tiers
De azul (2) a dorado con glow pulsante (2048)
Idiomas
Español + Inglés
Modos
8 (Classic, Timed×3, Zen, Daily, Target, Duel)
Tablero
8×16 + 4 filas ocultas
Ecosistema
Comparte backend con Block Drop Play
4 Temas Visuales
Retro Game Boy
Verde oscuro con bloques coloridos
Arcade Neon
Fondo oscuro, cyan/magenta
Ocean Deep
Tonos azules profundos
Sunset Fire
Naranjas y rojos cálidos
Mecánica Original
Block Drop Merge combina dos géneros en una mecánica que no existe como categoría establecida. Las piezas tetrominó caen y rotan con SRS profesional, pero cada celda tiene un valor numérico que se fusiona con adyacentes iguales al aterrizar, creando cadenas de reacciones en cascada. El resultado es un juego que requiere pensar tanto en la colocación espacial (Tetris) como en la optimización numérica (2048).