Merhaba arkadaşlar,
Bu rehber serimizde kraizy.tgz dosyalarını kullanarak sıfırdan metin2 server files geliştireceğiz.
Bu rehber serisinde anlatacaklarım biraz daha ileri seviye bilgi birikimine sahip olanlar içindir. Daha önce bu işlerle uğraşmadıysanız Metin2 Geliştirici Eğitimi Video Serisine bakabilirsiniz.
İleri seviye bilgi gerekeceğinden dolayı videolarda anlattıklarımı dikkatle dinler ve adım adım ilerlerseniz bi sorun yaşayacağınızı düşünmüyorum.

Neden böyle bi rehber hazırlıyorum?
:disney-is-frozen6:

  • Günümüz fileslerinde çok fazla sistem eklentileri olduğu için çoğu kişi altyapı server files arayışına girdi. Piyasada altyapı filesleri bolca bulunmakta. Fakat ben sıfırdan ana dosyaları kullanarak altyapı filesi hazırlamayı göstereceğim.
  • Server files nasıl hazırlanır, source dosyaları nasıl build edilir, source dosyaları nasıl güncellenir, makefile hataları nasıl düzeltilir, db hataları nasıl düzeltilir. Bunları öğreneceğiz.
  • Gerçekten bu işlerle uğraşmak isteyenler için ileri seviye bi rehber serisi olacak.
  • Seride altyapı filesi bitirdikten sonra MMO Tutkunları Altyapı Filesi olarak yayına sunulacak. Detaylar: MMO Tutkunları Altyapı Filesi Hazırlama Hakkında

Yapılacaklar Listesi
  • Kraizy.tgz dosyalarını kullanarak game ve db build edilecek. Bunun için freebsd kurulumu gösterilecek. (bitti)
  • ServerFiles hazırlanacak ve derlediğimiz game ve db dosyaları ile oyunu açmaya çalışacağız. (bitti)
  • Client'in Visual Studio 2019 sürümünde build edilebilmesi için Extern güncellemesi ve kaynak kodlarında düzenlemeler yapılacak. (bitti)
    • boost 1.43 -> 1.73.0
    • devil 1.6.1 -> 1.8.0
    • cryptopp 5.6.1 -> cryptopp 8.2.0
    • libjpeg-6b -> libjpeg-9d
    • lzo-2.03 -> lzo-2.10
    • python 2.2 -> python 2.7
  • Oyuna Giriş yapabilmek için pack ve client dosyaların ayarlanması. (bitti)
  • Oyunu başlatmak ve kapatmak için shell scriptlerini yazmak. (bitti)
  • Temizlik için shell scriptini yazmak. (bitti)
  • Server'in güncel freebsd sürümlerinde build edilebilmesi için. Extern güncellemesi, gereksiz eklentilerin kaldırılması (serverkey, gtest vs.) ve kaynak kodlarında düzenlemeler yapılacak. (bitti)
    • boost 1.4.3 -> 1.73.0
    • devil 1.6.1 -> 1.7.8
    • cryptopp 5.6.1 -> cryptopp 8.2.0
    • lzo-2.0.3 -> lzo-2.10
    • gcc4 -> gcc9
  • Server files için mysql80 ve mariadb desteği getirilecek. Tablolar bunlara göre düzenlenecek. (bitti)
  • Güvenlik açıklarını kapatmak (bitti)
  • Source warningleri çözülecek (bitti.)
    • DB (bitti)
    • Game (bitti)
  • Ekstra CONFIG'lerin ayarlanması. (bitti)
  • Client ve Server Bütünlüğü kontrolü. (Bitti)
  • Server files tablolarının rahatça kurulması için shell scripti yazılacak. (bitti)
  • Firewall ayarlarının oluşturulması için shell scripti yazılacak. (hazırlanıyor..)
  • Server filesin belirli zaman aralıklarında yedeklenmesi için shell scripti yaz
  • Veritabanının belirli zaman aralıklarında yedeklenmesi için shell scripti yaz
  • Yedeklenen dosyaları geri yüklemek için yönetim scriptleri
  • Server filesi yönetmek için yönetim scripti (oyunu açma, yedek aldırma vs tüm işlemler toplu bir hale getirilecek)
  • Diğer projeler çıkan warninglerin çözümü (libsql vs)
  • Gereksiz kodları kaldırma girişimi 2. adım (hackshield, xtrap vs.)
  • FreeBSD 13.0'a geçiş ve Externlerin güncellenmesi

:disney-is-frozan12:

Yeni bölümlere erkenden erişmek ve bazı özel bölümler için bu rehber serisini udemy kursuna kayıt olarak da takip edebilirsiniz: Online Oyun Geliştirme Eğitimi (MMORPG)

Rehber için indirmeniz gereken dosyalar
Kraizy.tgz:
Alıntılarda özel içerikler gözükmez.

Freebsd 12.2:
Alıntılarda özel içerikler gözükmez.
(12. bölümden sonra kullanılacak.)

Freebsd 9.3:
Alıntılarda özel içerikler gözükmez.

Freebsd kurulumu yapmak istemiyorsanız hazır vdi indirebilirsiniz: Freebsd 9.3 32bit Hazır Vdi
Freebsd 9.3'de Kullanacağımız Paketler;


Notepad++:
Linkleri görebilmek için giriş yap veya kayıt ol.

Putty:
Linkleri görebilmek için giriş yap veya kayıt ol.

Fillezila veya Winscp;
  1. Filezilla:
    Linkleri görebilmek için giriş yap veya kayıt ol.
  2. Winscp:
    Linkleri görebilmek için giriş yap veya kayıt ol.

Navicat veya Mysql Workbench;
  1. Navicat:
    Linkleri görebilmek için giriş yap veya kayıt ol.
  2. Mysql Workbench:
    Linkleri görebilmek için giriş yap veya kayıt ol.

Visual Studio 2019:
Linkleri görebilmek için giriş yap veya kayıt ol.
(c++ game development paketini kurmalısınız.)

Server Filesi hazırlamak için gerekli dosyalar:
Alıntılarda özel içerikler gözükmez.

Client:
Alıntılarda özel içerikler gözükmez.


Extern için gereken dosyaların nereden indirileceğini videolarda gösteriyorum. Başlayabilmek için bunları indirmeniz yeterlidir.


Müfredat (Link eklenen bölümler yayınlanmıştır. Tıklayarak başlayabilirsiniz.)

Metin2 server source 64bit build etmek için şu konuya bakabilirsiniz: Metin2 Server Source 64bit Build

Client warningleri çözümü (@Trashy 'e teşekkürler): Çözüldü - VS 2019 Güncellemesi Karşılaştığım Hatalar ve Warningler
Çözüldü - Client Build libjepg Warning

Şu an için planlanan bölümler bunlardır. Metin2 Geliştirici Eğitimi Video Serisi gibi uzun soluklu olmayacaktır. Mümkün olduğunca kısa bi seri olacak.

İlginizi çekebilecek konular;
Metin2 ID ve Şifre Otomatik Girmesini Sağlamak
Metin2 Dead-die fonksiyonunu ekleme
Source dosyalarından gereksiz/kullanılmayan kodları kaldırmak isteyenlere liste ve birkaç bilgi (@Denizeri24)

Seriyi bitirdikten sonra artık kendinize ait filesiniz ve kaynak kodlarınız olmuş olacak. Kendi oyun türünüze göre düzenlemelere devam etmeniz gerekecek. Oyunda sıklıkla karşılayacağınız problemlerin çözümü için aşağıda verdiğim konulara bakabilirsiniz.
Metin2 Toplu BK Okuma Fix
NPC'den 0 Yang'a İtem Alamama Sorunu Çözümü
Metin2 Beceri Kitabı Okuma Süresini Kaldırmak
Metin2 Beceri Kitabı Okuma Süresini Değiştirmek
Metin2 İtem Yansıtırken İç Görü Küresini Kapatma
Metin2 Dead-die fonksiyonunu ekleme
FreeBSD 12.1 .vdi

Karşılaşabileceğiniz syserr hataları için çözümler
'LoginWindow' object has no attribute 'timeOutMsg' Çözümü

:disney-is-frozen23::disney-is-frozen29::b.m.z12:

thanks
 
Geri
Üst