Strategyturk Forumları
Günlük: HoI4 - Senkronizasyon Hataları ve 1.7.1 Yaması - Baskı Önizleme

+- Strategyturk Forumları (https://forum.strategyturk.com)
+-- Forum: Paradox Forumları (https://forum.strategyturk.com/forum-paradox-forumlari)
+--- Forum: Hearts of Iron IV (https://forum.strategyturk.com/forum-hearts-of-iron-iv)
+---- Forum: HoI4: Haberler (https://forum.strategyturk.com/forum-hoi4-haberler)
+---- Konu Başlığı: Günlük: HoI4 - Senkronizasyon Hataları ve 1.7.1 Yaması (/konu-gunluk-hoi4-senkronizasyon-hatalari-ve-1-7-1-yamasi)



HoI4 - Senkronizasyon Hataları ve 1.7.1 Yaması - Duman - 12-06-2019

hoi4-banner-2018.png

Hearts of Iron IV geliştirici günlüklerinde bu hafta senkronizasyon hatalarının doğasına dair bilgiler veriliyor.

https://forum.paradoxplaza.com/forum/index.php?threads/hoi4-dev-diary-tech-bugaloo-ii-dragonslaying.1188942/ :Herkese merhabalar. Bugünkü günlük konferans sebebiyle uzaklarda olmam sebebiyle nispeten kısa olacak (bedava kahvaltı veriyorlar, yanyana gelebilecek daha güzel 2 kelime bulamazsınız.)

Geçtiğimiz hafta HOI4'ün 3. yıl dönümünü kutladık, beraberinde Radio Pack ve Axis Armor Pack ile birlikte 1.7 'Hydra' yamasını çıkarttık.

1.7 sonrasında elimizdeki telemetri verilerine baktığımızda multiplayerda senkronizasyon sorununda bir artış olduğunu gözlemledik. Bu durum yeni yamayla birlikte senkronizasyon sorununa sebep olacak bir değişiklik yaptığımız anlamına geliyor. HOI4 kendi içerisinde yeniden senkronizasyon ve hotjoin gibi mekaniklere sahip olsa da, sık sık senkronizasyon hatası almanın can sıkıcı bir şey olduğunun farkındayız ve bunu gidermek adına 1.7.1 yaması çıkartmayı planlıyoruz. Senkronizasyon hataları özellikle tespit edilmesi zor hatalar, bu sebeple bu yamanın ne zaman çıkacağına dair net bir tarih vermemiz şimdilik mümkün değil. 

Senkronizasyon hatası nedir?
Bu hatanın doğasını merak edenler için bu şekilde bir yazı hazırlamak istedim. Eğer normal biriyseniz bu kısmı atlayabilirsiniz.

Senkronizasyon hatası sunucu ile alıcıların farklı hareket etmeye başlaması neticesinde yaşanır. Bu durum multiplayerda bir bilgisayarda muharebenin Almanya tarafından kazanılırken, diğer tarafta Sovyetler tarafından kazanılması olabilir. Genellikle senkronizasyon hataları böyle devasa farklar değil, örneğin bir birimin organizasyon seviyesinin bir başka bilgisayardakinden %1 farklı olması şeklinde yaşanır. Bu yaşandığı vakit oyuncular senkronize olmaktan çıkarlar ve her geçen saniye bu farkın etkisi artabilir, bu sebeple oyun durdurularak oyuncuya bildirimde bulunulur. Host 'Resync' butonuna basarak oyunun tekrardan senkronize olmasını sağlayabilir.

Peki böyle bir durumun yaşanmasına ne sebep olabilir? İşlerin karıştığı kısım tam olarak burası - keza her zaman bu problemin yaşanmasına sebep olabilen yeni bir sebep keşfediyoruz. En popüler sebeplerden birisi makinelerde oyunun kod yapısının farklı davranabilmesi, bir diğeri ise multithreading (çoklu kullanım), bunların yanı sıra oyunun bellek sızıntısında bulunması gibi beklenmedik sonuçlar verebilecek (mesela çökme) meseleler de mevcut ancak bunları tespit etmek nispeten daha kolay.

Senkronizasyon hatalarını bulmanın ve tespit etmenin bu denli zor olmasının sebebi çok nadir yaşanmaları ve neyin neden kaynaklandığını anlamak için çok basamaklı bir senaryoyu tekrar etmenin gerekmesi. Bunu başarabilmek adına QA elemanlarımızla devasa log belgeleri oluşturan özel ayarlar eşliğinde multiplayer testeleri yapıyoruz, böylelikle senkronizasyon hatasıyla karşılaşıldığı vakit bu belgeleri makineler arasında karşılaştırıp neyin farklı olduğunu görebiliyoruz. Buradan da bu farklılığa neyin sebep olabileceğini çıkartmaya çalışıyoruz. Örneğin birimlerin organizasyon değeri farklı ise, buna sebep olabilecek birtakım sebepler var: muharebe hasarı, hava, erzak seviyesi vesaire. Bunu net olarak tespit edebilmek için bu alanların daha fazla belgelenmesini sağlayıp tekrar bir test yapıyoruz, bu şekilde daha ayrıntılı bir şekilde meselenin derinine inmeye çalışıyoruz. Tabi en eğlenceli senkronizasyon hataları bu belgelendirmeyi arttırmanızla birlikte oyunun yavaşlaması sebebiyle karşılaşamadığınız hatalar oluyor.

Eğer senkronizasyon hatası oyunculardan kaynaklı değilse geceleri otomatik testler yapabiliyoruz ancak genelde bu durum pek öyle olmuyor.

Senkronizasyon hatası bulunduktan ve giderildikten sonra açık beta yama çıkartarak sorunun gerçekten çözülüp çözülmediğini görmemiz gerekiyor. Beta yamalardan bahsetmişken 1.7'nin betasına gösterdiğiniz katılım için de teşekkür etmek isterim, nihai sürüm öncesinde 30 bin oyunluk bir teste sahip olduk.

Umuyoruz HOI4'ün geliştirilişiyle alakalı bu bilgi metnini ilgi çekici bulmuşsunuzdur.

Ekibimizin senkronizasyon hatalarıyla uğraşmayan kısmı 1.8 'Husky' ve onla birlikte çıkacak eklentinin çalışmalarına başlamış durumda. Ancak henüz çalışmanın başında olduğumuz için bir süreliğine geliştirici günlüğü görmeyeceksiniz. 1.7.1 hotfix yamasına dair bilgiler için forumu takip etmeyi unutmayın.