- Paketler Nedir Ve Ne İşe Yararlar ? -
Paketler , Veriyi bir yerden bir yere aktarma veya program içinde döndürmeye yarayan soket sistemine bağlı yapılardır . Bu soket sistemi kullandığımız işletim sistemi alt yapısı olan LINUX olduğu için AF_INET şeklinde sorunları yazıp çözümlerini bulabilirsiniz . Paketlerin kullandığı verileri yapılar üzerinden düzenleyebilirsiniz . Yapılarda bulunan parametre sayısına göre bellekte kapladığı alanda farkedecektir . Paketlerin kullanım amacı oyun içerisindeki sistemlerin , eklentilerin vb. işler için gereken veriyi kullanmaktır . Örneğin CMD Sınıfınıda paket işlevi yerine kullanabilirsiniz . Aldığınız verileri fonksiyonlar üzerinden işleyebilir ve bu veriyi CHARACTER::ChatPacket(type, format, ...) Üzerinden kullanıcıya aktarabilirsiniz .
- Paket Türleri ve İşlevleri -
CG (Client To Game) : Kullanıcıdan veriyi almaya yarayan paket tipidir . Bu paket ile kullanıcıdan veriyi alıp işlemenizi sağlar . Veriyi almak için NetStream Sınıfına fonksiyon eklenerek sequence ile paket serverside tarafına yollanır . Sequence ile paket şifrelenir . Şifrelenme sebebi ise illegal programlar tarafından paket yollanmamasıdır . Paketin verileri yapılar üzerinde bulunur örneğin ;
Bu örnek yapıda 3 parametre mevcut . 3'üde char veri tipinde . Birinde kullanıcının ID'sini alıyoruz , birinde girdiği şifreyi alıyoruz ve son olarak ip adresini alıyoruz . Genelde C++ üzerinde IP Adresini bağlantı yoluyla almak daha mantıklıdır . Çünki gönderirken paket üzerinde oynama yapılarak gönderilebilir .
GC ( Game To Client ) : Kullanıcıdan aldığımız veriyi işleyerek kullanıcıya farklı bir veri aktarmak veya yapılan bir işlem sonucundaki veriyi aktarmaya yarar . Örneğin bir yaratığa saldırı yaptınız ve bunun sonucunda oyun dosyası kullanıcıya Damage paketi gönderecektir bunu nasıl yapar ? Kullanıcı ilk önce canavara atak yaparak Attack paketini CG şeklinde oyun dosyasına gönderir daha sonrasında ise oyun dosyası bu veriyi işleyip kullanıcıya sonuç olarak Damage paketini gönderir . Bunun sonucunda paket işlenir ve Yaptığımız Atağın saldırı gücü renge göre karşımıza çıkar . GC Paketinin yapıları CG Paketiyle aynıdır .
GD ( Game To Database ) : Bu paketin kullanım yönü oldukça çoktur . Örnek vermek gerekirse kullanıcı bir canavardan yang elde ettiğinde Databaseye MoneyLog paketi gönderilir database bunu flush'a alır . Belirttiğiniz süre sonrasında ise toplu olarak mysql'a kaydeder . Neden flush'a alır diye sorarsanız şöyle açıklanabilir ; " Databaseye giden veriler anlık olarak kaydedilirse bu veriler oyun dosyasını yorar . Bunun için databaseye gönderilen veriler genelde flush'a alınır ve toplu olarak alınır bu oyun dosyamıza ve db dosyamıza bir kısım bellek kazandırır . "
Bu paketlerin yapılarıda GC ile aynı özelliktedir . Bir başka örnek vermek gerekirse şöyle bir örnek verilebilir ;
" Nesneler Eşya tablosu üzerinde tutulur bu tabloya eşya Save'lendiğinde belirli veriler atılır bu veriler Databaseye paket olarak gönderilir database bunu Cache'ye alır item tablosunun flush süresi 5 dakikadır . Eğer item tablosunda flush olmasaydı oyun dosyamız çok daha fazla yorulacak belkide 32 GB sunucuda 2000 3000 online almayacaktı. "
DG ( Database To Game ) : Bu pakete en güzel örnek şu şekilde gösterilir ; " Oyuna giriş yaparken gönderilen Login3 paketi işleve alınır ardından databaseye paket gönderilerek mysql'a sorgu yaptırılır . Sorgunun içeriğinde ID ve Şifre doğrumudur . Sorgu sonucuna göre database gameye Evet veya hayır der . Bu doğru değil giriş yapmasın veya bu doğru giriş yapabilir . Ardından GC paketiyle bize sonuç iletilir . " Bu paketler GD Yapılarıyla benzerlik gösterir .
GG ( Game To Game ) : Bu paketler diğer paket yapılarıyla aynıdır fakat içeriği çok daha farklıdır . P2P Üzerinden işleyen bu paketler bir çok sebeple kullanılabilir . Örneğin Web sitemiz üzerinden P2P'ye DC Paketi yolladık bu paket GG Paketiyle tüm kanallardaki oyunculardan verideki oyuncuyu arar ve oyuncuyu oyundan atar . Biliyorsunuzki 1. kanaldaki oyuncuyla bir işlem yapamıyoruz bunun çözümü GG Paketidir . GG Paketiyle Uzaktan ticaret gibi sistemler yapılabilir ve bana göre çok kullanışlı bir paket türüdür .
Konumuz bu günlük burada bitiyor fakat gerek paketlerin eklenişi , gerek paketlerin editlenişi , gerek paketlerin optimizasyonu gibi işleri vakit buldukça konuya ekleyeceğim .
Destek almak isteyenler özel mesaj yoluyla bana ulaşabilirler .
Paketler , Veriyi bir yerden bir yere aktarma veya program içinde döndürmeye yarayan soket sistemine bağlı yapılardır . Bu soket sistemi kullandığımız işletim sistemi alt yapısı olan LINUX olduğu için AF_INET şeklinde sorunları yazıp çözümlerini bulabilirsiniz . Paketlerin kullandığı verileri yapılar üzerinden düzenleyebilirsiniz . Yapılarda bulunan parametre sayısına göre bellekte kapladığı alanda farkedecektir . Paketlerin kullanım amacı oyun içerisindeki sistemlerin , eklentilerin vb. işler için gereken veriyi kullanmaktır . Örneğin CMD Sınıfınıda paket işlevi yerine kullanabilirsiniz . Aldığınız verileri fonksiyonlar üzerinden işleyebilir ve bu veriyi CHARACTER::ChatPacket(type, format, ...) Üzerinden kullanıcıya aktarabilirsiniz .
- Paket Türleri ve İşlevleri -
CG (Client To Game) : Kullanıcıdan veriyi almaya yarayan paket tipidir . Bu paket ile kullanıcıdan veriyi alıp işlemenizi sağlar . Veriyi almak için NetStream Sınıfına fonksiyon eklenerek sequence ile paket serverside tarafına yollanır . Sequence ile paket şifrelenir . Şifrelenme sebebi ise illegal programlar tarafından paket yollanmamasıdır . Paketin verileri yapılar üzerinde bulunur örneğin ;
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Bu örnek yapıda 3 parametre mevcut . 3'üde char veri tipinde . Birinde kullanıcının ID'sini alıyoruz , birinde girdiği şifreyi alıyoruz ve son olarak ip adresini alıyoruz . Genelde C++ üzerinde IP Adresini bağlantı yoluyla almak daha mantıklıdır . Çünki gönderirken paket üzerinde oynama yapılarak gönderilebilir .
GC ( Game To Client ) : Kullanıcıdan aldığımız veriyi işleyerek kullanıcıya farklı bir veri aktarmak veya yapılan bir işlem sonucundaki veriyi aktarmaya yarar . Örneğin bir yaratığa saldırı yaptınız ve bunun sonucunda oyun dosyası kullanıcıya Damage paketi gönderecektir bunu nasıl yapar ? Kullanıcı ilk önce canavara atak yaparak Attack paketini CG şeklinde oyun dosyasına gönderir daha sonrasında ise oyun dosyası bu veriyi işleyip kullanıcıya sonuç olarak Damage paketini gönderir . Bunun sonucunda paket işlenir ve Yaptığımız Atağın saldırı gücü renge göre karşımıza çıkar . GC Paketinin yapıları CG Paketiyle aynıdır .
GD ( Game To Database ) : Bu paketin kullanım yönü oldukça çoktur . Örnek vermek gerekirse kullanıcı bir canavardan yang elde ettiğinde Databaseye MoneyLog paketi gönderilir database bunu flush'a alır . Belirttiğiniz süre sonrasında ise toplu olarak mysql'a kaydeder . Neden flush'a alır diye sorarsanız şöyle açıklanabilir ; " Databaseye giden veriler anlık olarak kaydedilirse bu veriler oyun dosyasını yorar . Bunun için databaseye gönderilen veriler genelde flush'a alınır ve toplu olarak alınır bu oyun dosyamıza ve db dosyamıza bir kısım bellek kazandırır . "
Bu paketlerin yapılarıda GC ile aynı özelliktedir . Bir başka örnek vermek gerekirse şöyle bir örnek verilebilir ;
" Nesneler Eşya tablosu üzerinde tutulur bu tabloya eşya Save'lendiğinde belirli veriler atılır bu veriler Databaseye paket olarak gönderilir database bunu Cache'ye alır item tablosunun flush süresi 5 dakikadır . Eğer item tablosunda flush olmasaydı oyun dosyamız çok daha fazla yorulacak belkide 32 GB sunucuda 2000 3000 online almayacaktı. "
DG ( Database To Game ) : Bu pakete en güzel örnek şu şekilde gösterilir ; " Oyuna giriş yaparken gönderilen Login3 paketi işleve alınır ardından databaseye paket gönderilerek mysql'a sorgu yaptırılır . Sorgunun içeriğinde ID ve Şifre doğrumudur . Sorgu sonucuna göre database gameye Evet veya hayır der . Bu doğru değil giriş yapmasın veya bu doğru giriş yapabilir . Ardından GC paketiyle bize sonuç iletilir . " Bu paketler GD Yapılarıyla benzerlik gösterir .
GG ( Game To Game ) : Bu paketler diğer paket yapılarıyla aynıdır fakat içeriği çok daha farklıdır . P2P Üzerinden işleyen bu paketler bir çok sebeple kullanılabilir . Örneğin Web sitemiz üzerinden P2P'ye DC Paketi yolladık bu paket GG Paketiyle tüm kanallardaki oyunculardan verideki oyuncuyu arar ve oyuncuyu oyundan atar . Biliyorsunuzki 1. kanaldaki oyuncuyla bir işlem yapamıyoruz bunun çözümü GG Paketidir . GG Paketiyle Uzaktan ticaret gibi sistemler yapılabilir ve bana göre çok kullanışlı bir paket türüdür .
Konumuz bu günlük burada bitiyor fakat gerek paketlerin eklenişi , gerek paketlerin editlenişi , gerek paketlerin optimizasyonu gibi işleri vakit buldukça konuya ekleyeceğim .
Destek almak isteyenler özel mesaj yoluyla bana ulaşabilirler .
Oyun Dosyası Paketleri (CG, GC, GD, DG, GG): Metin2 Geliştirme Sürecinde Kritik Bileşenler
Metin2 özel sunucu geliştirme sürecinde, oyun dosyalarının paketlenmesi ve yönetimi son derece kritik öneme sahiptir. Bu bağlamda karşımıza Oyun Dosyası Paketleri çıkar. Bu paketler genellikle CG, GC, GD, DG ve GG gibi kısaltmalarla ifade edilir. Bu kısaltmalar, Metin2 oyununda sunucu-client iletişiminde kullanılan veri türlerini ve dosya yapılarını tanımlar. Bu yapılar, hem C++ sistem tarafında hem de Python GUI tabanlı yönetim sistemlerinde önemli rol oynar.
CG Paketi Nedir?
CG (Client to Game Server), yani istemciden oyun sunucusuna gönderilen verileri temsil eder. Örneğin bir oyuncu bir komut girdiğinde veya bir eylem gerçekleştirdiğinde, bu veri CG paketi olarak sunucuya gönderilir. Bu tür paketler genellikle client src üzerinden oluşturulur ve game server programming süreçlerinde analiz edilir.
GC Paketi: Sunucudan Oyuncuya Geri Dönüş
GC (Game Server to Client), yani oyun sunucusundan istemciye gönderilen verilerdir. Oyuncunun eylemi sonrası sunucunun verdiği cevap bu paket aracılığıyla gönderilir. Bu paketler sayesinde oyunculara bilgi aktarımı, animasyon tetiklemeleri, veri güncellemeleri gibi işlemler yapılır. Metin2 lobby gibi platformlarda, bu tür paketlerin doğru tanımlanması PvP sistemlerinde özellikle kritiktir.
GD ve DG Paketleri: Database ile Oyun Arasındaki Köprü[/CENTER]
GD (Game Server to Database) ve DG (Database to Game Server) paketleri, oyun sunucusu ile veritabanı arasındaki iletişimi sağlar. Oyuncu verileri, envanter içerikleri, seviye bilgileri gibi tüm veriler bu paketler sayesinde saklanır ve alınır. DB Core ve Game Core yapıları bu süreçte devreye girer. Martysama ve benzeri sistemlerde bu tür veri paketlerinin optimize edilmesi, Metin2 compile süreçlerinde performans artışı sağlar.
GG Paketi: Oyun Sunucusu Arası Haberleşme
GG (Game Server to Game Server), birden fazla sunucu kanalı arasında veri alışverişini sağlayan pakettir. Özellikle Metin2 PvP sistemlerinde, farklı kanallar arasında eşya transferi, kullanıcı verisi senkronizasyonu gibi işlemler GG paketleri ile sağlanır. Bu yapı, channel bazlı sunucularda çok önemlidir ve server src üzerinde dikkatle ayarlanmalıdır.
Oyun Dosyası Paketlerinin Uygulamaları
Python Root ve Py Root gibi sistemlerde, bu paketlerin okunabilir ve düzenlenebilir hale getirilmesi, geliştiricilerin sistem üzerinde daha esnek çalışmasını sağlar. UIScript dosyaları ile birlikte, bu paketlerin GUI üzerinden yönetimi de mümkündür. Metin2Dev ve benzeri platformlarda, bu yapılar genellikle source edit süreçlerinde merkezi konumdadır.
Sonuç
Oyun Dosyası Paketleri (CG, GC, GD, DG, GG), Metin2 özel sunucu geliştirme sürecinin kalbidir. Bu yapıların anlaşılması, C++ kaynak kod ve Python GUI sistemlerinde daha etkin geliştirme yapmanıza olanak tanır. Metin2 Lobby olarak, bu paketlerin nasıl çalıştığını öğrenmek, PvP sistemlerinizi daha güçlü hale getirmek ve Metin2 pvp game source süreçlerinizi optimize etmek için önemli bir adımdır.
Game File Packages (CG, GC, GD, DG, GG): Critical Components in Metin2 Development
Metin2 private server development process, packaging and managing game files are critically important. In this context, we encounter Game File Packages. These packages are usually expressed with abbreviations like CG, GC, GD, DG, and GG. These abbreviations define data types and file structures used in client-server communication within Metin2. These structures play an important role both in C++ systems and in Python GUI-based management systems.
What is the CG Package?
CG (Client to Game Server) represents data sent from the client to the game server. For instance, when a player enters a command or performs an action, this data is sent to the server as a CG package. Such packages are generally created through client src and analyzed during game server programming processes.
GC Package: Return Response from Server to Player
GC (Game Server to Client) refers to data sent from the game server to the client. After a player's action, the response given by the server is transmitted via this package. Through these packages, information transfers to players, animation triggers, data updates, and more are executed. On platforms like Metin2 lobby, correctly defining such packages is especially critical in PvP systems.
GD and DG Packages: The Bridge Between Database and Game
GD (Game Server to Database) and DG (Database to Game Server) packages facilitate communication between the game server and database. All player data, inventory contents, level information, etc., are stored and retrieved through these packages. DB Core and Game Core structures enter into play during these processes. In systems like Martysama, optimizing such data packages leads to performance improvements during Metin2 compile processes.
GG Package: Inter-Server Communication
GG (Game Server to Game Server) is the package that enables data exchange between multiple server channels. Especially in Metin2 PvP systems, item transfers, user data synchronization, and similar operations between different channels are handled through GG packages. This structure is very important in channel-based servers and must be carefully configured within server src.
Applications of Game File Packages
In systems like Python Root and Py Root, making these packages readable and editable allows developers to work more flexibly on the system. Together with UIScript files, GUI-based management of these packages is also possible. On platforms like Metin2Dev, these structures are typically central in source edit processes.
Conclusion
Game File Packages (CG, GC, GD, DG, GG) are at the heart of the Metin2 private server development process. Understanding how these structures work enables more effective development in C++ source code and Python GUI systems. At Metin2 Lobby, learning how these packages operate is an important step toward strengthening your PvP systems and optimizing your Metin2 pvp game source processes.
