RazFire

ESTADOICACHEINVFIS

May 21st, 2020
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.97 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------------
  2. ESTADO DEL ICACHE E INVENTARIO FISICO
  3. -------------------------------------------------------------------------------------------------------------------------
  4. - ¿En que estado está iCache y el inventario físico en estos momentos?
  5. Ha pasado mucho tiempo desde que tuvimos una actualización al respecto, ¿puede CIG darnos algo más de información? Chris mencionó que llegaría a mediados de este año, pero en los últimos 2 parches, la persistencia en la nave y el hab dejaron de existir y creo que muchos de nosotros queremos una actualización de su estado actual. Estoy seguro de que esto es algo que muchos de nosotros esperamos que agreguen.
  6.  
  7. ICache, la persistencia global y el inventario físico son varias características muy grandes que están trabajando desde múltiples ángulos por múltiples equipos. Es una de nuestras principales prioridades como empresa y se está trabajando activamente. En este punto, creo que el nivel 1 de iCache y persistencia global aterrizará antes de fin de año, pero no quiero especificar fechas exactas, algo a mencionar es que la persistencia a largo plazo le quitó algunos recursos al trabajo en iCache, pero decidimos que valía la pena ya que la mejora de la calidad de vida para los jugadores sería un gran beneficio. El inventario físico depende en gran medida del iCache y la persistencia global, y todo nuestro sistema fue diseñado en torno a él (a diferencia del sistema heredado que se construyó completamente en torno a almacenar artículos en jugadores y naves, por lo que los conceptos como artículos sueltos o propiedad física contra legal no era logico trabajarlos). Por esa razón, el inventario físico vendrá naturalmente después de que se complete el trabajo, aunque estamos tratando de encontrar formas de comenzar el trabajo en paralelo, siempre que sea posible.
  8.  
  9. - ¿Cuál es exactamente la diferencia entre iCache, la persistencia global y el inventario físico? Leí un viejo informe mensual donde se mencionaba al pCache. ¿Cuál es la diferencia entre pCache e iCache?
  10.  
  11. pCache (caché de persistencia) es el sistema heredado, que usa un caché monolítico para consultas a la base de datos de elementos persistentes. Como puedes imaginar, esto no se escala bien y, cuando se cae, el juego se vuelve esencialmente imposible de jugar. ¡Para todo el mundo! El nuevo iCache (caché de elementos) utiliza una flota de servicios proliferada para optimizar las consultas de manera escalable, al tiempo que utiliza mejores prácticas para la tolerancia y recuperación de fallos, por ejemplo, todos los nodos tienen sus datos replicados en la red, por lo que incluso si uno se cae, solo la respuesta parcial de datos se pierde brevemente y rápidamente se reconstruye una nueva en su lugar, por regeneración automática. El nuevo iCache también se está construyendo teniendo en cuenta nuestros sistemas de juego y entendiendo cómo necesitamos consultar los datos de los servidores del juego. En este punto, tenemos una idea mucho mejor de cómo funciona el juego que cuando se creó el pCache heredado, por lo que podemos diseñar nuestros datos de elementos y esquema de consulta para hacer que este nuevo sistema sea eficiente y mínimo, lo que también ayudará con la estabilidad y la escalabilidad.
  12.  
  13. La persistencia global es el término que algunos de ustedes habrán notado que mencioné en algunos de mis comentarios y eso se debe a que es un conjunto de características relacionado pero diferente que también debe implementarse. El hecho de que tenga una base de datos y un sistema de consulta genial para esos datos no significa que el juego de alguna manera lo use automáticamente en todos los sistemas del juego, ni hace que los servidores/fragmentos tengan un estado persistente, solo le brinda una herramienta para habilitarlo. Para que el historial del servidor persista todo lo que necesita hacer es mucho trabajo en el código del servidor para persistir y volver a cargar en dicho estado, esto es persistencia global. Lo menciono todo el tiempo porque toca mucho, por ejemplo, el inventario físico. El inventario son solo contenedores de artículos, pero se fisicalizan porque ellos mismos son entidades persistentes con estado. Esto significa que puede tener una mochila con armas u otros elementos y tener una forma de guardar/deshacerse de ese inventario, pero también ese inventario puede ser instanciado en el mundo y dejado en un vehículo o dejado en la parte superior de una montaña en cualquier luna para que otro jugador la recoja. Por lo tanto, el inventario físico se basa en la persistencia global, que se basa en iCache.
  14.  
  15. Pero también hay otras características que dependen de la persistencia global, por ejemplo, ahora podemos contemplar que el juego puede modificar de forma permanente o a largo plazo las ubicaciones del juego, por ejemplo, el daño de una estación espacial. Port Olisar podría sufrir un ataque y se dañaría durante algún tiempo hasta que se pudieran realizar reparaciones. Esto persistiría incluso si el servidor/fragmento se cayera ya que ya no está solo en el estado de memoria. Hay un montón más, como la recuperación completa del servidor después de un bloqueo del servidor. La gente a menudo se queja de perder carga después de un bloqueo de servidor, ya que no podemos hacer que los jugadores vuelvan a sus naves en este momento después de un bloqueo de servidor, a diferencia de un bloqueo de cliente, perdemos el estado del servidor. Con la persistencia global, esto se registrará en el registro de fragmentos con el que estaba asociado, por lo que rápidamente activamos otra instancia, recupera el registro de fragmentos, luego podemos usar la creación de coincidencias para que los jugadores vuelvan al fragmento con el que acaban de perder la conexión, y boom, están de vuelta en acción justo donde lo dejaron.
  16.  
  17. - ¿Y qué hay del historial de misiónes y la persistencia de la reputación de los donantes de misión, en qué categorías se clasifican estas cosas?
  18.  
  19. Estos serán manejados por un conjunto diferente de servicios y una base de datos diferente, iCache es específico para el estado de la entidad en el juego, mientras que las misiones y la reputación son un conjunto de datos diferente.
  20.  
  21. - ¿Entraría su persistencia dentro de la persistencia global que vendrá tras el iCache?
  22.  
  23. No se conectarán con la persistencia global, aunque el servicio de reputación ya se ha implementado y ya se ha realizado algún trabajo para conectarlo, aunque todavía no lo hemos utilizado. El sistema de misiones está experimentando su propio gran refactor para Server Meshing y una de las grandes preguntas es, por supuesto, cómo lidiar con el estado. No será con iCache, pero podría usar un sistema similar con el mismo tipo de características, pero no literalmente la base de datos de elementos.
  24.  
  25. - Anteriormente, hace 2 años descubrimos que el servicio de estado de misión debia de ser refactorizado junto con iCache y otros servicios para simplificar las operaciones de persistencia y reducir el costo total de propiedad. Se ha introducido un nuevo servicio llamado uCache (caché universal) como una tarjeta a la hoja de ruta.
  26.  
  27. Sí, pero mientras que está en progreso, tendemos que olvidarlo y tratar el nuevo caché fractal, para consultas superliminales infinitas y almacenamiento que persiste sus objetos antes de que sucedan y devuelve los resultados de las consultas antes de que sean enviadas.
  28.  
  29. - Entonces, cuando el inventario físico estaba en la hoja de ruta de la 3.7 y luego 3.9 antes de desaparecer, ¿significaba que su objetivo era implementar iCache/persistencia global en la 3.7/3.9? ¿Eso significa que la hoja de ruta está llena de mentiras?
  30.  
  31. Uno de los equipos que trabajaba en los componentes del inventario físico de un nivel mucho más alto planeó comenzar a trabajar en él en 3.7, pero hubo una desalineación en la dependencia de iCache, por lo que se retrasó. Somos una gran empresa y ninguno de los equipos lo sabe todo, así que estas cosas suceden, lo siento.
  32.  
  33. - ¿No sería más rápido simplemente licenciar toda la tecnología de un MMO maduro, donde todas las cosas no solo se han programado sino que también se han corregido y perfeccionado a lo largo de los años en condiciones no beta, en vivo? Por ejemplo, Elder Scrolls Online usa mega-servidores, que es un tipo de Server Meshing. También guardan estados completamente persistentes para artículos y misiones y pueden recuperar todo eso después de un bloqueo tanto del cliente como del servidor. Y ESO no es el único juego en el que el Server Meshing y la persistencia total se implementaron y perfeccionaron por completo (es decir, sin errores). Por lo tanto, grandes porciones de su código podrían reutilizarse. Parece que esten reinventando la rueda y perdiendo el tiempo que podría dedicar a otras cosas.
  34.  
  35. Veo este tipo de respuesta de vez en cuando, así que pensé en dar una perspectiva sobre por qué este enfoque puede no tener más sentido para un esfuerzo tan grande como Star Citizen. Primero está la cuestión de encontrar a alguien que te otorgue una licencia que sea realmente lo que necesitas. Por supuesto, se han creado muchos juegos importantes y muchos motores en el camino. De hecho, la industria ha resuelto muchos problemas al hacerlo, por ejemplo, la reciente demostración tecnológica de Unreal 5 mostró algunos gráficos locos, lo que probablemente sea una evolución de su implementación de cono de vóxel que estaba en el acceso anticipado de UE4. Lo que quizás no sepa es que ya hay otras implementaciones del mismo enfoque en otros motores, incluso Ogre3D lo tiene en este momento (https://www.ogre3d.org/2019/08/05/voxel-cone-tracing). ¿Por qué Epic no usó solo uno de los existentes o viceversa? Bueno, por un lado, las tarifas de licencia o los problemas de licencia, pero a nivel técnico porque otra implementación se construye en un contexto completamente diferente. Muchas veces pasará cierto tiempo tratando de integrar la solución de otra persona al reescribirla usted mismo, pero cuando la escribe usted mismo puede hacer que resuelva sus problemas de manera muy específica y más directa en el contexto de su motor/juego sin ninguna expansión de una implementación genérica. Ahora logra un equilibrio, y aún encontrará una buena cantidad de middleware en nuestro motor, como Wwise, que no hemos reemplazado o intentado reescribir. Se trata de elegir sus batallas, y puedo decirle que a menudo es un error apostar altamente por sistemas fundamentales o más importantes en alguna otra entidad y esperar a que su solución realmente se ajuste a sus necesidades y obtenga el apoyo que necesita. Eso ni siquiera entra en donde tomas tu tecnología desde allí, o si planeas hacer múltiples juegos o quieres licenciar el motor tú mismo. Los videojuegos y otros dominios de programación de alto rendimiento se benefician enormemente de soluciones específicas muy ajustadas, razón por la cual en 2020 muchas compañías muy grandes todavía están desarrollando sus propios motores y no han convergido en una única solución para un motor.
  36.  
  37. Usando tu ejemplo de Elder Scrolls Online, sus problemas son muy diferentes a los de Star Citizens. El sistema de inventario es mucho más simple y su persistencia mundial es inexistente. ESO utiliza altamente la fragmentación con instancias dinámicas, mientras que en SC estamos tratando de impulsar una instancia singular unificada en cualquier región y posiblemente a nivel mundial. Ni siquiera tendría sentido tratar de tomar su infraestructura e integrarla en la nuestra para resolver los problemas que queremos resolver. Mi fuente es que trabajé personalmente en Elder Scrolls Online.
  38.  
  39. -----------------------------------------------------------------------------------------------------------------------------------
  40. - Enlace oficial: https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/where-is-icache-and-physicalised-inventory-at-now/3033649
  41. - Traducido por RazielFireeye
Add Comment
Please, Sign In to add comment