Save game şeması
- Oyun Geliştirme kursu
- İleri seviye
- Ders 23/71
- 4 dk
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
using UnityEngine;
public class VersionManager : MonoBehaviour
{
// Start icinde saveVersion tanimla ve yazdir
}Örnek çözüm
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ü
if (saveData.____ < 2) { MigrateToVersion2(saveData); }
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 |