1-99 Saf Oldschool Altyapı Projesi 2004 - 2008

  • Konuyu açan Konuyu açan hernandess
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 303

hernandess

Üye
Üye
Mesaj
86
Çözümler
5
Beğeni
59
Puan
719
Ticaret Puanı
0
Herkese merhaba,

Son zamanlarda altyapılarda biriken gereksiz sistem fazlalıkları, şişirilmiş drop tabloları, sonradan eklenip yarım yamalak bırakılan sistemler ve gizli syserr üreten bozuk dosyalar nedeniyle; projeyi en saf, en optimize ve teknik olarak kusursuz bir 1-99 Oldschool çizgisine kavuşturmak adına baştan aşağı bir revizyon sürecine girdim.

Kullandığım files @Kaptan Yosun a ait olan u10 sürümü.

Bu süreçte yapılan tüm optimizasyon ve temizlik adımlarını toplulukla şeffaf bir şekilde paylaşmak istedim.

⚙️ Sistem & Sürüm Bilgileri

  • Derleyici: Visual Studio 2022 (MSVC v143)
  • Grafik Motoru: DirectX 8 (Ymir EterLib)
  • Animasyon Motoru: Granny 2.11.8.0
  • Scripting Dili: Python 2.7
  • Kütüphaneler: Boost 1.85.0 & Crypto++ 8.9.0
📌 Vizyon: Saf 1-99 Nostalji & Eksiksiz Denge Oyunun orijinal ruhunu bozan ve sonradan eklenen tüm yabancı unsurlar sunucu ve istemci genelinden (kod, veritabanı, 3D model, harita ve görev boyutunda) tamamen söküldü:

  • Sürgün Mağarası, Ejderha Odası & Beran-Setaou: İlgili haritalar, moblar, droplar, görevler ve istemci modelleri temizlendi.
  • Nemere, Razadör, Beta Haritalar: Tamamen kaldırıldı, sunucu ve istemci 44 harita standardına eşitlendi.
  • Şeytan Katakombu (Devil's Catacomb): 7 katlı zindan, Azrail'in harici anahtar sistemi, labirent haritaları ve Katakomb canavarları/dropları tamamen kaldırıldı.
  • Örümcek Zindanı 3. Kat (SD3) & Örümcek Barones: Barones odası, yumurtalar, flüt/zehir mekanikleri ve haritası söküldü.
  • Epik Eşyalar & Dönüşümler: Seon-Pyeong (Epik Sura), Triton/Kutsal vb. 80+ seviye silahlar, Kirin/Coşku vb. epik ayakkabılar, 80 ve 60 seviye kasklar, Ruh Kristali takıları ve Eskrim Broşürü kaldırıldı. Oyunun zirve ekipmanları orijinal oldschool dengesine (Muharebe, Çelik, Zehir dönemi) sabitlendi.
  • Atıl Eşyalar: Çırak sandıkları, oto-potlar, klon etkinlik nesneleri ve gereksiz kostüm kalıntıları temizlendi.
  • Kaynak Kod & Ölü Kod Temizliği: İstemci tarafında kullanılmayan eski statik kütüphaneler (Reducio, glut, SecureEngineSDK, mmap vb.), C++ motorundaki atıl monster2/npc2 arama kodları, sökülen sistemlere ait C++ fonksiyon kalıntıları, kaldırılan sistemlerin Lua görevleri (quest) ve translate.lua içerisindeki yüzlerce satır ölü çeviri metni kaynak kodlardan tamamen temizlendi.

1789330721989.webp
 

Geliştirme Günlüğü #2: BGFX Geçişi, Çekirdek Güvenliği ve Optimizasyon​


İlk geliştirme günlüğünde paylaştığım içerik temizliğinin ardından projenin teknik altyapısında kapsamlı bir modernizasyon çalışması gerçekleştirildi. Oyunun 1-99 Oldschool yapısı korunurken grafik motoru, kaynak kullanımı ve sunucu çekirdeği yeniden ele alındı.


Modern Grafik Mimarisi​

İstemcinin Native DirectX 8 cihazına bağlı çalışma zorunluluğu kaldırılarak BGFX tabanlı modern render altyapısı geliştirildi.

Varsayılan grafik sıralaması:

Direct3D 12 → Direct3D 11 → Vulkan

Modern backend’lerin çalışmadığı sistemler için aşağıdaki uyumluluk zinciri korundu:

Direct3D 9Ex → Direct3D 9 → Native Direct3D 8

Karakterler, arazi, binalar, ağaçlar, efektler, su, gölgeler ve arayüz BGFX render hattına aktarıldı.


Bellek ve Performans Optimizasyonu​

BGFX’in varsayılan bellek rezervleri Metin2’nin gerçek kullanımına göre yeniden düzenlendi.

  • Gereksiz transient buffer ve draw-call rezervleri azaltıldı.
  • Kullanılmayan kaynakların bellekte bekleme süresi düşürüldü.
  • Tekrarlanan render-state ve transform gönderimleri engellendi.
  • Texture ve render kaynaklarının oluşturma/yok etme süreçleri düzeltildi.

Client, Game ve DB kaynaklarında kullanım noktası kalmamış kodlar temizlendi.


1789923510184.webp
 

Geliştirme Günlüğü #3: Çoklu Dil ve Görev Düzenlemeleri​

Önceki günlükte grafik altyapısına odaklanmıştım. Bu süreçte ise oyunun içeriğini ve günlük oynanışını düzenlemeye devam ettim. Amaç değişmedi: 1–99 oldschool yapısını korurken eksikleri tamamlamak ve sorunları gidermek.


Çoklu Dil Altyapısı​

Oyunun farklı dillerde kullanılabilmesi için arayüz, eşya ve canavar isimleriyle görev metinleri üzerinde çalışıldı.

  • Eşya ve canavar isimleri seçilen dilin dosyalarından okunacak şekilde düzenlendi.
  • Bazı alanlarda Türkçe kalan metinler ve bozuk karakterler ele alındı.
Bu çalışma yalnızca giriş ekranına dil seçeneği eklemekten ibaret değil; oyun içindeki içeriklerin de seçilen dille uyumlu olması hedefleniyor.


Görevlerin Geri Kazandırılması​

Projede bulunmayan harita veya NPC’leri gerektiren görevler kapsam dışında bırakıldı. Temizlik sırasında kaldırılmış görev malzemelerine bağlı bazı adımlar, envanterde eşya taşımadan ilerlemenin takip edilebildiği şekilde düzenlendi. Mevcut eşya teslimleri ise korundu. Biyolog görevleri de kontrol edildi.

Görev ödülleri wiki bilgileriyle karşılaştırıldı; projede bulunmayan ödüller oldschool yapıya uygun alternatiflerle değiştirildi.


Şu an önceliğim yeni sistemlerle oyunu kalabalıklaştırmak değil; mevcut içeriğin doğru, tutarlı ve sorunsuz çalışmasını sağlamak. Testlerde ortaya çıkan sorunları gidererek ilerliyorum.
 
Geri
Üst