Hacer un parche automático

Actualmente estoy en las últimas fases de un lanzamiento original para mi próximo juego de riesgo: estoy buscando crear un sistema de parches para autoconfigurar el juego.

Mi concepto actual es:

1: El jugador abre el juego

2: Game checks valida serial key

3: si es válido, el juego verifica la última versión

4: si es más reciente, el juego solicita la apertura del parche automático

5: si está abierto, patcher descarga la list de versiones, con todas las versiones

6: Patcher recorre la list para encontrar todos los parches más nuevos y descarga todos los files de versión con enlaces a los datos del parche

7: Patcher comtesting con el website para cada file, comprobando si la descarga de todos los parches es más pequeña que la descarga de la última versión del file: si es más pequeño, descarga parches; si es más grande, descarga el último file

8: si el file de parche es más pequeño, el parche modifica el file de forma incremental con cada parche aplicado por cada file de parche pequeño, del más antiguo al más reciente. Si es más grande, patcher simple sobrescribe el file

9: Patcher pregunta el juego de salida / lanzamiento para que los jugadores puedan disfrutar del juego

¿Esto suena como una manera sensata de hacer el parche o volverá y me morderá más tarde?

El razonamiento y el procesamiento en los puntos 5 a 8 se corrige para un par determinado de versiones anteriores y versiones más recientes.

Por lo tanto, hágalo una vez en el server de actualización: el protocolo se puede simplificar a un único intercambio en el que el parcheador dice que el juego instalado es la versión X y el server envía una "receta" con una list de los parches incrementales apropiados y los files de reemploop. que el parche luego descarga y aplica.

No olvide permitir el reemploop parcial o total forzado de los files del cliente de juego, ya sea por request del usuario (por ejemplo, después de eliminar el malware o después de un crash del sistema de files) o porque el patcher lo indique (por ejemplo, algunos files no coinciden con los esperados picadillo).

También necesita actualizar el parche mismo.