ESP8266 ile Minecraft Sunucusu Kurmak

ESP8266 ile Minecraft Sunucusu Kurmak

Minecraft sunucusu ile ESP8266 kelimelerini aynı cümlede kullanmak ilk başta kulağa oldukça sıra dışı gelebilir. Ancak avrcraft adlı açık kaynaklı proje, bu sıra dışı fikri gerçeğe dönüştürüyor. Minecraft; bildiğiniz gibi bloklarla inşa edilen, macera, yaratıcılık ve hayatta kalma modlarıyla oyunculara sınırsız bir özgürlük sunan devasa bir açık dünya oyunudur.

ESP8266 ile Minecraft Sunucusu Kurmak
ESP8266 ile Minecraft Sunucusu Kurmak

Minecraft, birden fazla oyuncunun aynı evrende birlikte oynayabilmesi için doğal olarak sunucu (server) altyapısına ihtiyaç duyar. Bu sunucular genellikle Linux, Windows ve macOS işletim sistemleri üzerinde barındırılır; ancak kararlılık ve performans avantajları nedeniyle sektörde ezici çoğunlukla Linux tercih edilir. Basitçe ifade etmek gerekirse; oyun haritasının (chunk) büyüklüğü, aktif oyuncu sayısı ve dünyadaki dinamik etkileşimler, sunucunun ihtiyaç duyduğu işlemci (CPU) gücünü, RAM (bellek) kapasitesini ve depolama hızını doğrudan belirler.

En düşük sistem gereksinimleriyle stabil bir şekilde çalıştırılabilecek temel bir Minecraft sunucusu için önerilen donanım özellikleri şu şekildedir:

Gereksinim SeviyesiOyuncu Sayısıİşlemci (CPU)Bellek (RAM)Depolama Alanı
Temel (Minimum)1 – 4Intel Core 2 Duo veya AMD Athlon 64 X21 GBEn az 150 MB
Önerilen5 – 10Intel Core 2 Duo veya AMD Athlon 64 X22 GBEn az 150 MB
Gelişmiş10+Intel Core i5-4690 veya AMD Ryzen 5 16004 GBEn az 150 MB

Daha yüksek oyuncu kapasitesine ve çok sayıda eklentiye (mod/plugin) sahip profesyonel sunucularda bu gereksinimler katlanarak artar. Minecraft sunucu yazılımları temelde Java mimarisi üzerinde yükselir. Bu nedenle sunucuya ve oyuna bağlanabilmek için Java tabanlı bir oyun istemcisi (launcher) kullanılır.

Yazı İçeriği

ESP8266 ve Donanımsal Minecraft Sunucusu

Yukarıda bahsettiğimiz sunucu sistem gereksinimlerini düşündüğünüzde aklınızın karışması son derece normaldir. Sonuçta ESP8266, 80 MHz saat hızında çalışan 32-bit Xtensa L106 işlemciye, yalnızca 128 KB RAM (bellek) kapasitesine ve genellikle 4 MB Flash depolamaya sahiptir. Standart bir sunucunun gereksinimleriyle kıyaslandığında aralarında binlerce, hatta milyonlarca kat performans ve kapasite farkı bulunur. ESP8266 her ne kadar 32-bit bir işlemci barındırsa da, avrcraft projesinin temelinde aslen 8-bit AVR mikrodenetleyicileri desteklemek yatar. Projenin ESP8266 üzerinde bu kadar popüler ve kullanışlı olmasının ana nedeni, kartın üzerinde entegre Wi-Fi modülünün bulunması ve avrcraft çekirdeğinin ESP8266 mimarisine başarıyla uyarlanmış olmasıdır.

avrcraft Neler Vaat Ediyor?

Projedeki ana C dosyası, temel dumbcraft araç setini barındırır. Dış dünya ile doğrudan standart bir iletişim protokolü üzerinden haberleşmediği için, tüm veri paketleri özel olarak optimize edilmiş fonksiyonlar aracılığıyla işlenir.

Desteklenen Özellikler (Çalışanlar):

  • Windows veya Linux üzerinden standart Minecraft 1.4.2 sürümü ile sorunsuz bağlantı
  • Çoklu oyuncu (Multiplayer) desteği
  • Harita üzerinde özgürce hareket edebilme
  • Blok durumlarının güncellenmesi
  • Ana harita parçalarının (chunk) dinamik olarak yüklenmesi
  • Oyun içi anlık sohbet (Chat) sistemi

Desteklenmeyen Özellikler (Çalışmayanlar):

  • Gece-gündüz döngüsü
  • Yaratıklar ve hayvanlar (MOB’lar)
  • Fizik motoru ve yerçekimi
  • Gelişmiş animasyonlar
  • Eşya üretimi (Crafting)
  • Düşen blok mekanikleri (kum, çakıl vb.)
  • Madencilik ve blok kırma
  • Yeni blok yerleştirme
  • Nether ve End boyutları
  • Kızıltaş (Redstone) devreleri
  • Dinamik su ve lav akışları
  • Kısacası, standart bir hayatta kalma modundaki diğer neredeyse her şey.

Çalışan ve çalışmayan özelliklerin listesine baktığımızda, ESP8266 gibi kısıtlı bir donanım sınırları içerisinde nelerin başarılabileceğini görmek oldukça etkileyicidir. Bu projenin tamamen deneysel, akademik ve eğlence amaçlı olduğunu unutmamak gerekir. Dolayısıyla, eksik özellikler projenin başarısından ziyade donanımın sınırlarını gösteren tatlı birer detaydır. Kısacası, bu kartı ticari bir oyun sunucusuyla kıyaslamamak gerekir.

ESP8266’ya avrcraft Firmware Yükleme Aşamaları

Kartınıza yazılım yüklemek için tercih edebileceğiniz iki temel yöntem bulunmaktadır. Eğer kaynak kod seviyesinde özelleştirmeler yapmak istiyorsanız, projeyi bilgisayarınızda make komutuyla derlemeniz gerekir. Eğer kodlarla uğraşmadan hızlıca bir test gerçekleştirmek istiyorsanız, doğrudan derlenmiş .BIN dosyalarını esptool komut satırı aracıyla veya grafik arayüze (GUI) sahip yazılımlarla karta yükleyebilirsiniz. Her iki yöntemde de Wi-Fi ayarlarını yapılandırmak oldukça kolaydır.

Yöntem 1: Kaynak Kodunu Düzenleyerek Derlemek ve Yüklemek

Projeyle birlikte gelen kodlar ve kütüphaneler, öncelikli olarak Debian tabanlı Linux dağıtımları (Ubuntu, Mint vb.) düşünülerek geliştirilmiştir. Eğer macOS veya Windows 7/8/10/11 gibi farklı işletim sistemlerinde derleme yapmak istiyorsanız, ilgili platformların derleyici araçlarını sisteme entegre etmeniz gerekecektir.

Derleme işlemi için bilgisayarınızda bulunması gereken önkoşullar şunlardır:

  • Espressif esp82xx serisi derleyici araç zinciri (toolchain)
  • Libusb 1.0 kütüphanesi ()
  • GNUMake derleme aracı
  • GNU Compiler Collection (GCC)

Gerekli Bağımlılıkların ve SDK’nın Kurulması

Debian, Linux Mint ve Ubuntu sistemler için gerekli bağımlılık kurulum komutu:

Aşağıdaki betik yardımıyla resmi SDK, varsayılan konum olan ~/esp8266 dizinine otomatik olarak kurulacaktır. Bu kurulum yalnızca 64-bit x86 mimarisine sahip sistemlerde çalışır ve kararlı olarak Linux Mint/Ubuntu üzerinde test edilmiştir. İndirme boyutu yaklaşık 18 MB olup, diskte 90 MB civarında yer kaplar.

ESP8266 SDK’sının bazı güncel sürümlerinde IRAM yönetim yapısı değiştiği için derleme hataları oluşabilmektedir (Örn: SDK 1.5.2 sonrası). Bazı projeler bellek sınırlarını aştığı için derlenemez hale gelebilir. Bu nedenle projenin makefile dosyası, optimize edilmiş özel bir SDK sürümünü kullanacak şekilde yapılandırılmış ve kararlı başlangıç verileriyle birlikte paketlenmiştir.

SDK Yolunun Tanımlanması

Sisteminize SDK konumunu öğretmenizin birkaç yolu vardır. En pratik yöntem, proje dizinindeki ./user.cfg dosyasını açarak DEFAULT_SDK değişkenini kendi SDK yolunuza göre düzenlemek ya da işletim sisteminizde kalıcı bir çevre değişkeni (environment variable) tanımlamaktır.

Kullandığınız kabuğa göre .bashrc veya .profile dosyasına bu satırı ekleyebilirsiniz. Böylece yeni bir ESP8266 projesine başladığınızda da yol tanımı kalıcı olarak korunacaktır.

Dilerseniz derleme esnasında SDK yolunu doğrudan parametre olarak da iletebilirsiniz:

Yeni Proje Başlatma

esp82xx altyapısını kullanarak sıfırdan yeni bir proje oluşturmak oldukça basittir:

Alternatif olarak, esp82xx yapısını mevcut projenize bir alt modül (submodule) olarak ekleyebilirsiniz:

Bu komutlardan sonra temel dosya mimarisi oluşturulmuş olacaktır. Dosyaların büyük çoğunluğu ./esp82xx/ dizini altındaki kaynaklara işaret eden sembolik bağlantılardan (symlink) oluşur. Çekirdek dosyaları doğrudan düzenlemek yerine, değiştirmek istediğiniz dosyanın bir kopyasını üst dizine alıp düzenlemeniz önerilir. Örneğin; Web arayüzündeki yazı tipini değiştirmek istiyorsanız, sembolik bağlantının üzerine yazacak şekilde ./esp82xx/web/page/index.html dosyasını kopyalayıp ./web/page/ altına yapıştırın ve düzenlemelerinizi burada gerçekleştirin.

Araç zinciri (toolchain) konumları ve temel derleme parametreleri için ana dizindeki user.cfg dosyasını özelleştirmeyi unutmayın.

Derlenen Yazılımı Karta Yüklemek

Derleme adımları başarıyla tamamlandıysa, kartınızı flashlama aşamasına geçebilirsiniz. ESP8266’nızı 3.3V seviyesinde çalışan kaliteli bir USB-to-TTL seri dönüştürücüye bağlayın (5V uygulamak kartın hassas pinlerine zarar verecektir) ve kartı “Flash Modu”na (GPIO0 pinini GND’ye çekerek) alın.

Yükleme bittikten sonra ESP8266 kullanıma hazır hale gelecektir. Kart ilk açılışta ESPXXXX (XXXX kısmı karta özel rastgele bir koddur) adında şifresiz bir Wi-Fi Erişim Noktası (Access Point) oluşturur. Bu ağa bağlandıktan sonra tarayıcınızdan web arayüzüne erişebilir, gerekli yapılandırmaları yapabilir ve sayfa verilerini yazabilirsiniz. Firmware ve web arayüz verilerini doğrudan komut satırından yüklemek için şu make hedeflerini kullanabilirsiniz:

Yöntem 2: Hazır .BIN Dosyaları ile Doğrudan Yükleme

Yukarıdaki kaynak kod derleme adımları sizin için karmaşık geldiyse, doğrudan derlenmiş hazır imajları kullanarak saniyeler içinde kurulumu tamamlayabilirsiniz. Bu yöntem için sadece esptool aracı veya grafiksel bir arayüz programı yeterlidir.

Öncelikle projenin resmi deposundan gerekli olan iki farklı binary (.BIN) dosyasını bilgisayarınıza indirin:

Bu iki dosyayı ESP8266’ya doğru bellek adresleriyle yükledikten sonra doğrudan test aşamasına geçebilirsiniz. Eğer ESP8266 veya NodeMCU kartlarına ilk kez yazılım yüklüyorsanız, temel kavramlar için sitemizdeki başlangıç rehberlerine göz atabilirsiniz.

esptool.py ile Komut Satırından Yükleme

Birçok basit grafiksel yükleme aracı birden fazla .BIN dosyasını aynı anda farklı adreslere yazma konusunda hata verebilir. Bu nedenle en güvenli ve profesyonel yöntem, Python tabanlı esptool.py aracını terminalden kullanmaktır.

esptool kullanabilmek için öncelikle bilgisayarınızda Python kurulu olmalıdır. Python kurulduktan sonra işletim sistemi fark etmeksizin terminale şu komutu yazarak esptool kütüphanesini hızlıca yükleyebilirsiniz:

pip install esptool

Kurulum tamamlandıktan sonra, terminal ekranında indirdiğiniz .BIN dosyalarının bulunduğu dizine geçiş yapın ve aşağıdaki komut şablonunu çalıştırın:

esptool.py --port ESP8266_BAGLI_PORT write_flash -fm <flash_modu> 0x00000 firmware.bin

Bu komut yapısını avrcraft projesi için özelleştirilmiş ve gerçekçi değerlerle yapılandırırsak şu şekilde olacaktır:

esptool.py --port /dev/cu.usbserial-24100 write_flash -fm dio 0x00000 image.elf-0x00000.bin 0x10000 image.elf-0x10000.bin

Komutta dikkat etmeniz gereken en önemli parametreler, ESP8266’nın bağlı olduğu aktif port adı ve flaş modudur (flash-mode). Çoğu modern ESP8266 modülü dio modunu kullanır; eğer yazma işleminden sonra kart başlamazsa qio modunu deneyebilirsiniz.

  • dio (Dual I/O): ESP32 ve ESP8266 ESP-12 serisi (>= 4 MByte Flash barındıran kartlar) için önerilir.
  • qio (Quad I/O): ESP8266 ESP-01/07 (512 KB – 1 MB Flash barındıran eski kartlar) için uygundur.
  • dout (Dual Output): ESP8285 tabanlı kompakt çipler için tercih edilir.
NodeMCU PyFlasher veya Alternatif Arayüzlerle Yükleme
NodeMCU PyFlasher ESP8266

Eğer PyFlasher gibi sadece tek bir dosya seçmeye izin veren görsel araçlar kullanmak isterseniz, iki ayrı .BIN dosyasını tek bir imaj halinde birleştirip 0x00000 adresine tek seferde yazdırmanız gerekir. Bu birleştirme (binary merging) işlemini kolayca yapabilmek için geliştirilmiş esp32_binary_merger gibi GitHub projelerinden yararlanabilirsiniz. Ancak terminal üzerinden doğrudan esptool çalıştırmak her zaman daha az hata riski taşır ve pratiktir.

Yükleme işlemi başarıyla bittikten sonra, bilgisayarınız veya telefonunuzun Wi-Fi listesinden ESP ile başlayan ağa bağlanın. Ardından tarayıcınızdan varsayılan IP adresi olan 192.168.4.1 adresine gidin. Artık Minecraft istemcinizi (Launcher) açarak doğrudan bu IP adresi üzerinden sunucuya giriş yapabilirsiniz!

Son Görüntüler ve Oynanış Videosu

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.