Merhaba arkadaşlar,
Bir süredir
Knight Online geliştirme süreçlerini tek merkezde toplamayı hedefleyen
KaiACS Client Studio üzerinde çalışıyorum.
Projenin temel amacı; client dosyalarını, haritaları, objeleri, texture'ları, efektleri ve diğer geliştirme bileşenlerini ayrı ayrı onlarca programla uğraşmadan, mümkün olduğunca
tek bir profesyonel araç sistemi üzerinden yönetebilmek.
Şu anda geliştirme sürecinde özellikle OpenKO / klasik
Knight Online client yapısı üzerinde çalışıyorum.
KaiACS Client Studio'da hedeflediğim sistem
Harita Editörü
- Mevcut Knight Online haritalarını açma
- Terrain / zemin düzenleme
- Obje görüntüleme ve yerleştirme
- Pozisyon, rotasyon ve scale işlemleri
- Collision yapıları
- Warp ve zone bileşenleri
- Su, FX, NPC/Monster gibi harita bileşenlerini ilerleyen aşamalarda tek editörde yönetme
N3 / Model Araçları
- N3Shape
- N3PMesh
- N3VMesh
- Texture bağlantıları
- Objelerin bağımlılıklarını otomatik bulma
- Model ve texture dosyalarını birlikte açma
DXT / N3Tex Editörü
- Knight Online texture dosyalarını görüntüleme
- PNG / JPG / BMP gibi dosyalardan texture üretme
- DXT formatları
- Önizleme ve dönüştürme
UIF Editörü
- Knight Online arayüz dosyalarının görsel olarak düzenlenmesi
- Button, image, text ve diğer UI elemanlarının düzenlenmesi
- UIF içerisinde kullanılan texture bağlantılarının otomatik çözülmesi
FX Studio
- FXB ve efekt bileşenlerini analiz etme
- Texture / mesh bağımlılıklarını bulma
- Efekt sistemini ilerleyen aşamalarda görsel olarak düzenleyebilme
Asset Forge – Görsel / 3D → Knight Online
Üzerinde özellikle durduğum bölümlerden biri de bu.
Dışarıdan:
gibi dosyaları alıp Knight Online'da kullanılabilecek asset yapısına dönüştürmeye çalışıyorum.
Hedeflenen akış:
Görsel / Model → Mesh → UV → Texture → N3PMesh → N3Shape → Collision → Harita Editörüne Aktar
Örneğin dışarıdan hazırlanan bir çeşme, heykel, tabela veya dekor objesinin mümkün olduğunca otomatik şekilde hazırlanıp haritaya eklenebilmesini istiyorum.
Tek dosya mantığı
Programda özellikle çözmeye çalıştığım en büyük sorunlardan biri şu:
Knight Online'da bir dosya çoğu zaman tek başına çalışmıyor.
Örneğin bir .n3shape dosyasını açtığınızda arkasında:
- mesh
- texture
- collision
- diğer bağlı assetler
bulunabiliyor.
KaiACS içerisinde hedefim:
Bir dosyayı seç → program gerekli diğer dosyaları kendisi bulsun → hepsini birlikte yüklesin → eksik bağımlılık varsa göstersin.
Yani kullanıcıya “şimdi texture'ı da seç, mesh'i de seç” şeklinde parça parça işlem yaptırmamak.
Client Repository sistemi
Bunun için programda client klasörünü tarayan bir repository/dependency sistemi geliştiriyorum.
Sistem dosya yollarını indeksleyerek açılan objenin ihtiyaç duyduğu diğer dosyaları otomatik bulmaya çalışıyor.
Örnek:
object.n3shape
açıldığında:
object.n3pmesh
texture.dxt
collision.n3vmesh
gibi ilişkili dosyalar otomatik olarak projeye dahil ediliyor.
Şu an geliştirme aşamasında olan bölümler
Proje aktif olarak geliştiriliyor. Bu nedenle bazı alanları özellikle topluluktan gelen gerçek client örnekleriyle test etmek istiyorum.
Özellikle:
- 1098 / 1298
- farklı N3 formatları
- OPD / map yapıları
- SMD yapısı
- FXB sürümleri
- UIF farklılıkları
- 23xx / 25xx / 26xx client format farklılıkları
konusunda elinde teknik bilgi veya test dosyası bulunan arkadaşların katkısı çok faydalı olur.
25xx ve yeni client sürümlerini henüz “tam destekleniyor” şeklinde belirtmiyorum. Gerçek binary örneklerle tek tek doğrulamak istiyorum.
Neden bu projeyi yapıyorum?
Knight Online geliştirme tarafında çok fazla eski araç, farklı format ve birbirine bağımlı dosya bulunuyor.
Amacım mümkün olduğunca:
Harita + Model + Texture + UI + FX + Database + Asset dönüştürme
tarafını tek ekosistemde toplamak.
Uzun vadede sistemin;
Knight Online için bir geliştirme stüdyosu
haline gelmesini hedefliyorum.
Topluluktan istediğim destek
Bu konuyu sadece tanıtım amacıyla açmıyorum.
Özellikle bu işlerle yıllardır ilgilenen arkadaşlardan:
- Format bilgisi
- Hatalı çalışan dosya örnekleri
- Editor testleri
- Eski/yeni client farklılıkları
- Map formatları
- N3 yapıları
- UIF / FXB
- SMD / OPD
- Özellik önerileri
konusunda geri bildirim bekliyorum.
Programın bir dosyada hata vermesi de benim için değerli bir test sonucu olacaktır.
“Şu dosya açılmıyor”, “şu client sürümünde farklı çalışıyor”, “şu özellik editörde mutlaka olmalı” şeklindeki tüm teknik geri bildirimleri değerlendirmek istiyorum.