Interoperabilidad de herramientas

GameMaker patching pipelines

Un gestor de mods es tan confiable como su pipeline de parcheo. Cada fallback, archivo temporal y límite de concurrencia afecta los datos del usuario.

Mergedestado upstream
3backends de parcheo
409/127líneas agregadas/eliminadas

Problema

Deltamod debía soportar múltiples backends de parcheo preservando la repetibilidad y evitando condiciones de carrera alrededor de herramientas nativas extraídas.

Enfoque de ingeniería

  • Integrar G3MTool como backend principal preservando las rutas existentes de GM3P y Device Fusion.
  • Aplicar payloads VCDIFF compatibles dentro del proceso y usar respaldos originales como fuente para repetir el parcheo de forma idempotente.
  • Eliminar fallbacks silenciosos de éxito parcial y corregir carreras de extracción paralela mediante estado temporal protegido por proceso.

Resultado

  • La integración fue incorporada a Deltamod con semántica de errores más clara y rutas compatibles de parcheo más rápidas.

El problema más difícil

El desafío

Hacer cooperar tres backends de parcheo sin que jamás produzcan silenciosamente un juego a medias.

La restricción

Los backends discrepan en formatos y modos de fallo, las herramientas nativas extraídas compiten bajo instalaciones paralelas, y los fallbacks existentes reportaban éxito con salida parcial, la peor mentira que un gestor de mods puede contar.

La salida

Aplicar los payloads VCDIFF compatibles dentro del proceso desde respaldos prístinos, proteger el estado temporal por proceso y eliminar cada fallback silencioso para que los fallos salgan a la superficie de inmediato.

Cómo lo resolví

La idempotencia guió el diseño: como el reparcheo siempre parte del respaldo original y no de los bytes que haya en disco, ejecutar el mismo parche dos veces es seguro, y una instalación recuperada converge en vez de apilar corrupción.

La integración de G3MTool llegó como backend principal junto a GM3P y Device Fusion en vez de un caso especial, así que la selección de backend es explícita y cada ruta mantiene su propia semántica de errores, 409 líneas agregadas, 127 eliminadas, integrado upstream.

Tecnologías

  • C#
  • JavaScript
  • Electron
  • VCDIFF
  • Concurrency
  • Process integration

Siguiente caso de estudio

G-Diffuser

Un port nativo para PC de F-Zero X construido sobre una decompilación matching, con soporte completo del 64DD Expansion Kit, widescreen real y una superficie de modding de texturas.