NEWS

Impreso y pulido

Noticias oficiales de Rust de Facepunch

Impreso y pulido
OFICIAL

Reestructuración de planos

Los bancos de trabajo ya no requieren fragmentos de planos para fabricarse, y la chatarra no se usa en los árboles tecnológicos. En su lugar, introducimos tres niveles de planos; fragmentos de planos, páginas de planos y libros de planos. Estas son las nuevas monedas que se gastan para avanzar en los árboles tecnológicos. Una para cada nivel del árbol tecnológico.

Los objetos aún pueden investigarse con chatarra en la mesa de investigación. Hay un énfasis mucho mayor en encontrar, intercambiar o hacer aliados para conseguir los objetos que necesitas. Esta parte de Rust se perdió algo por el camino.

El tema principal de esta revisión es cambiar la dificultad. El sistema anterior de fragmentos de planos causaba mucha fricción en la progresión inicial, especialmente para los jugadores con menos tiempo libre. Debido a la ubicación de aparición de fragmentos básicos, pasar a un Banco de Trabajo nivel 2 podría ser una tarea difícil. Si no podías competir, no solo te ralentizaban, te bloqueaban. El plano de nivel más bajo ahora se puede encontrar en fuentes comunes de botín como barriles y cajas, pero lo más importante es que puede mejorarse al siguiente nivel de planos. Las salas de puzles y el contenido más difícil seguirán siendo la forma más rápida de avanzar.

Las mejoras de banco de trabajo que afectaban a la chatarra usada en el árbol tecnológico también han sido rediseñadas. En lugar de reducir la cantidad de chatarra usada, la mejora de banco de trabajo de salvamento ahora tiene un 20% de probabilidad de no consumir un plano. La mejora del prototipo de banco de trabajo ahora tendrá una tasa fija de éxito del 25%, con el coste duplicado eliminado.

No sabemos exactamente cómo se desarrollará esto, y nos engañaríamos pensando que lo hemos conseguido perfecto en la primera versión. Se harán ajustes cuando sea necesario y desde luego no esperaremos tanto como la última vez cuando llegue ese momento.

Uzi 9mm

Presentamos la icónica nueva subametralladora UZI 9mm. Esta arma ofrece dos modos de disparo diferentes según la configuración de culata. Cuando está plegada, el arma es automática y compatible con escudos. Cuando se despliega, la Uzi se vuelve semiautomática y gana mayor precisión. Mantenga pulsado el botón de modo de disparo para cambiar entre ellos.

Soporte para mandos

El soporte para mandos ha llegado en Rust, y la funcionalidad de mando está disponible en toda la jugabilidad principal a través de Steam Input.

El inventario y la interfaz de creación se gestionan por defecto mediante un cursor de stick, pero hay un interruptor con la cruceta en la nueva pantalla de opciones del mando, ¡que definitivamente merece la pena probar! También puedes encontrar un montón de otros ajustes para ajustar la sensación del mando.

Esta primera versión ya ofrece una experiencia bastante sólida, pero no todas las funciones o funciones tendrán soporte dedicado para gamepad todavía. Seguiré añadiendo soporte adicional con el tiempo, así que si hay algo en particular que crees que falta, ¡háznoslo saber!

REESTRUCTURACIÓN DEL GANADO

En este parche, el enfoque ha sido hacer que el ganado sea más intuitivo y menos castigador.

• Ahora simplemente eres el dueño de la vaca si la compras o la haces comer en tu abrevadero, no hace falta que te quedes cerca de la vaca ni te preocupes de que te olvide salvo para guiar.

• Las vacas ya no mueren de viejo, y en vez de morir de hambre, simplemente se tumban con 1 punto de vida.

• Cuánto tiempo puede sostener un abrevadero para un grupo de vacas ahora se muestra en la interfaz del abrevadero, similar al mantenimiento.

• Las vacas ahora pueden comer cualquier alimento que pueda un caballo.

• El sobrepastoreo "pastar desnudo" ha desaparecido. Tener suficiente hierba en tu corral simplemente hará que las vacas coman en el abrevadero el doble de veces menos y ahorren comida.

• Mostrar todo en la interfaz, propietario, estado de embarazo, padre y tiempo de recarga, estiércol y leche/lana...

• Las vacas almacenan hasta 3 leches para reducir la microgestión.

• Insinúa genes recesivos en la interfaz y el comprador NPC, también insinúa en la interfaz.

• La necesidad de espacio personal se simplifica, simplemente mide el área del corral y comprueba si caben suficientes vacas, no debería fluctuar tanto y deberíamos tener el mismo valor para todo el rebaño.

• Las vacas de libre pastoreo dejan de reproducirse después de las 6, las vacas de interior dejan de reproducirse cuando no hay suficiente espacio (por ejemplo, la necesidad de espacio personal no está llena), las vacas sin dueño no se reproducen

• Los nombres de las vacas ya no se muestrean según las proporciones de idioma del servidor; en su lugar, las vacas salvajes no tienen nombre y, una vez poseídas, tienen un nombre basado en tu localidad.

• Aumentar la distancia de ruptura de la línea y hacer que las vacas reflejen la velocidad del jugador cuando se les guia, permitiendo simplemente correr al instante.

• Se han corregido errores que podrían hacer que las vacas no coman, que la interfaz esté mal, que no haya colisión o que las cabezas atraviesen paredes.

• Hay una nueva estadística para los animales: el potencial. Mide lo feliz que fue un animal durante su infancia, que luego se bloquea cuando se convierte en adulto. Las recompensas se multiplican por el potencial, así que asegurarte de que tus crías sean felices es una prioridad máxima. Solo los animales nacidos en cautividad pueden tener potencial.

Lo más importante es que ahora puedes mostrar a tus vacas y ovejas algo de cariño y aprecio.

mascota

Cizalladoras

Lleva tu granja de ovejas al siguiente nivel con el nuevo arma de tijeras. Las tijeras producirán más lana y no pueden dañar a la oveja si fallas accidentalmente la lana y golpeas su piel.

Es un nuevo plano por defecto y requiere un banco de trabajo de Nivel 1 para fabricarlo.

faro de aguas profundas DESBLOQUEAR

El ciclo regular de aguas profundas comienza ahora una vez que el faro ha sido reparado. Se abre inmediatamente después de completar la reparación, y el ciclo continúa con normalidad.

Varios faros comparten el mismo recurso y progreso, y reparar uno los reparará todos.

Los mapas sin faro empiezan con el ciclo de aguas profundas ya activo.

Pastel de cocodrilos

Ahora puedes usar toda esa carne de cocodrilo que cosechaste en la jungla en el banco de trabajo, ¡creando una nueva tarta! La tarta de cocodrilo intimidará a los animales cercanos y hará que mantengan la distancia.

Esto incluye animales comunes como lobos, osos, jabalíes, etc., así como tiburones y abejas. Los carneros y toros no huyen, pero tampoco te cobran, lo que hace que sea una herramienta útil para alguien que monta una granja de ganado.

También incluye una versión rica con el doble de duración.

Inserto de armadura de lana

Prepara a tus ovejas, ya que este mes incluye un nuevo inserto de armadura con lana. Ofrece un pequeño aumento para la protección cuerpo a cuerpo y proyectiles, pero un gran aumento para la resistencia al frío, haciendo que esas noches frías en el Ártico sean más resistentes.

Lo encontrarás en el árbol tecnológico de Nivel 1 del Banco de Trabajo.

Barcos científicos del continente

Vamos a introducir un raro conjunto de barcos científicos itinerantes que patrullan en y alrededor de la isla principal. Hasta dos grupos entrarán en la isla y patrullarán el mar hasta una hora antes de partir.

Estos barcos solo interactúan con jugadores equipados (siguiendo las mismas reglas que el helicóptero de patrulla), a diferencia de los 'eventos' tradicionales, no tienen marcadores ni notificaciones en el mapa.

Actualización de la pistola de clavos

Tras casi 9 años en el juego, la Nailgun por fin ha recibido una merecida renovación visual, aportando un aspecto renovado a una de las armas más improvisadas de Rust.

Esta actualización introduce un modelo completamente nuevo y muy detallado, texturas de mayor resolución y algunas animaciones fantásticas que lo acompañan, todo ello manteniendo el aspecto improvisado y improvisado por el que es conocido el Nailgun.

Cuervos y Gaviotas

Se han añadido bandadas de aves en una pequeña expansión de la fauna.

Las bandadas de cuervos y gaviotas volarán por el mapa, buscando cosas que les interesen.

Tierra adentro, las bandadas de cuervos se sentirán atraídas por cadáveres de cualquier tipo, que vuelven por encima para ver si es posible comer. Las explosiones los ahuyentarán si las plagas delatan tu posición.

Las bandadas de gaviotas se agruparán sobre monumentos costeros y acuáticos cuando los jugadores estén dentro. Con el tiempo perderán interés, algunos tipos de ratas son un poco demasiado grandes para que las coman...

Además, en los monumentos costeros, verás grupos de gaviotas aterrizando para descansar. Cuando algo se acerca, se sobresaltan y se alejan. Estate atento a ellas cuando intentes localizar un objetivo. Estas gaviotas, a diferencia de las bandadas rápidas, pueden ser derribadas si quieres mantenerte sigiloso.

Animaciones de Girar en el Lugar

Añadimos un nuevo conjunto de animaciones para cuando un jugador gira de pie. Antes, simplemente se deslizaban mientras mirabas alrededor, lo que parecía bastante anticuado. Tardamos bastante en ajustar los tiempos, zonas muertas y otros parámetros para que estos turnos se sintieran más sensibles. Muchos otros juegos tienen la ventaja de limitar la velocidad a la que un jugador puede girar, lo que hace que estos turnos sean mucho más controlados, mientras que en nuestro caso necesitábamos mantenerlos 100% fieles a los movimientos y rotaciones rápidas del jugador. Probamos un par de enfoques diferentes, como usar IK para los movimientos de pies, que se sintió muy robótico incluso con mucha aleatoriedad, también probamos un enfoque híbrido de animaciones e IK, pero al final acabamos usando solo animaciones.

Creo que todavía hay muchas formas de mejorarlas y seguiremos haciéndolo en futuros parches.

Escaleras espejadas

Hemos añadido versiones espejo de las escaleras en L y en U.

Puedes darles la vuelta con SHIFT + R mientras despliegas, o con el martillo en menos de 10 minutos desde colocarlos.

Inventario de arranque de coches modulares

Los coches modulares generados aleatoriamente ahora empezarán con la mitad de sus motores llenos de piezas de baja calidad. Nos pareció que poner un coche en marcha era un poco demasiado frustrante. De este modo, aún tendrás que proporcionar algunas piezas, pero debería ser un poco menos de trabajo.

Para evitar que las piezas sean robadas para reciclarlas, estas piezas pre-rellenadas ahora se bloquean hasta que un coche se carga por primera vez en un elevador.

Mejoras en los barcos Científico

Ha habido varias mejoras en los barcos científicos en este parche. Un nuevo sistema de movimiento, sistema de puntería y un montón de mejoras en las torretas de los barcos PT.

Los barcos científicos ahora pueden evitar y navegar mejor los obstáculos, además de seguir y cambiar de objetivo con mayor fluidez.

Movimiento y Puntería -

Si el conductor muere, uno de sus compañeros científicos asumirá el papel de nuevo conductor.

Cambio de asiento -

Las torretas de los PT Boats han sido reescritas desde cero y, como resultado, ahora son mucho más receptivas. Tienen sus propios modelos dedicados, así como un nuevo sistema de disparo.

Torretas de lanchas PT -

Nuevas animaciones de caída y enganche explosivas

Hemos actualizado las animaciones al soltar y colocar objetos tipo granada; antes todos compartían las mismas animaciones de lanzamiento.

También notarás estas animaciones actualizadas la próxima vez que veas a alguien pegando una granada en tu base, ya que se aplican tanto a los modelos de jugadores en tercera persona como en primera persona.

Cambios destacados

Extracción de semillas

Las bayas ahora tienen la opción de 'Extracto' para eliminar semillas sin comerlas.

Icono de caja hackeable

El icono del mapa de cajas bloqueado hackeable se ha actualizado para reflejar el modelo 3D.

Mejora de DPV

Menor consumo de combustible, sin pérdida de condición al recoger, aceleración más rápida.

Perdón de golpes de árbol pequeño

Ahora los árboles pequeños son más fáciles de golpear.

Marcadores de mapa arrastrables

Los marcadores del mapa se pueden arrastrar manteniendo pulsado el botón central del ratón.

Buff de SMG artesanal

La SMG hecha a mano ahora hace un poco más de daño.

Color del cáñamo

Se añadió un ajuste de color de accesibilidad para el capullo floral en las plantas de cáñamo.

Cambio de nombre de animales

Ahora los jugadores pueden cambiar el nombre de su ganado, así como de los caballos.

Conversaciones telefónicas de NPC

Hemos añadido soporte para iniciar conversaciones por teléfono, al estilo de las conversaciones existentes de NPCs. Hay 4 nuevos números de teléfono disponibles en la guía telefónica, cada uno iniciando una nueva conversación; todos estos son conversaciones separadas de las que puedes iniciar con NPCs en persona. Estas nuevas conversaciones proporcionan:

• Un pronóstico meteorológico mayormente fiable

• Estado actual de la red eléctrica

• La cuenta atrás del evento del vendedor ambulante

• El número de habitaciones disponibles

Árboles frutales

Ahora las manzanas y los cocos tienen una pequeña probabilidad de aparecer en ciertos robles y palmeras. Esto debería dar a los jugadores más vías para encontrar manzanas para hornear deliciosas tartas de manzana y cocos para saciar la sed mientras exploran las islas profundas.

Asegúrate de cosechar la fruta antes de talar los árboles, ya que esto reduciría drásticamente la cosecha, especialmente para esas manzanas delicadas.

Correcciones de rampa

Algunas molestias antiguas con las rampas se han solucionado.

Las rampas ya no se bloquean a través de los tejados por rampas desplegables u otras rampas, incluso al actualizarlas.

También deberían sentirse más fáciles de colocar en las bases.

Inconsistencias en las skins de construcción

Hemos corregido inconsistencias no intencionadas entre las skins del edificio.

Los voladizos en el techo de algunas skins podrían impedir que coloques bloques de construcción junto a ellos. Los voladizos ahora solo bloquean los desplegables, sea cual sea la skin.

Los salientes laterales cuadrados del tejado ya no bloquean los cimientos colocados junto a ellos.

Por último, los marcos ahora tienen los mismos colisionadores en todas las carcasas de la misma inclinación, por lo que los tejados triangulares ya no están bloqueados por marcos de piedra dependiendo de su orientación.

Reparación de daños por salpicaduras en suelos/estructuras triangulares

Durante años, los marcos triangulares han sufrido daños por salpicaduras de explosivos a través de paredes en algunas situaciones, dependiendo de su ubicación.

Lo hemos arreglado.

Rendimiento

Sabemos que el juego no está donde debería estar en cuanto a rendimiento.

La optimización es una tarea interminable, cada actualización trae mejoras. A veces cometemos errores y el contenido nuevo se reduce a nuestro esfuerzo.

Este mes está repleto de optimizaciones. CPU, memoria, redes... Nuestros datos de staging muestran algunas buenas mejoras:

• La mediana de frames en todos los jugadores es ~10% superior

• ~1,6GB menos de memoria en total

• Íbamos tras los peores obstáculos: disparar, cargar una base, transportar carga

• La recogida de basura ocurre la mitad de veces (cada ~12 minutos en lugar de cada ~6)

• Hasta un 25% menos de tráfico de red en un servidor de 500 jugadores

Las publicaciones siguientes detallan las principales mejoras que se avecinan en esta actualización. Habrá más en los próximos meses.

Rendimiento - Privilegio de construcción

El privilegio de construcción siempre ha consumido mucho rendimiento. Cada vez que colocas un bloque, despliegas algo o te mueves por una base, el juego comprueba qué armario de herramientas controla ese punto.

Hasta ahora, cada comprobación ejecutaba una consulta de física buscando cada bloque cercano para encontrar el privilegio de edificio más cercano. Cuanto mayor era la base, más lenta se volvía. En una base grande, una sola comprobación podía tardar hasta 5 ms.

Ya teníamos un sistema de caché instalado, pero seguía siendo caro. Para el servidor y el cliente.

El juego ahora mantiene una cuadrícula de bloques de construcción que puede comprobar barato en lugar de ejecutar la consulta de física cada vez. En esa misma gran base, una comprobación bajó de a debajo de , tanto en el servidor como en el cliente, con exactamente los mismos resultados que antes.

5,7 ms

0,02 ms

Rendimiento - Efectos de disparo de cañón

Hemos trabajado en reducir las caídas notables de framerate al disparar.

Disparar un arma puede causar pequeños contratiempos, especialmente la primera vez que te unes a un servidor.

• Arreglé un enganche de hasta ~1 ms cuando se corta un sonido, lo que ocurre mucho al disparar

• Repararon los destellos de boca que provocaban una revisión lenta del motor hasta ~7 ms

• Revisó la distancia a la que eliminamos los efectos

• Todos los efectos del cañón ahora están precalentados en cantidad suficiente (destellos de boca, sonido de disparos, impactos de balas, etc.)

Precalentar más efectos no costaba memoria en total: antes teníamos listas 100 copias de cada arma y herramienta arrojable, ahora 3. Eso es menos memoria, incluso con los efectos extra de las armas.

~30MB

Rendimiento - Carga base

Cuando entras en una base grande y entras en su alcance de red, aparecen miles de entidades al mismo tiempo. Cada desplegable ejecuta su propio código, se están reconstruyendo tuberías industriales, los sistemas LOD y de agrupación están ocupados, y ocurren muchas cosas a la vez.

Hemos puesto mucho esfuerzo en reducir los contratiempos evidentes al cargar una base.

• Varias entidades que activan o desactivan las cosas según su estado ahora aparecen 10 veces más rápido (~26ms -> ~2ms para 248 de ellas)

• La generación de mallas industriales de tuberías se realiza ahora fuera de la rosca principal

• Los desplegables más utilizados ahora se agrupan (adaptadores de almacenamiento, cinta transportadora, molinos de viento...)

• El sistema LOD ahora distribuye su trabajo en varios fotogramas cuando una parte densa de una base necesita actualización, en lugar de hacerlo todo de golpe (~15ms -> ~1ms para los peores fotogramas)

• Las cerraduras de código, adaptadores de almacenamiento y otras entidades ahora se tratan como estáticas sin moverse; anteriormente todo lo conectado a un padre se asumía automáticamente que se movía todo el tiempo, ocupando más trabajo del necesario

• Una docena más de errores de LOD y eliminación corregidos, como luces y partículas que permanecen visibles a cualquier distancia tras cargar una base

• Bloques de construcción fijos que se quedaban atascados sin lotes, lo que los hacía más caros de renderizar

Todo esto hará que cargar y moverse por las bases no solo sea un poco más rápido en general, sino que, lo más importante, mejorará los bajos de FPS en un 1% y reducirá picos de lag.

más suave

También estamos trabajando activamente en un sistema de oclusión de bases. Esto básicamente detendrá la carga de cualquier cosa dentro de una base hasta que puedas verla. Estas optimizaciones seguían siendo necesarias porque la oclusión de bases solo se retrasa en el momento en que todo se carga.

Rendimiento - Evitar asignaciones

Generalmente ya intentamos evitar asignar nueva memoria durante la partida tanto como podemos, ya que todo lo que va en el montón tiene que ser limpiado por el recogedor de basura más adelante, lo que puede causar picos de lag.

Este mes, he revisado la base de código para encontrar lugares donde las cosas pudieran hacerse de forma más eficiente, ya fuera usando nuestro sistema de pooling de objetos o simplemente programando un poco más inteligente (y a veces menos atractivo).

La mayoría de estos estaban en sistemas antiguos, por ejemplo, actualizando la interfaz de usuario cada fotograma al mirar plantas, los iconos del inventario actualizándose incluso estando ocultos, los marcadores del mapa de sacos de dormir que reformateaban sus temporizadores, etc.

Cada ganancia es pequeña, pero una docena se acumulan, así que el GC se ejecuta menos y esos picos de lag ocurren con menos frecuencia.

Rendimiento - Sistema de sonido

Además de la compresión de audio, también hemos trabajado en reducir la sobrecarga causada por el sistema de sonido.

• Arregló un enganche de hasta ~1 ms cuando se cortaba un sonido (como se mencionó en el post de disparo de la pistola anterior)

• Oclusión: amortiguar sonidos detrás de paredes ahora es más de 10 veces más barato fuera de una base

• Asignaciones: los sonidos ahora asignan casi cero memoria al reproducirse, lo que significa menos recogida de basura

Rendimiento - Memoria de aguas profundas

Hasta ahora, todo lo que había en las profundidades del mar se cargaba cuando te unías a un servidor. Se quedaba en la memoria durante toda la sesión, aunque nunca navegaras allí.

El contenido de aguas profundas ahora solo se carga cuando atraviesas el portal y se descarga de nuevo cuando navegas de nuevo.

Fuera del mar profundo, esto ahorra alrededor de .

~260MB de RAM

Los servidores modificados que generan contenido de aguas profundas en la isla principal siguen funcionando. El juego lo carga tan pronto como se necesita y lo mantiene durante el resto de la sesión.

Rendimiento - Texturas del terreno

Como parte de las investigaciones de memoria de este mes, notamos que teníamos cargadas una cantidad sorprendente de texturas de terreno. Esto incluyó varios niveles de calidad para el continente y varios niveles de calidad para el mar profundo, todo cargado al mismo tiempo. Generalmente no descargamos los recursos mientras el juego está en marcha, ya que el coste de volver a cargarlos en memoria es malo para el rendimiento (normalmente provoca trabones al movernos por el mundo), pero en este caso la transición en las profundidades tiene una pantalla de carga, así que podríamos salirnos con la tuya.

Ahora los jugadores solo deberían tener cargado su nivel de calidad actual para el entorno actual, lo que aguardó 138mb en el nivel más alto y debería ahorrar aún más para niveles de calidad inferiores.

Rendimiento - Linternas y láseres

Tanto las linternas como los láseres recibieron optimizaciones similares, siendo los láseres un poco más complejos pero aún así con el mismo problema en su mayoría. Como usamos Unity, ambos scripts dependían de actualizar el láser/linterna en cada fotograma, y aunque estas actualizaciones por fotograma eran bastante baratas, simplemente ejecutarlas para cada instancia de estas sí que suma cuando tienes 100.

Las linternas eran bastante sencillas, hacíamos trabajo al final de cada fotograma, para cada linterna que se podría haber hecho directamente en el shader. El código que ejecutábamos en cada fotograma era muy pequeño, así que pagábamos principalmente el coste de que existiera. Los rayos láser ya tenían un problema similar en el pasado y fueron reemplazados por un sistema que solo actualizaba X cantidad de láseres por fotograma; podríamos haber hecho lo mismo aquí, pero eso solo habría empujado el problema a resolverse en el futuro. La solución más sencilla era hacer todos los cálculos en el shader.

Para los rayos láser era un poco más complicado, ya teníamos un sistema para actualizar solo algunos láseres por fotograma dentro de un presupuesto de 0,25 ms, pero esto llevó a que solo actualizáramos entre 5 y 10 láseres por fotograma. No podíamos hacer la misma solución que las linternas, los láseres son un poco más complicados y se reducen a lo que acaban recibiendo raycast. La solución básicamente se redujo a agrupar raycasts para todos los láseres a la vez en lugar de comprobarlos uno a uno, actualizar la imagen del punto al final del raycast y luego reconstruir una malla para cada láser en la pantalla. Probamos soluciones como escalar cuádruples usando operaciones de transformación por lotes, pero al final todo fue más lento que crear una nueva malla en cada fotograma. La nueva solución puede manejar 5 veces la cantidad de láseres a la mitad del presupuesto de la antigua. ( )

0,125 ms

rendimiento - Memoria de animación

El mes pasado añadimos muchas animaciones nuevas para todos los nuevos animales, lo que nos llevó a revisar los ajustes de compresión de animación a nivel de proyecto. Descubrimos que aplicar ajustes conservadores de compresión a los clips de animación de animales nos permitía ahorrar bastante memoria sin ninguna diferencia visual perceptible. Esto ahora se aplica a todas las animaciones de animales y hemos ahorrado alrededor de 100MB de memoria.

Puede que haya margen para más mejoras en las animaciones de los jugadores, pero eso requerirá más investigación, ya que no querríamos perder fidelidad en el modelo del jugador.

Rendimiento - compresión de audio

Tenemos bastante audio en Rust: recientemente pasamos de 0,5 GB de audio cargado en el cliente, así que revisé qué cambios podíamos hacer. En muchos casos ejecutábamos audio sin compresión alguna, lo que ocupaba bastante espacio en la memoria. Aplicando una compresión Vorbis muy conservadora, pudimos reducir el uso total de memoria de audio en un 84% sin pérdida audible de calidad. Esto ahorraba casi memoria.

470MB

Rendimiento - Skins de taller

Cuando lanzamos nuevas skins, el juego las descarga desde el Steam Workshop cuando las encuentras.

Cada mes, incluimos las skins recién lanzadas en los archivos del juego para que ya no tengas que descargarlas.

Una vez descargadas, sus texturas se enviaban a tu GPU, pero también se guardaba una copia completa en RAM que nunca se usaba nada. Esa copia ahora se elimina lo antes posible. Con 22 skins del workshop cargadas, se guarda toda la RAM.

~300MB

Esto debería tener un mayor impacto en servidores modificados que usen más skins de workshop no aprobados que en la versión base. Sobre el mismo tema, estamos trabajando en formas de soportar el streaming de texturas para esas skins descargadas, reduciendo el uso de la VRAM.

Rendimiento - más texturas de terreno

Este mes revisé nuestras texturas activas de terreno y encontré múltiples canales y texturas ya no usados o reemplazables. Por ejemplo, con Rust Render Pipeline podemos usar mejores técnicas para cortar agujeros finos en el terreno, mientras que en el sistema antiguo requeríamos una textura de espacio de pantalla completamente nueva (que ya no existe). Debería haber algunas optimizaciones menores en el rendimiento de las GPUs de terreno debido a un mejor uso de texturas + caché y mejor geometría LOD para niveles de calidad inferiores. En total deberías ver mejoras en la memoria

~115MB

Rendimiento - Inicio de servidores

¡Los servidores ahora se reinician más rápido!

El primer problema fue que pasamos la mayor parte del tiempo reconectando todos los cimientos y paredes de un servidor después de cargar la partida. ¡De hecho, podemos guardar y reutilizar las conexiones durante un reinicio y ahorrar 3 minutos! La misma idea para la ruta de la nave de carga: reutilizarla ahorra otros 20 segundos.

El segundo problema fue que algunas partes del código de "cargar guardado" escalaban mal con un alto número de entidades. Arreglar esto ahorró otros 1m30s.

Esto reduce los servidores con mayor población de 10 minutos a >2 minutos para reiniciarse.

Rendimiento - Generación de mapas

La generación procedural de mapas es una piedra angular de Rust. Sin embargo, a medida que Rust ha crecido, también lo ha hecho el tiempo que lleva. Este mes he dedicado tiempo a optimizar el proceso de generación de mapas, manteniendo los resultados que da igual. El objetivo principal aquí era hacer lo mismo, pero más rápido.

Después de mejorar la erosión y la colocación de acantilados/rocas, ahora es para generar el mapa por primera vez, todo ello dándote el mismo resultado.

casi el doble de rápido

Rendimiento - Aplanado de prefabricados

En Unity, un prefab es una plantilla reutilizable para un objeto del juego. Es la forma en que guardamos nuestros assets y luego los cargamos en el juego: ya sea una caja de botín, un animal o un desplegable, prácticamente todos los objetos en Rust son prefabricados.

Cuando creamos estos prefabs, a menudo contienen configuraciones adicionales, componentes y objetos de juego vacíos cuyo único propósito es mantener su jerarquía organizada y mantenible.

Pero en el juego en tiempo de ejecución todo eso no importa y solo necesitamos que los datos estén empaquetados de la forma más eficiente posible para el rendimiento, así que hay varios pasos que ocurren durante la compilación que transforman el prefab y gestionan eliminar cosas innecesarias.

Este mes hemos ampliado esto con un nuevo mecanismo para aplanar la jerarquía prefabricada, permitiendo eliminar por completo muchos más objetos de juego.

La principal ventaja aquí viene de los bloques de construcción. Cada instancia llevaba objetos extra del juego antes que no eran necesarios en tiempo de ejecución; una base normal, por ejemplo, tenía 20 de estos, que tras este cambio se eliminan todos.

En un servidor poblado, estos objetos de juego innecesarios se contabilizaban en el servidor, lo que se traducía directamente a .

~43% del total de objetos

-1,44 GB de uso de memoria

RENDIMIENTO - NUEVA NAVMESH

Los estancamientos de navmesh en el hilo principal causados por naves fantasma y megabases se han suavizado.

Antes las naves fantasma no se construían de forma asíncrona porque se movían, la construcción de navmesh para ellas ahora no depende de consultas físicas y solo itera a través de colisionadores en el SPCE local.

La reconstrucción del Navmesh se limitó para que se construyan casillas una a una, y si superamos el presupuesto de 1ms para el frame, se detiene hasta el siguiente frame. Sin embargo, algunas casillas en algunas megabases tardan mucho más de 1ms, así que descomponer por casilla no es suficiente.

Ahora podemos posponer la construcción al siguiente fotograma a mitad de tile, dividiéndolos en 4 bloques e iterando por los colisionadores uno a uno, comprobando el presupuesto en cada paso.

Guardar navmeshes se ha movido a un hilo de fondo, haciendo que tenga mucho menos peso en el hilo principal.

El antiguo navmesh que aún se puede usar con el arg de inicio -useOldNavmesh será eliminado en el próximo parche.

Rendimiento - optimización de redes

Este mes hemos reducido la sobrecarga de red. Reducir esto es importante por varias razones: da a los servidores más ancho de banda para jugar (así que se podría aumentar el número de jugadores), además de mantener los envíos al mínimo para ayudar a que el servidor tenga más ciclos de CPU para trabajar. Se han realizado algunas reducciones notables que suman una reducción media de alrededor de 100~ jugadores. Con el número de jugadores, estos ahorros crecerán exponencialmente.

Reducciones generales

~270 KB/s

LODs de red

Ahora estamos desplegando un nuevo sistema para enviar menos información de red sobre entidades que están lejos. Esto tiene mucho sentido: ya que las entidades a distancia no necesitan actualizarse tan frecuentemente como las cercanas. En las pruebas iniciales informamos de una reducción de alrededor del 30% en el tráfico total de red de posición.

Los LODs de red pueden controlarse con dos convares:

• net.position_lod (0 = apagado para todo, 1 = solo para entidades (PNJ, animales, otros), 2 = 1 = entidades de red global (avión de carga, carga, chinook)

• net.position_lod_players (0 = fuera para los jugadores, 1 = los jugadores están incluidos pero solo a media o a la tasa completa, 2 = la misma configuración que las entidades)

Los LODs de red estarán habilitados en algunos servidores FP seleccionados para pruebas antes de implementarse correctamente a mitad de mes.

rendimiento - Agrupamiento de red

Resumen: hasta

-25% de ancho de banda

Nuestra biblioteca de red, RakNet, ha funcionado sorprendentemente bien a pesar del abuso que le hemos sometido. ¡Podemos enviar hasta 500.000 paquetes por segundo a 800+ reproductores antes de que empiece a quejarse! Sin embargo, solo porque podamos, no significa que debamos...

Los paquetes individuales hacen más que aplicar carga extra a la capa de red: también pagamos una sobrecarga de cifrado de 22 bytes por cada paquete que enviamos. En algunos casos, la sobrecarga del cifrado era mayor que los datos reales que enviábamos.

Este mes agrupé los paquetes antes de enviarlos a los jugadores, lo que reduce significativamente la sobrecarga del cifrado. Esto redujo el tráfico de red en un 25% basado en la captura de un servidor de 500 habitantes. Extra: también reduce la carga en la capa de red.

Esta función está activada por defecto y puede ser activada por los servidores mediante los 'batchpackets' de ConVar

Rendimiento - Cambios en PhysX para Cargoship

En nuestra implementación personalizada de physx, se utilizan múltiples estructuras de árbol para acelerar tanto la detección de colisiones como las consultas de física. Se dividen en dos: una para cosas que se mueven y otra para cosas que no.

El problema con Cargoship es que, por varias razones, no podemos hacerlo realmente "dinámico" en cuanto a física. Sin embargo, esto significa que cada vez que Cargoship está activo, tiene que hacer actualizaciones más lentas y costosas a estas estructuras estáticas de árbol. Esto perjudica el rendimiento tanto para clientes como para servidores.

Ahora tenemos una solución personalizada para esto: cualquier estática que se mueva demasiado se promociona (o degrada, es cuestión de perspectiva) a un árbol terciario. En la práctica, esto incluirá algunas cosas como puertas, pero generalmente solo está lleno de colisionadores de cargo. En los clientes esperamos que veas algunas ganancias para cosas como coches, que son dinámicas en el servidor pero se gestionan como estáticas en movimiento en el cliente.

Los picos que puedes ver arriba son cuando la nave de carga está activa en un servidor, puedes ver que los picos se redujeron significativamente después de que la actualización se enviara internamente al 22/10/12:00.

Rendimiento - Empleos 4 ahora estables

El último nivel de Convar, el 4, ahora se considera estable y se viene por defecto. Los últimos errores notables han sido detectados y corregidos, y lo hemos estado ejecutando en nuestros servidores oficiales durante las últimas 3 semanas.

EmpleosDeActualizaciónUsuarioJugador

Como repaso rápido, UsePlayerUpdateJobs paraleliza el trabajo relacionado con el procesamiento de jugadores. El nuevo nivel, 4, paraleliza aún más la Oclusión del Servidor y traslada el guardado de la cola de red de jugadores a la pool de hilos. Esto ayuda a que el rendimiento de servidores de alta población escale mucho mejor: un servidor comunitario reportó mejoras del 30% en el tiempo de frames a 1.000 jugadores (10fps -> 13fps o 100ms/frame -> 70ms/frame).

En el próximo parche planeo eliminar el modo Jobs 3 y el código relacionado.

nubes volumétricas siempre activadas

Hemos actualizado la configuración gráfica para eliminar la opción de desactivar las nubes volumétricas.

Junto con este cambio, hemos identificado y resuelto un problema de rendimiento con las nubes volumétricas. Su rendimiento debería estar ahora a la par de las antiguas nubes de vallas publicitarias.

Nuestro objetivo desde el principio ha sido que las nubes volumétricas sustituyan completamente a las nubes heredadas de las vallas publicitarias. La eliminación también permite una mejor coherencia visual entre jugadores, material de marketing, etc.

Scrap King Building Skin DLC

Conviértete en el rey del desguace con esta última skin para la categoría de construcción de chapa metálica.

Construido con los restos de batallas interminables. Cerrar una puerta, soldar las paredes y tomar el trono.

Solo ten cuidado con el tétanos.

La skin de Scrap King Building se puede comprar en el juego o en el

Tienda de ítems de Rust en Steam

Cambios softcore

Algunos cambios en softcore este mes.

• Sistema de cadáveres desplegables eliminado

• Límite de centros de control de 6 lugares por jugador

El sistema desplegable de cadáveres cumplía su función de proteger la mitad de tu botín cuando te atacaban, facilitando la recuperación. Desafortunadamente, se volvió demasiado cuando añadimos 2x recolección y protección offline contra raids, así que lo retiramos por ahora.

Se ha añadido el límite de TC para desanimar a los jugadores a spamear TCs para reclamar grandes áreas en el mapa. Creemos que esto resta valor al objetivo de que el softcore sea un modo casual y que era propenso a abusos durante la ventana de raiding offline, cuando los jugadores podían spamear TCs que no podían ser destruidos hasta el día siguiente.

Demoui2

Desde este parche, la nueva interfaz de demo está activada por defecto. Todavía puedes habilitar la antigua a través del convar.

demo.oldui

Lo hemos estado usando internamente para tráilers y clips de redes sociales, y aunque todavía hay gente que prefiere la interfaz antigua, para la mayoría de los usuarios nuevos es la herramienta más fácil de aprender.

Para algunas mejoras recientes, ahora puedes crear focos en el modo sandbox para iluminar tus escenas. Las luces también recibieron algunos nuevos artilugios y la posibilidad de animar su posición/rotación.

Desde este parche, también puedes exportar demos como vídeos. Esto requiere que tengas FFmpeg configurado en tu PATH; una vez detectado, puedes exportar usando cualquiera de los formatos de vídeo del desplegable. Dependiendo de la velocidad de almacenamiento, exportar a un formato de vídeo es mucho más rápido que grabarlo tú mismo con un programa externo y te permite usar tasas de fotogramas más altas (hasta 600fps) para cámara lenta.

Nuevo Taller Skinnable: Pistola de clavos

¡El taller de este mes coincide con un remake de armas! La reluciente Nailgun también está disponible para la comunidad de despellejadores.

Tanto si eres un maestro artesano como si simplemente te gusta disparar clavos a osos, más vale hacerlo con el equipo más moderno. ¡Deja las ideas para la comunidad de despellejadores!

Para crear tu propia apariencia de Nailgun, dirígete al taller del juego y localiza el objeto de arma Nailgun. Desde allí, puedes descargar los archivos de los modelos y añadir tus propios materiales.

Retirada del soporte para Mac Intel x86

A partir de este parche, ya no ofrecemos versiones x86 para Macs basados en Intel. Solo se soportarán ARM64 / Apple Silicon a partir de ahora.

Ya llevábamos muchos años estableciendo los requisitos mínimos correspondientes, así que no debería sorprender. El principal motivo de esto es la falta de soporte para los controladores gráficos de estos Macs antiguos, lo que cada vez empieza a causar más problemas.

Actualización Antitrampa

Compartimos algunas estadísticas sobre baneos, denuncias y comportamientos generales de trampas. Aunque seguimos guardando una actualización completa para enero, tenemos algunos detalles que compartir mientras tanto.

En enero

Guionización

El scripting ha sido un problema de larga trayectoria en Rust y sigue siendo un problema más amplio en los juegos de disparos; la detección y la aplicación pueden ser difíciles, y alteran gravemente el equilibrio del juego, dando a los jugadores una ventaja injusta en los tiroteos. Estamos encantados de compartir que, tras algunos desarrollos recientes, estamos mejor posicionados para el scripting de combate.

A medida que empiece este borrado, vamos a lanzar baneos a usuarios de proveedores de scripts públicos y privados, ¡totalizando más cuentas! Esperamos que esto sirva como recordatorio de que tenemos una política de tolerancia cero para el software de terceros que ofrece una ventaja injusta.

3,000

Hora de juego del tramposo

Recientemente hemos recalculado algunas de nuestras métricas clave para determinar cuánto tiempo un tramposo está en el juego (de media), y nos alegra compartir que hemos seguido bajando esta cifra año tras año; nuestros cálculos anteriores que quizá habéis visto en algunas de nuestras entradas antiguas sobre este tema estaban exagerando el valor.

Aunque es agradable compartir una gran cantidad de baneos que hemos aplicado, el tiempo de juego de tramposos es una de las métricas más importantes en las que nos centramos. Rust es único en el sentido de que hacer trampas afecta a nuestros jugadores más que una partida media; si mueres posiblemente pierdes horas de progreso, si te raidan puedes perder días o semanas de progreso. Por eso es importante minimizar el tiempo que los tramposos pasan en el juego y esperamos que hayas notado un cambio positivo en los últimos meses.

Rust Premium - próximamente

Rust Premium está en camino, así que queríamos compartir un poco de información sobre qué es y qué no es Premium. En primer lugar, Rust Premium no es un Battlepass. No habrá progresión bloqueada ni vía de recompensas, ni una forma definida de jugar al juego.

Rust Premium será un servicio mensual de pago que ofrece skins exclusivos dentro del juego y algunas ventajas premium.

• Las recompensas mensuales incluirán skins de alta calidad para desplegables, ropa y más, así como coleccionables y otros objetos.

• Las ventajas incluirán funciones extra útiles que no son jugables a lo largo del juego.

Estamos muy ilusionados de mostraros Premium pronto, así que permanezcan atentos para más detalles.

Modding - Recarga de mapas

Hace aproximadamente un año investigaba problemas relacionados con clientes que recibían NREs en todos los sitios diferentes; eran algo esporádicos y no tenían sentido. Como si alguien hubiera dado una escopeta al estado de ejecución del cliente.

Por la misma época, un desarrollador/propietario de un servidor me contó algo muy loco: encontraron una forma de cambiar el mapa en el cliente, incluso forzar que cargue algo diferente a lo que está ejecutando el servidor. Y pareció funcionar.

Resulta que funcionaba pero dejaba al cliente cojeando mucho. No podemos permitirnos estos problemas aleatorios, así que estamos haciendo un par de cambios:

• El método antiguo de forzar la carga del mapa del cliente está obsoleto y será bloqueado en diciembre. Para mayor integridad, el método antiguo era enviar un mensaje "Aprobado" al cliente con información potencialmente diferente sobre el mundo

• Nuevo método, "CL_LoadMap" RPC ahora se sirve como un mecanismo "bendito" para permitir que el servidor controle lo que se carga en el cliente. He dejado un ejemplo de cómo usarlo en ServerMgr.ChangeLevelFor

En cuanto a lo que pasa con CL_LoadMap, básicamente es lo mismo que el flujo aprobado antiguo:

• destruye todas las entidades (jugadores, contenedores, objetos, NPCs, etc.) del cliente, excepto el jugador

• reinicia el jugador (objetos, convares)

• recarga la escena o cambia a una nueva

• carga el nuevo mapa y ejecuta su configuración

• envía un rpc ClientReady al servidor

Esto debería ser suficiente para varias necesidades de modding. Estaré buscando algunos bugs que quedan.

Servidores Facepunch

Este mes estamos haciendo algunos cambios en nuestros servidores con una nueva incorporación, aumento de población y algo de consolidación.

Nuevo

• [EU Este] Facepunch Softcore 1

Población máxima aumentada

• [EU Este] Golpe en la cara 1

• [UE] Facepunch 1

• [EU] Facepunch Premium 1

• [Este de EE. UU.] Facepunch Premium 1

Retirada

• [EU] Facepunch 12

• [EU] Facepunch 13

• [EU] Facepunch 14

• [EU] Facepunch Grande 2

• [EU] Facepunch Small 4

• [EU] Facepunch Small 5

• [EU] Facepunch Small 6

• [EU Este] Facepunch Premium 3

• [EU Este] Facepunch Premium 4

• [US East] Facepunch 5

• [US East] Facepunch 6

• [EE.UU.] Facepunch Small 2

• [EE.UU.] Facepunch Small 3

• [Oeste de EE. UU.] Facepunch 3

• [Oeste de EE. UU.] Facepunch 4

• [Oeste de EE. UU.] Facepunch Premium 3

• [Oeste de EE. UU.] Facepunch Premium 4

• [Oeste de EE. UU.] Facepunch Premium 5