Foros del Web » Programación para mayores de 30 ;) » .NET »

Comprobaciones en tiempo real

Estas en el tema de Comprobaciones en tiempo real en el foro de .NET en Foros del Web. Hola a todos : Estoy desarrollando un juego web , en este juego los edificios y las tropas son construidas en tiempo real, la cuestión ...
  #1 (permalink)  
Antiguo 08/08/2009, 10:33
 
Fecha de Ingreso: diciembre-2007
Mensajes: 36
Antigüedad: 16 años, 4 meses
Puntos: 0
Comprobaciones en tiempo real

Hola a todos :

Estoy desarrollando un juego web , en este juego los edificios y las tropas son construidas en tiempo real, la cuestión es que si por ejemplo mejora un edificio que genera algún tipo de material al mejorar el nivel produce mas y es necesario que desde el momento que mejora aumente el ritmo de produccion.

Lo mismo ocurre en el caso de que un usuario ataque a otro, se generara un tiempo que sera el que tardan en llegar las tropas de una ciudad a otra.

El caso es que no se como hacer para que la aplicación vaya comprobando si ha llegado el momento de las batallas.

La aplicación la estoy realizando con ASP C#.

un saludo
  #2 (permalink)  
Antiguo 10/08/2009, 01:29
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Comprobaciones en tiempo real

¿Y en el momento en el que se genere ese tiempo de movilización de tropas no es posible crear un contador (timer) que cuando se agote avise al programa que llegó el momento del combate?
  #3 (permalink)  
Antiguo 10/08/2009, 20:23
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 17 años, 8 meses
Puntos: 3
Respuesta: Comprobaciones en tiempo real

Fuzzylog tiene razón, podrías usar Timers para controlar el tiempo que tardan los sucesos en llegar, para hacer tu juego mas interesante podrías generar los tiempos con Random o podrías calcularlo (eso depende de lo que necesites).

Para tu primera pregunta sobre mejorar el ritmo de producción del edificio cuando suba de nivel, puedes crear tu propio delegado (handle) que maneje el evento que se generaría cuando la propiedad 'nivel' de tu objeto cambie.

Esto no es mas que una clase con el signature de un handle: Private Sub myFunction(ByVal Sender as Object, ByVal e as EventArgs) donde tu clase EventArgs podría ser una clase herdada que contenga datos del nível o hasta de las condiciones del escenario en el momento en que se produjo el cambio de nivel.

Última edición por pedro_cesar; 10/08/2009 a las 20:25 Razón: Incluí el ejemplo de myFunction
  #4 (permalink)  
Antiguo 11/08/2009, 10:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 36
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Comprobaciones en tiempo real

Lo del contador seria posible y estudiare lo del random, mi idea era almacenar en la BBDD la hora del ataque y hacer comprobaciones en base a la hora de ataque, en el caso de los timers tendría que iniciar 1 por cada ataque .

tengo que terminar una documentación antes que voy algo retrasado y luego mirare lo de los timers y os cuento
  #5 (permalink)  
Antiguo 11/08/2009, 18:04
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 17 años, 8 meses
Puntos: 3
Respuesta: Comprobaciones en tiempo real

Bien, en este caso tienes que evaluar algunas cosas. Las conexiones y peticiones a la DB son bastante costosas.

No veo problema en almacenar una hora por cada ataque ya que con 128 ataques paralelos estarías ocupando 1k de memoria (el date type de .NET son 8 bytes) y trabajar con arrays en memoria es mucho mas ligero que llamar a la base de datos para obtener las distintas horas.

Lo que sí debes de tener cuidado de eliminar las horas del array en cuanto hayas terminado con ellas ya que no querriamos estar creando instancias de Date durante 8 hrs. seguidas que un usuario aficionado podría durar jugando.
  #6 (permalink)  
Antiguo 13/08/2009, 09:44
Avatar de GabrielAizcorbe  
Fecha de Ingreso: mayo-2009
Ubicación: En la luna.
Mensajes: 30
Antigüedad: 15 años
Puntos: 3
Respuesta: Comprobaciones en tiempo real

Hola a todos, pase justo y vi el "debate" apoyo las opciones de Fuzzylog y Pedro, y me quede pensando que haria yo, le agregaria una DAL (Data access layer) persistente, de modo que pueda trabajar todo en memoria y tenga respaldo en la DB de modo que si el juego palma, tengo como restaurar la situacion de todos los jugadores, pero al trabajar el juego en memoria sera mucho mas rapido y digamos que actualice la DB cuando llega a 10 peticiones, asi los INSERT, UPDATE, DELETES seran en BULK y ahorraremos tiempo de acceso.

Luego pire : y pense que la propia DAL podia, segun la carga, decidir cuando hacer los dump a la DB, asi si hay poco trafico y el tiempo para conseguir 10 peticiones es demasiado largo, que la DAL decida hacer el DUMP o en menos tiempo o con menos peticiones.

Luego iba a seguir pirando , pero mejor me llamo a la calma

Espero que la idea sirva



PD: Lo que digo mas alla de que suena pire, lo he implementado en sistemas de produccion como HelpDesks o CRMs y funciona definitivamente funciona.
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 04:19.