Foros del Web » Programando para Internet » PHP »

Un poco perdido con REST

Estas en el tema de Un poco perdido con REST en el foro de PHP en Foros del Web. Vereis. Estoy haciendo un juego algo asi parecido al Ogame al estilo medieval. Esta siendo realizado en PHP + HTML (como no xD) + JAVASCRIPT. ...
  #1 (permalink)  
Antiguo 05/05/2011, 16:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Un poco perdido con REST

Vereis. Estoy haciendo un juego algo asi parecido al Ogame al estilo medieval. Esta siendo realizado en PHP + HTML (como no xD) + JAVASCRIPT. Tambien uso el framework CodeIgniter y Ajax con la libreria Prototype.

Bien. Todo lo llevo muy bonito pero hay ciertos aspectos que me gustaria tocar.

El caso es que a cada segundo los recursos del jugador suben en una cantidad dependiendo del nivel, digamos de 10 en 10 por ejemplo. Esta perfectamente implementado (Request al controlador que actualiza en la base de datos y vuelta al ajax response), pero, ¿Qué pasa si el jugador cierra el navegador? Los recursos dejan de subir. El servidor tiene que estar al cargo de esos procesos estando o no estando el cliente conectado. Por ello he leido que REST o SOAP seria lo que deberia de implementar.

Pero apenas encuentro documentacion sobre REST. He encontrado algo de como implementarlo en Codeigniter pero nada mas. ¿No sera lo que esperaba? ¿O es que es mas facil de lo que temia y por eso no hay casi nada de documentacion? No lo se.

Acudo a ustedes en espera de una respuesta o consejo sobre como hacer lo que os he dicho.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 05/05/2011, 16:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Un poco perdido con REST

REST no es algo que puedas dejar ejecutando en el servidor, es un sistema de comunicación entre cliente y servidor.

¿De verdad no has encontrado nada?

http://es.wikipedia.org/wiki/Represe...State_Transfer
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/05/2011, 16:57
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Un poco perdido con REST

Con encontrar me referia a Documentacion oficial, funciones que usa, como se usan, que devuelven, etc etc etc xD.

De todas formas no lo habia leido, gracias. Entonces no me serviria (aun) para lo que quiero. De todas formas, ¿alguna idea de como hacer lo que he expuesto?
  #4 (permalink)  
Antiguo 05/05/2011, 16:57
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Un poco perdido con REST

el googlazo veloz

http://philsturgeon.co.uk/blog/2009/...or-CodeIgniter
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #5 (permalink)  
Antiguo 05/05/2011, 17:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Un poco perdido con REST

Lo que necesitas para dejar ejecutando procesos en el servidor se le conoce como CRON Jobs, o bien, tareas programadas en Windows.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 05/05/2011, 17:17
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Un poco perdido con REST

Impresionante. Parece una solucion a mi problema. Vere lo que puedo hacer. Muchisimas gracias.
  #7 (permalink)  
Antiguo 05/05/2011, 21:13
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Un poco perdido con REST

Tienes muy mal el concepto de como funcionan los juegos via browser, no puedes estar ejecutando código cada x segundos por cada jugador, porque al final, si tu juego tiene muchos jugadores vas a tronar el servidor, lo que se hace en estos casos es calcular el tiempo pasado desde la ultima actualización de los recursos a la fecha que vuelve iniciar sesión, con esto puedes obtener los recursos que debieron generarse en todo ese lapso, así evitas cargarle al servidor trabajo de usuarios que jamas van a volver a jugar en tu juego, que aunque no quieras, existen
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 06/05/2011, 05:17
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Un poco perdido con REST

No creas que yo no consideré esa opcion. De hecho era la primera cosa que queria hacer. Pero luego, cuando pensé en como hacer el Comercio o los Combates por ejemplo, debia de tener en tiempo real los recursos de los jugadores aunque ellos no esten. O si implemento la unidad "Espia" para espiar los recursos de otra fortaleza, estaria mirando los recursos sin actualizar de hace 1 mes.

Un momento.................. si guardo en la tabla usuarios como atributo la fecha de salida de sesion cada vez que sale de la sesion........ Si espio a alguien podria obtener su ID, su fecha de ultima salida de sesion compararla con la fecha del espionaje y subir los recursos en consecuencia de sus niveles de edificios. Con los combates cada vez que entras a tu sesion cargaria si hubo algun combate o no y a que fecha y subirian y restarian recursos en consecuencia. Con el comercio lo mismo que con el espionaje pero restando o subiendo recursos. OH DIOS MIO!!!!! HE VISTO LA LUZ!!!

Nemutagk, me has abierto los ojos.
  #9 (permalink)  
Antiguo 06/05/2011, 07:29
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Un poco perdido con REST

Cita:
Iniciado por modivos Ver Mensaje
No creas que yo no consideré esa opcion. De hecho era la primera cosa que queria hacer. Pero luego, cuando pensé en como hacer el Comercio o los Combates por ejemplo, debia de tener en tiempo real los recursos de los jugadores aunque ellos no esten. O si implemento la unidad "Espia" para espiar los recursos de otra fortaleza, estaria mirando los recursos sin actualizar de hace 1 mes.

Un momento.................. si guardo en la tabla usuarios como atributo la fecha de salida de sesion cada vez que sale de la sesion........ Si espio a alguien podria obtener su ID, su fecha de ultima salida de sesion compararla con la fecha del espionaje y subir los recursos en consecuencia de sus niveles de edificios. Con los combates cada vez que entras a tu sesion cargaria si hubo algun combate o no y a que fecha y subirian y restarian recursos en consecuencia. Con el comercio lo mismo que con el espionaje pero restando o subiendo recursos. OH DIOS MIO!!!!! HE VISTO LA LUZ!!!

Nemutagk, me has abierto los ojos.
exacto, te iba a decir eso XD también hice unos servidores de juegos alguna vez, cada vez que se encuentre con algo relacionado a otro jugador inactivo calculas sus estados dependiendo del tiempo transcurrido, ya sea dentro del juego como fuera de el (páginas de record o estadisticas), pero no lo hagas todo el tiempo o tendrás una gran carga en el servidor xD.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #10 (permalink)  
Antiguo 06/05/2011, 07:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Un poco perdido con REST

Pero eso supone otro problema. Si se da el caso de que ambos jugadores estan conectados. La fecha de salida de sesion es, por asi decirlo, nula (Imaginando que cada vez que entras al juego se cambia a "vacio" el valor. Esto SI que es una cuestion de PHP-Apache.

¿Yo puedo saber si el usuario de ID tal esta conectado? Porque si esta conectado en lugar de usar la fecha de salida de sesion usaria el tiempo que lleva jugando en segundos (un contador en javascript simple y sencillo xD)

Un saludo y de verdad, gracias, entrar aqui me despeja la mente un rato y pienso con mas claridad con solo contando mi problema.
  #11 (permalink)  
Antiguo 06/05/2011, 07:51
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Un poco perdido con REST

por lo general los MMORPGs usan una variable en la base de datos que indica si estan online

online=1 esta conectado
online=0 no esta conectado

esta variable se activa cada vez que el usuario entra al juego o ha hecho ciertas acciones

por otro lado se desactiva cuando el jugador se desconecta o ha pasado mucho tiempo desde su ultima actividad (o sea que perdió la conexión o se le congeló el cliente, etc.)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #12 (permalink)  
Antiguo 06/05/2011, 07:53
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Un poco perdido con REST

Cita:
Iniciado por modivos Ver Mensaje
Pero eso supone otro problema. Si se da el caso de que ambos jugadores estan conectados. La fecha de salida de sesion es, por asi decirlo, nula (Imaginando que cada vez que entras al juego se cambia a "vacio" el valor. Esto SI que es una cuestion de PHP-Apache.

¿Yo puedo saber si el usuario de ID tal esta conectado? Porque si esta conectado en lugar de usar la fecha de salida de sesion usaria el tiempo que lleva jugando en segundos (un contador en javascript simple y sencillo xD)

Un saludo y de verdad, gracias, entrar aqui me despeja la mente un rato y pienso con mas claridad con solo contando mi problema.
A ver, no no y no, piensa que casi todos los usuarios antes de cerrar la sesión cierran la ventana del navegador, nunca confíes en que tus usuarios van a cerrar la sesión porque no lo van a hacer, al manos la mayoría, ahora, para solucionarlo es muy sencillo, debes de tener algún archivo que se ejecute cada vez que el usuario haga algún movimiento, cada vez que cambie de página, en este archivo debes actualizar tus recursos, pero OJO, no lo hagas en cada momento, ya que el consumo de recursos se dispara, haslo cada 5 min, así cada vez que actualices los recursos guarda en la tabla en micro segundos la fecha de actualización, para la próxima recarga obtén este dato (lo mejor es guardarla en la sesión y base de datos) y calcula si ya paso los 5 min, no te preocupes por el desfase de 5 min, ya que cuando lo ataquen, espíen, o cualquier cosa, es tu deber volver a calcular los recursos ya que no sabes si se acaba de desconectar el usuario o si lleva toda la semana desconectado
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #13 (permalink)  
Antiguo 06/05/2011, 08:13
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Un poco perdido con REST

cierto, dependiendo de la cantidad de movimientos standard del juego haz la cuenta, si es un juego de datos lentos y estrategia como WARCRAFT, o FIFA online, 5 minutos estarían bien, pero si es un juego de mucho envío constante como WOW o L2, cada 1 minuto o quizás menos o peor aun si es algo como Gunz o N4S, que sean 20 segundos XD... si sobrepasa ese tiempo consideralo offline
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #14 (permalink)  
Antiguo 06/05/2011, 08:19
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Un poco perdido con REST

Cita:
Iniciado por stramin Ver Mensaje
cierto, dependiendo de la cantidad de movimientos haz la repetición, si es un juego de datos lentos y estrategia como WARCRAFT, o FIFA online 5 minutos estarían bien, pero si es un juego de mucho envío constante como WOW o L2 cada 1 minuto o quizás menos o peor aun si es algo como Gunz o N4S que sean 20 segundos XD...
En servidores potentes y sobre todo propios no hay que preocuparse por esto, y menos si el juego tiene un servidor creado en un lenguaje compilado (c/c++), en nuestro caso, al ser un lenguaje interpretado, con un hosting rentado debemos preocuparnos muchísimo mas por los recursos que se están consumiendo ya que si desbordas el servidor el hosting te dará una patada en el trasero, ahora te aseguro que WOW tiene servidores muy potentes, mas a aparte tiene balanceo de carga, algo que aquí es inimaginable hacer, a menos que tengas mucho dinero para costear algo así en un proyecto que ni si quiera sabes si pegue o no, 5 min en cualquiera de los casos esta bien, ahora, si vas a construir, actualizar las "minas", atacar o ser atacado actualiza los recursos, mientras no, no es necesario darle mas trabajo al servidor que lo necesario
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: ajax, codeigniter, javascript, prototype
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:49.