Godot'ta Roguelike Bir Oyun Yaratmak

Bu eğitimde, çok yönlü bir açık kaynak oyun motoru olan Godot'u kullanarak rogue benzeri bir oyunun nasıl oluşturulacağını öğreneceksiniz. Rogue benzeri oyunlar, prosedürel olarak oluşturulan seviyeler, kalıcı ölümler ve genellikle sıra tabanlı oyun özellikleriyle karakterize edilir.

Projenizi Kurma

Godot'ta yeni bir 2D proje oluşturarak başlayın. Projeniz oluşturulduktan sonra ana sahnenizi ayarlayın:

  1. Prosedürel Üretim:
    • Rastgele zindanlar veya seviyeler oluşturmak için prosedür oluşturma algoritmaları uygulayın.
    • Arazi, odalar ve koridorlar oluşturmak için Godot'nun TileMap düğümlerini veya özel komut dosyalarını kullanın.
  2. Oyuncu Karakteri:
    • Oyuncu karakteri için bir KinematicBody2D düğümü oluşturun.
    • Hareket ve saldırılar için animasyonlar tasarlayın ve çevre ve düşmanlarla etkileşim için çarpışma şekilleri oluşturun.
  3. Sıra Tabanlı Hareket:
    • Sıra tabanlı hareket ve eylemleri gerçekleştirmek için komut dosyaları yazın.
    • Hareket, saldırılar ve öğe kullanımı gibi oyuncu komutlarını tespit etmek için giriş olaylarını kullanın.

Oyun Oynanışı Öğelerinin Tasarlanması

Bu temel unsurları birleştirerek roguelike oyununuzu geliştirin:

  • Kalıcı Ölüm: Ölmenin oyunu sonlandırdığı ve ilerlemeyi sıfırladığı, stratejik kararları ve risk yönetimini vurgulayan kalıcı ölüm mekaniklerini uygulayın.
  • Prosedürel Öğeler ve Düşmanlar: Her çalıştırmada benzersiz oyun deneyimleri sağlamak için çeşitli niteliklere, güçlü ve zayıf yönlere sahip rastgele öğeler ve düşmanlar oluşturun.
  • İlerleme Sistemi: Başarılara veya dönüm noktalarına göre oyuncuları yükseltmeler, yetenekler veya yeni karakterlerle ödüllendiren bir ilerleme sistemi tasarlayın.

Kod Örneği: Sıra Tabanlı Hareket ve Eylemler

extends KinematicBody2D

const MOVE_SPEED = 100
const ATTACK_DAMAGE = 10
const ATTACK_RANGE = 50
var is_player_turn = true

func _process(delta):
    if is_player_turn:
        handle_player_input()

func handle_player_input():
    var movement_vector = Vector2.ZERO
    if Input.is_action_pressed("move_up"):
        movement_vector.y -= 1
    elif Input.is_action_pressed("move_down"):
        movement_vector.y += 1
    elif Input.is_action_pressed("move_left"):
        movement_vector.x -= 1
    elif Input.is_action_pressed("move_right"):
        movement_vector.x += 1

    movement_vector = movement_vector.normalized() * MOVE_SPEED * delta
    move_and_slide(movement_vector)

    if Input.is_action_just_pressed("attack"):
        var hit = move_and_collide(Vector2(ATTACK_RANGE, 0).rotated(rotation))
        if hit:
            if hit.collider is Enemy:
                hit.collider.take_damage(ATTACK_DAMAGE)
            # Add visual and audio effects for attack
            # Implement enemy AI or turn-based logic for enemy actions
            is_player_turn = false

Kodun Açıklaması

  • MOVE_SPEED: Oyuncunun hareket hızını tanımlayan sabit.
  • ATTACK_DAMAGE: Oyuncunun saldırısıyla verilen hasarı tanımlayan sabit.
  • ATTACK_RANGE: Oyuncunun saldırı aralığını tanımlayan sabit.
  • is_player_turn: Boolean değişkeni, oyuncunun hamle sırasının gelip gelmediğini takip eder.
  • _process(delta): Oyuncunun sırası sırasında oyuncu girişini ve eylemlerini yönetmek için her kareyi çalıştıran işlev.
  • hand_player_input(): Oyuncu hareketini ve saldırı girişlerini işleyen işlev. Oyuncu karakterini yön tuşlarına göre hareket ettirir ve saldırı eylemi tetiklenirse saldırı gerçekleştirir.

Oyununuzu Parlatma

Roguelike oyununuzu şu adımlarla tamamlayın:

  1. Rastgeleleştirme ve Tekrar Oynanabilirlik: Çeşitli ve zorlu seviyeler oluşturmak için prosedür oluşturmayı geliştirin. Her oyunun benzersiz ve tekrar oynanabilir olmasını sağlayacak sistemler uygulayın.
  2. Görsel ve Sesli Geri Bildirim: Eylemler, geçişler ve olaylar için görsel efektler ekleyin. Oyunun atmosferini tamamlayan ve oyuncunun oyunun içine girmesini artıran atmosferik müzik ve ses efektleri ekleyin.
  3. Test ve Dengeleme: Zorluk, ilerleme ve rastgelelik arasında denge kurmak için oyununuzu kapsamlı bir şekilde test edin. Performansı optimize etmek ve herhangi bir hata veya sorunu belirlemek için Godot'nun profilleme araçlarını kullanın.

Çözüm

Bu eğitimle Godot'ta rogue benzeri bir oyun yaratmanın temel adımlarını öğrendiniz. Rogue benzeri oyunlar, prosedürel oluşturma, kalıcı ölüm ve stratejik karar verme ile zorlu bir oyun deneyimi sunar. Oyuncular için benzersiz ve ilgi çekici rogue benzeri bir deneyim yaratmak için farklı prosedür oluşturma teknikleri, oyun mekaniği ve ilerleme sistemleriyle denemeler yapın. Roguelike maceranızı geliştirmenin tadını çıkarın!