¿Cómo vivir actualización del juego de navegador atributos como los 4 recursos en Travian juego?

StackOverflow https://stackoverflow.com/questions/2081518

Pregunta

Me gustaría hacer un juego basado en la web que es similar a Travian (o Ikariam similar). El juego estará en PHP y MySQL base. Me pregunto cómo puedo conseguir la actualización en vivo de los atributos del juego.

Para frontend, que puede lograr mediante el uso de las llamadas AJAX (Recuperar los valores más recientes de la base de datos), o incluso falsa actualización de los valores (no comunicado con el servidor).

Para backend, se hace esto por un trabajo cron PHP (que sale cada pocos segundos)? Si es así, ¿alguien puede proporcionar algunos códigos de ejemplo?

Por cierto, sé que sería un problema si uso IIS + FastCGI.

=== === Información de la versión

  

PHP: 5.2.3

     

IIS: 6.0 con FastCGI

     

SO: Windows Server 2003 R2 estándar

¿Fue útil?

Solución

La respuesta correcta depende de sus necesidades exactas.

¿Todo el mundo siempre reciben recursos a la misma velocidad? Si es así, una solución simple es medir cuánto tiempo ha existido el usuario, el cálculo de la cantidad de recursos en base a la tasa que van a obtener, y restar el número de recursos que han gastado en total. Eso va a ser un poco de un problema si el ritmo cada vez puede cambiar, sin embargo, por lo que si se utiliza esta solución, que está bastante atascado con la tasa de recoger a menos que reescribir el manejo del todo (por ejemplo, a la de abajo) .

Si varía la rapidez con que las personas pueden obtener recursos, tendrá que actualizar los datos periódicamente. Una tarea tarea programada / programado que funcionan bien para asegurarse de que todo el mundo está actualizado, pero en algunas situaciones, podría ser mejor medir simplemente el tiempo que ha pasado desde que has actualizado los recursos de cada usuario, y luego actualizarlos en cada carga de página hacen mientras está conectado multiplicando el tiempo que he estado fuera por la velocidad a la que tengan los recursos - de esa manera, se evita la actualización hasta que realmente necesita el nuevo valor

.

Otros consejos

Para una Travian como la gestión de los recursos que necesita para realizar un seguimiento del que actualizó los recursos de los usuarios por última vez. Si usted lee los valores de los recursos (para una actualización de la página o algo así), es necesario agregar la cantidad de recursos adquirida desde el 'último tiempo de actualización' (dependiendo de la cantidad de campos de recursos y Boni, el usuario obtiene) y enviar ese valor a el navegador. Se podría también la secuencia de comandos del navegador Let calcular estas cantidades.

Se podría considerar el almacenamiento en caché todas las cantidades de recursos de alguna manera, ya que se requieren estos valores mucho , la mejora de la comunicación con su base de datos.

Si un usuario termina la construcción de un campo de recursos, utiliza el mercado, construye una estructura, etc necesita actualizar la cantidad de recursos (y el 'último tiempo de actualización'), porque no se puede realizar un seguimiento de este tipo de eventos, simplemente .

Mediante el cálculo de los recursos se reduce la carga de base de datos, ya que no es necesario escribir los nuevos valores cada vez que el usuario actualice la página del navegador. También es más preciso, ya que tiene menos errores de redondeo.

Para mantener los recursos cada vez mayor entre la página se actualiza necesita un método como el descrito Frank Farmer. Sólo incrustar la cantidad de recursos y la 'frecuencia de la ganancia' en algunos javascript y aumentar la cantidad de recursos cada 'frecuencia de ganancia' por uno.

También puede calcular los Recursos cada vez que una página o el Javascript pide. Que había necesidad de almacenar la última vez actualizado.

Puede ser una entrada antigua, pero se trata de inmediato en Google así que aquí tiene otra opción que es como el juego que he estado desarrollando hace.

Yo uso un JavaScript del lado del cliente que utiliza una toma de flash para obtener actualizaciones en tiempo real desde un servidor dedicado del juego que se ejecuta en el host.

I uso el kit xmlsocket de http://devpro.it/xmlsocket/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top