Stellaris’te 64-bit ve Diğer Teknolojik Geliştirmeler

Stellaris günlüklerinde bu hafta 64-bite geçişten ve diğer teknolojik geliştirmelerden bahsediliyor.

Herkese merhaba, benim adım Moah. Stellaris’te “teknoloji” direktörüyüm ve bugün Ancient Relics ile birlikte gelecek 2.3 “Wolfe” yamasındaki teknik şeylerden bahsedeceğim.

Stellaris 64-bit olacak

Bir zamandır bunun hakkında konuşmalar dönüyordu ve bu yama ile birlikte oyunun 64-bit yapalım dedik. Beklentilerinizi fazla yükseltmeyin, bazılarınız 64-bite geçince Stellaris’in tüm sorunlarının mucizevi bir şekilde çözüleceğini düşünse de gerçek çok daha farklı.

Ne anlama geliyor?

Bu geçişin en büyük yararlarından biri Stellaris’in artık 4GB ram ile sınırlı olmaması ve bu oyun bu limite ulaştığında kapanmaması. Böylece devasa galaksi ölçüsüyle, birçok imparatorlukla ve modla 3000’lerin sonlarına kadar giden oyuncular rahat edecek.

Performans bakımından ise çok fazla bir şey değişmiyor. Çok ayrıntıya girmeden aynı anda daha fazla veri işlendiği için bazı şeylerin hızlandığını, işlenecek veri sayısı arttığı için de bazı şeylerin yavaşladığını söyleyebilirim. Sonuç olarak gözle görülebilir bir değişim yok.

64-bit’e geçmenin son etkisi de artık 32-bit bilgisayarlara veya işletim sistemine sahip olanların oyunu oynamayacak olması. Bu tür oyuncular zaten pek yoktu.

Peki ya performans?

Yukarda kısaca cevaplasam da herkes bu soruyu sorduğu için biraz daha konuşmak istedim. Öncelikle bazı söylentiler hakkında konuşmak istiyorum. Stellaris multithreading (işlemcinin çoklu kullanımı) kullanıyor ve her zaman multithreading’e dahil edebilecek daha çok şey arıyoruz. Hatta 2.2.0’dan 2.2.7’ye geçene kadar işleri ve nüfusları buna dahil edebilmek için büyük uğraşlar verdik. İki versiyon arasında gördüğünüz performans geliştirmelerinin en önemli nedenlerinden biri buydu.

Nüfuslar ve işler gerçekten de şu anda işlemciyi en çok kullanan işlemler. Her nüfusun değerlendirdiği iş sayısını azaltarak bunu geliştirdik. Bazı gereksiz iş yapılan yerleri de azalttık, örneğin:

  • Gemilerin canları doluyken can doldurmayı hesaplaması
  • Ekranda gözükmeyen simgelerin güncellenmesi
  • Yaşanamaz gezegenlerin, üzerinde nüfus yaşayanlar ile aynı değerlendirmeleri yapması

Böyle manasız şeyler neden oluyor diye sorabilirsiniz. Ana odaklarımızdan biri oynanışı hızlıca çalışır hale getirip daha sonra içerik tasarımcılarının değiştirebilmesini sağlamak olduğu için bazı şeyler gözden kaçabiliyor. Ayrıca bu sistemlerin bazıları gerçekten karmaşık ve basit görünen şeylerin kod boyutu oldukça fazla olabiliyor. Bazen sistemin hedeflerini kısıtlamak işe yarıyor fakat daha sonra aynı sisteme daha çok hesaplama ve nesne eklenirse birden bire ortaya performans sorunları çıkabiliyor.

Etkiler (Modifier)

Stellaris’i diğer PDS oyunlarından ayıran bir özelliği etkileri nasıl kullandığı. Oyundaki her şey aslında bir etki. Etkiler başka etkilerden etkileniyor, bazen kendi kendini bile etkilediği oluyor. Bu nedenle takip etmesi biraz zor oluyor ve siz fark etmeden tüm değerlerin bir anda değişebilmesine sebep oluyor.

“İşleri neden sadece yeni bir iş belirdiğinde hesaplamıyorsunuz?” sorusu çok fazla kez soruldu. Kısa cevap olarak yeni bir işin ne zaman belirdiğini bilmek aslında çok zor diyebilirim. Her farklı şeyden yeni işler açılabilir; bu işleri açan şeyler de etikler, gelenekler, perk’ler, olaylar, işlerin kendisi, gezegen, ülke, nüfus, teknoloji vs. olabilir.

Şu ana kadar etkileri bir anlamda elle hesaplamaya çalışıyorduk ve etki zincirinin tamamını takip etmek zorunda kalıyorduk. Bir ülkenin etkisini yeniden hesapladığınızda gezegenlerin etkilerini de yeniden hesaplamalısınız ve bu nedenle her gezegen de daha sonra kendi nüfuslarının etkilerini hesaplar. Oyunda karşılaştığınız donmalardan bazıları bu karman çorman olmuş sistemin kendini düzeltmeye çalışmasıydı.

Modifier_Flowchart.jpg

Etkiler zincirimiz. Tam olarak güncel değil ama sistemin karmaşıklığını gösteriyor. Ayrıca sadece geliştirme sürecinde kullandığımız için bir günlüğe koyulacak kadar düzenli değil ama olsun.

Daha aydınlık bir gelecek

2.3 Wolfe yamasıyla bir etki düğümü sistemine geçtik. Her düğümün hangi düğümü takip ettiğini bildiriyor ve kullanıldığı zaman zinciri takip edip tekrar hesaplıyor. Böylece daha güncel ve sadece ihtiyaç olduğunda hesaplanan etkiler yarattık. Anlamsız hesaplamaların sayısı da azaldı.

Bu sistem oldukça dikkat çekici sonuçlar verdi ve oyunda yaşanan büyük donmaları azalttı (örneğin yüklemeden sonra olan donma). Birkaç sorunu var ama üzerinde çalışmaya devam ediyoruz, programcılarımızın uğraşlarıyla daha iyi bir hale geleceğinden eminiz.

Peki sonuç ne?

Testlerimize göre 2.3 Wolfe yaması şu anda 2.2.7’den %10 ila %30 arası daha hızlı. Bunun yamayı çıkartana kadar devam edeceğini umuyoruz fakat optimizasyonlar bazen sorunlara yol açabiliyor ve bu sorunları düzeltmek optimizasyonun sağladığı geliştirmeleri boşa çıkarıyor.

pre_ships_fix.jpg

Yukarıdaki ölçümler beta versiyonu üzerinden @sabrenity tarafından yapıldı. “SHIPS_SERIAL” adlı mor çizginin o zamandan beri kaldırıldığını not etmek istiyorum.

Yapay Zeka

Hep sorulan bir başka şey. Yapay zekada bazı geliştirmelerimiz oldu. @Glavius’un izniyle onun iş ağırlığı kodlarını, yapay zekanın genel iş dağıtımını iyileştirmek için kullandık. Bunun yanında klasik geliştirmelerimizi ve cilalamalarımızı yaptık. Yapay zekaya yeni özellikleri nasıl kullanacağını öğrettik.

Başka yeni ne var?

Yeni arıza raporlayıcısı sayesinde arızaları oyunu daha sonra tekrar açtığınızda değil de oyun çöker çökmez bildirebileceksiniz. Ayrıca Steam dışı ağımızdaki bağlantı sorunlarını da büyük ölçüde giderdik.

Bu günlük bu kadardı. Biraz uzun olmuş olabilir. Daha sonra 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

Total War Saga: TROY'a Dair Her Şey #totalwar #troy https://t.co/kJU3TWj0EK
Civilization VI'da Eylül 2019 Yaması #civ6 https://t.co/m6nxrq7uIJ

Strategyturk Flickr