Metin2 Server Files ve Client Nedir? Aralarındaki Farklar
🛠️ Metin2 Server Files ve Client Nedir? Aralarındaki Farklar
Metin2 PVP server geliştirmeye yeni başlayanların en sık karşılaştığı iki kavram:
🖥️ Server Files
ve
🎮 Client
olur.
İlk bakışta ikisi de Metin2 dosyalarından oluştuğu için aynı sistemin parçaları gibi görünür.
Aslında görevleri oldukça farklıdır.
Basit şekilde:
🖥️ Server Files → Oyunun sunucuda çalışan tarafıdır.
🎮 Client → Oyuncunun bilgisayarında çalışan tarafıdır.
Fakat sağlıklı bir Metin2 server için bu iki tarafın birbiriyle uyumlu çalışması gerekir.
📌 Server Files Nedir?
Server Files, Metin2'nin sunucu tarafındaki temel yapısını oluşturur.
Oyuncu Client üzerinden bir işlem yaptığında bunun önemli bir bölümü server tarafından değerlendirilir.
Örneğin:
karakter işlemleri,
item işlemleri,
NPC davranışları,
yaratıklar,
görevler,
haritalarla ilişkili sunucu verileri,
oyun kuralları,
drop sistemleri
ve çeşitli oyun mekanikleri
server tarafıyla ilişkili olabilir.
Bu nedenle Server Files'i oyunun:
“arka tarafta çalışan motorunun önemli bir bölümü”
olarak düşünebiliriz.
🎮 Client Nedir?
Client, oyuncunun kendi bilgisayarında çalıştırdığı Metin2 tarafıdır.
Oyuncunun gördüğü:
🧍 karakter modelleri
⚔️ silahlar
🛡️ zırhlar
🖼️ item ikonları
🗺️ harita dosyaları
✨ efektler
🎵 sesler
🪟 arayüz
ve farklı görsel kaynaklar
Client içerisinde bulunabilir.
Oyuncu oyunu açtığında:
Client servera bağlanır
ve iki taraf birlikte çalışır.
🔄 Server Files ve Client Nasıl Birlikte Çalışır?
Basit bir örnek üzerinden düşünelim.
Serverda yeni bir item oluşturdunuz.
Server:
bu itemin ID'sini,
özelliklerini,
kullanım şartlarını
ve oyun içerisindeki davranışını
biliyor olabilir.
Fakat Client tarafında gerekli tanımlamalar yapılmadıysa:
itemin adı yanlış görünebilir,
ikonu görünmeyebilir,
modeli eksik olabilir
veya oyuncu farklı görsel problemler yaşayabilir.
Yani:
server itemin ne olduğunu bilir,
Client ise oyuncuya nasıl gösterileceğini bilmek zorundadır.
⚔️ Yeni Silah Eklerken Neden İki Taraf da Düzenlenebilir?
Yeni bir silah eklediğinizi düşünelim.
Server tarafında:
silahın oyun verileri
ve davranışları tanımlanabilir.
Client tarafında ise:
silah modeli,
ikon,
isim
ve gerekli görsel tanımlamalar
bulunabilir.
Sadece bir tarafı düzenlemek:
eksik veya hatalı sonuçlara
neden olabilir.
🖼️ Item İkonu Hangi Tarafta?
Oyuncunun gördüğü:
item ikonları
Client tarafında bulunur.
Bu nedenle serverda item doğru şekilde mevcut olsa bile:
Client gerekli görsel kaynağı bilmiyorsa
ikon problemi oluşabilir.
👹 Canavarlar Hangi Tarafta?
Burada cevap:
iki taraf da olabilir.
Canavarın:
sunucu tarafındaki özellikleri,
davranışı,
drop sistemi
ve oyun içerisindeki bazı kuralları
Server Files ile ilişkiliyken,
oyuncunun gördüğü:
model,
animasyon,
efekt
ve görsel kaynaklar
Client tarafıyla ilişkili olabilir.
🗺️ Haritalar Sadece Client'ta mı?
Hayır.
Metin2 haritalarında da:
Client
ve server tarafının
birlikte çalışması gerekebilir.
Client:
oyuncunun gördüğü harita kaynaklarını
barındırırken,
server:
haritanın oyun dünyasındaki davranışıyla ilişkili
verileri kullanabilir.
Bu nedenle yeni harita eklerken:
yalnızca görsel dosyaları Client'a koymak
yeterli olmayabilir.
📜 Questler Hangi Tarafta?
Metin2 quest sistemi:
temel olarak server tarafındaki
oyun mantığıyla ilişkilidir.
Görevlerde:
NPC konuşmaları,
şartlar,
ödüller,
seviye kontrolleri
ve farklı oyun işlemleri
tanımlanabilir.
Ancak görevle ilişkili:
ikon,
arayüz
ve bazı görsel kaynaklar
Client tarafında bulunabilir.
🗄️ Veritabanı Server Files'in İçinde mi?
Veritabanı:
Server Files ile yakın çalışan
ancak ayrı düşünülmesi gereken
bir bileşendir.
Oyunculara ait:
hesap,
karakter,
item
ve çeşitli kalıcı bilgiler
veritabanında tutulabilir.
Server süreçleri:
gerektiğinde bu verilerle
iletişim kurar.
💻 Source Nedir?
Metin2 geliştirme dünyasında:
“source”
ifadesini de sık sık görürsünüz.
Source:
programın derlenmeden önceki
kaynak kodlarını ifade eder.
Genellikle:
server source
ve
client source
gibi kavramlarla karşılaşabilirsiniz.
🖥️ Server Source Nedir?
Server Source:
sunucu tarafındaki oyun davranışlarının
kaynak kodlarını içerir.
Daha kapsamlı:
oyun sistemi,
mekanik,
performans
ve davranış değişiklikleri
için kullanılabilir.
🎮 Client Source Nedir?
Client Source:
oyuncunun kullandığı Client uygulamasının
kaynak kodu tarafıdır.
Arayüz,
grafik davranışları,
Client özellikleri
ve çeşitli sistemler
buradan geliştirilebilir.
📦 Pack Dosyaları Nedir?
Metin2 Client içerisinde:
pack yapısıyla
sık sık karşılaşılır.
Bu yapı içerisinde:
arayüz,
ikon,
model,
efekt,
harita
ve farklı Client kaynakları
bulunabilir.
Kullanılan Client yapısına göre:
dosya düzeni
ve paketleme yöntemi
değişebilir.
🔧 Server Files'ta Neler Düzenlenebilir?
Kullanılan altyapıya göre değişmekle birlikte:
NPC'ler,
yaratıklar,
droplar,
questler,
haritalarla ilişkili ayarlar,
oyun sistemleri,
item davranışları
ve çeşitli server yapılandırmaları
düzenlenebilir.
🎨 Client'ta Neler Düzenlenebilir?
Client tarafında ise:
arayüz,
item ikonları,
karakter modelleri,
silah ve zırh modelleri,
efektler,
harita görselleri,
metinler,
sesler
ve farklı görsel özellikler
değiştirilebilir.
⚠️ Client Değişikliği Güvenlik Sağlar mı?
Client tarafında yapılan kontroller:
tek başına güvenlik mekanizması
olarak görülmemelidir.
Oyunun kritik kuralları mümkün olduğunca:
server tarafında
doğrulanmalıdır.
Çünkü oyuncunun bilgisayarında çalışan Client:
server kadar güvenilir bir ortam değildir.
🔐 Neden Server Tarafı Doğrulama Önemli?
Örneğin bir işlemin:
yapılıp yapılamayacağı
yalnızca Client tarafından kontrol edilirse
kötü niyetli kişiler bu kontrolü
aşmaya çalışabilir.
Bu nedenle kritik oyun işlemlerinde:
serverın işlemi tekrar doğrulaması
önemlidir.
⚠️ Client Dosyaları Değiştirilebilir mi?
Client:
oyuncunun bilgisayarında bulunduğu için
dosyalara erişim mümkündür.
Bu yüzden:
kritik oyun mantığını
yalnızca Client'a güvenerek
tasarlamak doğru değildir.
🔄 Client ve Server Uyumsuzsa Ne Olur?
Uyumsuzluk durumunda:
oyuna giriş sorunları,
eksik itemler,
yanlış isimler,
görünmeyen modeller,
harita problemleri,
bağlantı hataları,
paket/protokol uyuşmazlıkları
ve farklı oyun hataları
oluşabilir.
🧪 Değişiklikleri Nasıl Test Etmeliyim?
Önce:
test ortamında
çalışın.
Bir değişikliğin:
server tarafını,
Client tarafını
veya her ikisini
etkileyip etkilemediğini
belirleyin.
Sonrasında:
değişikliği uygulayın,
Client/server uyumunu kontrol edin,
oyun içinde test edin
ve hata loglarını inceleyin.
💾 Değişiklikten Önce Yedek Almalı mıyım?
Özellikle:
server,
source,
veritabanı
ve önemli Client değişikliklerinde
yedek almak
iyi bir alışkanlıktır.
Çalışan sürümü korumak:
hatalı değişiklikten sonra
geri dönmeyi kolaylaştırır.
🧩 Server Files Değiştiğinde Client Her Zaman Güncellenir mi?
Hayır.
Bazı server tarafı değişiklikleri:
Client güncellemesi
gerektirmeyebilir.
Örneğin yalnızca server tarafındaki:
belirli oran,
ayar
veya oyun mantığı
değişiyorsa Client etkilenmeyebilir.
Ancak yeni görsel kaynak,
item,
model,
arayüz
veya iki tarafı ilgilendiren sistemlerde:
Client güncellemesi
gerekebilir.
🎮 Client Değiştiğinde Server Her Zaman Güncellenir mi?
Hayır.
Örneğin:
bazı görsel,
arayüz
ve Client tarafındaki düzenlemeler
serverı değiştirmeden yapılabilir.
Ancak oyun mantığını etkileyen sistemlerde:
iki tarafın da uyumu
kontrol edilmelidir.
📊 Server Files ve Client Kısa Karşılaştırma
SERVER FILES
Çalıştığı yer:
Sunucu
Temel amacı:
Oyun dünyasının sunucu tarafını çalıştırmak
Örnek alanlar:
Quest, yaratık davranışları, oyun kuralları, drop ve çeşitli server sistemleri
CLIENT
Çalıştığı yer:
Oyuncunun bilgisayarı
Temel amacı:
Oyuncunun oyunla etkileşimini ve görsel tarafı çalıştırmak
Örnek alanlar:
Arayüz, ikon, model, efekt, ses ve Client kaynakları
SOURCE
Çalıştığı yer:
Derlendikten sonra ilgili uygulamanın parçası olur
Temel amacı:
Programın kaynak kodunu geliştirmek
Örnek:
Server Source ve Client Source
DATABASE
Çalıştığı yer:
Sunucu altyapısı
Temel amacı:
Kalıcı oyun verilerini saklamak
Örnek:
Hesap, karakter ve item verileri
⚠️ Yeni Başlayanların Yaptığı Hatalar
Server Files ile Client'ı aynı şey sanmak.
Her değişikliğin yalnızca tek tarafta yapıldığını düşünmek.
Yeni itemi servera ekleyip Client'ı unutmak.
Client ikonunu ekleyip server tanımını unutmak.
Client tarafındaki kontrolü güvenlik için yeterli görmek.
Canlı serverda doğrudan dosya değiştirmek.
Yedek almadan işlem yapmak.
Uyumsuz files ve Client kullanmak.
Source ile hazır binary/dosyaları aynı şey sanmak.
Hata loglarını kontrol etmemek.
❓ Server Files Olmadan Client Çalışır mı?
Client uygulaması açılabilir.
Ancak gerçek oyun dünyasına bağlanmak ve server üzerinden oyun oynayabilmek için:
uyumlu çalışan sunucu altyapısına
ihtiyaç vardır.
❓ Client Olmadan Server Çalışır mı?
Server süreçleri:
oyuncu Client'ından bağımsız olarak
sunucuda çalışabilir.
Ancak oyuncunun oyun dünyasına bağlanması için:
uyumlu Client
gerekir.
❓ Client ile Server Files Aynı Bilgisayarda mı Olmalı?
Hayır.
Canlı sistemlerde:
Server Files
uzaktaki sunucuda çalışırken,
Client:
oyuncuların kendi bilgisayarlarında
çalışır.
❓ Server Files ile Source Aynı Şey mi?
Hayır.
Source:
kaynak koddur.
Server Files ise:
çalışan server yapısını oluşturan
dosyaları ve bileşenleri ifade etmek için
kullanılan daha geniş bir kavramdır.
❓ Client Source ile Client Aynı Şey mi?
Hayır.
Client Source:
Client uygulamasının
kaynak kodudur.
Client ise:
oyuncunun çalıştırdığı
derlenmiş ve gerekli oyun kaynaklarıyla hazırlanmış
uygulama yapısıdır.
❓ Yeni Item Eklemek İçin Client Gerekir mi?
Itemin oyuncuya:
doğru isim,
ikon,
model
ve diğer görsel özelliklerle
gösterilmesi gerekiyorsa
Client tarafında da gerekli tanımların
yapılması gerekebilir.
❓ Yeni Sistem Eklemek İçin Source Şart mı?
Her sistem için değil.
Bazı özellikler:
quest,
ayar
ve mevcut sistemler üzerinden
oluşturulabilir.
Daha temel oyun davranışlarını değiştiren özelliklerde:
kaynak kodu geliştirmesi
gerekebilir.
🏆 Yeni Başlayanlar İçin Öğrenme Sırası
Önce Server Files ve Client farkını öğrenin.
Temel dosya yapısını inceleyin.
Test server oluşturun.
Veritabanı mantığını öğrenin.
Quest sistemini inceleyin.
Client pack yapısını öğrenin.
Basit item ve NPC değişiklikleri yapın.
Yedekleme alışkanlığı oluşturun.
Log okumayı öğrenin.
Sonrasında kaynak kodu tarafına ilerleyin.
📌 Sonuç
Metin2 geliştirmede:
Server Files
ve
Client
birbirinden farklı görevleri olan
iki temel taraftır.
Server Files:
oyunun sunucu tarafındaki
mantığını ve dünyasını çalıştırırken,
Client:
oyuncunun bilgisayarındaki
görsel ve etkileşim tarafını
çalıştırır.
Bunlara ek olarak:
🗄️ veritabanı
ve
💻 kaynak kodları
da geliştirme sürecinin
önemli parçalarıdır.
Metin2 geliştirmeye yeni başlıyorsanız:
ilk öğrenmeniz gereken konulardan biri
“hangi değişiklik hangi tarafta yapılır?”
sorusudur.
Bu ayrımı öğrendiğinizde:
karşılaştığınız hataları anlamak
ve geliştirme yapmak
çok daha kolay hale gelir. 🛠️
💬 Siz Metin2 geliştirmeye ilk başladığınızda en çok hangi konuda zorlandınız?
Server Files,
Client,
Source,
Quest
yoksa veritabanı mı?
Developer & Files bölümünde deneyimlerinizi ve sorularınızı paylaşabilirsiniz. 👇
