Table of Contents

M2

RTFI Topluluğunda tüm metin2 ile alakalı içerikler m2 etiketi altında toplanmıştır.

Sende büyük ihtimalle kendi m2 sunucunu açmak için bu serüvene atıldın. Öncelikle kendi sunucunuzu geliştirmenin ve yönetmenin kolay olmadığını bilmeniz gerekmekte. Normal şartlarda bu seviyede bir oyunun idaresi için çok büyük bir ekibe ihtiyaç vardır.

Bunlar sadece başlıcaları, bunun 3 katı daha fazla kariyer alanı bulunmaktadır oyun geliştirmede… Sizde farkındasınız ki bu kadar büyük bir ekip kuramayacaksınız. Bu yüzden tüm bu alt alanlara kendiniz hakim olmak zorunda kalacaksınız. Biz tüm bu alt kategoriler 3 ana kategoride topladık.

Sunucu Yönetimi

Server-Client sisteminin iki işletim sisteminde kurulumu ve çalıştırma ile ilgili tüm alt alanları içeren kategoridir. Kısaca kaynak tarafında düzenleme gerektirmeyecek tüm düzenlemeler ve geliştirmeler bu kategoriye aittir.

3D Modelleme

Oyun içinde görsellik üzerinde tüm alt kategoriler bu kategori altında toplanmıştır. Harita tasarımı, model tasarımı, efekt tasarımı, ui tasarımı gibi tüm kategoriler bu kategoriye aittir.

Geliştirme

Kaynak tarafında çalışma gerektirecek olan tüm işlemleri içeren kategoridir. Diğer iki kategoriye eklenemeyen tüm içerikler bu kategoride toplanmıştır. Sistem yazımı, kaynak taraflı hata ayıklamalar gibi kısaca kaynak kodlarının tekrardan derlenmesini gerektirecek tüm içerikler bu kategoriye aittir.


Biz RTFI topluluğu olarak, bu alanlarda kendinizi daha rahat geliştirebilmeniz için en basitten başlayarak öğretici içerikler hazırladık.

Genel Bakış

Client-Server Yapısı

Metin2 TCP paketleri üzerinden çalışan bir client-server yapısıdır.

Sunucu(Server) oyun içerisindeki sunucuları değil, fiziksel sunucuları ifade edecek şekilde kullanılmıştır. Client içerisinde birden fazla sunucuya bağlanılabilir. Bu yazıda tek bir sunucu var ve bu sunucu tek bir fiziksel cihazda barındırılması baz alınmıştır. Örnek olarak Alesta ve Klikya birbirinden farklı sunuculardır. İki sunucunun barındırğı fiziksel cihazların IP adresleri farklıdır.

Sunucu kendi içerisinde kanallara bölünmüştür. Farklı portlar üzerinden kanallara erişim sağlanır.

Çekirdek

Çekirdek, Sunucunun ana parçasıdır, Temelde dosya-program yapısıdır. Bir çağrılabilir ikili ve onun kullandığı dosyalardan oluşan bir klasör yapısıdır. Client tarafından gönderilen TCP/UDP paketlerini işleyen kısımdır. Sunucu yapısında çekirdekler, üstlendikleri görevlere göre isimlendirilmiştir.

DB Çekirdeği

Bu çekirdek yukarıdaki çekirdeklerden farklıdır. Db database'in kısaltmasıdır, database cache olarak da isimlendirilebilir. Oyunculara ait itemlerin, at isimlerinin, loncalar gibi veritabanı üzerinde sorgu gerektirecek tüm içerikler için bir önbellek oluşturur.

Bu çekirdek veritabanının aşırı yüklenmesini engellemek amacı ile geliştirilmiştir. Eğer bu önbellek olmasaydı, oyun içerisinde gerçekleşecek olan tüm işlemler veritabanında bir sorgu gerçekleştirecektir. Çok oyuncu durumunda çok sayıda sorgu, veritabanını çok yoracaktır. Yavaşlama ve çakışmalardan dolayı, hatalar meydana gelecektir.

DB çekirdeği, her x dakikada tüm verileri veritabanına işleyerek yukarıdaki sorunların önüne geçer. Bu sebeptendir ki oyun kapandığında veya çöktüğünde oyuncuların bazı itemleri kaybolur. Çünkü x dakika geçmeden db çekirdeği kapatılırsa, son işlemlerin sorguları veritabanına işlenmeyeceğinden itemler kaybolur. Bunun önüne geçmek için kanal çekirdekleri kapatıldıktan x dakika sonra db çekirdeği kapatılır.


İşleyiş

Client ilk olarak auth çekirdeğine bağlanır ve kimlik doğrulaması gerçekleştirir. Auth çekirdeği izin verirse, bağlantı kesilir ve belirli bir çekirdeğe bağlanır. Bu kanal eski sistemlerde First çekirdeğidir. Güncel sistemlerde oyunucun seçtiği kanala ait ilk alt çekirdektir.

Oyuncu karakterini seçtiğinde veya yarattıktan sonra, karakterine giriş yapmak istediğinde. Çekirdek, gerekli referansları sunucu üzerinde oluşturduktan sonra bulunması gereken haritaya göre başka bir çekirdeğe bağlanmasını sağlar. Örnek olarak ortak bir haritada ise bağlantı kesilip game99 çekirdeğine bağlantı gerçekleşecektir.

Son çekirdek bağlantısı sağlandıktan sonra, ilgili çekirdek oyunucun yaptığı tüm işlemlerden sorumlu hale gelir. Ta ki başka bir çekirdekte bulunan bir haritaya ışınlanana kadar.


http://wiki.rtfi.dev'den alınmıştır. ===== EDİTÖR NOTLARI ===== BU WRAP'i SİLME Bu metin işlenen sayfada görünmeyecektir. Kendiniz ve diğer editörler için notlar bırakmak için kullanabilirsiniz.


RTFI Wiki'den alınmıştır. ===== EDİTÖR NOTLARI ===== BU WRAP'i SİLME Bu metin işlenen sayfada görünmeyecektir. Kendiniz ve diğer editörler için notlar bırakmak için kullanabilirsiniz.