el cron job es la solucion ideal
ahora lo q puedes hacer es tener procesos "ocultos", por ejemplo cada vez q alguien hace una peticion al servidor aparte de ejecutarse su consulta q internamente se ejecuten otras, como de mantenimiento o "procesarCiudades()"
otra solución tambien es dejar una pc encendida con una rutina de actualización cada X tiempo y cada vez q se recargue la pagina ejecunte las tareas de mantenimiento del juego lo mismo se puede hacer con ajax