Kaiser SF | Changelog

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 46
  • Gösterim Gösterim 6K
Güncelleme:
  • FPS Boost sistemi kaldırıldı.
  • Grafik güncellemesine ait olan bir çok işe yaramaz ölü kod ve parametre kaldırıldı. Ve kaldırmaya da devam ediyorum.
  • Önceki güncellemelerde bahsetmiş olduğum efekt ve MSAA çakışması sorunu giderildi.
    Artık Sharpness, Ölüm Sahnesi, Yumuşak Atmosfer gibi efektler MSAA destekli bir şekilde çalışacak ve efekt aktifken MSAA devredışı kalma gibi bir durum söz konusu olmayacak. + İsteğe bağlı olarak sonradan eklenecek olan efektler de bu düzenlemeye dahil olup onlar da MSAA'yı otomatik olarak işleyecektir. Ekstra bir düzenlemeye ihtiyaç olmayacak.
  • Birçoğunuzun bildiği üzere oyunda MSAA aktif olsa bile Render Target sisteminde bu destek olmadığı için modeller varsayılan olarak pürüzlü gösteriliyordu. Artık Render Target sistemi de modelleri MSAA destekli ve kaliteli gösterecek.
    ss.webp
  • Bu düzenlemelerin tamamı derinlemesine test edildi. Test esnasında fark edilen Windows UAC'ın ilk seferde sorun yaratmayıp ikinci kez ekrana gelmesi sırasında meydana gelen oyunun D3D cihazının uçmağa varması ve kilitlenmesi sorunu giderildi.

Kısa video:
 
hocam şu klasik su render olayına el atacak mısın mevcut mt2 su renderının da bi miktar iyileşmesi gerektiğini düşünüyorum
 
Ping Sistemi yazıldı.
  • Oyuncunun internet bağlantı gücünü değil, client-server arasındaki bağlantıyı izler. Dolayısıyla oyuncunun internet bağlantısının çok hızlı olmasının bu noktada hiçbir önemi yok.
  • Client ve serverin varsayılan olarak kullandığı zaman damgalarından bağımsız damgalar kullanıldı.
  • Her 10 saniyede bir kontrol sağlar ve (gerektiğinde) oyuncuya bilgi verir. (süre değiştirilebilir.)

Video (debug):


SS:
mkjkpjq.png
 
Ping Sistemi yazıldı.
  • Oyuncunun internet bağlantı gücünü değil, client-server arasındaki bağlantıyı izler. Dolayısıyla oyuncunun internet bağlantısının çok hızlı olmasının bu noktada hiçbir önemi yok.
  • Client ve serverin varsayılan olarak kullandığı zaman damgalarından bağımsız damgalar kullanıldı.
  • Her 10 saniyede bir kontrol sağlar ve (gerektiğinde) oyuncuya bilgi verir. (süre değiştirilebilir.)

Video (debug):


SS:
mkjkpjq.png

video için sunucuya nasıl delay yaptırdın peki onu merak ettim
 
Güncelleme:

1-)
MSAA seçeneği sabit olmaktan çıkarılıp, otomatik algılama ile beraber oyuncunun tercihine bırakıldı.
Bu düzenlemenin amacı çok düşük özellikli bilgisayara sahip oyuncular içindir.
  • EXE açılırken gerekli kontroller yapılacak ve eğer gerekli kriterleri karşılamıyorsa MSAA aktif olmayacak.(Exe'nin açılış hızına bir etkisi yok.)
  • Açma-Kapama ayarı olarak oyun seçeneklerine eklendi. Ancak bu ayarın kullanılması, gerekli şartların GPU tarafından karşılanmasına bağlıdır. Eğer GPU bu ayara izin vermemişse, "Açık" seçeneğine tıklanamayacak ve ayar etkinleştirilemeyecek. Python tarafından herhangi bir illegal yolla bu ayar aktif edilse bile bu hiçbir şeyi değiştirmeyecektir. Src içine GPU'ya bağlı global bir sorgu yapısı eklendi ve tüm ilgili alanlara uygulandı, böylelikle tüm bu olası illegal girişimler python tarafıyla sınırlı kalacaktır ve hiçbir işe yaramayacaktır.
  • Sabit bir MSAA değeri eklenmedi, bu durum GPU'ya bırakıldı.
  • Eğer oyuncunun bilgisayarı çok eskiyse ve MSAA desteği yoksa hiçbir hata almadan veya sorun yaşamadan oyunu çalıştırabilecek.
Aşağıdaki videoda debug ile beraber bu düzenlemenin nasıl çalıştığını kısaca göstermek istedim. (Tam ekran izlemeniz önerilir.)



Bu ve buna benzer iyileştirmeler devam edecek.

2-)
Buradaki güncellemeye ek bir düzenleme uygulandı. Yapılan son düzenleme ile beraber; src içine aktarılan locale_game.txt ve locale_interface.txt içeriklerinden istenilen bir metin/uyarı/bilgi mesajı vs. tıpkı server tarafındaki locale_string.txt mantığı ile çalışabilecek.
Otomatik olarak zaten tüm eklenen veriler sorunsuz yazdırılıyor ancak buradaki asıl amaç; pythondan değil de src içinden gerektiği durumlarda elle çağrı yapabilmek ve istenilen noktalarda oyun içine doğrudan mesaj aktarabilmek.

Düzenlemeyi basitce göstermem gerekirse:

Server tarafında bilinen mantık:
C++:
Genişlet Daralt Kopyala
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("TEST_MESSAGE"));

Client src:
C++:
Genişlet Daralt Kopyala
std::string shopBuyError = GetLocaleText("SHOP_BUY_ERROR1");
AppendChat(CHAT_TYPE_INFO, shopBuyError.c_str());

VEYA;

// Genellikle oyun içi bilgi mesajları için GetLocaleText kullanılır.
// Ancak elim değmişken interface için de bir yapı oluşturdum.
std::string blockExchange = GetInterfaceText("BLOCK_EXCHANGE_INFO");
AppendChat(CHAT_TYPE_INFO, blockExchange.c_str());
AppendChat fonksiyonuna müdahele edip daha da kullanışlı hale getirebilirdim ama o kadarına gerek duymadım.

GetLocaleText ve GetInterfaceText kendi bağlı oldukları birim üzerinden çalışır.
 
Geri
Üst