CodeBlanks Logo Icon CodeBlanks

Save game şeması

Kayıt şeması tasarımını ve sürümleme öğrenirsin.

Kayıt Veri Modeli ve Sürüm Takibi

Oyunlar geliştikçe kayıt edilen veri modeline yeni alanlar eklenir veya eski alanlar kaldırılır. Eski kayıt dosyalarının yeni güncellemelerde bozulmaması için kayıt modeline bir saveVersion numarası eklenmelidir.

[System.Serializable]
public class GameSaveData {
    public int saveVersion = 2; // Surum takip numarasi
    public int playerLevel;
    public float playTime;
}

Bu alan sayesinde kayıt dosyası açılırken hangi oyun sürümüne ait olduğu hemen tespit edilir.

Veri Göçü (Migration) Stratejisi

Dosyadaki saveVersion mevcut oyun sürümünden küçükse, bir dönüştürücü (migration) kodu çalıştırılır. Yeni eklenen alanlara varsayılan değerler atanarak oyuncunun ilerlemesi korunur.

if (data.saveVersion < 2) {
    // Surum 1'den 2'ye yukseltme:
    // Yeni ozellikleri varsayilan degerlerle baslat
    data.saveVersion = 2;
}

Böylece oyuncular yeni bir yama yayınlandığında sıfırdan başlamak zorunda kalmaz.

Uygulama Sürüm kontrolü ve veri modeli

Bir Start metodu tanımla. İçinde int saveVersion = 2; tanımla ve konsola "Kayit veri surumu: " + saveVersion yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class VersionManager : MonoBehaviour
{
    // Start icinde saveVersion tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class VersionManager : MonoBehaviour
{
    void Start()
    {
        int saveVersion = 2;
        Debug.Log("Kayit veri surumu: " + saveVersion);
    }
}

Beklenen çıktı

Kayit veri surumu: 2

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir oyun güncellemesinde kayıt dosyalarının bozulmasını önlemek ve geriye dönük uyumluluk sağlamak için kayıt nesnesinde hangi bilgi tutulmalıdır?

  • Sürüm numarası (version) Doğru cevap
  • Monitörün ekran yenileme hızı (Hz)
  • GPU çekirdek sıcaklığı
  • Oyunun kurulu olduğu sabit diskin seri numarası

Açıklama: Kayıt verisi içinde tutulan sürüm numarası, eski sürümlerden gelen verileri güvenle tespit edip yükseltmeyi (migration) sağlar.

2 Sürüm kontrolü

Soru
if (saveData.____ < 2) { MigrateToVersion2(saveData); }
Cevap
if (saveData.saveVersion < 2) { MigrateToVersion2(saveData); }

Açıklama: Kayıt nesnesinin sürümünü denetlemek için 'saveVersion' alanı kontrol edilir.

3 Sürümleme kavramları

Kavram Anlamı
saveVersion Kayıt dosyasının sürüm numarası
Migration Eski kayıtları yeni formata yükseltme
Backward Compatibility Geriye dönük uyumluluk desteği
Default Value Yeni eklenen alanlara atanan varsayılan

İleri seviye bölümündeki tüm dersler