Introducción
Palworld arrasó en el mundo de los videojuegos cuando se lanzó en acceso anticipado el 19 de enero. Llegó a los 3 millones de jugadores apenas 40 horas después de su lanzamiento, y actualmente tiene más de 19 millones solo 2 semanas después de su lanzamiento. Palworld es un juego de supervivencia de mundo abierto con elementos de domesticación de monstruos. O como se le conoce más comúnmente como “Pokémon con armas de fuego”.
Decir que la demanda de servidores nos tomó por sorpresa sería quedarse corto. Cuando comenzamos a ofrecer alojamiento Palworld, las entradas se agotaron en 4 horas; a pesar de nuestros mejores esfuerzos, simplemente no pudimos conseguir suficiente hardware para satisfacer la demanda. Esto se debió en gran medida a la necesidad de recursos de sus servidores dedicados. El official recommendation tiene 4 núcleos de CPU y más de 32 GB de RAM para un funcionamiento estable. Podrías ejecutar más de 30 servidores Terraria con esa cantidad de RAM. La mayor parte del uso de recursos (francamente excesivo) proviene de errores y una mala optimización, pero eso es de esperarse de un juego de acceso temprano.
Mucho acceso temprano
Hay una buena razón por la que Palworld explotó como lo hizo. Es divertido. Realmente divertido. Ver a un simpático cordero esférico construir un arma para ti no es algo que ofrezca ningún otro juego. Pero Palworld sí. Sin embargo, se lanzó con una letanía de errores/problemas de rendimiento que iban desde divertidos hasta inconvenientes e incluso rompían el juego. Algunos de mis favoritos personales han sido:
- Poder usar conjuntos completos de armadura en las ranuras de equipo de planeador, escudo y cabeza simultáneamente.* (Logré obtener hasta 2600 de defensa antes de que, lamentablemente, se solucionara en la actualización más reciente).
- Poder atrapar jefes de torres como Zoe y Grizzbolt. No estoy seguro si esto se ha solucionado todavía.
- Los amigos de tu base son inexplicablemente teletransportados al palco y mueren a causa del daño resultante de la caída.*
- Subirte a una palesfera antes de que la captura termine de enviarte volando. (Esto terminó siendo clave para descubrir el origen de una pérdida importante de memoria, pero volveré a eso).
Todo lo que se haya solucionado se marca con un *
Todos esos problemas afectaron tanto al modo para un jugador como al modo multijugador, pero hubo algunos problemas con los servidores dedicados específicamente que afectaron particularmente a AleForge y a otros proveedores de servidores, principalmente:
- Pantallas de carga infinitas.
- Transferir guardados entre servidores
- Múltiples pérdidas de memoria.
💡¿Qué es una pérdida de memoria?
Piense en la memoria (RAM) de su computadora como una pizarra que los programas usan para escribir información que planean usar más adelante. Cuando un programa tiene una pérdida de memoria, sigue escribiendo cosas en esa pizarra, pero no regresa y borra nada. Incluso si ya no lo necesita. Finalmente, el programa se queda sin espacio para escribir nueva información y falla. A veces, se cae la computadora con ella.
Sin duda, es un juego de acceso temprano y los desarrolladores han estado trabajando incansablemente para corregir estos errores. Aun así, queríamos hacer todo lo posible para resolver estos problemas lo antes posible. Constantes bloqueos y caídas del servidor, quedándote atascado en la pantalla de carga mientras escuchas a tus amigos jugar. O peor aún, no poder conseguir ningún servidor debido a los costos prohibitivos. No podíamos quedarnos de brazos cruzados y esperar a que los desarrolladores solucionaran los problemas de rendimiento. Seguramente había algo que podíamos hacer.
Reunirnos con nuestra comunidad
Estábamos lejos de ser los únicos que padecíamos estos problemas. El canal oficial de ayuda del servidor de Palworld en su discordia se vio inundado de personas que preguntaban cómo solucionar los bloqueos/pantalla de carga infinita, o cómo transferir su archivo guardado. Lo frustrante es que nadie parecía tener buenas respuestas. Sin embargo, gracias a nuestra increíble comunidad, terminamos en primera línea controlando el bajo rendimiento y los errores que interrumpen el juego.
Comenzó poco a poco, con miembros de nuestro discordia compartiendo sus descubrimientos sobre los problemas más comunes. Pero creció rápidamente a medida que más y más miembros de nuestra comunidad comenzaron a contribuir con su conocimiento y experiencia. Carbonic, miembro del personal de soporte, y Mayples y VeroFess, miembros de la comunidad, fueron los MVP en esto, pero muchos otros colaboraron.
Fue realmente reconfortante ver a tanta gente trabajando junta, ayudándose mutuamente a optimizar y arreglar lo que podían. Muy pronto logramos obtener algunos servidores con más de 12 horas de tiempo de actividad antes de que fuera necesario reiniciarlos para evitar una falla. Este tiempo de actividad extendido fue una mejora importante con respecto a las fallas de casi cada hora que enfrentamos en el lanzamiento. Si desea realizar estos cambios en su servidor, tenemos un artículo here que le explicará cómo hacerlo.
Logramos avanzar un poco en la transferencia de partidas guardadas y también en pasar la pantalla de carga infinita. Esto es lo que sabemos sobre ellos:
- Pantalla de carga infinita
Esto se debe a que alguien abandona tu gremio cuando estás desconectado, lo que corrompe los datos guardados de tu personaje. Actualmente, la única solución conocida es eliminar el archivo dañado de los archivos del servidor. Si necesita ayuda con esto en uno de nuestros servidores, abra un ticket here o en nuestro Discord y haremos todo lo posible para solucionarlo. Perderás tus niveles, elementos y amigos, pero lamentablemente no hay otra solución al momento de escribir este artículo.
- Transfiriendo guardados
Esto tiene dos partes, ya que pasar de un jugador → servidor es diferente a servidor → servidor. Tenemos una guía sobre cómo hacer ambas cosas here, pero el proceso es bastante complicado y los resultados pueden variar.
-
Un jugador/Cooperativo → Servidor Al momento de escribir esto funciona… Mayormente. El mundo y la mayoría de los datos del jugador se transferirán sin problemas, excepto los del anfitrión. Por defecto, Palworld rastrea qué jugador es cuál con un GUID (Identificador único global). Esa identificación está vinculada a su cuenta de Steam/Xbox. Sin embargo, los datos del anfitrión se guardan con el ID 000000001. Entonces, cuando se unen, el servidor no los reconoce y los obliga a crear un nuevo personaje. Hay una solución no oficial here, úsela bajo su propio riesgo.
-
Servidor → Servidor Una vez más, esto está funcionando actualmente. A menos que estés intentando transferir un mundo creado antes del parche 1.3.0. Ese parche cambió la forma en que los servidores dedicados crean y administran GUID. Hasta donde sabemos, no existe una solución para esto. De lo contrario, debería funcionar la siguiente guía que vinculé antes. Si te quedas atascado o necesitas ayuda para transferirte a nuestros servidores, abre un ticket y te ayudaremos.
Mientras trabajábamos para encontrar soluciones a la pantalla de carga infinita y guardar transferencias, Mayples y VeroFess todavía estaban solucionando las pérdidas de memoria y las cosas comenzaban a calentarse. Tanto es así que abrimos The Code Forge, un canal de discordia dedicado para que nuestra comunidad lo use mientras realizan ingeniería inversa en el juego.
Tapar la fuga
Las primeras mejoras provinieron de simples ajustes de configuración. Como reducir la cantidad de elementos terrestres, deshabilitar las incursiones y deshabilitar la penalización fuera de línea. Este último no afecta mucho el juego, ya que tus amigos actualmente no comerán si no estás conectado. Entonces se enferman de todos modos. Al final, agotamos rápidamente nuestras opciones de optimización y todavía estábamos lidiando con fallas regulares. Eso fue hasta que encontramos VeroFess’s Unofficial Fix.
Casi de inmediato, Carbonic creó un servidor comunitario para que lo pusiéramos a prueba y los resultados fueron buenos. Con sólo 2 núcleos de CPU y 12 GB de RAM, el servidor funcionaba sin problemas. Sin retrasos ni bandas elásticas. ¡Incluso con 9 personas! (Llegar a ser uno de esos 9 fue una experiencia increíble) Lo que VeroFess había hecho fue editar el binario del servidor para corregir varias funciones mal optimizadas. No puedo exagerar la capacidad técnica que se requirió para lograrlo, especialmente sin poder ver el código fuente. Una vez que estuvimos seguros de que era estable, implementamos su solución para todos nuestros clientes y vimos mejoras notables en la estabilidad y el tiempo de actividad. Una vez que llegó el parche 1.3.1, ya no lo necesitábamos porque los desarrolladores habían solucionado el problema (gracias en parte a VeroFess).
Si bien hubo mejoras significativas en el rendimiento del servidor y el uso de RAM, no se solucionó por completo. A medida que la gente jugaba en un servidor, el uso de RAM aumentaba y aumentaba, pero ¿por qué? Mayples fue quien descubrió lo que estaba pasando, todo gracias al error palsphere que mencioné anteriormente.
Mayples (parafraseado): Tuve un error como ese en CoDMW2 cuando instalamos un nuevo lanzagranadas. Lanzaría a los jugadores, no el proyectil. Fue porque no matamos el objeto, simplemente lo teletransportamos, y el impulso haría volar a los jugadores. El error palsphere es lo mismo. No matan el objeto; simplemente teletransportalo y el impulso te lanzará. Lo que me dijo que están haciendo una caja de destrucción en algún lugar como la nuestra. Cargan mazmorras debajo del mapa, si sales puedes ver el mapa completo, y donde apilan todo lo que espera ser asesinado. Los gráficos están apagados pero los objetos están ahí. Sin embargo, en realidad nunca se eliminan. Luego, el juego comienza a generar errores por cosas que aparecen en el mapa, y eventualmente genera un registro de errores masivo y falla.
Volviendo a la analogía de la pizarra. Cuando aparece un objeto como palesferas usadas o palos/piedras en el suelo, se dibujan en el tablero. Cuando “desaparecen”, no se borran, simplemente se ocultan. Finalmente, el servidor regresa y escribe “error” debajo, ocupando más espacio. Probablemente estés empezando a ver cómo los servidores Palworld consumen RAM como si fueran patatas fritas, ¿no es así?
Conclusión
Si bien todavía hay algunas cuestiones pendientes, en las últimas semanas se han visto grandes avances en la lucha contra el uso descontrolado de recursos de Palworld. Gracias a las correcciones de los desarrolladores y al increíble trabajo de nuestra comunidad, ¡hemos logrado que algunos servidores funcionen cómodamente durante más de 24 horas!
Un gran agradecimiento a Mayples por su descubrimiento sobre la fuga de Killbox y a VeroFess por su solución no oficial que nos dio un respiro muy necesario desde el principio. Todos estos conocimientos de rendimiento se han transmitido a los desarrolladores quienes (con suerte) tienen una actualización de estabilidad en proceso. Aparte de eso, han hecho un trabajo increíble solucionando otros errores de acceso temprano.
Si bien Palworld todavía tiene que madurar antes de estar listo para abandonar el nido, estamos encantados de haber realizado grandes mejoras en el lado del servidor con la ayuda de nuestros jugadores. Si desea unirse a nuestra increíble comunidad y tal vez incluso ayudar a optimizar aún más, ¡súbase a nuestro Discord! También tenemos un descuento de lanzamiento del 20 % a partir del Palworld servers si tú y tus amigos estaban esperando para participar. De cualquier manera, ¡no puedo esperar a ver qué nos depara el futuro de Palworld!