← Todas las publicaciones

Archivo del proyecto

La mayor transferencia de datos del juego en formato JSON

Lo más importante está en la esquina superior izquierda, y es lo que tuve que hacer para que apareciera la pequeña etiqueta “tojson: true”. ¿Por qué importa? Confirma que la mayor transferencia de datos en el juego ha tenido lugar y ha sido recibida correctamente en un formato utilizable. ¿Qué tiene de difícil? El motor no tiene herramientas ya hechas que lo manipulen correctamente.

Y esa es la versión corta. El agujero del conejo va mucho más profundo. Incluso si recibes los bytes, por ejemplo, no puedes convertirlos fácilmente en una estructura lógica útil. Cuando el cliente intenta procesar un bloque de 3.5 megabytes usando nodos, simplemente se congela completamente. No es de extrañar: tiene que ejecutar 3,5 millones de ciclos de añadir un carácter a la vez a una cadena.

Todo esto también hizo necesario almacenar los datos de la base de datos en forma comprimida; de lo contrario ninguna base de datos sería lo suficientemente grande. Los datos deben ser enviados comprimidos y luego descomprimidos. Nuestros actuales 6.000 sistemas ocupan alrededor de 18 GB, comprimidos. Sin comprimir, eso sería alrededor de 45 GB. Y no tenemos 6.000 sistemas, sino 50.000: unos 400 GB de información sin comprimir sobre superficies planetarias. Cuanto más grande sea cada paquete, más tráfico genera y más tarda en llegar al cliente, y así sucesivamente.

Probablemente vale la pena mencionar lo obvio: los nodos tampoco pueden descomprimir el archivo. En resumen, todas las direcciones parecían conducir a un callejón sin salida, pero la información todavía tenía que ser transferida. Las imágenes de Avatar y otras cosas también caen en esta categoría. Los pequeños mensajes que eran esencialmente texto funcionaron sin problemas, pero esto es casi un problema diferente en conjunto. Y la única solución aparente era escribir componentes en C++, lo que inmediatamente movería el proyecto a compilar con Visual Studio. Mi experiencia con eso ha sido difícil; lo he intentado más de una vez. Es mejor quedarse con Blueprints el mayor tiempo posible.

Entonces, ¿qué hacemos? Escribe complementos C++, pero controlalos usando nodos. Eso nos da el código y la flexibilidad. En resumen, me he absorto en hacer plugins, especialmente con la ayuda de IA. Desde que regalé el final al principio: todo funciona ahora, y toma... fracciones de un segundo. ¿Alguien necesita plugins para Unreal Engine 5? )))

Perfil del proyecto en Facebook ↗