ESP8266 ile Minecraft Sunucusu Kurmak

Aslında Minecraft sunucusu ve ESP8266 kelimelerine yan yana getirmek biraz ilginç olabilir. Fakat avrcraft isimli bu proje bu gerçeği hayatımıza getiriyor. Minecraft bir çoğunuzun bildiği gibi, bloklardan oluşan, macera, yaratıcılık, hayatta kalma gibi modları olan açık dünya bir oyundur.

ESP8266 ile Minecraft Sunucusu Kurmak minecraft sunucusu,esp8266 minecraft server

Minecraft birden fazla kişiyle oynanabilmesi için doğal olarak sunuculara ihtiyaç duyar, bu sunucular; Linux, Microsoft hatta MacOS işletim sistemlerine sahip olabilirler. Fakat yaygın olarak Linux sunucular kullanılmaktadır. Basit bir şekilde ifade etmek gerekirse, oynanılan haritanın büyüklüğü, oynayacak oyuncu sayısı gibi etmenler sunucunun gerektirdiği işlemci gücünü, RAM(bellek) boyutunu, depolama alanını doğrudan etkiler.

En düşük sistem gereksinimleri ile açılabilecek Minecraft sunucusu için önerilen sistem bilgileri bu şekildedir:

GereksinimlerOyuncu Sayısıİşlemci(CPU)Bellek(RAM)Depolama
Temel1-4Intel Core 2 Duo ya da AMD Athlon 64 x21GBEn az 150Mb
Önerilen5-10Intel Core 2 Duo ya da AMD Athlon 64 x22GBEn az 150Mb
İyi10+Intel Core i5-4690 ya da AMD Ryzen 5 16004GBEn az 150Mb

Tabii ki daha çok performans gerektiren sunucular için sistem gereksinimleri değişebilir. Minecraft sunucuları çoğunlukla Java mimarisine sahiptir. Yani sunucuya/oyuna bağlanmak için Java tabanlı bir oyun başlatıcı kullanılır.

ESP8266 ve Minecraft Sunucusu

Yukarıda belirttiğimiz sistem gereksinimlerini göz önüne alınca, aklınız karışmaya başlamış olabilir. Sonuçta ESP8266, 32-bit Xtensa L106 işlemcili ve 80MHz saat hızına sahiptir ayrıca 128Kb belleğe(RAM) ve 4Mb flash(depolama) belleğe sahiptir. Üstteki sistem gereksinimlerini ile yan yana koyunca neredeyse binlerce hatta milyonlarca kat oluşmakta. ESP8266, 32-bit işlemciye sahip olsada avrcraft projesi 8-bit AVR mikrodenetleyicileri desteklemekte, ESP8266 ile kullanılmasının kolay yanı Wi-Fi ile birlikte gelmesidir ayrıca bu desteğin sebebi avrcraft modülünün ESP8266 için tekrar hazırlanmasıdır.

Neler Vaat Ediyor?

.C dosyası, temel dumbcraft araç setini içerir. Dış dünya ile herhangi bir iletişim modunu desteklemediğinden, tüm iletişimlerin çeşitli işlevler aracılığıyla yapılması gerekir.

Neler çalışıyor:

  • Windows veya Linux’ta stok Minecraft 1.4.2 Sunucusu
  • Birden fazla oyuncu
  • Etrafta koşmak
  • Blokları güncelleme
  • Ana harita parçası yükleme(chunk)
  • Sohbet

Neler çalışmıyor:

  • Gündüz gece döngüsü
  • MOB’lar(yaratık ve hayvanlar)
  • Fizik
  • Animasyonlar
  • Üretim(crafting)
  • Düşen Bloklar(kum gibi)
  • Madencilik
  • Blokları yerleştirme
  • Nether(cehennem)
  • End
  • Kızıl taş(redstone)
  • Su
  • Lav
  • Hemen hemen her şey.

Çalışan ve çalışmayan özellikleri görünce, ESP8266 gibi bir donanımla en fazla nelerin yapılabileceğini görmüş oluyoruz. Bu projenin deneysel ve eğlence amaçlı olması sebebiyle, çalışan ve çalışmayan modüllerin pekte önemi olmadığını görüyoruz. Kısacası klasik bir minecraft sunucu ile kıyaslanmayacak özelliklere sahiptir

ESP8266’ya avrcraft Firmware’si Yüklemek

Burada izleyebileceğiniz bir kaç adım var, eğer kaynak koduna müdahale etmek istiyorsanız make komutunu kullanmanız gerekiyor. Eğer kaynak koduna müdahale etmeden yüklemek istiyorsanız esptool veya esptool GUI‘lerin birini kullanabilirsiniz. Burada kaynak koduna dokunmadan doğrudan .BIN dosyalarını yüklemek her zaman daha kolay ve hızlıdır. Wi-Fi ayarlarını iki işlemde de kolay bir şekilde yapabilirsiniz.

Kaynak Kodunu Düzeltip Yükleme

Verilen kod ve kütüphanelerin çoğu, Debian benzeri bir Linux dağıtımı düşünülerek yazılmıştır. Diğer platformlarda inşa etmek istiyorsanız hayal gücünüzü kullanmanız gerekecek. Çoğu kişi bunu OSX ve Win 7/8’de yaptı.

Aşağıdakilere ihtiyacınız olacak:

  • Espressif toolchain esp82xx-serisi
  • Libusb 1.0 (sudo apt-get install libusb-1.0-0-dev)
  • GNUMake
  • GNU Compiler Collection

Önkoşulları ve SDK’yı yüklemek

Önkoşullar (Debian, Mint, Ubuntu):

sudo apt-get update
sudo apt-get install -y make gcc g++ gperf install-info gawk libexpat-dev python-dev python python-serial sed git unzip bash wget bzip2 libtool-bin

Bu, SDK’yı ~/esp8266’ya yükleyecektir – ESP8266 SDK için varsayılan konum. Bu yalnızca 64 bit x86 sistemlerinde çalışır ve yalnızca Linux Mint ve Ubuntu’da doğrulanmıştır. Kurulum yaklaşık 18 MB’dir ve yaklaşık 90 MB disk alanı gerektirir.

mkdir -p ~/esp8266
cd ~/esp8266
wget https://github.com/cnlohr/esp82xx_bin_toolchain/raw/master/esp-open-sdk-x86_64-20200810.tar.xz
tar xJvf esp-open-sdk-x86_64-20200810.tar.xz

SDK’nın bazı sürümleri biraz sorunludur, ör. 1.5.2’den büyük SDK sürümleriyle Espressif, IRAM yönetimini değiştirdi, bu nedenle bazı projeler boyut kısıtlamalarına uymaya başladı ve derlenemedi. Ayrıca bazı SDK’lar farklı başlangıç verileri kullanır. Bu nedenle makefile, SDK’nın özelleştirilmiş bir sürümünü kullanacak şekilde ayarlanmıştır ve kanıtlanmış ilk verilerle birlikte gönderilir.

SDK’yı Belirtme

SDK’nızın nerede olduğunu bilmesini sağlamanın birçok yolu vardır. DEFAULT_SDK’yı ./user.cfg dosyasında düzenleyerek belirli SDK yolunuzu yansıtabilir veya bir kabuk değişkenini daha iyi tanımlayabilirsiniz.

# ~/.bashrc ya da benzerine bunu ekleyin
export ESP_ROOT=/path/to/sdk

.bashrc, .profile veya kabuğunuz tarafından kullanılan her neyse. Bu şekilde, birçok yeni esp82xx projesine başlasanız bile değişiklik kalıcı olacaktır.

Konumu, aşağıdakileri yapmak için bir argüman olarak da iletebilirsiniz:

make all ESP_ROOT=path/to/sdk

Projeye Başlama

esp82xx tabanlı yeni bir projeye başlamak oldukça kolaydır:

mkdir my_new_esp_project
cd my_new_esp_project
git clone --recursive https://github.com/cnlohr/esp82xx
cp esp82xx/Makefile.example Makefile
make project

Alternatif olarak, esp82xx’i projenizden bir alt modül olarak aşağıdaki gibi ekleyebilirsiniz:

git add submodule https://github.com/cnlohr/esp82xx
cp esp82xx/Makefile.example Makefile
make project

Yukarıdaki komutlardan sonra, SDK’yı belirtmeniz şartıyla, temel dosya yapısı yerinde olmalıdır. Çoğu dosya, ./esp82xx/ içindeki dosyalara karşı sembolik bağlantılar olacaktır. Bu dosyaları veya ./esp82xx/ içindeki herhangi bir şeyi düzenlemeyin. Dosyaları üst düzey dizinlere kopyalamayı ve gerektiğinde kopyaları düzenlemeyi tercih etmelisiniz. yani WebUI’de yazı tipini değiştiren bir CSS satırı eklemek istiyorsanız, sembolik bağlantının üzerine yazarak ./esp82xx/web/page/index.html dosyasını ./web/page/ dizinine kopyalayın. Ardından düzenlemelerinizi yapın.

Espressif araç zincirinin konumu gibi şeyleri belirtmek için user.cfg dosyasını en üst düzeyde düzenleyin. user.cfg dosyası, en önemli yapılandırma değişkenlerini belirtir.

Firmware Yükleme

Her şeyi doğru yaptıysanız, esp’inizin flashlanması işe yarayacaktır. Sadece 3,3 V kullanan bir USB – seri adaptöre bağlayın (ESP’nizi 3,3 V’tan daha yüksek voltajlarda bozarsınız) ve programlama moduna yerleştirin.

make burn
make burnweb  # programlama modunu burada da yapın

ve ESP’niz kullanmak için hazırdır. XXXX’in rastgele bir kod olduğu ESPXXXX veya benzeri adlı kendi WiFi Erişim Noktasını oluşturması gerekir. Artık tarayıcınızdaki web arayüzü üzerinden sayfa verilerini yapılandırabilir ve yazabilirsiniz (esp’nin ağına bağlıyken veya sizinkine bağlıyken). Firmware ve sayfa verilerini yüklemek için de hedefler var:

make netburn IP=192.168.4.1  # varsayılan IP, ESP'niz neye ayarlanmışsa onu değiştirin
make netweb IP=192.168.4.1

.BIN Olarak Yükleme

Yukarıda ki işlemler karışık geldiyse doğrudan buradaki işlemleri uygulayabilirsiniz. Burada sadece bir kaç satır terminal kodu ya da bir kaç tıklama ile GUI üzerinden yükleme yapabilirsiniz, ayrıca doğrudan make işlemleri ile düzenleme yapıpta yükleme yapabilirsiniz.

Öncelikle buradan gerekli 2 farklı .BIN dosyasını indirin.

Bu iki .BİN dosyasını ESP8266’ya yükleyerek doğrudan kullanıma ve testlere geçebilirsiniz. Eğer flashlama konusunda yeniyseniz buradaki yazımıza bakmanızı öneriyorum.

esptool ile Firmware Yükleme

Bazı GUI’ler birden fazla .bin dosyasını yüklemeyi ya da birleştirmeye yapamaz bu yüzden en kolay yol esptool.py ile terminal üzerinden yükleme yapmaktır.

esptool.py’yi kullanmak için öncelikle bilgisayarınızda Python kurulu olması gerekir, ardından esptool’u istediğiniz gibi kullanabilirsiniz, her hangi bir işletim sistemi kısıtlaması bulunmamakta.

Python’u bilgisayarınıza kurduktan sonra bu komutu çalıştırarak esptool’u kolay bir şekilde kurabilirsiniz.

 pip install esptool

Kurulum tamamlandıktan sonra boş bir terminal penceresi açıp aşağıdaki gibi komutları girin:

esptool.py --port ESP8266-BAĞLI-OLDUĞU-PORT write_flash -fm <flash-modu> 0x00000 firmware.bin

Bu kısımları bu projeye göre doldurmak istersek şöyle bir hale gelir:

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

Burada dikkat etmeniz gerekenler ESP8266’nın bağlı olduğu port ve flash-modu’dur. Çoğu ESP8266 dio modunu kullanır eğer sorun yaşıyorsanız, qio modunu kullanabilirsiniz. Terminalini bu .bin dosyalarının indiği yerde açarsanız daha kolay bir şekilde işlemleri yapabilirsiniz.

  • dio: ESP32 ve ESP8266 ESP-12 (>=4 MByte)
  • qio: ESP8266 ESP-01/07 (512 kByte) 
  • dout: ESP8285
NodeMCU PyFlasher ya da Farklı Bir GUI ile Firmware Yükleme
ESP8266 ile Minecraft Sunucusu Kurmak minecraft sunucusu,esp8266 minecraft server

Burada tek bir firmware seçme şansınız olduğunu bu projede bu programı kullanmak için iki .BIN dosyasını birleştirip 0x00000 adresine yazdırmanız gerekir, bu birleştirme işlemini kolaylaştıran bu github projesine bakabilirsiniz, fakat doğrudan esptool ile terminal üzerinden yapmanız daha kolay olacaktır.

Kurulum tamamlandıktan sonra, wifi ağlarından ESPxxxx olarak gelen ağa bağlanın ve IP adresine(varsayılan 192.168.4.1) göre Minecraft Launcher’ı ile oyuna giriş yapın.

Son Görüntüler