🎉 AÇILIŞA ÖZEL: "LEMON10" koduyla tüm sistem ve files alımlarında %10 İndirim!
LemonHaze
Rehber & Kurulum 07.09.2026 5 dk okuma 83 görüntülenme

Server Source Build Alma Rehberi

L
LemonHaze Metin2 Sistem & Altyapı Mimarı

Bu rehber, Metin2 geliştiriciliğine yeni başlayan ve source build konusunda sorun yaşayan kişiler için hazırlanmıştır. Amacımız, source dosyalarında yaptığımız değişiklikleri build ederek oyuna aktarmak ve oluşan yeni game ile db dosyalarını sunucumuza kurmaktır.

Metin2 Source Build Rehberi

Merhaba,

Bu rehber, Metin2 geliştiriciliğine yeni başlayan ve source build konusunda sorun yaşayan kişiler için hazırlanmıştır.

Amacımız, source dosyalarında yaptığımız değişiklikleri build ederek oyuna aktarmak ve oluşan yeni game ile db dosyalarını sunucumuza kurmaktır.

Build Nedir?

Öncelikle build işleminin ne olduğunu anlamamız gerekiyor.

Metin2'nin source (kaynak) dosyaları üzerinde herhangi bir değişiklik yaptığımızda, yaptığımız değişikliklerin oyun içerisinde çalışabilmesi için source dosyalarını build etmemiz gerekir.

Örneğin:

C++ source kodunda bir sistem değiştirdiniz → Build gerekir.
Game veya DB source koduna yeni bir özellik eklediniz → Build gerekir.
Bir fonksiyonda değişiklik yaptınız → Build gerekir.

Ancak her değişiklik için build yapılmaz.

Örneğin bir itemin iconunu değiştirmek istiyorsanız source dosyalarında herhangi bir değişiklik yapmadığınız için build yapmanıza gerek yoktur. Gerekli pack dosyasını değiştirmeniz yeterlidir.

Kısacası:

Source dosyalarında değişiklik yaptıysanız build yapmanız gerekir.

FreeBSD Hazırlığı

Build işlemine başlamadan önce kullandığınız FreeBSD sisteminde gerekli paketlerin kurulu olması gerekir.

Bunun için iki farklı yolunuz var.

Yol – Mevcut FreeBSD'yi hazırlamak

Hali hazırda kullandığınız FreeBSD sürümüne gerekli paketleri kendiniz yükleyebilirsiniz.

Bununla ilgili rehber:

Build ederken gmake komutu çalışmıyorsa yapılması gerekenler

Yol – Hazır FreeBSD kullanmak

Mevcut FreeBSD sürümünüzü kullanmak yerine gerekli ek paketleri hazır olarak içerisinde bulunduran FreeBSD sürümünü kullanabilirsiniz.

Hazır FreeBSD sürümü

Bu iki yöntemden birini seçip FreeBSD sistemimizi build işlemine hazır hale getirdikten sonra source build işlemine geçebiliriz.

Source Dosyalarını Sunucuya Atmak

İnternetten indirdiğiniz server files içerisinde source dosyaları genellikle iki farklı şekilde bulunur.

Dosya isimlerinin LemonHaze olduğunu varsayalım.

Yöntem – Source dosyaları ZIP içerisindeyse

Örneğin elimizde:

LemonHaze.tar.gz

isimli bir arşiv olduğunu düşünelim.

Arşivin içerisinde:

LemonHaze

isimli klasör bulunuyor ve bu klasörün içerisinde:

source

extern

klasörleri bulunuyor.

Bazı fileslerde ise arşivin içerisinde doğrudan:

source

extern

klasörleri bulunabilir.

Her iki durumda da yapacağımız işlem aynıdır.

Yöntem – Source klasör olarak verildiyse

Bazı fileslerde ise ZIP dosyası bulunmaz.

Bunun yerine doğrudan:

source

extern

klasörleri verilir.

Bu durumda arşiv açmamıza gerek yoktur.

Bu iki klasörü doğrudan oluşturacağımız source klasörünün içerisine atabiliriz.

/usr/src İçerisinde Source Klasörü Oluşturmak

FTP programı olarak FileZilla kullanabilirsiniz.

FileZilla ile:

/usr/src

klasörüne gidiyoruz.

Burada yeni bir klasör oluşturuyoruz.

Bu rehberde klasörümüzün adını:

LemonHazesrc

olarak kabul edeceğiz.

Sonuç olarak source dosyalarımızın ana yolu:

/usr/src/LemonHazesrc

olacak.

ZIP Dosyası Kullanıyorsanız

Eğer source dosyalarınız:

LemonHaze.tar.gz

şeklinde bir arşiv içerisindeyse bu dosyayı:

/usr/src/LemonHazesrc

içerisine atıyoruz.

Daha sonra PuTTY'e bağlanıyoruz.

Öncelikle oluşturduğumuz klasöre giriyoruz:

cd /usr/src/LemonHazesrc

Arşivi çıkartıyoruz:

tar zxvf LemonHaze.tar.gz

Bir süre bekledikten sonra arşivin içerisindeki:

source

ve

extern

klasörlerinin çıkartıldığını göreceksiniz.

Arşiv artık gerekli olmadığı için isterseniz silebilirsiniz:

rm -rf LemonHaze.tar.gz

Dikkat: rm -rf komutu dosya ve klasörleri doğrudan siler. Komutu çalıştırmadan önce doğru dizinde olduğunuzdan emin olun.

Source Klasörleri Zaten Hazırsa

Eğer size:

source

ve

extern

klasörleri ZIP olmadan doğrudan verildiyse işlem daha basittir.

Bu iki klasörü FileZilla üzerinden:

/usr/src/LemonHazesrc

içerisine atmanız yeterlidir.

Build İşlemini Başlatmak

Artık source dosyalarımız hazır.

PuTTY'e geçiyoruz ve source klasörüne giriyoruz:

cd /usr/src/LemonHazesrc/source

Burada önce eski build dosyalarını temizliyoruz:

gmake clean

Ardından build işlemini başlatıyoruz:

gmake all

Bundan sonra source dosyalarının derlenmesi başlayacaktır.

Build işleminin tamamlanması, kullandığınız source ve sunucunun donanımına göre bir süre alabilir.

Bu işlem ile /usr/src/LemonHazesrc/source yolu üzerinden full build yapmış oluyoruz.

Eğer yalnızca belirli bir bölüm üzerinde build yapmak istiyorsanız, ilgili klasörün yoluna göre işlem yapmanız gerekir.

Build Sonucunda Oluşan Game ve DB

Build işlemi başarılı bir şekilde tamamlandığında:

/usr/src/LemonHazesrc/Source/game

klasörü içerisinde:

game_xxxx

benzeri bir dosya,

/usr/src/LemonHazesrc/Source/db

klasörü içerisinde ise:

db_xxxxx

benzeri bir dosya oluşacaktır.

Burada:

game_xxxx → Build edilmiş game

db_xxxxx → Build edilmiş db

dosyamızdır.

Game ve DB Dosyalarının İsimlerini Değiştirmek

Oluşan dosyaların isimlerini standart hale getiriyoruz.

game_xxxx

dosyasının ismini:

game

olarak değiştiriyoruz.

db_xxxxx

dosyasının ismini:

db

olarak değiştiriyoruz.

Böylece elimizde:

game

ve

db

isimli build edilmiş dosyalarımız bulunuyor.

Game Dosyasını Paketlemek

PuTTY üzerinden game klasörüne gidiyoruz:

cd /usr/src/LemonHazesrc/Source/game

Ardından game dosyasını arşivliyoruz:

tar cvzf game.tar.gz game

Bunun sonucunda:

game.tar.gz

isimli arşiv oluşacaktır.

DB Dosyasını Paketlemek

Şimdi DB klasörüne geçiyoruz:

cd /usr/src/LemonHazesrc/Source/db

DB dosyasını arşivliyoruz:

tar cvzf db.tar.gz db

Bunun sonucunda:

db.tar.gz

isimli arşiv oluşacaktır.

Yeni Game ve DB Dosyalarını Sunucuya Atmak

Artık elimizde iki adet arşiv var:

game.tar.gz

db.tar.gz

Bu iki dosyayı FileZilla ile:

/usr/game/share

klasörünün içerisine atıyoruz.

Eski Game ve DB Dosyalarını Silmek

PuTTY üzerinden:

/usr/game/share

klasörüne giriyoruz:

cd /usr/game/share

Burada mevcut sunucumuzun kullandığı:

game

ve

db

dosyaları bulunuyor.

Yeni build ettiğimiz dosyaların eski dosyaların yerini alması için eski dosyaları siliyoruz.

Eski game dosyasını silmek için:

rm -rf game

Eski db dosyasını silmek için:

rm -rf db

ÖNEMLİ: Bu dosyaları silmeden önce mutlaka yedek almanızı öneririm. Bir sorun yaşamanız durumunda eski game ve db dosyalarına geri dönebilmeniz önemlidir.

Yeni Game ve DB Dosyalarını Çıkartmak

Şu anda:

/usr/game/share

içerisinde:

game.tar.gz

ve

db.tar.gz

dosyalarımız bulunuyor.

Game dosyasını çıkartıyoruz:

tar zxvf game.tar.gz

DB dosyasını çıkartıyoruz:

tar zxvf db.tar.gz

İşlem tamamlandığında yeni build ettiğimiz:

game

ve

db

dosyaları /usr/game/share içerisinde yerini almış olacak.

İşlemi Tamamlamak

Build edilmiş yeni game ve db dosyalarımız artık sunucumuza yerleştirilmiş durumda.

Son olarak sunucuyu yeniden başlatıyoruz:

reboot

Sunucu yeniden başladıktan sonra build ettiğimiz yeni game ve db dosyaları kullanılacaktır.

Böylece source üzerinde yaptığımız değişiklikleri build edip sunucumuza aktarmış olduk.

Kısaca İşlem Sırası

FreeBSD'yi gerekli paketlerle hazırlıyoruz.
Source dosyalarını /usr/src/LemonHazesrc içerisine atıyoruz.
Source klasörüne giriyoruz:

cd /usr/src/LemonHazesrc/source

Temizlik yapıyoruz:

gmake clean

Build ediyoruz:

gmake all

Oluşan game_xxxx dosyasını game, db_xxxxx dosyasını db olarak yeniden adlandırıyoruz.
Game'i paketliyoruz:

tar cvzf game.tar.gz game

DB'yi paketliyoruz:

tar cvzf db.tar.gz db

game.tar.gz ve db.tar.gz dosyalarını /usr/game/share içerisine atıyoruz.
Eski game ve db dosyalarını yedekleyip siliyoruz.
Yeni dosyaları çıkartıyoruz:

tar zxvf game.tar.gz

tar zxvf db.tar.gz

Sunucuyu yeniden başlatıyoruz:

reboot

İşlem tamamdır.

Bu rehber sayesinde source dosyalarında yaptığınız değişiklikleri build ederek game ve db dosyalarına dönüştürebilir ve sunucunuza aktarabilirsiniz.

Modern C++20 Altyapı

Rehberde anlatılan tüm optimizasyonlar ve bellek korumaları LemonHaze hazır files paketlerinde test edilip uygulanmıştır.

Files Çözümlerini İncele