Traducción/resumen Calling All Devs: Core Tech

Traducción/resumen Calling All Devs: Core Tech

@Lannar para SCES

Traducción/resumen del Calling All Devs sobre Core Tech. 29/8/20


Chad McKinney:


iCache es una colección de servicios que interactúan con los servidores y con las bases de datos del juego de manera más eficiente y con Tolerancia a fallos (la habilidad de seguir funcionando incluso aunque se produzca algún error, en vez de crashear). Actualmente los datos que se usan para el juego se almacenan en la memoria de cada servidor, y eso no es viable porque termina congestionando el servidor. Lo que necesitan es un sistema de escritura y lectura de datos a la que todos los servidores tengan acceso simultáneo, que se almacene de forma externa al propio servidor que gestiona la simulación, y que pueda escalarse a cualquier cantidad de servidores. Han ideado un sistema de servidores con o sin autoridad. Los servidores "sin autoridad" gestionan la simulación del juego, y los servidores "con autoridad" gestionan la comunicación entre servidores. 


La infraestructura necesaria para iCache ya está hecha en su mayor parte. El punto en el que se encuentran es el de actualizar el código legacy para permitir implementar el iCache. 


Cuando dicen que la estructura ya está hecha, se refieren específicamente a que los servicios que componen el iCache ya están terminados, testeados, y ya han definido cómo los elementos de la base de datos se comunican entre ellos y con los servidores. 


Lo que falta por hacer es coger este sistema que han construido e implementarlo en juego. Llevan tiempo avanzando en esta dirección, así que el código no necesita tanta refactorización como cabría esperar, sino pequeños sets de cambios para asegurarse de que están siguiendo las prácticas correctas y ahorrar problemas a la larga. Este es un proceso lento. 


Han introducido en el código algunos conceptos necesarios para gestionar cosas como el inventario físico y otros elementos que son dependientes del iCache. Esto permitirá introducir mecánicas nuevas más fácilmente en el futuro. 


Cuando iCache esté implementado, el impacto más inmediato que vamos a notar es la mejora del rendimiento del servidor, la Tolerancia a fallos, y escalabilidad. Cada vez que sacas una nave, cambias tu equipamiento, compras algo, almacenas cargo etc, estás interactuando con bases de datos del juego. Todo lo que esté relacionado con ello se verá afectado por iCache, tendrá mejor rendimiento, fallará menos y sería más fácil de ampliar si quisieran. 


El siguiente paso después de iCache es Global persistence. 


Tienen implementada ya una versión básica de Global persistence, pero el historial de cambios que se escriben en la base de datos no se almacena a largo plazo, por eso los jugadores pierden ciertas cosas al cambiar de servidor, crashear, etc. El objetivo es que todos los cambios sean permanentes en todos los aspectos. 


En resumen: están más cerca del final que del principio, en cuanto a iCache se refiere.  


Clive Johnson


Server meshing es la habilidad para tener múltiples servidores ejecutando diferentes aspectos de la simulación que es Star Citizen de forma simultánea. El mayor desafío es la comunicación entre servidores, para que esta tecnología sea viable. 


Ahora mismo están trabajando en mejorar la sincronización de los servidores actuales: arreglar los problemas de desync y lag. En principio uno pensaría que esas mejoras afectan sólo a los clientes de los jugadores, pero el sistema de comunicación entre servidores es el mismo que el de los clientes con el servidor, de forma que es fundamental tener solucionado ese problema antes de que termine el desarrollo de iCache para ahorrar problemas en el futuro. 


Para arreglar estos problemas de desync están llevando a cabo una labor intensiva de bugfixing, que incluye refactorizar código legacy. Refactorizar código siempre es una solución lenta pero que permite escalar mucho mejor más adelante, ahorrando tiempo a la larga. 


Recientemente han probado a conectar dos servidores de pruebas entre sí con lo que ya tienen trabajado de la tecnología de server meshing. No esperaban conseguir un resultado positivo, y efectivamente no funcionó. Sin embargo les sirvió para aprender qué necesitan cambiar para que funcione, y hay un equipo de personas dedicándose a ello. La idea es volver a testear esta tecnología de forma interna próximamente. 


Han localizado las áreas que necesitan reescribir código, y han dividido el trabajo en cientos de pequeñas tareas que su equipo está resolviendo. 


Por último, Clive Johsnon afirma que están contentos con la velocidad de progreso que están consiguiendo.



https://www.youtube.com/watch?v=hKJfRwjA2RA


Mantente informado en t.meStarCitizenES y charla con otros jugadores en t.meSCESChat 



Report Page