[Tyolduran SF] Geliştirme Günlüğü

  • Konuyu açan Konuyu açan benimsinsen41
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 112

benimsinsen41

MT Üye
MT Üye
Mesaj
158
Çözümler
7
Beğeni
391
Puan
799
Ticaret Puanı
0
Tyolduran SF
Geliştirme Günlüğü

1-120 Global • Python 3.10 Client • Protobuf Ağ Altyapısı • 11 Dil​



Merhaba MMOTutkunları!

Öncelikle kendimden bahsedeyim kısaca yaklaşık 15 senedir Metin2'nin içinde olan birisiyim.Metin2'yi sadece oynamakla kalmayıp youtube dan c++ ve python kodlamasını öğrenen birisiyim.Youtube den kodlama mı öğrenilir diyenler için hastanede laboratuar teknikeri olarak çalışıyorum boş vakitlerimi değerlendiriyorum :D.Bir süredir üzerinde çalıştığım Tyolduran SF projesinin gelişimini bu konu altında paylaşacağım. Amacım hazır bir files'ı açıp sunucu kurmak değil, altyapıyı baştan sona elden geçirip uzun ömürlü, güvenli ve global ölçekte çalışabilecek bir Metin2 server ortaya çıkarmak.Evet herşey yapay zekayla yapılabilir oldu ama ben hobi olarak yapıyorum :D.

Yapılanları, karşılaştığım sorunları ve çözümlerini düzenli olarak burada güncelleyeceğim. Fikir, öneri ve eleştirilere açığım.



📌 Proje Kimliği

  • Proje adı: Tyolduran SF
  • Tür: 1-120 Global PvM
  • Durum: Aktif geliştirme / iç test aşaması



⚙️ Teknik Altyapı

Client
  • Visual Studio 2022 ile derlenen C++ client kaynağı
  • Python 2.7 → Python 3.10 geçişi tamamlandı; root tarafındaki tüm arayüz kodları Python 3'e taşındı ve eski 2.7 kalıntıları temizlendi
  • Pack yapısı değiştirildi ve yalnızca .typack paketlerinden okunacak hale getirildi.(FoxFS tarzında)

Server
  • FreeBSD üzerinde C++20 (g++10) ile derleme
  • game / db / auth kaynakları elden geçirildi, kullanılmayan eski kodlar temizleniyor.
  • Tam sabit genişlikli tiplere geçildi. (uint32_t / uint16_t / uint8_t)



🌐 Protobuf Ağ Altyapısı

Projenin en büyük işi ağ katmanının Google Protocol Buffers (protoc 3.21.12) yapısına taşınması oldu. Klasik struct mantığından tamamen çıkıldı.

  • Client ↔ Game / Auth
  • Game ↔ Game (P2P)
  • Game ↔ DB:
  • Paket tanımları kod üreteciyle oluşturuluyor; yeni paket eklemek bu şekilde çok kolay oluyor :)



🌍 Dil Desteği

11 dil: Türkçe, İngilizce, Almanca, İspanyolca, Fransızca, İtalyanca, Portekizce, Lehçe, Çekçe, Macarca, Rumence

  • Clienti kapatmandan oyun içinden dil değiştirme (relogin) sistemi
  • Yeni eklenen her sistemin metinleri tüm dillere eklenir; hedef %100 oyun içi çeviri



🛒 Offline Pazar ve Pazar Arama

IkarusShop altyapısı üzerine tamamen kendi tasarladığım arayüz ve oyun akışı:

  • Yeni pazar arama penceresi: Kategori / alt kategori, eşya veya satıcı adıyla arama, miktar, seviye ve yang aralığı filtreleri, sayfalama
  • Sıralamalı Pazar Arama (Premium): fiyat/isim sıralaması, efsun filtresi, aramadan doğrudan satın alma ve uzaktaki pazarı açma. Premium yoksa satıcının pazarının yanına ışınlanma
  • Pazar kurma: önce eşyalar eklenir, fiyatlar belirlenir, pazar adı girilir; "Pazar Aç" ile pazar kurulur.
  • Pazar Slot Anahtarı: kilitli slotun üzerine sürükle-bırak ile açılır





✨ Diğer Sistemler ve Düzenlemeler

  • Sandık içerikleri TR resmi verilerine göre düzenlendi (Razadör, Nemere, Beran-Setaou, Azrail, Jotun, Hidra vb.)
  • Hedef bilgisi penceresinde moblardan düşen eşyaların düşme oranı (%) gösterimi




🗺️ Yol Haritası

  • Zindan bilgi (Dungeon Info) sistemi
  • Kostüm gizleme sistemi
  • Yang sınırının artırılması
  • Anti-hile sistemi (yapım aşamasında)
  • x64 client derlemesi




Tyolduran​
 
Pazar tasarımı hoşuma gitti (y)
Oyunun genel tasarımını ona göre yaparsan bence çok hoş olur. Offical tasarıma biraz sırıtmış.
 
Pazar tasarımı hoşuma gitti (y)
Oyunun genel tasarımını ona göre yaparsan bence çok hoş olur. Offical tasarıma biraz sırıtmış.
Sırıttığı konusuna katılıyorum official tarzda yapılabilir ama bu tarz arayüzler hoşuma gidiyor
 
Offlineshop tasarımı official a göre biraz garip durmuş ama genel anlamda güzel bir tasarım.
Başarılar.
 
Geri
Üst