Ver Mensaje Individual
  #14 (permalink)  
Antiguo 19/10/2012, 12:22
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 4 meses
Puntos: 206
Respuesta: Producir un evento sin que se conecte el usuario

Un hosting normal (host compartido) vale. El mio es de redcoruna, 5 euros al mes, y puedo poner todos los cronjob que quiera. Y si, ese PHP deberá gestionar toda la logica del juego. Pero el código puede estar repartido en varios ficheros de PHP, lo ideal sería que usaras PHP orientado a objetos (clases).
Sólo necesitaras un php (por ejemplo, MAIN.PHP) que será el que incluya y utilize a todas las demás clases.

En cuanto a la segunda pregunta, te estás liando otra vez. No utilices ajax.
Por ejemplo, el juego tiene madera, y yo produzco 1 de madera cada segundo.

A las 12:01 el cronjobs ejecuta el MAIN.PHP. Entre otras cosas, se encarga de actualizar los recursos de cada jugador.
En diferentes tablas, el php sabe que yo produzco 60 de madera, y ve que la ultima actualizacion que hizo sobre mi tabla de recursos fue a las 12:00, y que entonces yo tenia 10 de madera.
Ha pasado un minuto, asi que el PHP me pone en la tabla correspondiente, que tengo 70 de madera a las 12:01.

En cuanto al PHP del cliente (jugador), cuando abre la pagina, verá la cantidad de recursos fija. Eso queda feo. Si quiere ver sus recursos actualizados, deberá refrescar la página de vez en cuando. Para evitar eso, cuando generes la página del jugador, también puedes generarle un script de javascript que con un setInterval ajustado al nivel que el usuario genera recursos. Es decir, cada segundo, que le sume 1 a la madera y se lo pinte en el DIV que sea.
Pero no manda nada por AJAX, el servidor ya sabe cómo actualizarle la madera al jugador cuando se ejecute el proximo ciclo del cronjob.

Todo esto debería de resultarte evidente. ¿Seguro que no es una tarea demasiado titánica hacer un juego de gestión de navegador? Podrías probar a hacer otras cosas menos complicadas antes para coger soltura.