Hearts of Iron IV’te 64-bit, Kod İyileştirmeleri ve Denizlerde Denge Değişiklikleri

HoI4 günlüklerinde bu hafta yapay zekaya ve cephe arayüzüne yapılan çeşitli geliştirmelerden bahsediliyor.

Herkese merhaba, bir başka geliştirici günlüğüne hoş geldiniz. Geçen hafta cephelerde yapılan değişiklikler (hem arayüz, hem kod, hem yapay zeka) hakkında konuşmuştuk. Bugün ise yaptığımız diğer değişiklik ve düzeltmeler hakkında konuşmak istiyorum.

1.7 “Hydra” yaması ile bazı sorunlu sistemleri tekrar yazıp geliştiriyoruz ve bu sırada 64-bit’e geçme şansımız oluyor. Bunlardan bahsedeceğim için bu günlük biraz tekniksel olacak.

64-bit

1.6.2 yaması HoI4’ün son 32-bit versiyonu olacak ve ulaşmak isteyenler için Steam’e bu versiyonu seçilebilir olarak ekleyeceğiz. Eski versiyonları da çok uzun süreceği için 64-bit’e yükseltmeyeceğiz. Bu nedenle yama numarasını bir arttırıp 1.7 diyelim dedik. 1.7 “Hydra” üzerinde uzun süre uğraştık ve Linux, Mac, Windows için 64-bit desteğine sahip olmasını sağladık. Bu değişimin birçok sebebi var. Mac gibi bazı platformlar 32-bit uygulamaları kullanımdan kaldırmak için ciddi bir şekilde çalışıyor ve biz de oyunun Mac’lerde oynanamaz duruma gelmesini istemedik. Bunun yanında 64-bit yeni compiler (derleyici) özelliklerini kullanıyor ve kod anlamında gelecekte daha fazla şey yapmamızı sağlıyor. Ayrıca biraz zamanı geldi diyebiliriz, sektörün çoğu bu geçişi 5 yıl önce yapmıştı.

Oyuncu olarak çok fazla bir farklılık hissetmeyeceksiniz. Örneğin herhangi bir büyük performans geliştirmesi görmedik ama böyle bir performans artırımı hiç olmayacak diye bir şey de yok. 64-bit biraz garip çünkü daha optimize kodlara, CPU register’larına (kayıt) vs. erişebiliyoruz ama aynı zamanda daha fazla bellek kullanıyor ve bellek de çoğu zaman hızı etkiliyor. Bu değişimi geleceğe yaptığımız bir yatırım olarak görüyoruz. Şimdilik temelini attık, gelecekte bize fayda sağlayacağını ve yaptığımız bazı şeyleri daha kolay hale getireceğini düşünüyoruz.

Hatta şimdiden, belki inanamayacaksınız ama, 2003’e kadar giden bazı kod yapılarını değiştirdiğimizi söyleyebilirim.

Konvoy Sistemi

Küçük gemilerinizin sayısını tutan eski kod sistemi uzun zamandır geliştirme aşamasında başımıza bela oluyordu ve 1.6’dan sonra bile hala sorunlarla karşılaştığımız için bundan tamamen kurtulalım dedik. 1.7 ile tamamen baştan yazılan yeni bir sistem geliyor. Eski konvoy sistemi herkesin kontrol edeceği ve böylece herkesin bozabileceği bir şekilde çalışıyordu. Ayrıca her “tick”te konvoyları bir ülkenin kaynakları ile atamaları arasında değiştirirdi ve konvoylar bazen herhangi bir sahiplik mekaniği olmadığı için kaybolurlardı. Belki tam anlatamadım ama bizim için kâbustu diyebilirim.

Yeni sistem ise merkezileşmiş bir sistem. Her ülkenin sahip olduğu ve kontrol ettiği konvoyları içeren bir class kodu var ve konvoya ihtiyacı duyan her sistem buradan konvoy talep edebilir. Bu “büyülü” çözüm sayesinde artık konvoyların kaybolması gibi şeyler imkânsız hale geldi. Ayrıca hem bu sistem hem de buna bağlı diğer sistemler daha stabil hale geldi.

Denizlerdeki Denge Değişiklikleri

Konvoy refakatine, denizaltılara, tespit etmeye ve baskın yapma gibi şeylere bakıyoruz, geliştirmeler yapıyoruz.

  • Denizaltılar artık geri çekilirken de ateş edebilecek.
    • Konvoy refakati görevleri çok fazla 2 yönlüydü. Konvoyları ya zamanında koruyordunuz ya da hiç koruyamıyordunuz. Muharebeye zamanında ulaşmak çok etkili olduğu için denizaltı baskınlarını zayıf hale getiriyordu. Denizaltılar artık muharebede 1-2 kere daha fazla ateş edebilecek, ayrıca bunun sayesinde yüksek kaliteli denizaltılar düşük kaliteli refakatçilere karşı daha etkili olacak.
  • Denizaltı tespitinin pasif değerini arttırdık ve torpido ateşlemenin verdiği tespit değerini azalttık. Pasif aramadan gelen tespit etme olasılığı daha parabolik bir şekilde olduğu için tespit etme ve görünme arasındaki farklılıklar daha önemli hale geliyor.
  • Uçak gemilerine pasif denizaltı tespiti verdik ve onlara bağlı bazı doktrinler de tespit etmeyi arttırıyor. Böylece uçak gemileri, Atlantik’te gerçekleştirdikleri tarihsel görevlerinde daha başarılı olacak.
  • Ayrıca denizaltıları bulmayı daha kolay hale getirmek için sonraki radarlarda ve biraz da sonarlar da tespit etme değerini arttırdık.

Konvoylar ve kendilerini deniz bombardımanı uçaklarına karşı nasıl savunduklarıyla ilgili bazı sorunlara da baktık. Bununla ilgili birkaç farklı problem vardı:

  • Ordu taşıyan gemiler deniz bombardımana uçaklarına karşı çok çabuk ölüyorlardı. Bundan en çok yapay zeka kötü bir şekilde etkileniyordu.
  • Yukarıdaki gibi küçük taşıyıcı gemi vs deniz bombardıman uçağı durumlarında uçaklar çok fazla zayiat veriyordu.
  • Konvoylar “gerçek” gemiler olmadığı için savaştan sonra canları dolardı, bu nedenle onları batırmadığınız sürece zarar vermenin pek bir anlamı yoktu.

Bunları düzeltmek için çeşitli değişiklikler yaptık:

  • Asker taşıyan gemiler özellikle de deniz bombardımanı uçaklarına karşı özel bir savunma bonusuna sahip olacak.
  • Geri ateş eden gemilerden gelen uçaksavar formülünü kısmen verilen hasarları da hesaplaması için değiştirdik. Artık kısmen hasar verildiyse onun uçağı düşürüp düşürmeyeceğini belirlemek için bir zar atılıyor. Konvoylar gibi zayıf gemiler daha önceden olması gerekenden fazla kabiliyete sahipti. Bu artık daha iyi hale geldi.
  • Artık savaşların sonunda tüm hasar alan konvoylar belirleniyor ve bunların bir kısmı için batıp batmayacaklarına dair zar atılıyor. Gemi batarsa ona en son hasar veren uçağa veya gemiye yazılıyor.

Normal muharebeye gelirsek uçak gemilerine ve ana muharebe gemilerine biraz yardım etmek istedik. Bunu yapmanın gerçekçi yolu ise muharebeye sadece onların aktif olduğu bir süre eklemekti. Artık muharebe başlar başlamaz uçak gemileri ve uçaklar aktif oluyor, birkaç tick sonra ana muharebe gemileri ve denizaltılar saldırmaya başlayabiliyor, son olarak ise diğer gemiler geliyor. Böylece büyük gemiler daha uzun menzilli silahlarının yararını görüyor.

Komut Dizisi (Script) Performans Geliştirmeleri

1.6 ile hedefi olan kararların performansını arttırmak için bazı yeni script özellikleri gelmişti. Daha önceleri bu kararlar her gün her ülkeyi kontrol ederdi ve işin içine bazı karmaşık tetikler girdiğinde performans düşebilirdi. Yeni özellikler ile hedef listesini daha önceden kısıtlayabildik. Ancak bu yeni özellikleri biraz geç geliştirdiğimiz için çıkışta dahil edemedik ve daha sonra bugları düzeltmek daha büyük bir öncelik haline geldi.

Antoni Baum (Yard1 olarak da biliniyor) adlı bir topluluk üyemiz script’lerimizi inceleyip yeni özelliğin fark yaratacağı her yeri düzeltti (aynı şekilde daha iyi performans için bazı tetikleri de düzeltti) ve bunun için ona teşekkür ediyoruz. Bu değişiklikler 1.7’de yer alacak. Performansa tam olarak ne kadar etki ettiğini belirlemek zor olsa da oyun durumuna, savaş sayısına göre yaklaşık %5-%10 bir performans artışı bekliyoruz.

1.7 yamasını bu akşam beta olarak çıkarmayı planlıyorduk ama bazı sorunlarla karşılaştık (günlük de bu yüzden geç çıktı) ama yarın yama notlarıyla birlikte beta olarak çıkarabileceğimizi düşünüyorum.

Gelecek hafta görüşmek üzere!

Yazar: Cem Kaya

Yorumla

STRATEGYTURK

Strategyturk'te strateji oyunlarından haberleri, yama notlarını, geliştirici günlüklerini ve daha birçok içeriği Türk strateji oyuncularına Türkçe bir biçimde sunuyoruz. Aynı zamanda yeni çıkan strateji oyunlarının ve eklentilerinin incelemelerini yapıyor, bu oyunlara dair sürekli olarak içerik oluşturuyoruz.

Sosyal medya sayfalarımızı takip ederek strateji oyunlarındaki gelişmelerden haberdar olabilirsiniz.

STRATEGYTURK TWITTER

Humankind'da Yeni Bir Serüven #humankind https://t.co/v0AyOE7s85
Hearts of Iron IV'te Tatilden Dönüş #hoi4 #heartsofiron4 https://t.co/Y42PJs53dw

Strategyturk Flickr