Selam, aşağıdaki görsel biraz kalabalık olacak ama altında açıklama yapacağım:

2N0wm76.jpg


  • Öncelikle böyle bir işlemi yapabilmek için bir save game sistemine ihtiyaç var. Bunu yapan ücretsiz eklentiler var marketplace'te, fakat ben kendim GameInstance üzerinden bu sistemi kuruyorum. Youtube'da tutorial videoları mevcut bu base save game sistemini yapmak üzerine.
  • UE4'ün 'Datetime' adı verilen bir fonksiyon/değişken grubu var. Bunlar zaman ve tarih üzerine işlemler yapabilmemizi sağlıyor. Öncelikle oyunu kaydetme işleminde, temelde iki iş yapmamız gerekiyor: 1 numaralı görsel zaman ve tarihi kaydediyor, 2 numaralı görsel ise tıpatıp aynı işlemi yapıyor, fakat 3 numaralı görselde görebileceğiniz üzere, eğer save game dosyası yoksa ağacına bağlanıyor. Daha optimize ve temiz şekilde yazılabilir, ben diyagram karışmasın diye ikiye böldüm.
  • Sonrasında yine GameInstance üzerinde bir fonksiyon oluşturuyoruz (bu fonksiyona istediğimiz zaman game instance'a cast yapıp erişebileceğiz.) ve kontrol yapıyoruz. GameInstance üzerinde local olarak bulunan variable'ı çekerek, onu güncel zaman olarak atıyoruz, ardından save dosyamızdaki son kaydedilen zamanı alıp bunları birbirinden çıkarıyoruz ve bu variable'a da son girişten beri ortaya çıkan fark diyoruz. Sonrasında, bu variableı break node'uyla açıp, istenen zaman dilimlerini karşılaştırmak mümkün. Kolay gelsin.
 
Basitçe anlatmak gerekirse, oyunu kapattığın zaman, oyunu kapattığın zamanı dosya olarak kaydediyorsun. Unreal de nasıl save alınır onu öğren. Oyuna giriş yaptığında ise bu save dosyasını alıyorsun ve o anki zamandan save dosyasında kayıtlı zamanı çıkarıyorsun. Tabi bu durumun eksileri neler, birisi mesela zaman ile açılan bir ödül veya etkinlikte sistem zamanını ileri alarak, gerçek zamanda daha ödülü almasına saatler yada günler varken oyunda o ödüle sahip olabiliyor. Yani oyun için zaman 2021 iken gerçekte zaman 2020.
 
omer.hatay' Alıntı:
Basitçe anlatmak gerekirse, oyunu kapattığın zaman, oyunu kapattığın zamanı dosya olarak kaydediyorsun. Unreal de nasıl save alınır onu öğren. Oyuna giriş yaptığında ise bu save dosyasını alıyorsun ve o anki zamandan save dosyasında kayıtlı zamanı çıkarıyorsun. Tabi bu durumun eksileri neler, birisi mesela zaman ile açılan bir ödül veya etkinlikte sistem zamanını ileri alarak, gerçek zamanda daha ödülü almasına saatler yada günler varken oyunda o ödüle sahip olabiliyor. Yani oyun için zaman 2021 iken gerçekte zaman 2020.

Eğer böyle bir sistem yapacaksanız get milliseconds gibi düğümlerle zamanı alıp toplamak ve değişkene kaydetmek lazım daha sonrada çekmek lazım hiç uğraşmadan. Bu en basitinden bir timer ile bile yapılabilir mesela bir event oluşturup saniye adlı int değişkenini 1 artırırsın bu event ise timerlenmiş bir şekilde 1 saniyede çalışır saniye adlı inte değişkeni 60 veya 60 dan büyük olursa 0 olarak ayarlanır ve dakika değişkeni +1 artar aynısı saat için geçerli. Bunlarda kaydedilir ve sittin sene tarih değişse bile değiştirilemez.
 
leonscottkfm' Alıntı:
omer.hatay' Alıntı:
Basitçe anlatmak gerekirse, oyunu kapattığın zaman, oyunu kapattığın zamanı dosya olarak kaydediyorsun. Unreal de nasıl save alınır onu öğren. Oyuna giriş yaptığında ise bu save dosyasını alıyorsun ve o anki zamandan save dosyasında kayıtlı zamanı çıkarıyorsun. Tabi bu durumun eksileri neler, birisi mesela zaman ile açılan bir ödül veya etkinlikte sistem zamanını ileri alarak, gerçek zamanda daha ödülü almasına saatler yada günler varken oyunda o ödüle sahip olabiliyor. Yani oyun için zaman 2021 iken gerçekte zaman 2020.

Eğer böyle bir sistem yapacaksanız get milliseconds gibi düğümlerle zamanı alıp toplamak ve değişkene kaydetmek lazım daha sonrada çekmek lazım hiç uğraşmadan. Bu en basitinden bir timer ile bile yapılabilir mesela bir event oluşturup saniye adlı int değişkenini 1 artırırsın bu event ise timerlenmiş bir şekilde  1 saniyede çalışır saniye  adlı inte değişkeni 60 veya 60 dan büyük olursa 0 olarak ayarlanır ve dakika değişkeni +1 artar aynısı saat için geçerli. Bunlarda kaydedilir ve sittin sene tarih değişse bile değiştirilemez.

Bunu da "SCUE4" ile süslersek mis gibi olur. :)