Fecha actual 21 Nov 2018 05:25



Responder al tema  [ 9 mensajes ] 
 Batallas mas reales 
Autor Mensaje
BetaTester

Registrado: 15 Mar 2012 22:58
Mensajes: 22
Puntos de reputación: 0
Nota Batallas mas reales
No se realmente como se calculan las batallas pero NO me parece real que:

Por ejemplo
1.000.000 de acorazados ataquen un planeta con por ejemplo 1.000.000 laser Gde 10.000 gauss y 10.000 Fotones y despues de VARIAS rondas no caiga NI UN SOLO acorasado.
Puse gauss y fotones por el fuego rapido.
El tema es que las batallas son blanco o negro pero para que sean grises deben estar muy parejas.
Me gustaria que el millon de acorazados siga ganando pero con alguna perdida.

Me parece que deberia revizarse la forma en que se calculan las batallas, no se trata de modificar o no el poder de las defenzas o de las naves.

Voy a esperar si alguien opina y si interesa el tema.
Luego sin estar a la altura de los progamadorees (ni mucho menos) dar una opinion.


Un abrazo.


03 Sep 2012 01:13
Perfil Enviar mensaje privado
Líder del Proyecto

Registrado: 12 Abr 2010 20:58
Mensajes: 9828
Puntos de reputación: 947
Nota Re: Batallas mas reales
Te intentaré explicar por qué es así, qué se ha hecho con el tiempo para cambiarlo y qué será del motor de batallas en un futuro:

- Por qué es así, cómo era, y cómo cambió
Antes de nada convendría establecer que el lenguaje de programación PHP no es tan potente como C++, lenguaje ideal para hacer el motor (La diferencia puede estar en varios minutos menos calculando una batalla en C++ comparado con PHP).

Dado que el cálculo de una batalla tiene que estar por debajo de los 2-3s, como máximo 5, no podemos ser tan precisos como nos gustaría. El problema principal radica en que se hace todo por grupo de naves. Inicialmente, todo el millón de acorazados dispara a la vez a un sólo objetivo, y cada defensa dispara, toda de una, a un sólo objetivo también. Dado que a eso le faltaba muchísima precisión, y era bastante "brutito", lo que se hizo (en Waterspace) fue dividir la flota en paquetes de naves, con cada paquete haciendo daño a un objetivo independiente y tomando daño de forma independiente. El ataque de las naves está, creo, relativamente bien compensado así (Es a lo máximo que se puede llevar a PHP)

El verdadero problema está en la hora de recibir el daño. Dado que no tratamos cada nave individualmente, el daño realizado a las naves enemigas se reparte por el casco de todas. Es decir, con pocos acorazados, estos estarían fundidos, pero dada la cantidad de escudo existente en 1 millón de ellos, el daño se reparte equitativamente, sin llegar a destruir ninguno de ellos. Por supuesto, esto es muy mala implementación, y sólo ayuda a los tops que tienen muchas naves. No dudes que sé eso. Pero cambiar el sistema a uno que destruya las naves en vez de repartir daño por todos los escudos de estas podría cambiar demasiado el balance de este universo. De manera que:

- El futuro del motor de batallas
Inicialmente, el motor de nuestro nuevo core (viewtopic.php?f=4&t=19604) iba a ser con C++, pero el programador encargado de ello decidió no continuar. Puesto que no tengo ni idea si conseguiré volverle a convencer para esto, la verdad es que el futuro de las batallas está bastante indeciso. Quizás se haga una nueva versión del actual, con destrucción de naves en vez de repartir el escudo. Quizás consiga que finalmente sea exacto y en C++ (Ahí no habría que ir en bloques de naves, sería muy exacto porque iría nave a nave. Cada nave sería disparada y dispararía)

No sé si me he explicado medianamente bien, fatal, o muy técnicamente (Espero que no lo último, porque he intentado hacerlo lo más comprensible posible :S)

P.D: El FR lo que hace es hacer que las naves/defensas puedan atacar de nuevo. Pero el problema es que, como todo daño, se reparte por las naves enemigas sin llegar a tener un efecto real.
P.D2: Con el tiempo hemos ido ajustando la precisión del motor, intentando aumentarla y mejorarla sin que se nos vaya en tiempo de cálculo. Estamos, más o menos, en el límite de dicho tiempo con batallas grandes, pero todavía se pueden retocar algunas cosas.

_________________
Programador.
Imagen


03 Sep 2012 08:38
Perfil Enviar mensaje privado
BetaTester

Registrado: 15 Mar 2012 22:58
Mensajes: 22
Puntos de reputación: 0
Nota Re: Batallas mas reales
Gracias Think por la explicacion, bastante clara por cierto.
Ojala puedan implementar lo de C++.

Un abrazo


04 Sep 2012 00:25
Perfil Enviar mensaje privado
Explorador

Registrado: 19 May 2012 16:32
Mensajes: 18
Puntos de reputación: 0
Nota Re: Batallas mas reales
Esa baina acerca del motor en batalla a base de paquetes es algo que yo intente de igual forma pero varia mucho el resultado me parece,

Deberian intentarlo hacerlo en python o en ruby, a forma de un script independiente.

PHP es pesimo para manejar la memoria de un arreglo de 1.000.000 de elementos como podrian ser naves


04 Sep 2012 19:24
Perfil Enviar mensaje privado
Líder del Proyecto

Registrado: 12 Abr 2010 20:58
Mensajes: 9828
Puntos de reputación: 947
Nota Re: Batallas mas reales
Python es una buena solución, de hecho hay un motor de batallas hecho en Phyton. Las pruebas que le hice daban buenos resultados, pero sólo ofrecía como máximo el doble de velocidad que PHP, y no en todos los casos.

Sí, es posible que si no sale en C++ saltemos a Python.

_________________
Programador.
Imagen


04 Sep 2012 19:45
Perfil Enviar mensaje privado
Explorador

Registrado: 19 May 2012 16:32
Mensajes: 18
Puntos de reputación: 0
Nota Re: Batallas mas reales
Ogarena es un juego que tiene un motor de batalla hecho en C++, adaptado del famoso speedsim, y no por tanto es un motor veloz, es un motor preciso pero poco veloz, es un tanto complicado que tarde mas de 5 seg por lo que conllevaría para todos aquellos que estuviesen recargando la pagina, pero si quieren meter un buen motor, primero modifiquen el sistema de flotas, esa es mi humilde opinion, arriesgando equivocarme.

saludos. :)


04 Sep 2012 19:53
Perfil Enviar mensaje privado
Líder del Proyecto

Registrado: 12 Abr 2010 20:58
Mensajes: 9828
Puntos de reputación: 947
Nota Re: Batallas mas reales
Ogarena es el referente que tengo en el tema de diseño interno y manejo del servidor.

Citar:
es un motor preciso pero poco veloz

Y una mierda que no es veloz. Yo emulo esa exactitud y esto no acaba ni en 5 minutos.

Una vez más, en el nuevo core, está todo absolutamente reprogramado de cero (No ese "lo estamos haciendo todo de nuevo pero sólo estamos cambiando el diseño"), porque hay problemas, no sólo en el sistema de flotas, sino en otros lados, que conllevarían un montón de trabajo resolver. El sistema de flotas no es una excepción, aunque admito que sí es en buena parte una copia del que inclui en el universo Zeus (Distinto al de los XNovas).

Y si con modificarlo te refieres a sacarlo del servidor, y que se ejecute fuera de PHP... pues es tentador, la verdad. Pero no disponemos de un servidor que pueda hacer eso. A no ser que yo monte también uno en casa :xd

_________________
Programador.
Imagen


04 Sep 2012 20:25
Perfil Enviar mensaje privado
Explorador

Registrado: 19 May 2012 16:32
Mensajes: 18
Puntos de reputación: 0
Nota Re: Batallas mas reales
Yo siento que poner el motor de batallas como una API externa seria algo mucho mas comprensible que meterlo adentro, y daria la flexibilidad de hacerlo en un lenguaje como ruby y solicitar el resultado via curl con json o algo parecido, obviamente implica que tendreis que usar recursos economicos para el servidor, pero bueno, espero tengan suerte, yo quiero empezar a jugar de lleno en el proximo universo que si le meto al zeus ya esta apunto de finalizar D:


04 Sep 2012 20:59
Perfil Enviar mensaje privado
Líder del Proyecto

Registrado: 12 Abr 2010 20:58
Mensajes: 9828
Puntos de reputación: 947
Nota Re: Batallas mas reales
No, si ya, el planteamiento es bueno.

Bueno, ya decidiremos qué hacer. Posiblemente lo desarrolle en un post en el foro. Gracias por comentar :)

_________________
Programador.
Imagen


04 Sep 2012 21:41
Perfil Enviar mensaje privado
Mostrar mensajes previos:  Ordenar por  
Responder al tema   [ 9 mensajes ] 

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Saltar a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.
Traducción al español por Huan Manwë para phpbb-es.com