Oyun Dengesini Veri Tablosunda Tutulan Değerlerle Ayarlama
Oyun geliştirirken düşman hasarı, oyuncu sağlığı, ekonomi oranları gibi değerleri kodun içine sabitlemek bataklık gibi. Her ayarlamada yeniden derlemek zorunda kalırsın. Bunun yerine bu değerleri bir tabloda (CSV, JSON, Excel) tutup runtime'da yüklemek çok daha akıllıca.
Tabloda tutulan değerler sayesinde oyun oynarken, hatta canlı yayında, dengeyi anında değiştirebilirsin. Tasarımcılar kodu dokunmadan test edebilir, hızlı iterasyon yapabilir.
Adım 1: Veri Tablosunu Hazırla
Önce bir JSON dosyası oluştur. Örneğin balance.json:
1{2"player": {3"max_health": 100,4"damage": 15,5"attack_speed": 1.26},7"enemy": {8"max_health": 50,9"damage": 8,10"attack_speed": 0.811},12"economy": {13"gold_per_kill": 100,14"gold_per_second": 515}16}Adım 2: Tabloyu Koda Yükle
Python örneğiyle başlayalım:
1import json23class GameBalance:4def __init__(self, filepath):5with open(filepath, 'r') as f:6self.data = json.load(f)78def get(self, category, key):9return self.data[category][key]1011balance = GameBalance('balance.json')12player_damage = balance.get('player', 'damage')13enemy_health = balance.get('enemy', 'max_health')1415print(f"Oyuncu hasarı: {player_damage}")16print(f"Düşman sağlığı: {enemy_health}")Çıktı:
1Oyuncu hasarı: 152Düşman sağlığı: 50Adım 3: Simülasyonda Kullan
Bir savaş simülasyonu yazalım:
1class Character:2def __init__(self, name, balance_data):3self.name = name4self.health = balance_data['max_health']5self.damage = balance_data['damage']6self.attack_speed = balance_data['attack_speed']78def take_damage(self, amount):9self.health -= amount10return max(0, self.health)1112balance = GameBalance('balance.json')13player = Character('Oyuncu', balance.get('player', None) or balance.data['player'])14enemy = Character('Düşman', balance.data['enemy'])1516# Savaş17for turn in range(5):18enemy_health = enemy.take_damage(player.damage)19player_health = player.take_damage(enemy.damage)20print(f"Tur {turn+1}: Oyuncu HP={player_health}, Düşman HP={enemy_health}")21if enemy_health <= 0 or player_health <= 0:22breakÇıktı:
1Tur 1: Oyuncu HP=85, Düşman HP=352Tur 2: Oyuncu HP=70, Düşman HP=203Tur 3: Oyuncu HP=55, Düşman HP=54Tur 4: Oyuncu HP=40, Düşman HP=0Şimdi balance.json dosyasını açıp düşman hasarını 8'den 5'e değiştir. Kodu yeniden derlemeden oyunu çalıştır, oyuncu daha az hasar alacak. Dengeyi ayarlamak bu kadar kolay.
Tableda tutulan değerler, oyun tasarımında hızlı feedback döngüsü oluşturur. Verileri sürüm kontrol sistemine koyabilir, ekip üyeleri aynı anda farklı parametreleri test edebilir.
0 yorum