28 diciembre 2024

Servidor de Minecraft en COBOL: Explorando CobolCraft

CobolCraft es un servidor de Minecraft escrito en COBOL que demuestra la versatilidad de este lenguaje en aplicaciones modernas.

En un esfuerzo por fusionar la tecnología clásica con aplicaciones contemporáneas, CobolCraft emerge como un proyecto innovador que implementa un servidor de Minecraft utilizando COBOL, un lenguaje de programación lanzado hace varias décadas atrás y tradicionalmente asociado con sistemas financieros y empresariales.

CobolCraft - Cobol - Minecraft
Imagen DALL-E

Proyecto CobolCraft

CobolCraft es un proyecto de código abierto que implementa un servidor de Minecraft escrito en COBOL. Este proyecto, disponible en GitHub, busca demostrar la capacidad de COBOL para manejar aplicaciones modernas como los servidores de juegos.

Características del Proyecto

Entre las funcionalidades que CobolCraft ofrece se incluyen:

  • Generación de terreno infinito y carga dinámica de «chunks».
  • Persistencia de datos del mundo y de los jugadores en disco.
  • Soporte para formatos de archivos de Minecraft, permitiendo la importación de mundos existentes.
  • Capacidad multijugador para hasta 10 jugadores concurrentes.
  • Interacción básica con bloques, como colocar y romper bloques, y abrir puertas.
  • Inventario de jugador limitado al modo creativo.
  • Funcionalidad de chat.

Estructura del Código

El proyecto está organizado de la siguiente manera:

  • El punto de entrada principal es main.cob.
  • Los demás archivos COBOL se encuentran en el directorio src/, incluyendo src/server.cob, que contiene la mayor parte de la lógica del servidor.
  • Las bibliotecas en C++ se ubican en el directorio cpp/ y se compilan en una biblioteca compartida.
  • Las conexiones TCP se gestionan mediante la biblioteca CBL_GC_SOCKET ubicada en CBL_GC_SOCKET/.

Interoperabilidad con Minecraft

Para garantizar la compatibilidad con el cliente de Minecraft, CobolCraft utiliza datos de red capturados de una instancia del servidor oficial mediante herramientas como Wireshark.

Estos datos se encuentran en el directorio blobs/ y se decodifican en tiempo de ejecución. Además, el proyecto emplea un analizador JSON personalizado para manejar los datos extraídos del servidor oficial de Minecraft, permitiendo la interoperabilidad sin distribuir material potencialmente protegido por derechos de autor.

CobolCraft se distribuye bajo la licencia MIT. Es importante destacar que, aunque «Minecraft» es una marca registrada de Mojang Synergies AB, CobolCraft no está afiliado ni respaldado por Mojang.

Consideraciones del Autor

Fabian Meyer, el autor, comenta lo siguiente sobre el proyecto:

Bueno, hay bastantes rumores y estigmas alrededor de COBOL. Esto despertó mi curiosidad para saber más sobre este lenguaje, algo que, en mi opinión, se hace mejor con algún tipo de proyecto. Así es, lo escuchaste bien: no tenía experiencia previa con COBOL cuando comencé.

 

Escribir un servidor de Minecraft quizás no fue la mejor idea para un primer proyecto en COBOL, ya que COBOL está diseñado para aplicaciones empresariales, no para la manipulación de datos a bajo nivel (bits y bytes), que es algo que el protocolo de Minecraft requiere en gran medida. Sin embargo, abandonar antes de tener un prototipo funcional no era una opción. Mucha de esta funcionalidad tuvo que ser implementada completamente desde cero, pero con algo de programación ingeniosa, la codificación y decodificación de datos no solo funcionan por completo, sino que también son bastante eficientes.

CobolCraft es un ejemplo notable de cómo lenguajes de programación tradicionales como COBOL pueden adaptarse para desarrollar aplicaciones modernas, desafiando las percepciones convencionales sobre sus limitaciones y demostrando su versatilidad en el ámbito de la programación actual.

Siguenos por Twitter a través de @Geeksroom y no te pierdas todas las noticias, cursos gratuitos y demás artículos. También puedes seguirnos a través de nuestro canal de Youtube para ver nuestros vídeos, a través de Instagram para ver nuestras imágenes! O vía Bluesky si ya estás cansado de Twitter

Hector Russo

Desde su juventud se ha dedicado a la Tecnología de la Información. En su oportunidad fue incluido por Ivy Worldwide en su lista Top 25 influencers en Tecnología. Actualmente es miembro del panel de jurados que elige los mejores vehículos del año para el mercado hispano de Estados Unidos, a través de los Hispanic Motor Press Awards.

Ver todas las entradas de Hector Russo →