- Katılım
- 23 Eki 2022
- Mesajlar
- 9,697
- Çözümler
- 14
- Tepkime puanı
- 9,379
- Puanları
- 113
- Yaş
- 28
- Web sitesi
- farming-simulator.r10dev.net
Metin2 Full Cross-Platform Geliştirme Rehberi (Sıfırdan mı Yazılmalı, Yoksa Source Düzenlemek Yeterli mi?)
Metin2'yi Windows, Linux, macOS, Android, iOS ve Web platformlarında çalıştırmak isteyen geliştiricilerin en çok sorduğu sorulardan biri şudur:Bu rehberde iki farklı yaklaşımı karşılaştırarak hangi yöntemin hangi senaryo için daha uygun olduğunu detaylı şekilde inceleyeceğiz."Mevcut Metin2 source kodlarını düzenlemek yeterli mi, yoksa her şeyi sıfırdan mı yazmak gerekiyor?"
1. Mevcut Metin2 Source Kodlarını Düzenlemek
Bu yöntem, halihazırda kullanılan Metin2 server ve client kaynak kodlarını temel alır.Genellikle yapılan işlemler şunlardır:
- C++ Game ve DB Source düzenlemeleri
- Python arayüz geliştirmeleri
- Yeni sistemlerin eklenmesi
- Paket (Packet) düzenlemeleri
- Performans optimizasyonları
- DirectX 9'dan DirectX 11 veya DirectX 12'ye geçiş
- Hata düzeltmeleri
- Yeni harita ve içerik eklemeleri
Avantajları
- Mevcut oyun sistemi hazırdır.
- Geliştirme süresi daha kısadır.
- Mevcut Metin2 sunucuları kolayca güncellenebilir.
- Daha düşük maliyetlidir.
Dezavantajları
- Kod tabanı oldukça eskidir.
- Platform bağımlılığı yüksektir.
- Mobil desteği eklemek oldukça zordur.
- Web desteği neredeyse mümkün değildir.
- Kod bakım maliyeti zamanla artar.
2. Metin2'yi Sıfırdan Geliştirmek
Gerçek anlamda Cross-Platform Metin2 geliştirmek isteyen ekiplerin tercih ettiği yöntem budur.Bu modelde eski kaynak kodları kullanılmaz.
Yeniden geliştirilen bileşenler:
- Login Server
- Game Server
- Database Server
- Ağ (Network) Sistemi
- Oyun Motoru
- Kullanıcı Arayüzü
- Karakter Sistemi
- Savaş Sistemi
- Skill Sistemi
- Görev (Quest) Sistemi
- Envanter Sistemi
- Lonca Sistemi
- Ticaret Sistemi
Modern Cross-Platform Mimarisi
Mobile│
Browser
│
Windows ───────────┼────────── macOS
│
Linux
│
Cross Platform Client
(Unity / Godot / Unreal Engine)
│
WebSocket / TCP / QUIC
│
API Gateway Server
│
┌─────────────┴─────────────┐
│ │
Login Server Game Server
│ │
└─────────────┬─────────────┘
│
Character Server
│
MySQL / PostgreSQL / Redis
Hangi Assetler Kullanılabilir?
Eski Metin2 dosyalarının büyük bölümü yeni projeye aktarılabilir.Örneğin:
- Karakter modelleri
- NPC modelleri
- Canavar modelleri
- Haritalar
- Texture dosyaları
- Ses dosyaları
- Efektler
- Animasyonlar
Not: Ticari projelerde mevcut oyun içeriklerini kullanmadan önce lisans haklarını kontrol etmeniz önemlidir.
Modern Server Yapısı
Yeni nesil MMO sunucuları genellikle aşağıdaki servislerden oluşur.- Login Server
- Authentication Server
- Game Server
- Chat Server
- Guild Server
- Party Server
- Marketplace Server
- Mail Server
- Database Service
- API Gateway
Client Tarafında Kullanılabilecek Teknolojiler
En çok tercih edilen seçenekler:- Unity
- Unreal Engine
- Godot Engine
- Bevy Engine (Rust)
- Windows
- Linux
- macOS
- Android
- iOS
- Web
Yeniden Yazılması Gereken Sistemler
Modern bir Metin2 geliştirilirken aşağıdaki sistemler sıfırdan oluşturulur.- Karakter sistemi
- Hareket sistemi
- Skill sistemi
- Combo sistemi
- PvP sistemi
- Party sistemi
- Guild sistemi
- Ticaret sistemi
- NPC sistemi
- Görev sistemi
- Envanter sistemi
- Depo sistemi
- Pet sistemi
- Binek sistemi
- Balıkçılık sistemi
- Madencilik sistemi
- Eşya geliştirme sistemi
- Ağ protokolü
- Güvenlik sistemi
- Anti-Cheat sistemi
Hangi Yöntem Tercih Edilmeli?
Eğer Amacınız;
- Yeni sistem eklemek
- Sunucuyu geliştirmek
- Hataları düzeltmek
- Performansı artırmak
Eğer Amacınız;
- Windows
- Linux
- macOS
- Android
- iOS
- Web
Sonuç
Mevcut Metin2 kaynak kodları üzerinde yapılan düzenlemeler kısa vadede hızlı sonuç verse de, gerçek anlamda Full Cross-Platform desteği sağlamaz. Mobil cihazlar ve web tarayıcıları için modern bir Metin2 geliştirmek isteyen ekiplerin, eski oynanışı koruyup altyapıyı günümüz teknolojileriyle yeniden tasarlaması en doğru yaklaşımdır.Bu yöntem daha uzun geliştirme süresi gerektirse de; bakım kolaylığı, yüksek performans, ölçeklenebilirlik ve çoklu platform desteği sayesinde uzun vadede çok daha sürdürülebilir bir çözüm sunar.
