İçeriğe geç

Metin2 Mobil Server Nasıl Açılır? PC ve Mobil Aynı Sunucuda

Hazırlayan: Metin2VIP Editörleri Yayın: 7 dk okuma

Kısaca: Mobil Metin2 server ayrı bir sunucu değildir: aynı auth, db ve kanal çekirdekleri hem PC hem telefon oyuncusuna hizmet verir. Asıl iş, sunucuyla aynı paket yapısını, şifrelemeyi ve sürüm bilgisini kullanan bir Android ve iOS client'ı yapmak, onu imzalamak ve mağaza kurallarına uygun dağıtmaktır. Klasik client Direct3D 8, Python 2.7 ve Windows'a bağlı ticari kütüphanelerle çalıştığı için bu, client'ın büyük bölümünün yeniden kurulması demektir.
İçindekiler
  1. Sunucu tarafında ne değişir?
  2. Masaüstü client neden telefonda çalışmaz?
  3. İki yol: port mu, yeniden yazım mı?
  4. PC ve mobil aynı sunucuda: güncelleme düzeni
  5. Mağaza kuralları ve dağıtım
  6. İmzalama ve hesapların sahipliği
  7. Güvenlik
  8. Maliyet ve zaman: gerçekçi bakış

Mobil Metin2 server denen şey ayrı bir sunucu yazılımı değildir. Oyuncu telefondan da bilgisayardan da aynı auth ve kanal çekirdeklerine bağlanır, hesabı aynı veritabanında durur. Sunucu tarafında yapılacaklar sınırlıdır; işin büyük kısmı telefonda çalışan, sunucuyla aynı dili konuşan bir client yapmak ve onu Android ile iOS'un dağıtım kurallarına uydurmaktır. Bu yazı adım adım bir kurulum değil, hangi parçaların gerektiğini ve nerede zorlanılacağını gösteren bir yol haritasıdır. Sunucunun kendisi server kurulumu yazısındaki gibi kurulur; aşağıdaki dosya ve ayar adları yaygın topluluk kaynağına göredir ve derlemeden derlemeye değişebilir.

Sunucu tarafında ne değişir?

Çekirdekler client'ın hangi cihazda çalıştığını bilmez; doğru paketi gönderen her client'a hizmet verir. Mobil client'ın uyması gerekenler:

  • Paket yapıları birebir aynı olmalı. Sunucunun packet.h dosyası ile client'ın Packet.h dosyası #pragma pack(1) ile sıkıştırılmış yapılar kullanır. Bir alanın boyu bir bayt şaşarsa sonraki bütün paketler bozulur.
  • Şifreleme aynı olmalı. _IMPROVED_PACKET_ENCRYPTION_ açık olan kaynaklarda client ile sunucu bağlantının başında Crypto++ ile anahtar anlaşması yapar; mobil client aynı anlaşmayı ve aynı şifreleri uygulamalıdır.
  • Sürüm bilgisi tutmalı. CHECK_VERSION_SERVER açıkken çekirdek, client'ın gönderdiği sürüm metnini CHECK_VERSION_VALUE ile birebir karşılaştırır ve tutmayanı oyundan atar. Tek değer kabul edildiği için mobil ve PC client aynı metni göndermeli ya da denetim kodda iki değeri kabul edecek biçimde değiştirilmelidir. Ayrıntı serverinfo yazısında.
  • Adres ve portlar aynı kalır. Client önce auth PORT'una, sonra kanal çekirdeğine bağlanır; telefon için ayrı port gerekmez.

Telefona özgü iki sunucu ayrıntısı daha var. Operatör düzeyinde NAT (CGN) kullanan bağlantılarda çok sayıda abone aynı genel IP adresiyle görünür; IP başına client sınırı, IP yasağı ya da IP'ye göre çalışan bot denetimleri bu oyuncuları topluca etkiler. Telefon Wi-Fi ile mobil veri arasında geçince de adres değişir ve bağlantı kopar; eski oturum kapanana kadar "Hesabın zaten bağlı" yanıtı gelir. Mobil client bunu oyuncuya anlaşılır göstermeli ve kısa bir süre sonra yeniden denemelidir (giriş akışı).

Masaüstü client neden telefonda çalışmaz?

Klasik client 32 bit bir Windows programıdır ve neredeyse her katmanı Windows'a bağlıdır. UserInterface.cpp başındaki kütüphane listesi bunu açıkça gösterir.

Katman Masaüstü client Telefonda gereken
Çizim Direct3D 8 Android'de OpenGL ES 3 ya da Vulkan, iOS'ta Metal (OpenGL ES, iOS 12'den beri kullanımdan kaldırılmış durumda)
Doku DDS (DXT, BCn sıkıştırması) ETC2 ya da ASTC'ye dönüştürme; Android'de ETC2, OpenGL ES 3.0 destekleyen bütün cihazlarda bulunur
Model ve animasyon Granny 3D (granny2.dll) Granny'nin hedef platform için lisanslı sürümü ya da modellerin başka biçime çevrilmesi
Ses Miles Sound System (mss32.dll) Platformun ses sistemi ya da lisanslı sürüm
Ağaçlar SpeedTree (SpeedTreeRT.dll) Lisanslı sürüm ya da yerine başka çizim
Arayüz Python 2.7 betikleri (root, uiscript) Gömülü Python ya da arayüzün yeniden yazılması, dokunmatik ölçüler
Giriş DirectInput, klavye, fare, Windows IME Sanal yön çubuğu, beceri düğmeleri, sistem klavyesi
Ağ Winsock Platform soketleri, aynı paket yapıları

Granny 3D ve Miles, Epic Games'in 2021'de satın aldığı RAD Game Tools'un ticari araçlarıdır; Epic satın almada lisans satışının süreceğini açıklamıştı. SpeedTree de lisanslı bir üründür. Masaüstü client'taki DLL'ler telefonda kullanılamaz. Python 2.7'nin desteği 1 Ocak 2020'de bitti, telefona gömülecek bir 2.7 yorumlayıcısı güvenlik güncellemesi almaz.

64 bit ayrı bir tuzaktır. Google Play yerel kod içeren uygulamada her 32 bit mimarinin 64 bit karşılığını ister, iOS 11'den beri 32 bit uygulamalar hiç açılmaz. Windows'ta ve -m32 ile derlenen sunucuda long 4 bayttır, 64 bit Android ve iOS'ta (LP64 veri modeli) 8 bayt. Packet.h içinde onlarca long alan vardır; bunlar ve DWORD gibi Windows türleri int32_t, uint32_t gibi sabit genişlikli türlere çevrilmeden paketler sunucuyla uyuşmaz.

İki yol: port mu, yeniden yazım mı?

Port mevcut C++ client'ın oyun mantığını (GameLib, UserInterface) korur, Windows'a bağlı katmanları değiştirir: çizim, ses, giriş, pencere ve dosya sistemi. Oyunun davranışı ve paketler aynı kalır; zorluk, Direct3D 8'e göre yazılmış çizim kodunu mobil grafik arayüzlerine taşımaktır. Kaynağın nasıl derlendiği source derleme yazısında.

Yeniden yazım client'ı bir oyun motorunda baştan kurar; çizim, ses ve dokunmatik kontrol motordan gelir. Bu kez paket katmanını, harita ve model okuyucularını, arayüzü ve client tarafındaki oyun kurallarını (hareket, saldırı zamanlaması, efektler) yeniden yazmak gerekir. İki ayrı kod tabanı, her yeni sistemin iki kez eklenmesi demektir; sistem eklerken yapılan hatalar iki kat büyür.

Hangi yol seçilirse seçilsin harita, model ve dokuların çıkarılıp dönüştürülmesi ayrı bir iştir. Veriler EPK/EIX paketlerinde durur ve okumak için paket anahtarları gerekir (pack dosyaları, client klasör yapısı).

PC ve mobil aynı sunucuda: güncelleme düzeni

Aynı sunucuda iki client, her güncellemenin iki client'ta aynı anda hazır olması demektir. PC yaması saatler içinde dağıtılır, mobil sürüm ise mağaza incelemesinden geçer. Apple gönderimlerin en az yarısını 24 saatte, %90'ını 48 saatte incelediğini söylüyor; reddedilen bir sürüm bu süreyi uzatır.

  • Mobil sürümü sunucu değişikliğinden önce gönder, onay gelince ikisini birlikte aç.
  • Paket değişikliklerini geriye uyumlu tut ya da sürüm denetimini bir geçiş süresi boyunca iki değeri kabul edecek biçimde değiştir.
  • Apple'ın 2.5.2 kuralı uygulamanın işlevini değiştiren kodun sonradan indirilip çalıştırılmasını yasaklar. Harita ve doku gibi verileri yamayla indirebilirsin; yeni arayüz betiği ya da oyun kodu ise yeni uygulama sürümüyle gelmelidir.
  • Dokunmatik ekranda VS klavyeye göre yavaştır. Mobil oyuncuya otomatik hedef gibi kolaylıklar veriyorsan PC'deki karşılığını ve PvP kurallarını baştan kararlaştır.

Mağaza kuralları ve dağıtım

Google Play. Geliştirici hesabı tek seferlik 25 dolardır. 31 Ağustos 2026'dan beri yeni uygulamalar ve güncellemeler Android 16'yı (API 36) hedeflemek zorundadır. Uygulamada hesap açılabiliyorsa hem uygulama içinden hem bir web bağlantısından hesap silme isteği sunulmalıdır. Play, başkasının fikrî mülkiyetini ihlal eden uygulamalara ve geliştirici hesaplarına izin vermez; Metin2'nin adı, görselleri ve içeriği Webzen ile Gameforge'a aittir.

Mağaza dışında APK. Dosyayı kendi sitenden dağıtabilirsin; oyuncu tarayıcısına bilinmeyen uygulama yükleme izni verir, Play Protect dosyayı denetler. Google, Eylül 2026'da birkaç ülkede başlattığı geliştirici doğrulamasını 2027'de bütün sertifikalı Android cihazlara yaymayı planlıyor. Kayıt resmî kimlik belgesi (kurumlar için D-U-N-S numarası) ve tam dağıtım hesabı için 25 dolar ister; paket adının sahipliği imza anahtarıyla kanıtlanır. Doğrulama geçerli olduğunda kayıtsız uygulamayı oyuncu yalnız bir günlük bekleme içeren gelişmiş kurulum akışıyla ya da ADB ile kurabilir.

App Store ve iPhone. Apple Developer Program yıllık 99 dolardır; uygulama Xcode ile, yani Mac'te derlenir ve imzalanır. 28 Nisan 2026'dan beri yüklenen uygulamaların Xcode 26 ve iOS 26 SDK ile derlenmesi gerekir. Kural 5.2.1, uygulamanın fikrî mülkiyetin sahibi ya da lisans sahibi tarafından gönderilmesini ister; lisanssız bir Metin2 client'ı incelemede reddedilebilir ya da sonradan kaldırılabilir. Hesap açılabiliyorsa kural 5.1.1(v) uygulama içinden hesap silmeyi zorunlu tutar.

iOS dağıtım yolu Sınır
TestFlight 10.000 dış test kullanıcısı, her derleme 90 gün, ilk derleme incelenir
Ad Hoc Üyelik yılında ürün ailesi başına 100 kayıtlı cihaz
Enterprise (yıllık 299 dolar) Yalnız kurumun çalışanlarına iç dağıtım; herkese açık dağıtım için değil

Üyelik yenilenmezse uygulamalar App Store'dan kalkar ve TestFlight erişimi kapanır; cihazlara yüklü uygulamalar ise silinmez.

İmzalama ve hesapların sahipliği

Android her APK'nın bir sertifikayla imzalanmasını ister ve güncellemeyi yalnız sertifika eşleşirse kabul eder. Anahtarı kaybedersen güncelleme çıkamazsın, anahtar yeniden üretilemez; doğrulama döneminde paket adını da kaydedemezsin. Anahtar deposunu ve parolasını yedekle, kimseyle paylaşma. İndirme sayfasında sertifika parmak izini yayımlamak, destek ekibinin sahte APK'yı ayırmasını kolaylaştırır:

apksigner verify --print-certs oyun.apk   # çıktıdaki SHA-256 parmak izini sitende yayımla

Geliştirici hesapları, imza anahtarı ve alan adı sunucu sahibinin adına olmalı. Client'ı dışarıya yaptırıyorsan teslim listesine kaynak kodu, anahtar deposunu ve hesap erişimini yaz (güvenilir hizmet seçimi).

Güvenlik

  • APK ve iOS paketi açılıp incelenebilir. Client'a veritabanı parolası, yönetim anahtarı ya da sunucuda kalması gereken hiçbir bilgi koyma.
  • Hesap bilgisini cihazda düz metin saklama; Android Keystore ve iOS Keychain gibi platform depolarını kullan.
  • Telefonlar için de root ve jailbreak araçları ile bellek düzenleyiciler vardır. Client'a güvenme, denetimi sunucuda tut.
  • Yama programı her dosyayı HTTPS ile indirmeli ve özet ya da imzayla doğrulamalıdır.
  • Tek bir resmî indirme sayfası tut ve adresini her duyuruda aynı yaz. Sunucu tarafındaki öteki kapılar server güvenlik hataları yazısında.

Maliyet ve zaman: gerçekçi bakış

  • Google Play: 25 dolar, bir kez. Apple Developer Program: 99 dolar, her yıl.
  • iOS derlemesi ve imzası için bir Mac.
  • Test cihazları: farklı grafik birimli birkaç Android telefon ve en az bir iPhone.
  • Granny, Miles ve SpeedTree için lisans ya da bunların yerine geçecek iş; fiyatlar kamuya açık değildir, satıcıyla görüşülür.

Bu iş bir sistem eklemekten çok bir oyun client'ı geliştirmeye benzer. Çizim, ses, arayüz, dokunmatik kontrol, paket ve dağıtım katmanlarının her biri ayrı bir proje kadar iş çıkarır; takvimi ekibin deneyimi belirler. Bittiğinde de bitmez: Google hedef API düzeyini her yıl yükseltir, Apple yeni Xcode ve SDK ister. Oyuncu tarafında mobil oyunun nasıl görüldüğü mobil Metin2 yazısında.

Sık sorulan sorular

Mobil Metin2 için ayrı bir server kurmak gerekir mi?
Gerekmez. Telefondaki client aynı paket yapısını, şifrelemeyi ve sürüm bilgisini kullanıyorsa aynı auth ve kanal çekirdeklerine bağlanır; hesaplar ve karakterler aynı veritabanında kalır. Ayrı port da gerekmez.
Metin2 mobil client Google Play'de yayımlanabilir mi?
Google Play başkasının fikrî mülkiyetini ihlal eden uygulamalara izin vermez; Metin2'nin adı ve içeriği Webzen ile Gameforge'a aittir. Lisanssız bir sunucunun client'ı bu yüzden kaldırılma riski taşır. Mağaza dışında APK dağıtılabilir, ama Google 2027'de geliştirici doğrulamasını bütün dünyaya yaymayı planlıyor.
Mobil client'ın imza anahtarını kaybedersem ne olur?
Android güncellemeyi yalnız aynı sertifikayla imzalanmışsa kabul eder. Anahtar kaybolursa mevcut uygulamaya güncelleme çıkamazsın, anahtar yeniden üretilemez; oyuncular uygulamayı silip yeni paket adıyla baştan kurmak zorunda kalır.

İlgili sayfalar

Kategori: Server Kurma Server Kurulumu server kurulumu mobil server android client ios client imzalama

Bu sayfadaki bilgiler Metin2'nin sunucu yazılımındaki hesaplamalara ve standart oyun dosyalarına dayanır. Oyun dosyalarını değiştiren sunucularda değerler farklı olabilir. İçerikleri nasıl hazırlıyoruz?

Bu sayfa işine yaradı mı?

Giriş yap, oy ver ya da sayfayı kaydet. Okumak için üyelik gerekmez. WhatsApp X'te paylaş
Yanlış ya da eksik bir bilgi mi gördün? Bildir
Neyin yanlış olduğunu, doğrusunun ne olduğunu ve bunu nereden bildiğini yaz. Mesajın editörlere gider; yazı, kontrol edildikten sonra düzeltilir.
Yalnız editör görür.

Tartışma

Kurallar

Henüz yorum yok. Bu konuda bir deneyimin ya da sorun varsa ilk yorumu sen yaz.

Giriş yap ya da kayıt ol, sonra yorum yaz. Metin2VIP üyeliği hiçbir oyun sunucusunun hesabı değildir.