← Todas las publicaciones

Archivo del proyecto

Mapas hexagonales, C++ y un servidor dedicado

Hay algo que mostrar, pero eso puede esperar. Hoy hablaremos de las partes complicadas. Primero, los preparativos para la temporada han comenzado y puedo dedicar menos tiempo a la codificación ahora. Sin embargo, algo que era sólo un plan lejano, y se negó a trabajar incluso en iteraciones anteriores, finalmente ha tenido éxito.

Me las arreglé para crear un plano, mapa hexagonal hecho de hexágonos. Cada hexadecimal es contabilizado y puede ser cambiado de muchas maneras: textura, altura, y esencialmente cualquier regla y variable. Esta es la base para el mapa de la colonia y, en efecto, para el mapa del terreno dentro de un hex planetario.

Para los entusiastas: todos los hexágonos utilizan coordenadas de cubo, lo que permite calcular vectores y otras cosas útiles como la búsqueda de caminos y la navegación alrededor de obstáculos. Eso es necesario para que las unidades se muevan correctamente a través del mapa: tropas, grupos de reconocimiento, exploradores, carreteras principales y redes eléctricas. Sí, es tan grave, si no lo sabías ya.

A continuación: todo el proyecto se ha movido a una compilación de fuentes y ahora también funciona con módulos escritos en C++. Tomó tres días de sufrimiento, pero funciona. ¿Por qué?

En C++, puedes escribir absolutamente cualquier cosa. Con los nodos, usted puede utilizar sólo lo que los desarrolladores y fabricantes de plugins han proporcionado. A veces eso no es suficiente, a veces es incómodo, a veces es caro, y a veces simplemente no existe. En otras palabras, tienes que hacerlo tú mismo. El código C++ también funciona de cinco a siete veces más rápido que los nodos.

Ahora estoy construyendo la generación C++ de un planeta a partir de hexágonos. Se mueve, pero no todos los hexágonos están en su lugar todavía. En resumen, el algoritmo necesita más trabajo y depuración.

Lo más importante, C++ me permitirá escribir mis propios módulos para comunicación, encriptación y compresión de paquetes. Tengo ejemplos de trabajo. Estos módulos importan con grandes volúmenes de datos. Por ahora, trabajamos sin cifrado y enviamos cadenas JSON, lo que no es eficiente, aunque funcione. La encriptación a través de Blueprints parece imposible. El módulo de comunicación, suministrado por un plugin, está firmemente atascado en una versión anterior del motor, y nadie sabe si se actualizará. Ha estado en 5,4 durante medio año, mientras que el motor ya está en 5,5. No puedo actualizar porque la comunicación fallaría: el plugin no funcionará con una versión diferente...

En resumen, no es aburrido y es muy interesante, aunque ocasionalmente acompañado de insultos.

Y un motor autocompilado nos permite construir una aplicación de servidor dedicada. Lo necesitaremos cuando lleguemos al combate de la nave. El cliente existe; lo hice el año pasado. Todavía no tenemos el servidor adecuado, pero ahora podemos construir uno.

Esa es la noticia.

Perfil del proyecto en Facebook ↗