- 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
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
.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
.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ği11 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 AramaIkarusShop 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
