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.
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/
, incluyendosrc/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 enCBL_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.