-
CobolCraft
- Minecraft 1.21.4 sürümünü destekleyen, COBOL ile yazılmış bir Minecraft sunucusu
-
Özellikler
- Aşağıdaki özellikler zaten uygulanmış durumda
- Sonsuz arazi oluşturma ve dinamik chunk yükleme
- Dünya ve oyuncu verilerinin diske kaydedilmesi
- Minecraft dosya biçimi desteği (mevcut dünyaları içe aktarma)
- En fazla 10 eşzamanlı oyuncuyu destekleyen çok oyunculu mod
- Ping/sunucu durumu (sunucu listesinde çevrimiçi görünme)
- Blok kırma ve yerleştirme
- Blok etkileşimleri (sağ tık, ör. kapı açma)
- Oyuncu envanteri (yaratıcı mod ile sınırlı)
- Sohbet
- Komutlar (oyun içinden ve etkileşimli konsol üzerinden)
server.properties üzerinden yapılandırma
- Beyaz liste (kalıcı;
whitelist.json içinde saklanır)
- Birden çok duruma, yöne ve etkileşime sahip bloklar çok fazla özel amaçlı kod gerektirir ve bu proje kapsamını aşar
- Desteklenen bazı bloklar: meşale, slab, merdiven, döndürülmüş sütunlar, düğmeler, kapılar, trapdoor, yataklar
-
Kullanım
- GnuCOBOL kullanılarak geliştirildi ve Linux üzerinde çalışacak şekilde tasarlandı
- Windows gibi diğer işletim sistemleri desteği test edilmedi, ancak Docker kullanılarak platformdan bağımsız dağıtım mümkün
- Linux üzerinde dağıtım için şu önkoşulların kurulu olması gerekir
cobc, make, g++, zlib, curl, güncel bir Java sürümü
- Derlemek için
make, sunucuyu 25565 portunda başlatmak için make run çalıştırın
- Docker kullanıldığında:
- Docker Hub'dan imaj çekilebilir veya doğrudan derlenebilir
- Docker konteyneri çalıştırılırken dışarıdan erişilebilir olacak şekilde yapılandırılabilir
-
Neden?
- COBOL hakkında pek çok söylenti ve kötü ün var; bu projeyle bu dil hakkında daha fazla şey öğrenmek istiyor
- COBOL iş uygulamaları için uygundur, ancak Minecraft protokolünün gerektirdiği düşük seviyeli veri işleme için uygun değildir
- Yine de çalışan bir prototip oluşturmadan vazgeçmedi
- Performans, veri kodlama ve kod çözme yoluyla elde edildi
-
Program genel bakışı
-
Kaynak bileşenleri
- Program giriş noktası
main.cob dosyasıdır; kalan COBOL kaynakları src/ dizininde bulunur
- TCP soketleri
CBL_GC_SOCKET soket kütüphanesi ile yönetilir
-
Paket blob'ları
- Wireshark ile yakalanan ağ verileri kullanılır ve
blobs/ dizininde bulunur
-
Veri çıkarma
- Resmî Minecraft sunucusu ve istemci uygulamalarından çok sayıda veri çıkarılabilir
- CobolCraft
Makefile dosyası, .jar dosyalarını indirip JSON verilerini çıkaran hedefler içerir
-
Yasal bildirim
- Bu proje MIT lisansı altındadır ve üçüncü taraf
CBL_GC_SOCKET kütüphanesi LGPL v3 lisansı altındadır
- "Minecraft", Mojang Synergies AB'nin ticari markasıdır; CobolCraft, Mojang ile ilişkili değildir ve onun tarafından onaylanmamıştır
1 yorum
Hacker News yorumları
COBOL hakkında çok fazla söylenti ve kötü şöhret var. Bunu anlamak için bir proje aracılığıyla COBOL deneyimi yaşamak istiyorum. COBOL'u yeni kullanmaya başlayan birinin edindiği içgörüleri merak ediyorum
Basit bir dille yazılmış küçük bir proje etkileyici. Buna karşılık Rust gibi modern dillerle yazılmış projeler verimsiz
1978'den sonra COBOL kullanmayı bıraktım. Bu kodu bir daha asla görmek istemiyorum
COBOL kodu, prosedürel dil geçmişi olan biri için anlaşılması kolay. Bana 20 yıl önce VB ile yazılmış bir oyun sunucusunu hatırlatıyor
COBOL kodu çok okunabilir. Modern dillerle karşılaştırıldığında anlaması daha kolay
Pakistan'da küçük bir kasabada lise yıllarımda COBOL öğrendim. Finansal raporları simüle eden bir proje yapmıştım. COBOL'un neden kötü bir şöhrete sahip olduğunu anlayamıyorum
COBOL harika bir dil gibi görünüyor. Kod iyi düzenlenmiş
40 yıl sonra dünyanın dört bir yanındaki yöneticiler, "COBOL Minecraft sunucusu ortadan kayboldu" diyecek
COBOL Minecraft sunucusunun redstone desteği olup olmadığını anlayamıyorum. README'de bundan bahsedilmiyor ve kodda yalnızca redstone torch geçiyor