1 poin oleh GN⁺ 2024-12-27 | 1 komentar | Bagikan ke WhatsApp
  • CobolCraft

    • Server Minecraft yang ditulis dengan COBOL, mendukung Minecraft versi 1.21.4
  • Fitur

    • Fitur-fitur berikut sudah diimplementasikan
      • Generasi medan tanpa batas dan pemuatan chunk dinamis
      • Penyimpanan data world dan pemain ke disk
      • Dukungan format file Minecraft (mengimpor world yang sudah ada)
      • Multiplayer yang mendukung hingga 10 pemain secara bersamaan
      • Ping/status server (ditampilkan online di daftar server)
      • Menghancurkan dan menempatkan blok
      • Interaksi blok (klik kanan, misalnya membuka pintu)
      • Inventaris pemain (terbatas pada mode kreatif)
      • Chat
      • Perintah (di dalam game dan melalui konsol interaktif)
      • Konfigurasi melalui server.properties
      • Whitelist (persisten; disimpan di whitelist.json)
    • Blok dengan banyak state, orientasi, dan interaksi memerlukan banyak kode khusus dan berada di luar cakupan proyek ini
      • Beberapa blok yang didukung: obor, slab, tangga, pilar berotasi, tombol, pintu, trapdoor, ranjang
  • Cara penggunaan

    • Dikembangkan menggunakan GnuCOBOL dan dirancang untuk berjalan di Linux
    • Dukungan untuk sistem operasi lain seperti Windows belum diuji, tetapi deployment yang independen platform dimungkinkan dengan Docker
    • Untuk deployment di Linux, prasyarat berikut harus terpasang
      • cobc, make, g++, zlib, curl, versi Java terbaru
    • Jalankan make untuk build, lalu make run untuk memulai server di port 25565
    • Saat menggunakan Docker:
      • Bisa menarik image dari Docker Hub atau membangunnya sendiri
      • Saat menjalankan container Docker, dapat dikonfigurasi agar bisa diakses dari luar
  • Mengapa?

    • Ada banyak rumor dan stigma tentang COBOL, jadi proyek ini dibuat untuk mempelajari bahasa ini lebih jauh
    • COBOL cocok untuk aplikasi bisnis, tetapi kurang cocok untuk manipulasi data tingkat rendah yang dibutuhkan oleh protokol Minecraft
    • Namun, saya tidak menyerah sebelum berhasil membuat prototipe yang berfungsi
    • Kinerja dicapai melalui encoding dan decoding data
  • Gambaran program

    • Komponen sumber

      • Titik masuk program adalah main.cob, dan sumber COBOL lainnya berada di direktori src/
      • Soket TCP dikelola dengan library soket CBL_GC_SOCKET
    • Blob paket

      • Menggunakan data jaringan yang ditangkap melalui Wireshark, dan berada di direktori blobs/
    • Ekstraksi data

      • Banyak data dapat diekstrak dari aplikasi server dan client Minecraft resmi
      • Makefile CobolCraft mencakup target untuk mengunduh file .jar dan mengekstrak data JSON
  • Pemberitahuan hukum

    • Proyek ini berada di bawah lisensi MIT, dan library pihak ketiga CBL_GC_SOCKET berada di bawah lisensi LGPL v3
    • "Minecraft" adalah merek dagang Mojang Synergies AB, dan CobolCraft tidak berafiliasi dengan maupun disetujui oleh Mojang

1 komentar

 
GN⁺ 2024-12-27
Komentar Hacker News
  • Ada banyak rumor dan stigma buruk tentang COBOL. Untuk memahaminya, ingin merasakan COBOL lewat sebuah proyek. Ingin tahu wawasan yang didapat orang baru saat menggunakan COBOL

    • Sebagai proyek kelulusan SMA, pernah menulis sistem COBOL untuk mengotomatisasi probabilitas taruhan sepak bola. Memang ketinggalan zaman, tapi menyenangkan
    • COBOL punya daya tarik yang mengingatkan pada era kartu punch
  • Proyek kecil yang ditulis dengan bahasa sederhana terasa mengesankan. Sebaliknya, proyek yang ditulis dengan bahasa modern seperti Rust terasa tidak efisien

    • Bahasa yang sederhana memudahkan implementasi ide, tetapi bahasa modern memaksa kita menulis kode yang berkelanjutan
  • Berhenti menggunakan COBOL sejak 1978. Tidak ingin melihat kode ini lagi

  • Kode COBOL mudah dipahami bagi orang dengan latar belakang bahasa prosedural. Mengingatkan pada server game yang ditulis dengan VB 20 tahun lalu

  • Kode COBOL sangat mudah dibaca. Dibandingkan bahasa modern, lebih mudah dipahami

  • Saat masih SMA di sebuah kota kecil di Pakistan, belajar COBOL. Pernah mengerjakan proyek yang mensimulasikan laporan keuangan. Tidak mengerti stigma buruk terhadap COBOL

  • COBOL terlihat seperti bahasa yang keren. Kodenya tertata rapi

  • Empat puluh tahun lagi, para eksekutif di seluruh dunia akan berkata, "Server Minecraft COBOL telah menghilang"

  • Tidak jelas apakah server Minecraft COBOL mendukung redstone. Tidak disebutkan di README, dan di kode hanya ada penyebutan obor redstone saja