İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

vSro Paylaşım Silkroad Online Veri Tabloları Mimarisi: 126 Tabloluk Veri Sözlüğü, _RefObjCommon ve İzdüşümler

Cevaplar0
Görüntüleme181
Ticaret Puanı
0
Katılım
19 Ocak 2026
Mesajlar
277
Tepkime puanı
225
Puanları
0
Web sitesi
www.youtube.com
Discord
ayzekk.
Mevcut Bakiye
4605 ₺
📊 Silkroad Online Veri Tabloları Mimarisi: 126 Tabloluk Veri Sözlüğü, _RefObjCommon ve İzdüşümler

Silkroad Online motorunun (GameServer ve sro_client) temel varlık, yetenek, eşya, harita ve mantık veri tabanı; SQL Server tarafında ilişkisel şema (`SRO_VT_SHARD`) ile istemci tarafında PK2 arşivi içerisindeki düz metin tablolardan (`Media.pk2\server_dep\silkroad\textdata\*.txt`) oluşan hibrit bir mimariye dayanır.

Bu teknik monografta; istemcide yer alan **126 veri tablosu ve 156.114 satırlık** veri kümesinin mimari yapısı, Shard veritabanındaki normalize tablolar (`_RefObjCommon`, `_RefObjChar`, `_RefObjItem`, `_RefSkill`) ile istemcideki denormalize dosyalar (`characterdata_*.txt`, `itemdata_*.txt`, `skilldata_*.txt`) arasındaki **birebir sütun izdüşümleri, hesaplama formülleri ve COS (Creature on Summon) davranış algoritmaları** akademik bir titizlikle incelenmektedir.

---

### 1. Genel Mimari ve İstemci-Sunucu Veri Eşitleme Mantığı

Silkroad Online istemcisinde tüm veri tabloları:
- **Karakter Kodlaması:** UTF-16LE with BOM (Byte Order Mark)
- **Sütun Ayracı:** Sekme karakteri (`\t` - Tab Separated Values)
- **Satır Sonu:** CRLF (`\r\n`)
standardında saklanır.

İstemci ile Shard veritabanı arasındaki en temel mimari fark **Normalizasyon** düzeyidir:
1. **Sunucu Tarafı (`SRO_VT_SHARD`):** İlişkisel bütünlük ve depolama verimliliği için normalize edilmiştir. Bir varlığın ortak özellikleri `_RefObjCommon` tablosunda (58 sütun), canlı savaş dinamikleri `_RefObjChar` tablosunda (81 sütun), eşya özellikleri ise `_RefObjItem` tablosunda (105 sütun) saklanır. Aralarındaki bağlantı `_RefObjCommon.Link` yabancı anahtarı (Foreign Key) ile kurulur.
2. **İstemci Tarafı (`Media.pk2`):** Oyun çalışma zamanında (runtime) bellek içi pointer aramalarını ve yükleme sürelerini minimize etmek için **düzleştirilmiş (denormalized)** tek satırlık dizilere dönüştürülür. `characterdata_*.txt` 105 sütun, `itemdata_*.txt` ise tam 161 sütunluk devasa satırlar halinde derlenir.

---

### 2. Çekirdek Nesne Tanımı: `_RefObjCommon` (58 Sütun)

Oyundaki her bir varlık (oyuncu karakterleri, canavarlar, NPC'ler, binekler, silahlar, zırhlar, sarf malzemeleri ve yapılar) istisnasız `_RefObjCommon` tablosunda 1 satır ile temsil edilir.

Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler


---

### 3. Canlı Varlık Mimarisi: `_RefObjChar` (81 Sütun) ve `characterdata` (105 Sütun)

Canlı varlıkların savaş mekanikleri, can havuzları, tecrübe puanları ve yapay zeka davranışları `_RefObjChar` tablosunda tutulur.

Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler


---

### 4. Eşya Sistemi: `_RefObjItem` (105 Sütun) ve `itemdata` (161 Sütun)

Oyundaki zırh, silah, takı, simya taşları ve iksirlerin tüm stat ve varyans dinamikleri `_RefObjItem` tablosunda saklanır.

Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler


---

### 5. Yetenek ve Büyü Mimarisi: `_RefSkill` (118 Sütun)

Karakter ve canavar yetenekleri, pasif güçlendirmeler (buff) ve zayıflatmalar (debuff) `_RefSkill` tablosu üzerinde çalışır.

Bu gizli bloğun içeriği yalnızca şu üyeler tarafından görülebilir. Bu İçerik Premium Üyelere Özeldir. Engelsiz Tüm Gizli İçerikleri Görmek İçin Premium Üyelik satın alabilirsiniz. Ücretli Üyelikler


---

### 6. Bölgeler, Dükkanlar ve Işınlanma Tabloları

İstemci dünyasının topolojisi ve ticaret ağı ilişkisel tablolarla bağlanır:
- **`refregion.txt` & `regioninfo.txt`:** Dünya haritasını koordinat sektörlerine bölen `RegionID` tanımları.
- **`teleportdata.txt` & `teleportlink.txt`:** Işınlanma kapılarının hedef noktaları, altın maliyetleri ve seviye kısıtlamaları.
- **`shopdata.txt`, `refshopgroup.txt`, `refshoptab.txt`, `refshopgoods.txt`:** 4 kademeli mağaza zinciri (NPC -> Grup -> Sekme -> Eşya Listesi).

---

### 7. Sonuç ve Geliştirici Standartları

1. **Denormalizasyon Disiplini:** Veritabanına yeni bir canavar veya eşya eklendiğinde; Shard'daki `_RefObjCommon` ve `_RefObjChar` kayıtlarının istemcideki `characterdata_*.txt` karşılığına 105 sütunluk tam eşleşmeyle yazılması zorunludur. Aksi halde istemci bellek ayrıştırma (parsing) hatası vererek başlatma anında çökecektir.
2. **Karakter Kodlaması:** Tablolar doğrudan metin düzenleyiciyle açılırken UTF-16LE kodlaması bozulmamalı, sekme karakterleri boşluk (space) ile değiştirilmemelidir.
3. **Fail-Closed İlkesi:** İstemci ve sunucu arasındaki `ID` uyuşmazlığı durumunda paket çözümleyici senkronizasyonu kaybeder ve istemci doğrudan masaüstüne kapanır.

🙏 Silkroad Geliştirici Camiasına Teşekkür ve Saygı

Bu kapsamlı teknik dokümantasyon, tersine mühendislik mimarisi ve protokol analizlerinin gün ışığına çıkmasında Silkroad ekosistemine yıllardır karşılıksız devasa emekler veren ve bu mirası ileriye taşımaya devam eden öncü geliştiricilerimize en içten teşekkürlerimizi sunarız:

⭐ DaxterSoul — Paket filtreleme, proxy mimarileri ve sunucu güvenliğindeki temel çalışmaları ve topluluğa kazandırdığı standartlar için,
⭐ florian0 — İstemci (Client) ve GameServer ikili (binary) tersine mühendisliği, hook ve assembly düzeyindeki rehber niteliğindeki araştırmaları için,
⭐ JellyBitz — Açık kaynak Silkroad araçları, paket analiz kütüphaneleri ve geliştirici ekosistemine sunduğu paha biçilmez açık kaynak yazılımlar için,
⭐ ferdoran — İstemci-sunucu protokol analizlerinin, opcode referanslarının ve teknik dokümantasyonun derlenip topluluğa kazandırılmasındaki büyük gayretleri için.

Silkroad geliştirici topluluğuna kattığınız değer, paylaştığınız bilgi birikimi ve sunduğunuz vizyon için sonsuz teşekkürler. İyi ki varsınız!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 17,786 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,209
Mesajlar 4,051
Kullanıcılar 1,597
Son üye serkankacan
Geri
Üst