Bu yazıda
Yapay zeka ile oyun yapmanın en ilgi çekici tarafı, kodun yazılmasından çok oyunun içine yerleştirilen zekadır: oyuncuyla konuşan bir karakter, oyuncunun hamlesine göre davranış değiştiren bir düşman, dallanan bir hikaye. Bunların bir kısmı hala basit kurallarla, bir kısmı ise dil modelleri ya da öğrenen algoritmalarla kurulur; iyi bir oyun tasarımcısı hangisinin nerede gerektiğini bilir. Bu yazı, genç bir geliştiricinin karakter, diyalog ve hikaye katmanını nasıl düşünebileceğini anlatıyor.
İlk oyun yazımızda bir fikrin oynanabilir bir oyuna nasıl dönüştüğünü adım adım anlatmıştık. Burada bir kat yukarı çıkıyoruz: Oyun çalışıyor, karakter zıplıyor, puan artıyor. Şimdi bu dünyaya kişilik nasıl verilir?
İki tür “oyun yapay zekası”
Başlamadan önce bir ayrımı netleştirmek gerekiyor, çünkü “yapay zeka” kelimesi oyun dünyasında iki farklı anlamda kullanılır:
| Geliştirmeye yardım eden yapay zeka | Oyunun içindeki yapay zeka | |
|---|---|---|
| Ne yapar? | Fikir, kod, görsel, ses önerir | Oyun sırasında karakterlerin davranışını belirler |
| Oyuncu görür mü? | Hayır, arka planda kalır | Evet, oyun deneyiminin parçasıdır |
| Örnek | “Bu seviyeye bir bulmaca fikri öner” | Oyuncuyu kovalayan düşman, konuşan köylü |
Bu yazının odağı çoğunlukla ikinci sütun: oyunun içindeki zeka.
Konuşan karakter (NPC) nasıl yapılır?
Oyunlarda oyuncunun kontrol etmediği karakterlere NPC (non-player character) denir. Klasik yöntemde NPC’nin söyleyeceği her şey önceden yazılır: Oyuncu bir seçenek seçer, karakter hazır bir cümleyle karşılık verir. Bu yöntem hala çok değerlidir, çünkü tasarımcı hikayenin kontrolünü elinde tutar.
Yeni yöntemde NPC’nin arkasına bir büyük dil modeli bağlanır ve oyuncu serbestçe yazdığında karakter o an cevap üretir. Kulağa sihirli gelir ama iyi çalışması için tasarım gerekir.
Karakter kartı yazmak
Dil modeline bağlanan bir NPC’nin en önemli parçası, ona verilen tariftir. Bir öğrenci bunu bir “karakter kartı” olarak yazabilir:
- Kim? Liman kasabasında balıkçılık yapan yaşlı bir kadın.
- Ne biliyor? Kayıp feneri, kasabanın eski hikayelerini.
- Ne bilmiyor? Oyunun sonunu, oyuncunun envanterini.
- Nasıl konuşuyor? Kısa cümleler, deniz benzetmeleri.
- Asla ne yapmaz? Karakterden çıkmaz, oyunun dışındaki konulara girmez.
Sınırları çizmek
Serbest konuşan bir karakter, tasarımcının hiç düşünmediği yerlere gidebilir: yanlış bilgi verebilir, hikayeyi bozabilir ya da oyuna uygun olmayan bir dile kayabilir. Bu yüzden iyi bir tasarımda:
- Karakterin söyleyebileceği önemli bilgiler (ipuçları, görevler) önceden yazılmış olarak tutulur.
- Dil modeli yalnızca “renk” katar: selamlaşma, sohbet, karakterin kişiliğini yansıtan cümleler.
- Cevaplar kısa tutulur ve uygunsuz içerik için filtre konur.
Bu karma yaklaşım, hem canlı hem de güvenilir bir karakter sağlar. Genç bir geliştirici için ayrıca harika bir derstir: Güçlü bir araca sınır koymak da bir tasarım becerisidir.
Düşman davranışı: Kurallarla mı, öğrenmeyle mi?
Basit kurallarla düşman
Oyunlardaki düşmanların birçoğu, aslında birkaç basit kuraldan oluşur. En yaygın yöntemlerden biri durum makinesidir:
- Devriye: Oyuncu görünmüyorsa belirli noktalar arasında dolaş.
- Takip: Oyuncu belirli bir mesafeye girerse ona doğru git.
- Saldırı: Oyuncuya yeterince yaklaştıysan saldır.
- Kaçış: Canın azaldıysa uzaklaş.
Bu dört durum ve aralarındaki geçiş kuralları, şaşırtıcı derecede “akıllı” görünen bir düşman üretir. Kağıda çizilebilir, kolayca test edilir ve ne yaptığı her zaman açıklanabilir. Algoritmik düşünmeyi öğrenmek için mükemmel bir alıştırmadır.
Öğrenen düşman
Diğer yaklaşımda düşmanın davranışı önceden yazılmaz; düşman, deneme yanılma yoluyla öğrenir. Bu yöntemin adı pekiştirmeli öğrenme. Düşman iyi bir hamle yaptığında ödül, kötü bir hamle yaptığında ceza alır ve zamanla hangi davranışın işe yaradığını keşfeder.
Kulağa çok daha etkileyici geliyor, değil mi? Ama pratikte bazı zorlukları vardır:
- Eğitmek zaman ve hesaplama gücü ister.
- Düşman bazen tasarımcının beklemediği, hatta oyunu bozan yollar bulur.
- Neden öyle davrandığını açıklamak zordur.
Bu yüzden öğrenen yapay zeka, genellikle küçük ve iyi tanımlanmış problemlerde denenir: basit bir labirentte çıkışı bulan karakter ya da bir top oyununda rakip. Bir öğrencinin aynı düşmanı önce kurallarla, sonra öğrenmeyle yapıp ikisini karşılaştırması, yapay zekanın gücünü ve sınırlarını birlikte görmesini sağlar.
Hikaye ve dallanan senaryo
Yapay zeka, hikaye tasarımında en çok beyin fırtınası ortağı olarak işe yarar. Bir öğrenci şöyle bir çalışma yapabilir:
- Hikayenin çekirdeğini tek cümleyle kendisi yazar.
- Araçtan bu çekirdek için beş farklı çatışma fikri ister.
- Birini seçer ve neden seçtiğini not eder.
- Hikayeyi oyuncunun seçimlerine göre dallanan bir ağaç olarak kağıda çizer.
- Araçtan bu ağaçtaki mantık boşluklarını bulmasını ister.
Burada kritik nokta şudur: Hikayenin sahibi öğrencidir. Araç seçenekleri çoğaltır, öğrenci seçer. Beşinci adım ise özellikle öğreticidir; öğrenci hikayesine dışarıdan, eleştirel bir gözle bakmayı öğrenir.
Üretken görsel ve seslerde telif ve özgünlük
Üretken yapay zeka araçları, birkaç kelimeyle karakter çizimi, arka plan ya da ses efekti üretebiliyor. Bu büyük bir kolaylık ama birkaç soruyu da beraberinde getiriyor:
- Kullanım koşulları: Her aracın, üretilen içeriğin nasıl kullanılabileceğine dair kendi kuralları vardır. Oyunu paylaşmadan önce bu koşulları okumak gerekir.
- Taklit meselesi: “Şu ünlü oyunun karakteri gibi çiz” ya da “Şu sanatçının tarzında” türünden istekler, başkasının emeğini kopyalamaya yaklaşır. Kendi tarzını tarif etmek hem daha etik hem de daha özgündür.
- Özgünlük: Oyunu “senin” yapan şey, üretilen görselin kendisi değil, onu nasıl seçtiğin, düzenlediğin ve oyunun bütününe nasıl yerleştirdiğindir.
İyi bir alışkanlık, oyunun bir “yapım notları” sayfası olmasıdır: Hangi görsel ve ses yapay zekayla üretildi, hangisi elle yapıldı, hangisi hazır kaynaktan alındı. Bu şeffaflık, özellikle oyun bir sunumda ya da yarışmada paylaşılacaksa değerlidir.
“Tek prompt’la oyun” vaadinin sınırları
Sosyal medyada sık sık “Tek bir prompt yazdım, oyun hazır” türünden paylaşımlar görülüyor. Bu araçlar gerçekten basit bir oyun iskeleti üretebilir. Ama bu iskeletin ötesine geçmek istediğinizde sınırlar hızla belirir:
- Anlamadığın kodu geliştiremezsin. Yeni bir özellik eklemek ya da bir hatayı düzeltmek, kodun mantığını bilmeyi gerektirir.
- Tasarım kararları eksik kalır. Zorluk dengesi, oyuncunun hissi, hikayenin ritmi; bunlar test edip değiştirerek bulunur.
- Oyun kimsenin olmaz. Tek prompt’la çıkan oyun genellikle genel ve tanıdıktır, çünkü içinde tasarımcının kendi fikri yoktur.
Tek prompt, bir başlangıç noktası olabilir. Oyun ise o başlangıçtan sonraki yüzlerce küçük kararla doğar.
Sık sorulan sorular
Konuşan bir NPC yapmak için ileri seviye kod bilgisi gerekir mi?
Temel bir oyun kurabilen ve bir dil modeline istek göndermeyi öğrenen bir öğrenci basit bir konuşan karakter yapabilir. Zor olan kod değil, karakterin sınırlarını iyi tasarlamaktır.
Oyunda yapay zeka kullanmak oyunu daha iyi yapar mı?
Her zaman değil. Birçok iyi oyun yalnızca basit kurallarla çalışır. Yapay zeka, oyuncunun deneyimine gerçekten bir şey kattığı yerde anlamlıdır.
Çocuğum bu araçları tek başına kullanmalı mı?
Küçük yaşlarda aracın veli hesabıyla ve birlikte kullanılması önerilir. L’Atelier AI’da öğrenciler atölye hesaplarıyla, mentor gözetiminde çalışır.
Son söz
Bir oyun karakterine kişilik vermek, bir düşmana strateji kazandırmak ya da bir hikayeyi oyuncunun seçimlerine göre dallandırmak, yapay zekayı anlamanın en eğlenceli yollarından biridir. L’Atelier AI’ın Yapay Zeka ile Oyun Geliştirme programı, gençlerin bu katmanları kendi projeleri üzerinde, küçük gruplarda ve mentor rehberliğinde keşfetmesi için tasarlandı.
Yazar: Dr. Gökhan Tahıl
L'Atelier AI'ın kurucusu ve mentoru. Galatasaray Üniversitesi Bilgisayar Mühendisliği; Université d'Artois'da yapay zeka doktorası.