mmmm al parecer no comprendes lo que intendo decir, aquí no importa eso, porque todo se maneja con tiempo, al menos así debería de ser, las matemáticas no son variables, no se como estas "caculando" dentro del juego los recursos, pero en realidad es sencillo, con tu mismo ejemplo...
Primero dices que son las 10:00, y que tu edificio no terminará de construir dentro de 10 horas, por lo cual terminará hasta las 20:00 hrs, en ese lapso de tiempo el edificio seguirá produciendo lo mismo, por lo cual calculas cuando se ah generado en ese lapso, posteriormente calculas desde la hora/fecha que se termino de construir el edificio y vuelves a calcular el recurso pero ahora con la nueva producción, así tendrás el recurso correctamente, para mas facil...
Código PHP:
Ver original<?php
$produccionHora = 20;
$multiplo = 1; //aquí será la actualización de tu edificio
$horaInicialConstruccion = 123456; //un ejemplo en unix-time
$horaFinConstruccion = 159456;
$segundosPasados = $horaFinConstruccion - $horaInicialConstruccion;
$horasPasadas = ceil(($segundos / 60) / 60); $recursosHoras = $produccionHora * $horasPasadas;
//aquí se supone que termino de construir el edificio, por lo tanto tienes el multiplo o sea cual fuere tu caso
$multiplo++;
//ahora calculamos con el nuevo multiplo....
$horaActual = 245856; //han pasado 24 horas desde que se comenzó a construir el edificio...
$segundosPasadas = $horaActual - $horaFinConstruccion;
$horasPasadas = ceil(($segundosPasados / 60) / 60); $nuevaProduccion = ($produccionHora * $multiplo) * $horasPasadas;
$produccionFinal = $recursosHoras + $nuevaProduccion;
Como vez son solo matemáticas, y muy precisas, por lo cual no pierdes nada, todo depende de como manejes la producción y que tan precisa la quieras, si quieres precision a costa de recursos del servidor, olvídate de usar PHP y mejor usa un lenguaje compilado que requiere de menos recursos y son mas óptimos para ese trabajo o en cambio prepara tu bolsillo/cartera para pagar el costo por trabajo excesivo del servidor...