Öncelikle java bilmen gerekmiyor, oyunlar internet protokolleri üzerinden (genellikle udp tercih edilir) sunucuyla, sunucu da bu oyunu oynayan oyuncuyla iletişim kurar. Bir network sınıfı destekleyen herhangi bir dille yazılabilir fakat kaynak kullanımı ve hız önemli. İlk soruna gelirsek evet kendimiz de yapabiliriz fakat paper, spigot gibi yazılımlar birer fork yani sıfırdan yapılmış değiller. İnternette aratırsan cpp, java, go gibi dillerde yazılmış sunucu yazılımlarını bulabilirsin. Kendin sıfırdan yazmak istiyorsan önerim seçtiğin dilin yüksek istek sayılarında dahi stabil şekilde kaynak tüketmesi ve response hızını koruyabilmesi olur, normal geliştiriciler genellikle i/o işlemlerini ve network (özellikle tcp ve udp) sınıfını öğrenmeye tenezzül etmez fakat birçok yerde karşımıza çıkıyor burada olduğu gibi. Minecraft protokollerini çok detaylı ve anlaşılabilir yazmış olan bu kaynağı da kullanarak ilerleyebilirsiniz:
https://wiki.vg/Protocol Tabii her şey bundan ibaret değil.