❇️ Star Citizen - Respuesta de Dev #7

❇️ Star Citizen - Respuesta de Dev #7

Saul "Havok" Specter

Selección periódica de respuestas ofrecidas por desarrolladores de Cloud Imperium Games resolviendo cuestiones de interés.

🔵 Sobre bugs

11 Agosto 2021

https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/what-causes-bugs-in-live-that-weren-t-in-ptu/4257588

▪️ ¿Cuáles son las causas por las que en el Live aparecen bugs que no estaban en el PTU?

CIG Bearded:

La información que obtenemos del PTU es súper útil. Sin embargo, hay cosas que acabamos descubriendo en el Live por diferentes motivos:

1. Hay bugs que son específicos del momento. Cuanta más gente haya jugando al juego, más evidentes se hacen

2. También hay errores que sólo aparecen y empeoran cuando hay más datos fluyendo a través de los servicios de backend. A medida que las cosas empiezan a ralentizarse, este tipo de problemas son más frecuentes.

3. A veces hay cosas que son una combinación de los dos primeros puntos. Específicas del momento y que requieren una ralentización en los servicios de backend.

4. A veces hay combinaciones raras de cosas como ciertos tipos de caracteres utilizados en el nombre de un personaje (no creo que haya visto ninguno de estos recientemente pero encontré algunos bugs como este cuando estaba en QA ) y tener más gente jugando el juego puede aumentar las posibilidades de ver cosas como esta.

5. Algunos tipos de errores son más fáciles de encontrar para ciertas personas. Por eso es importante tener un equipo diverso, tanto en CIG como en nuestra fase de pruebas del PTU, porque las personas que piensan de forma diferente encontrarán problemas diferentes.

En resumen, los juegos son complejos y se rompen de formas absurdas, pero es difícil poder predecir o encontrar todos los problemas. Creo que la responsabilidad de hacer que este tipo de cosas sean más fáciles de encontrar recae en nosotros y tenemos conversaciones sobre cómo podemos encontrar mejor este tipo de problemas. Al igual que ocurre con el desarrollo iterativo de los juegos, estamos constantemente revisando el proceso que utilizamos para publicar y probar el juego con el fin de intentar encontrar cosas como esta antes de que se conviertan en un problema.

🔵 Tecnologías requeridas por el Server Meshing ya implementadas

14 Agosto 2021

https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/has-some-of-the-pre-server-meshing-tech-like-entit/4264319

▪️ ¿El juego tiene ya implementadas algunas tecnologías pre-Server Meshing como el "Entity Authority"?

CIG Clive Johnson:

Sí, algunas partes ya han llegado a la 3.13 y la 3.14. En su mayoría son trabajos de refactorización y algunas bases para la "Capa de Replicación". Creo que no se mencionaron en las notas del parche, probablemente porque no cambiaron la experiencia del jugador de manera significativa. Publicar los cambios tan pronto como podemos nos permite someterlos a pruebas de estrés en el PTU y en el Live y recopilar datos sobre su rendimiento. En futuros lanzamientos aparecerán piezas más grandes y tangibles, pero obviamente no puedo dar detalles que no estén ya en el Roadmap.

🔵 Static Server Meshing y Servidores virtuales

15 Agosto 2021

https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/will-static-server-meshing-make-use-of-virtual-ser/4264411

▪️ ¿Los servidores virtuales se usarán en el Static Server Meshing? Si no me equivoco con el uso los servidores virtuales, se podrían aumentar los servidores de juego.

CIG Clive Johnson:

Las máquinas virtuales se contabilizan por unidad de tiempo, por lo que 10 minutos de un servidor de juegos inactivo cuestan lo mismo que 10 minutos de un servidor de juegos totalmente ocupado. En el Static Server Meshing es posible que algunos servidores de juegos estén infrautilizados parte del tiempo. Así que el Static Meshing presenta definitivamente una desventaja de costes en comparación con el Dynamic Server Meshing. Por eso, una vez que la versión estática funcione, intentaremos pasar al Dynamic Server Meshing lo antes posible. Pero una vez que la tecnología Static Meshing haya demostrado que funciona, imagino que ajustaremos el número de servidores de juego por "shards" hasta que estemos satisfechos con el equilibrio entre el coste en el rendimiento y la experiencia del jugador. Mientras eso ocurre, también trabajaremos en la tecnología de Dynamic Meshing.

🔵 Número de jugadores en Server Meshing

15 Agosto 2021

https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/do-we-now-have-a-better-idea-how-many-players-will/4265209

▪️ ¿Se tiene una mejor idea de cuántos jugadores caben en un servidor usando Server Meshing?

CIG Clive Johnson:

No por ahora. Mientras trabajamos en el Server Meshing, los programadores de toda la empresa están redoblando sus esfuerzos de optimización, identificando los cuellos de botella y haciendo planes para solucionarlos. El equipo del motor ya se ha esforzado mucho en mejorar nuestras herramientas de análisis para ayudar en esta tarea. Además, algunos de nuestros programadores más veteranos están discutiendo con los equipos de contenidos sobre cómo garantizar que los contenidos nuevos y los ya existentes puedan entregarse de la forma más óptima posible. Una cosa es que funcione el Static Server Meshing y otra que se ajuste la configuración estática de los servidores para equilibrar las mejoras en la experiencia de los jugadores frente a los costes que suponen. Todavía no sabemos cuáles serán los resultados de estas investigaciones, por lo que actualmente no podemos predecir cuál será el número máximo de jugadores por servidor. Estamos bastante seguros de que será más de lo que tenemos ahora, que es la respuesta más fiable que obtendrás de un ingeniero/programador.

🔵 Diferencias de Ping

18 Agosto 2021

https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/why-is-the-ingame-ping-so-high-compared-to-cloudpi/4273007

▪️ ¿Por qué cuando reviso el ping desde dentro del juego es más alto que cuando comparo mi ping con servidores de amazon desde cloudping.info? Suelo tener el doble de ping en Star Citizen respecto a otros juegos.

CIG Clive Johnson:

La causa es un problema de rendimiento en el hilo de red del servidor, que no permite al servidor procesar los pings entrantes con la suficiente rapidez. El problema se ha agravado recientemente con el aumento de la cantidad de contenido y los cambios de código que tratan de transmitir más datos a través de la red. Lo investigaremos tan pronto como los calendarios lo permitan.

▪️ ¿El ping reportado dentro del juego incluye el tiempo de procesamiento del servidor? En otras palabras, ¿el ping en lugar de ser recepción+respuesta, es quizás recepción+procesamiento+respuesta dentro del juego? Si fuera así, la diferencia es razonable.

Sí, ese es más o menos el resultado final. El código de ping normalmente tiene en cuenta la pequeña cantidad de tiempo que se emplea en procesar el mensaje de ping - desde el momento en que se lee del socket hasta el momento en que la respuesta se envía de vuelta al cliente. Pero el problema de rendimiento significa que el mensaje de ping puede permanecer en el búfer de recepción interno del socket durante un tiempo antes de ser recogido por el hilo de red. Así que el ping medido es el tiempo de ida y vuelta de la red más una fracción aleatoria del procesamiento de otro hilo de red.

▪️ ¿Implica esto que el comando r_displayinfo 1-3 está mostrando un retardo de ping que es peor que la realidad? por ejemplo, ¿tengo realmente una conexión de 40ms, no de 90ms?

Sí, r_displayinfo mostrará un valor de ping peor que el tiempo real de ida y vuelta de la red.

🔵 Sobre el reinicio de los servidores

19 Agosto 2021

https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/current-and-projected-cpu-core-and-thread-count/4004456

▪️ ¿Cuánto tiempo tardará un servidor en recuperarse de una caída?

CIG Bearded:

Teniendo en cuenta la virtualización del entorno, hay un par de capas diferentes para esto, ya que existen posibles cuellos de botella al solicitar servidores a un proveedor de la nube y hacer que el servidor del juego cargue la información que necesita para poder alojar el Universo Persistente (que actualmente sólo contiene a Stanton).

No podemos responder a cuánto tiempo exacto se corresponde porque eso va a cambiar. El Server Meshing cambiará inevitablemente la forma en que el servidor del juego carga las cosas, por lo que no podríamos utilizar con seguridad los números de rendimiento actuales para adivinar la rapidez con la que se produciría una reconexión.

▪️ ¿El tiempo de recuperación es menor dependiendo del tipo de servidor que se tenga que recuperar, por ejemplo un servidor que gestiona Hurston vs un servidor que controla el universo?

No estoy realmente cualificado para responder, ya que está fuera de mi área de experiencia.

▪️ ¿Habrá servidores preparados de antemano para responder a eventos como los actuales Free Fly, en función del volumen de conexiones necesario?

Como es lógico, tenemos servidores de juego disponibles de antemano porque, si no lo hiciéramos, los jugadores se encontrarían con frecuencia con mensajes de error de "servidor lleno" mientras esperan a que se inicie el siguiente. Esto tiene dos niveles. Está la máquina virtual que se aprovisiona desde un proveedor de la nube para alojar el juego, y luego está el servidor del juego que se ejecuta en la máquina virtual. Así que en un escenario normal, cuando un servidor de juegos se cae, debería haber otro servidor de juegos que ya está listo para alojar la información necesaria. En el peor de los casos, cuando nos quedásemos sin máquinas virtuales en las que alojar servidores de juegos (algo increíblemente improbable), el sistema operativo Linux reiniciaría el servidor de juegos que se ha estropeado y cargaría la información que necesita para ejecutar el juego. La cantidad de tiempo que tardará cambiará dependiendo del entorno (Live, PTU, QA) en el que ocurra porque si hay información de depuración adicional habilitada, el cuelgue puede llevar más tiempo.

▪️ Dado que gran parte de la información y la confirmación de las entradas del lado del cliente se rige por los servidores, ¿significa esto que se necesitarán muchos servidores preparados, en caso de que la inestabilidad de los servidores sea alta?

No es totalmente blanco o negro. Hay algunos tipos de problemas de estabilidad que requieren que tengamos más servidores de juego y otros que no. Si se trata de un fallo simple en el que se cuelga, se bloquea y se reinicia, normalmente no se necesitan servidores adicionales. Sin embargo, si un problema de estabilidad hace que un servidor de juego se quede atascado en un mal estado (como el bloqueo de todos los clientes del juego que se conectan a él) donde no termina inmediatamente y se recupera, es bueno tener servidores adicionales para que los rotos puedan ser depurados y reiniciados según sea necesario.

19 Agosto 2021

https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/how-will-server-spool-up-affect-our-ability-to-rec/4275507

▪️ Me pregunto por la atención que se presta a las caídas de los servidores. ¿No deberían ser las caídas del servidor extremadamente raras una vez que la tecnología del servidor haya alcanzado su funcionalidad prevista?

CIG Bearded:

Hay un concepto llamado "tolerancia a los fallos" que es bueno tener en cuenta a la hora de diseñar sistemas complejos. La idea es, básicamente, diseñar algo con la idea de que se va a romper en algún momento para que, cuando eso ocurra, sea capaz de manejar ese fallo de una manera en la que se obtenga un mejor resultado que si no fuera así. Algunas partes del juego tienen medidas de este tipo, y otras no. A largo plazo, nos gustaría que el juego fuera lo más tolerante posible a los fallos, ya que hay algunas caídas del servidor que podrían estar fuera de nuestro control (creo que hay una historia sobre una erupción solar que causó diversos problemas tecnológicos en el pasado).


🌐Historial🌐
https://telegra.ph/Historial-de-Respuesta-de-Dev-08-10