Tema: Juego MMORPG
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/12/2015, 07:26
xonil
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Juego MMORPG

No es que mi programa en C++ o C esté más optimizado que una base de datos, simplemente que al guardar algo en mysql lo que se hace es abrir la conexión a la base de datos, comprobar que la conexión sea correcta, asignar la tabla, construir la sentencia de consulta/modificación, realizar la operación, cerrar la base de datos, etc.

No lo digo por suponer, es que es así.
Si te molestas en consultar en internet sobre la conexión entre dos usuarios por web, verás que una de las opciones es a través de una base de datos mysql, es decir, tu envías unos datos, estos de guardan en la base de datos, y el otro usuario hace la consulta, y así se mantiene comunicados en una misma página los usuarios que quieras, pero eso para un chat si no te importa lo que se tarde, pues puede servir, pero no es recomendable, de hecho lo suelen descartar, ya que es muyyyyyyyyy lento la comunicación.

Rapidez I. ni me planteo la optimización, ya que lo único que que haría de más el nuevo servidor, es guardar en variables son 64 caracteres, quizás 70, y enviarlos por socket. Con lo que creo que esa perdida de tiempo se gana en la velocidad que se lleva de tener el programa servidor en php a C o C++.
Rapidez II. Lo de que esté en memoria es la respuesta más rápida, ya he dicho los inconvenientes del proceso de acceder a una base de datos.
Rapidez III. Como ya he dicho antes, la conexión se hace a través de sockets, con lo que lo de la rapidez de conexión, está más que conseguida.
Seguridad: La autentificación seguirá siendo en php-mysql, eso es irreemplazable, lo que quiero cambiar es el archivo que correra como servicio/demonio en el servidor y que es el responsable de atender las peticiones que entran por sockets.

A mi uno de mis profesores, cuando le comente lo de hacer un juego de navegador tipo travian, lo que me dijo es que cada acción que se hacia en el juego, se jugaba lo que quisiese a que no se hacia a través de la BD, ya que la latencia volvería el juego injugable, ya que las bases de datos no son rápidas en responder por la conexión, sino que lo son por la eficacia en buscar la información en sus archivos.
Y repito, que no te hablo de teoría, sino de hechos empíricos, para trabajar en tiempo real, no se debe de usar una base de datos, ya que es demasiado lento.
La respuesta de un programa escrito en C o C++ es mucho más rápido, y sólo debería guardar unos pocos ks, con lo que se puede incluso medir su tiempo de respuesta.

Gracias por responder.

Última edición por xonil; 13/12/2015 a las 07:35