Metin2 Geliştirici Eğitimi Serisinde Kullandığım Files

Whistle

Ruhsuz Filozof
Site yetkilisi
Kurucu
Kurumsal Üye
Geliştirici
Yardımsever Üye
Mesaj
11.567
Çözümler
551
Beğeni
12.246
Puan
5.915
Ticaret Puanı
2
Merhaba arkadaşlar,
Metin2 Geliştirici Eğitimi serisinde kullandığım filesi orijinal konusundaki linkler silindiği için paylaşıyorum.
Tabii ki birebir olduğu gibi kopyalayıp tekrardan yüklemedim. 2-3 gündür files üzerinde yoğun bir şekilde çalışarak bazı düzenlemeler yaptım.

Filesin Geçmişi ve Kaynak Kodları Altyapısı Hakkında Bilgilendirme
Server altyapısı: mainline_released
Client altyapısı: novaline

Vanilla tarafından Vanilla Core geliştirildi ve genel kullanıma açıldı.
Maxmi tarafından Vanilla Core kaynak kodları kullanılarak bu files geliştirildi ve altyapı olarak sunuldu. (Bilinen son yayınlanan sürüm: maxmiblackforce-v.3.6)
Daha sonra frozen bu fileste geliştirmeler yapıp paylaşıma sundu.

Metin2 Geliştirici Eğitimi serisinde bu filesi kullanıyordum. Yeni başlayanlar files konusunda çok sıkıntı yaşadığı için eğitim serisini daha rahat takip edebilmeleri adına bu filesi paylaşacağım. Kısacası bu files son olarak benim elimden geçip halkın kullanımına yeniden sunulmuştur. :)

Not: Filesin derlenebilmesi için gereken freebsd ve visual studio sürümleri güncellenmemiştir. O dönem yayınlandığı gibidir. Sadece göze çarpan sorunlar düzeltildi ve optimizasyon yapıldı. Yapılanlar listesine geçmeden önce source derlenebilmesi için gerekenlerin listesini veriyim.

Not2: Kafa karışıklığı nedeniyle bu notu ekleme gereği duydum. Bu konuda paylaşılan dosyalar Metin2 Sıfırdan Altyapı Server Files Hazırlama Rehberi 'nde hazırlanan dosyalar değildir. 2016 yılında çekimine başladığım Metin2 Geliştirici Eğitimi serisinde kullandığım filesin dosyalarıdır. Zaten konu başlığında belirtmiştim. Eğer sıfırdan altyapı hazırlama rehberini takip ediyorsanız rehberin ana konusunda yazılanları takip ediniz.

Server source derlemek için gereken sürüm: freebsd 9.3 32bit
Client source derlemek için gereken sürüm: Visual Studio 2013 (visual studio 2019 ile build etmek isterseniz platform toolsetten v120'yi seçiniz. Varsayılan olarak seçilidir. Önümüzdeki rehberlerde vs sürümünü yükseltmeyi göstereceğim.)

Server filesin çalışması için.
Freebsd 9.3/10.3/11.2/12.1 (istediğiniz sürümü seçebilirsiniz. Fakat source 9.3'de build edilmektedir.)
Mysql56

Not2: Bu filesi kendinizi geliştirmek için kullanabilirsiniz. Zaten bu amaç ile paylaşıldı. Eğer bu filesi kullanarak ciddi projeler hazırlamak istiyorsanız source dosyalarının güncel sürümlerde derlenebilmesi için düzenlemeler yapmanız gerekmektedir. Bunun içinde Extern ve kaynak kodlarında değişiklikler yapmanız gerekiyor. Güncel sürümlere yükseltmeyi bilmiyorsanız Metin2 Sıfırdan Altyapı Server Files Hazırlama Rehberi 'ne göz atabilirsiniz.

Not3: 2016 yılına ait files olduğu için fazla eklenti bulunmamaktadır. Günümüzün güncel sistemleri yoktur. Altyapı olarak kullanabilirsiniz ve rahatlıkla sistem denemeleri yapabilirsiniz.

Files ve Kaynak Kodlarında Yaptığım Değişiklikler
Server Files Düzenlemeleri

  • Coreler baştan ayarlandı. Artık filesi illa /usr/game altına kurmanıza gerek yok.
  • no_txt özelliği kapatıldı. İsteyenler tekrardan aktif edebilir. (Eğitim videolarında txt üzerinden gittiğim için varsayılan kapalıdır.)
  • MySQL tablolarında yer alan sorunlar çözüldü. Oyun tarafından kullanılmayan tablolar silindi.
  • quest altındaki object klasörü silindi. Filesi kurduktan sonra make.sh yapmayı unutmayınız.
  • Başlatıcı ve Kapatıcı scriptleri baştan ayarlandı.

Source Düzenlemeleri
  • Server ve Clientin düzgün bir şekilde derlenebilmesi için düzenlemeler yapıldı. Çok yer kaplayan gereksiz dosyalar temizlendi.
  • Server src'yi visual studio ile açabilmek için düzenlemeler yapıldı. Sistem geliştirirken rahat oluyor. (En son visual studio 2019 tarafından açılmıştır.)
  • Client src, visual studio ayarları düzenlendi. (En son visual studio 2019 tarafından açılmıştır. Build için platform toolset v120 seçilidir. Sizde gözükmüyorsa visual studio 2013 kurunuz.)
  • Server tarafında makefileler güncellendi.
  • Server Extern'i yeniden yapılandırıldı.
  • Server build olurken cryptopp warningleri çözüldü.
  • Kanalların kapanmasına sebep olan güvenlik açığı kapatıldı.
  • questler için qc artık derlenebilecek.
  • proto dosyalarını okumama sorunu giderildi. (proto dosyalarını filesimize uyarlamak videosunda anlatılanlar.)
  • Orijinal konusunda dump_proto verilmiyordu. Bu filese uygun dump_proto src eklendi.

Not: Oyun içeriğinde ve questlerde değişiklik yapılmamıştır.
Sadece hata veren quest dosyaları düzenlenmiştir.

İndirme Linkleri
Cloud Mail

Toplu İndirme:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.

Client:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
(1.12 GB)
ClientSource:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
(18.3 MB)
ServerSource:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
(24.7 MB)
Server Files:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
(34.7MB)

Mega
Toplu İndirme:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.

Client:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
(1.12 GB)
ClientSource:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
(18.3 MB)
ServerSource:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
(24.7 MB)
Server Files:
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
(24.7 MB)

Kurulum Nasıl Yapılır?
Kurulumun videolu anlatımı geliştirici eğitiminde mevcuttur.
(Güncel kurulum ve source dosyalarını derleme videosu için: Online Oyun Geliştirme Eğitimi (MMORPG))
Aşağıdan da yazılı rehberi inceleyebilirsiniz.

Freebsd kurulum ve Mysql 56 kurulur.
Freebsd ve mysql kurulumunu bilmiyorsanız;
Freebsd kurulum rehberi: Oracle VM VirtualBox İle Freebsd 9.3 Kurulumu
Freebsd'ye MySQL kurulum rehberi: Freebsd 9.3 MySQL Kurulumu

Çalışma ortamı hazırladıktan sonra filesimizi çalıştırmaya geldi. İleri seviye ve yeni başlayanlar için iki ayrı kurulum seçeneği vardır.

Yeni başlayanlar: Source derlemeye girişmeden
Server files kurulumu

İndirdiğiniz dosyadan serverfilesi filezillanızdan /usr/ dizinize atınız.
Daha sonra şu komutu çalıştırınız;
Bash:
tar -zxf serverfiles.tgz

İndirdiğiniz dosyadan serverdb'yi filezillanızdan /var/db/ dizinine atınız.
Daha sonra şu komutu çalıştırınız;
Bash:
tar -zxf serverdb.tgz
Not: MySQL şifresi değişmemektedir. MySQL kurarken kullandığınız şifre ile giriş yapmalısınız. Server filesi açılması için conf.txt dosyasında yazan bilgilere göre veritabanına yeni kullanıcı hesabı oluşturmanız gerekmektedir.

Daha önce files kurmadıysanız şu videolu rehberi izleyin;


Client kurulumu
İndirdiğiniz Full Client.rar dosyası içindeki Client klasörünü herhangi bir yere çıkarın. Daha sonra pack/root'u açın. serverinfo.py kısmına kendi serverinizin ip adresinizi giriniz.
Packları açıp kapatabilmek için:
EterNexus: Metin2 Pack Açıcı: EterNexus
EPack32: Metin2 Pack Açıcı: EPack32

İşlemleri yaptıktan sonra Client/Metin2Release.exe'ye tıklayın ve başarıyla oyuna girmiş olursunuz.

İleri Seviye: Source derleyerek (Source üzerinden sistem geliştirmek istiyorsanız)
Server Source Derlemesi ve Filesin Kurulumu

Not: Server source freebsd 9.3 - 32bit sürümde çalışmaktadır. Daha yüksek sürümlerde derlemeniz için kaynak kodlarında düzenlemeler yapmalısınız.

Source derlemeye girişmeden önce şu komutları çalıştırın.
Bash:
pkg install gmake makedepend gcc python
Mysql'i kurmadıysanız şu komutu da yazınız.
Bash:
pkg install mysql56-client mysql56-server

pkg komutu çalışmıyorsa bu rehberlere göz atın:
Freebsd 9x Pkg Komutunu Çalıştırmak
Freebsd 9.3 Offline Mysql56 Kurulumu Nasıl Yapılır?

İndirdiğiniz dosyadan ServerSource klasörünü filezilladan /home/ dizinine atınız.
Daha sonra Extern dosyasını çıkartmak için ssh'ye şu komutu yazınız.
Bash:
tar -zxf Extern-server-freebsd-93.tgz

Source'yi derleyebilmek için cryptopp'u derlemeniz gerekiyor. Sırasıyla şunları yazın
Bash:
cd /home/ServerSource/Srcs/Extern/cryptopp
gmake libcryptopp.a -j6

Build işleminin tamamlanmasını bekleyin.
Daha sonra server sourceyi derlemek için şunları yazın.
Bash:
cd /home/ServerSource/Srcs/Server
gmake all

İşlemler bittiğinde game_r50060, ve db_r50060 dosyalarını elde edeceksiniz. Bunlar oyunumuzun açılması için gerekli. Bu aşamadan sonra yeni başlayanlar - server files kurulumu maddesinde anlatıklarımı takip edin.
Kendi src dosyamızı build ettiğimiz için serverfilesten game ve db dosyalarını silmemiz gerekiyor.
Silmek için komut;
Bash:
cd /usr/game/share & rm -rf game
Bash:
cd /usr/game/share & rm -rf db

Premium bilgi;
Sürekli derlediğiniz dosyayı filese atmaya uğraşmak yerine symlink oluşturabilirsiniz. Şu komutları girin.
Bash:
ln -s /home/ServerSource/Srcs/Server/game/game_r50060 /usr/game/share/game
Bash:
ln -s /home/ServerSource/Srcs/Server/db/db_r50060 /urs/game/share/db

Symlink oluşturmak yerine game_r50060 ve db_r50060 dosyasını usr/game/share içine atın ve isimlerini game, db olarak değiştiriniz.

Daha sonra serveri açabilirsiniz. :)

Client Source Derlenmesi
Client'i derleyebilmek için visual studio 2013 kurulu olması gerekmektedir. visual studio 2019 ile build etmek isterseniz platform toolset v120 olarak seçili olmalı.
İndirdiğiniz ClientSource dosyanıza giriniz.
Daha sonra Srcs/Extern/cryptopp dizine giriniz. cryptlib.sln dosyasını çalıştırınız ve build ediniz.
Not: Client'i debug modda build edecekseniz cryptopp'u da debug modda build edin.

Cryptopp derlendikten sonra ClientSource/Srcs/Client/client.sln çalıştırın.
Açıldıktan sonra Derle-> çözümü derle / build -> build solution tuşuna basına basın ve bekleyin.

Build işlemi başarılı olursa exe dosyalarını Client/binary içine çıkartacaktır.

Client sourceyi derledikten sonra yeni başlayanlar -> client kurulumu kısmında anlattıklarımı uygulayın. Burada tek fark kendi derlediğiniz exe ile oyuna gireceksiniz.



Bitiş konuşması
Metin2 geliştirici eğitim serimi takip etmek isteyenler files konusunda çok sorun yaşıyordu. Bu konu sayesinde eğitimde kullandığım files üzerinde çalışabileceksiniz. O zamanlar orijinal konusu bulunduğu için insanları yönlendiriyordum. Artık orijinal konuda ki linkler kırıldığı için bende kendi sürümümü paylaştım.
Bu dosyaları düzenlemek ve her şeyini enine boyuna test etmek için -Clientin debug, release, distrubite derlenebilmesi, server kısmında her şeyin düzgün derlenmesi vs.- 2 gündür uyumadan uğraştım.

Tüm dosyaları olabildiğinde optimal seviyeye getirdim. Gereksiz dosyaların çoğu temizlenmiştir.

Bu yazının tamamı, videolu anlatım ve dosyalar MMO Tutkunları'na ait özgün içeriktir. Kaynağı gösterildiği sürece başka platformlarda paylaşılabilir.
 
Son düzenleme:
Yorumunuz için teşekkür ederim. :)
 
Paylaşım için teşekkürler, eğitim serilerinden başlayıp devam edenler için çok büyük bir avantaj niteliğinde bir paylaşım olmuş.
Emeğinize sağlık :)
Müsait bir zamanda spoyler olarak 1-2 tane de olsa oyun içi görsel eklemeniz, eğitim serisinin dışında çalışan arkadaşlar için daha iyi olur diye düşünüyorum.
 
Son birkaç konuyu elim kıçımdayken yazdım demek yanlış olmaz. Aynı anda iki üç işle uğraşıyordum. :D
Eğitim videolarında gösterdiğim files olduğu için görsel eklemedim ama madem böyle bi yorum geldi bi ara eklerim. :)

Filesi kuran olursa ekran görüntüsü paylaşabilir :)
 
Son düzenleme:
Merhabalar. Eğitim serinizi youtube üzerinden takip ediyordum. Udemy üzerinden yayınladığınızı görünce size destek olmak amaçlı kursunuzu satın aldım.
Ben vmware, freebsd kurulumu ile uğraşmamak için bi bilişim firmasından sunucu aldım orda işlem yürütüyorum. Mysql şifresinin değişmeyeceğini belirtmişsiniz. Aynı işlem burda da geçerli mi acaba ?
 
Merhabalar. Eğitim serinizi youtube üzerinden takip ediyordum. Udemy üzerinden yayınladığınızı görünce size destek olmak amaçlı kursunuzu satın aldım.
Destekleriniz için teşekkürler. :) Udemy'nin yapısı sayesinde eğitim serisini Youtube'a nazaran daha derli toplu hale getirebildim.

Ben vmware, freebsd kurulumu ile uğraşmamak için bi bilişim firmasından sunucu aldım orda işlem yürütüyorum. Mysql şifresinin değişmeyeceğini belirtmişsiniz. Aynı işlem burda da geçerli mi acaba ?
Tamamen aynı. Buradaki files dosyalarını kullanıyorsanız değişmeyecek. Yalnız oyunun açılabilmesi için videoda gösterdiğim gibi kullanıcı hesabını eklemeyi unutmayınız.
 
Paylaşmış olduğunuz filesta geçen anlatımlara göre birebir bütün adımları uyguladım. Oyunu başlat dediğimde

connect: Connection refused
connect: Connection refused hatası alıyorum. Sizin files'tan önce daha önceden temin etmiş olduğum ve bir iki kere kurmuş olduğum bir filestada aynı hatayı alıyorum. Sebebi ne olabilir.

Syser dosyasıda şu şekilde Ch1'in

SYSERR: Jun 17 18:22:48 :: pid_init:
Start of pid: 767

SYSERR: Jun 17 18:22:48 :: socket_connect: HOST localhost:15000, could not connect.
SYSERR: Jun 17 18:22:48 :: ChildLoop: AsyncSQL: query failed: Incorrect information in file: './player/player.frm' (query: SELECT pid, grade, is_general, offer, level, job, name FROM guild_member, player WHERE guild_id = 1 and pid = id errno: 1033)
SYSERR: Jun 17 18:22:51 :: socket_connect: HOST localhost:15000, could not connect.
SYSERR: Jun 17 18:22:53 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.
SYSERR: Jun 17 18:22:53 :: pid_deinit:
End of pid
 
Videoda gösterdiğin şekilde adım adım ilerlerseniz bi sorun çıkacağını sanmıyorum.

Kod:
socket_connect: HOST localhost:15000, could not connect.
Bu hatanın birçok nedeni olabilir. Veritabanı açılırken core vermiş olabilir vs.

Yaşadığınız sorunları şu bölüme konu açarak sorabilirsiniz.
Soru, Cevap ve Yardım
 
@byhawk db syserr kontrol edin.
 
Yakın zamanda yapacağınız güncellemeleri videolu anlatımda mı yapacaksınız? Yani client ve server source sürümü yükseldiği zaman biz de videoyu izleyerek yapabilecek miyiz yoksa yeni sürümü beklemelimiyiz bu altyapıyı geliştirmek için?
 
Yakın zamanda yapacağınız güncellemeleri videolu anlatımda mı yapacaksınız? Yani client ve server source sürümü yükseldiği zaman biz de videoyu izleyerek yapabilecek miyiz yoksa yeni sürümü beklemelimiyiz bu altyapıyı geliştirmek için?
Şuan için bu dosyaları güncellemeyi düşünmüyorum ama altyapı geliştirme eğitimindeki client yükseltme ve server yükseltme videolarına bakarak bunu yapabilirsiniz.

Neden güncellemediğimi de belirtim. Sıfırdan files yaptığımız seride zaten hali hazırda güncel bir files olacak. ^_^
 
Şuan için bu dosyaları güncellemeyi düşünmüyorum ama altyapı geliştirme eğitimindeki client yükseltme ve server yükseltme videolarına bakarak bunu yapabilirsiniz.

Neden güncellemediğimi de belirtim. Sıfırdan files yaptığımız seride zaten hali hazırda güncel bir files olacak. ^_^

Sıfırdan files yaptığımız derken? Şuan da udemy üzerinden zaten yapmıyor musunuz güncel bir files yoksa başka bir seri mi var anlayamadım tam olarak. Mevcut altyapımda artık baş edemeyeceğim sorunlar cıkınca sıfırdan altyapı olusturmaya karar verdim hangi kaynağınızı önerirsiniz..
 
Serverfiles dosyasinin icin de video da kullanilan proto dosyalarini bulamayan tek ben miyim? Dosyanin icerisinde bulabildigim proto dosyalari da video da kullanilanlardan farkli. Kullandiginiz proto dosyalarini yukleyebilir misiniz acaba?
 

attigim videonun attigim saniyesinde kullandiginiz proto dosyalarindan bahsediyorum. Bu konu icerisinde yer alan ServerFiles.rar(24.7mb) dosyasinin icerisinde yer alan proto dosyalariyla sizin kullandiklariniz ayni degil galiba cunku boyutlari farkli. İleri de bir sikinti cikar mi acaba diye istemistim sizin kullandiginiz proto dosyalarini.
 
@Finnael Bu konudan sadece veritabanını aldım. :) Bu files içindeki proto dosyalarını kullanabilirsiniz fakat bazı itemleri sistem tanıyamayacağı için tek tek silmeniz gerekiyor. Uğraşmamanız için Metin2 Sıfırdan Altyapı Server Files Hazırlama Rehberi buradan dosyaları alabilirsiniz. Videoda da zaten paylaşacağımı söylemiştim.
 
Tamamdir tesekkurler. Proto ve locale dosyalarini attiginiz linkte paylasmissiniz zaten. Ben gormemisim. Tesekkurler.
Görmemeniz normal. :) Çünkü linki yeni ekledim. Herhangi başka bi sorunuz olursa sormaktan çekinmeyiniz.
 
Geri
Üst