[Geliştirici Günlükleri] Kendi Metin2 Sunucumu Geliştiriyorum | Hayaletdev

  • Konuyu açan Konuyu açan Hayalet
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 24
  • Gösterim Gösterim 1K

Hayalet

Üye
Üye
Mesaj
141
Çözümler
2
Beğeni
113
Puan
709
Ticaret Puanı
0
Selamlar MMO Tutkunları,

Uzun süredir Metin2 tarafında bir şeyler geliştirmiyordum. Aslında yazılım geçmişim var; yazılıma ilk olarak 2013 civarında cixcocuk97 ile Metin2 hileleri geliştirerek başlamıştım. O dönem biraz kurcaladıktan sonra Metin2 tarafını bırakıp daha çok farklı oyunlarda script geliştirmeleri yaptım ve uzun süre Metin2’ye sadece oyuncu olarak devam ettim.


Ama Metin2’den hiçbir zaman tamamen kopamadım diyebilirim. Son zamanlarda da kendi sunucumu açma fikri tekrar aklıma düşünce bu işe sıfırdan girişmeye karar verdim. Şu an açıkçası Metin2 server geliştirme konusunda kendimi çok iddialı görmüyorum, yeniden öğrenme sürecindeyim diyebiliriz. Ama süreç içinde hem öğrenip hem geliştikçe yaptıklarımı burada paylaşmak istiyorum.


Bu konuyu da biraz geliştirici günlüğü gibi kullanmayı düşünüyorum. Yaptığım sistemleri, öğrendiğim şeyleri, bazen yaşadığım sorunları ve çözümlerini burada paylaşacağım. Hem benim için güzel bir arşiv olur hem de belki birilerine faydası dokunur.
Bu başlık altında düzenli olarak:


  • Geliştirdiğim yeni sistemleri
  • Arayüz geliştirmelerini
  • Performans ve QoL (Quality of Life) iyileştirmelerini
  • Kod tarafındaki çözümleri
  • Ve bazen teknik detayları

paylaşacağım.


Amacım hem yaptığım işleri göstermek hem de Metin2 geliştiren diğer arkadaşlara faydalı olabilecek bilgiler bırakmak.

⚙️ Eklenen Sistemlerden Bazıları​


Geliştirmeye başlarken ilk olarak QoL (Quality of Life) yani oyuncu konforunu artıran küçük sistemlerle başlamayı tercih ettim. Piyasada bu tarz sistemlerin birçok hazır versiyonu zaten var ama mümkün olduğunca kendim yazmayı tercih ediyorum.


Hem kodu daha iyi öğrenmiş oluyorum hem de sistem tamamen kendi kontrolümde oluyor ve daha temiz bir yapıda kalıyor.


🔹 Toplu Eşya Sat / Sil Sistemi​


  • Envanterden çoklu eşya seçimi
  • Tek tuşla toplu satış veya imha
  • Satılan eşyaların toplam yang hesabı ve bilgi mesajı

🔹 Hızlı Statü Sistemi​


  • CTRL + Sol Tık → +10 stat
  • SHIFT + Sol Tık → Statı direkt maksimuma basar

Bu sayede özellikle stat dağıtımı gibi sürekli yapılan işlemler çok daha hızlı ve pratik hale geliyor.

🧩 Arayüz (UI) Tarafında Yaptıklarım​


Sistemleri yazarken bir yandan da arayüz tarafını düzenlemeye çalışıyorum. Metin2’de çoğu sistem güzel olsa bile UI tarafı bazen biraz dağınık olabiliyor. Bu yüzden eklediğim özelliklerin mümkün olduğunca oyunun mevcut tasarımına uyumlu olmasına dikkat ediyorum.


  • Metin2 temasına uygun ikon düzenlemeleri
  • Daha temiz ve anlaşılır arayüz yerleşimi
  • Gereksiz tıklamaları azaltan küçük UX iyileştirmeleri

Amacım oyunun orijinal hissini bozmadan daha pratik bir kullanım sağlamak.




🛠 Öğrenme Süreci​


Şu an açıkçası bu süreci biraz tekrar öğrenme ve keşfetme süreci olarak görüyorum. Metin2 server tarafında yıllardır dokunmadığım çok şey var. Bu yüzden bazen eski sistemleri inceleyip nasıl çalıştığını anlamaya çalışıyorum, bazen de tamamen sıfırdan küçük sistemler yazıyorum.


Bu süreçte:


  • Server tarafı (C++)
  • Client tarafı
  • Python UI sistemi
  • Pack yapısı

gibi konulara tekrar dalmış durumdayım.


Bazen basit görünen şeyler bile beklediğimden uzun sürebiliyor ama işin eğlenceli tarafı da bu zaten. 🙂




📌 Planladığım Bazı Sistemler​


Şu an kafamda geliştirmek istediğim birkaç şey daha var. Zamanla bunları da eklemeyi düşünüyorum.


Örneğin:


  • Gelişmiş envanter kalite iyileştirmeleri
  • Daha kullanışlı NPC arayüzleri
  • Küçük ama oyuncunun işini kolaylaştıran QoL sistemleri
  • Belki birkaç tamamen yeni oyun içi mekanik

Tabii süreç içinde fikirler değişebilir.


⚙️ Altyapı​


Merak edenler için altyapı tarafını da kısaca belirteyim.


Projede OWSAP altyapısını kullanıyorum. Temel sistem olarak oldukça temiz ve üzerinde geliştirme yapmaya uygun bir yapı olduğu için başlangıç noktası olarak bunu tercih ettim.


Tabii ki zamanla:


  • kendi sistemlerimi eklemeyi
  • bazı mevcut sistemleri düzenlemeyi
  • gereksiz gördüğüm yerleri sadeleştirmeyi

planlıyorum.


Amacım hazır bir şeyi olduğu gibi kullanmaktan ziyade üzerine kendi geliştirmelerimi koyarak daha temiz ve kontrol edilebilir bir yapı oluşturmak.





📅 Geliştirici Günlüğü​


Bu konuyu mümkün olduğunca güncel tutmaya çalışacağım.


Yeni bir şey geliştirdiğimde:


  • Kısa changelog
  • Ekran görüntüleri
  • Bazen teknik detaylar

paylaşacağım.
 
Owsap warezdekiler çöp fakat kendisinin sattığı son sürüm baya bir düzenlenmiş diye duydum. Hayaliniz 1-99 olmadığı için ayrıca tebrik ederim.
 
Owsap warezdekiler çöp fakat kendisinin sattığı son sürüm baya bir düzenlenmiş diye duydum. Hayaliniz 1-99 olmadığı için ayrıca tebrik ederim.
Official yapıdan çok ayrılmadan üstüne ekleyerek oluşturmak istediğim bir yapı var ben official yapılarda oynamayı seviyorum sadece metine tıklamadığımız farklı farmlarında amaçlarında olduğu yapılar daha güzel geliyor warezdekiler için bu söylemi çok kez gördüm okudum ama satın alamadığımız için elimizde ki warezi temizleyip düzelterek devam edicez artık :)
 
Hocam hayırlı olsun sw açıyormuşsun:

Screenshot_20260307_075850_Instagram.webp
 
En son bir moderatör tarafından düzenlenmiş:
Yanlış anlamışsın :) ben cixcocuk değilim bana hile geliştirmeyi o dönemde öğreten daha sonra beraber geliştirdiğim kişidir kendisi yıllardırda bir daha görüşmedik yüksek ihtimal sunucu da onun değildir.
Değildir yav yine bir Türk girişimci aeldranın rubinumun vs. ismini çaldığı gibi bunu da kapmıştır :)

Cixcocuk87 ile başladım diyince o zamanki nick cixcocuk97 idi zannettim
 
🔹 Döviz Bürosu Sistemi eklendi: Oyuncular artık envanterlerinden çıkmadan Yang ⇄ Won dönüşümünü tek bir arayüz üzerinden hızlıca gerçekleştirebilir. Yapılan işlemlerden %3 vergi kesintisi uygulanır.



🔹 Toplu Sat/Sil Sistemi eklendi: Tek pencereden eşyaları seçerek toplu satış veya toplu silme işlemi yapabilirsiniz.



🔹 Hızlı Statü eklendi: CTRL + Sol Tık = +10 stat - SHIFT + Sol Tık = maksimuma stat basar.

Başlıksız-8.webp



Not: Bazı kişiler basit sistemler için neden hazır paylaşılan dosyaları indirip doğrudan kurmadığımı merak edebilir. Bunun sebebi, ilk mesajda da belirttiğim gibi hem kod pratiği kazanmak hem de sistemleri kendim geliştirerek ilerlemeyi tercih etmemdir. Ayrıca bu şekilde çalışmak benim için her zaman daha keyifli ve öğretici oluyor. ✨
 
Geliştirme sürecine bir süre ara vermek zorunda kalmıştık. Bunun en büyük sebebi oldukça basit ama kritik bir hataydı: Temiz bir backup / git sistemi kurmadan çalışmaya başlamış olmamız.

Bu nedenle zaman zaman bazı sorunlar yaşadık ve en sonunda sistemi tamamen temizleyip sıfırdan kurulum ve yeniden düzenleme yapmak zorunda kaldık. Şu anda hem kod tarafında hem de repository yapısında çok daha düzenli bir altyapıya geçmiş durumdayız.

Sunucu yapısına ekip olarak henüz tam anlamıyla kesin karar vermediğimiz için ınstagram / youtube gibi platformlarda planladığımız geliştirme serilerini başlatmadık. Amacımız önce oyunun temel yapısını belirli bir seviyeye getirmek, ardından geliştirme sürecini daha düzenli şekilde paylaşmak.

Yine de son birkaç gün içinde sistem tarafında ciddi ilerleme kaydedildi.



Yapılan Güncellemeler​


Başlangıç Sistemi​


Oyuncuların oyuna ilk girişte alacağı başlangıç itemleri, efsunlar ve set düzeni yeniden tasarlandı.

Amaç:

  • Oyuncunun ilk dakikalarda boşlukta kalmaması.
  • Farm döngüsüne daha hızlı adapte olması.
  • Sunucunun hedeflediğimiz oyun yapısına uygun başlaması.

Şu an için ekip olarak kafamıza yatan bir başlangıç düzeni oluşturduk.



Binek Yanında Özelliği​

Artık oyuncuların binekleri karakterlerinin yanında durabiliyor.
Bu sistem özellikle görsel bütünlük ve karakter hissiyatı açısından güzel bir detay oldu. Küçük gibi görünse de oyuncunun karakteriyle kurduğu bağı güçlendiren hoş bir özellik.

Ekran görüntüsü 2026-03-16 154631.webp




C Bilgi Ekranı Güncellemeleri​


Karakter bilgi ekranında eksik olan bazı efsunlar için gerekli eklemeler yapıldı.

Örneğin:

  • Patronlara karşı güç.
  • bazı özel saldırı bonusları.
Şu an sadece eksik olan kısımlar tamamlandı. İlerleyen süreçte bilgi ekranındaki sıralama ve düzen de yeniden tasarlanacak.

Ekran görüntüsü 2026-03-16 155741.webp




Premium Konfor Paketi Sistemi​


Premium sistemi konfor paketi adı altında yeniden geliştirilmeye başlandı.

Şu anda aktif olan özellik:
  • Otomatik eşya toplama.
  • Yağma kartı / loot filter sistemi ile uyumlu çalışma.

Bu sistem tek bir premium paket affecti üzerinden çalışacak şekilde tasarlandı.

Yani ileride şu özellikler de aynı pakete dahil edilecek:

  • otomatik cesaret pelerini.
  • renkli chat yazısı.
  • skill renkleri.
  • offline shop süresi avantajları.

Özellikle dikkat ettiğimiz bir nokta var: Bu sistemlerin hiçbiri p2w (pay to win) olmayacak. Amaç sadece oyuncunun oyun deneyimini kolaylaştıran quality of life iyileştirmeleri sunmak.



Drop Görünüm İyileştirmeleri​


Yere düşen itemlerde bazı görsel iyileştirmeler yapıldı.

Örneğin özellikle bk gibi önemli itemlerin isimlerinin daha net görünmesi sağlandı. Bu tarz küçük dokunuşlar oyuncu deneyimini ciddi şekilde etkileyen detaylar olduğu için önem veriyoruz.



Affect Sistemi Düzenlemesi​


Oyundaki affect sistemi zaman içinde oldukça karışmıştı.

Bu yüzden:

  • affect ikonları.
  • affect açıklamaları.
  • affect davranışları.

Tek bir tasarım standardı altında yeniden düzenlenmeye başlandı. Bu süreç kademeli olarak ilerleyecek ve zamanla tüm affectler yeniden elden geçirilecek.



Sunucu Hakkında​


Açıkçası hızlı biten bir rush server yapmak istemiyoruz.

Globalde var olan bazı sunucuların yapısını uzun süre inceledik ve çoğunda oldukça tekdüze bir ilerleme yapısı olduğunu gördük. Oyuncular genelde sürekli aynı farm döngüsünü tekrar ediyor ve bir süre sonra oyun monotonlaşabiliyor.

Bizim hedefimiz bu tekdüze yapıdan mümkün olduğunca uzaklaşmak.

Bunun yerine oyunculara farklı farm seçenekleri sunan, ilerleme yollarını çeşitlendiren ve oyunun her aşamasında yapılabilecek farklı aktiviteler barındıran bir yapı oluşturmak istiyoruz.

Bu noktada official Metin2'de bulunan bazı sistemlerin mantığınıda referans alıyoruz. Örneğin mob farmınında değerli olması, farklı içeriklerin oyuncuya katkı sağlaması ve tek bir farm türüne bağlı kalmayan bir oyun akışı oluşturmak istiyoruz.

Amacımız oyuncunun oyunda geçirdiği her anın keyifli olması.



Hedefler​


Şu anki planımız haziran ayına kadar ilk beta sunucuyu ve chapter 1 içeriğini oynanabilir hale getirmek.

Son birkaç gün bazı teknik sorunlar nedeniyle geliştirme günlükleri düzensiz ilerledi fakat bundan sonra yapılan her geliştirmeyi günlük olarak paylaşmayı planlıyoruz.

Ayrıca çok yakında ınstagram ve youtube üzerinden de geliştirme sürecine dair içerikler paylaşmaya başlayacağız.
 
toplu sat/sil olayını şu şekilde yapabilirsen iyi olur o engel yerine engeli kaldırıp ilgili itemi çıkar ondan sonra silinecek itemleri highlight edersin sağ tık ile seçilen eşyaları ardından verirsin onayı ardından silersin gibi
 
Görselini attığınız C bilgi ekranı bonus gösterimleri buglu hocam. Ona dikkat ediniz. Örneğin hpli bir zırh giyip çıkardığınız zaman HP değeri - değerlere düşebiliyor bilginiz olsun. Farklı bir bilgi paneli eklemenizi tavsiye ederim.
 
Toplu Sil Sat sistemi hakkında ise şunları söylemek isterim. Normalde farklı krallıklardan alışveriş yaparken 3 katı fiyat farkı koyar ve öyle satar. item_proto tablosundaki yazan fiyatını sistem üçe bölerek hesaplama yapar. Biraz saçma bir sistem aslında ymirin dandik juniorları. Sizin kullandığınız sistemi de kontrol etmenizi tavsiye ederim. Direkt olarak item_proto tablosundaki yazan fiyatı baz alıyorsa oyunda ciddi anlamda enflasyon riski olabilir. Hesaplatırken üç veya beşe bölerek hesaplama yaptırabilirsiniz. Ben canlı oyunumda normal satış fiyatının çeyreğini verdiriyorum sadece. Yoksa enflasyon başını alıp gidiyor. Çalışmalarınızı yakından takip ediyorum. Başarılar diliyorum.
 
Hızlı statü sisteminde ise eğer yok ise bir iki saniyelik bekleme süresi koymanızı tavsiye ederim
 
Hızlı statü sisteminde ise eğer yok ise bir iki saniyelik bekleme süresi koymanızı tavsiye ederim.

Statü sisteminde bekleme vardı fakat zaten o sistem yedekleme alamayınca gitti şimdi tekrar yazılacak bilgi paneli ile ilgili de söylediklerinizi dikkate alıp test edicem gerekirse fixlemeye çalışıcam eğer mevcut ise fixlersem zaten paylaşırım fixlenemezse değiştiririm teşekkürler.
 

Hata Düzeltmeleri​


  • Item oluşturma sırasında SetCount başarısız olduğunda oluşabilecek memory leak sorunu giderildi.
  • Dragon Soul güçlendirme sırasında sonuç eşyası oluşturulamazsa ücretin yine de düşmesi sorunu giderildi.
  • Dragon Soul güçlendirme işlemi sırasında taşın kalan süresinin sıfırlanmasına neden olan hata giderildi.
  • Dragon Soul set bonus hesaplanırken taşların gereksiz yere kapatılıp tekrar açılmasına neden olan akış kaldırıldı.
  • Splash hasarı uygulanırken geçersiz veya ölü hedefler nedeniyle oluşabilecek sunucu çökmesi engellendi.
  • Log kayıtlarında boş veya hatalı parametreler nedeniyle oluşabilecek çökme riski giderildi.
  • Gaya Çantası (70608) kullanıldığında Gaya miktarının maksimum limiti aşabilmesine neden olan hata giderildi. Artık çanta kullanıldığında yalnızca limit dolana kadar Gaya verilmektedir.

Sistem Düzenlemeleri​


  • Dragon Soul set bonus sistemi, aktif taş sayısı veya taşların geçerlilik durumu değiştiğinde doğru şekilde yeniden hesaplanacak şekilde düzenlendi.
  • Evlilik yüzüğü warp akışı yeniden düzenlendi. Artık ışınlanma başarıyla gerçekleşmeden SP bedeli uygulanmayacak.

Sistem İyileştirmeleri​


  • Mühürlü Dragon Soul eşyalarının derece, aşama ve güçlendirme geliştirmelerine girebilmesi engellendi.
  • Dragon Soul bonus değiştirme işlemi, yalnızca geçerli bonus değişim materyallerinin kullanılabileceği şekilde düzenlendi.


Teşekkürler.
 

Güçlendirme Tılsımı Sistemi Ekledik.​


Refine sistemine, güçlendirme sırasında ek başarı şansı sağlayan tılsım mekanizması eklendi.

Tılsımlar; eşya seviyesine göre sınırlı şekilde çalışır ve belirli bir üst limite kadar başarı oranına katkı sağlar. Refine arayüzüne entegre edilen alan üzerinden kullanılır ve sağladığı bonus oranı işlem sırasında anlık olarak görüntülenir.

Bu sistem, kurguladığımız yapı içerisinde tılsımların görev ödülleri, zindan içerikleri ve craft ile elde edilmesini destekleyecek şekilde planlanmıştır. Amaç, farklı oyun içi aktiviteler arasında denge kurmak ve tek tip ilerleyişi kırmaktır.



Not:
Geliştirme sürecinin yer yer dağınık ilerlemesi, sistem kurgulanırken akla gelen fikirlerin doğrudan kodlanıp test edilmesi ve ardından yapıya eklenmesinden kaynaklanmaktadır. Şu aşamada katı bir geliştirme rotası yerine iteratif bir yaklaşım izlenmektedir.

1773776508002.webp
 
  • Bazı durumlarda sistemlerin beklenmeyen şekilde tetiklenmesine neden olabilecek exploit açığı giderildi.
  • Nadir durumlarda oyuncuların belirli işlemleri tekrar ederek avantaj sağlayabilmesine olanak tanıyan açık kapatıldı.
  • Senkronizasyon eksikliğinden kaynaklı oluşabilecek çift işlem (duplicate) problemi engellendi.
  • Belirli senaryolarda ödül / işlem tekrarına izin veren sistemsel açıklar düzeltildi.
  • Binek yanında sistemi, düşük level karakterlerde proto kaynaklı çalışmama sorunu nedeniyle 1 level karakterlerde hatalı çalışıyordu, sorun giderildi. Artık 1 levelde kostüm binekler horse-like sistemi ile sorunsuz çalışmaktadır.
  • Mob drop sistemi, modüler yapı ile yeniden geliştirildi. Drop tabloları artık daha esnek ve yönetilebilir hale getirildi.
  • Günlük görev sistemi eklendi. Görevler tamamlandığında ödüller otomatik olarak teslim edilmektedir. (UI tasarımı ilerleyen süreçte güncellenecek.)
  • Oyun ilerleyişi early / mid / end game olarak üç aşamaya ayrıldı ve drop sistemi bu yapıya uygun şekilde yeniden düzenlenmeye başlandı.
  • TR sunucularında yaygın olan çöp item ekonomisi kaldırıldı, yerine “Para Kağıdı” sistemi ile yang dengesi yeniden kurgulandı.
  • Çöp item sisteminin kaldırılmasıyla birlikte, pet gelişimi için alternatif EXP itemleri hazırlandı ve drop sistemine entegre edilmek üzere planlandı.
  • Mühürlü Dragon Soul eşyalarının derece, aşama ve güçlendirme geliştirmelerine girebilmesi engellendi.
  • Dragon Soul bonus değiştirme işlemi, yalnızca geçerli bonus değişim materyallerinin kullanılabileceği şekilde düzenlendi


    Günlük görev sistemi hazırlanan quest dosyasından çekiyor görevleri ve ödülleri çoklu item verme desteği eklendi görevler optimize edildikten sonra uı tekrar tasarlanacak


    1773951255762.webp







 
Av Görevleri Sistemi Günlüğü

  • Resmi yapıya uyumlu Av Görevleri sistemi oyuna entegre edildi.
  • Görev zinciri sıralı ilerleyecek şekilde düzenlendi: mevcut görev bitmeden ve ödül alınmadan sonraki görev açılmıyor.
  • Seviye kilidi (level-gate) aktif edildi: oyuncu görev index’inde olsa bile gerekli seviyeye ulaşmadan kill sayımı yapılmıyor.
  • Görev verileri performans odaklı şekilde quest flag ile yönetiliyor (current_mission_index, current_kill_count, hedef ve ödül bilgileri).
  • Av görevleri için Expanded Taskbar’a yeni buton eklendi.
  • Arayüzde görev hedefi, ilerleme barı, ödül önizlemesi ve durum metinleri (Locked / In Progress / Claim Reward) eklendi.
  • Odulu Al akışı server komutuyla güvenli hale getirildi (/hunting_mission_claim).
  • Claim sırasında yaşanan killee is null kaynaklı hataya sebep olan eski tetikleme kaldırıldı, claim tetiklemesi QuestInfo tabanına alındı.
  • Görev havuzu genişletildi: sistem artık Lv 1 - Lv 120 aralığında tanımlı görevlerle çalışıyor.
  • Wiki kaynaklı isim farkları için gerekli eşleştirmeler yapılarak boş/eksik index sorunları giderildi.


Not: UI Tasarımı daha sonra düzeltilecek

1774096262338.webp
 
Geri
Üst