T: tema · Z: kodu büyüt · S: konuşmacı notları · F: tam ekran · Esc: genel bakış · ⌂ ders haritası
OYUNLARDA YAPAY ZEKÂ · HAFTA 19
Proje: Hepsini Birleştir
Mimari, kapsam, tasarım belgesi, hata ayıklama, test, sunum — dönemin bütün araçlarıyla tek bir oyun
PRESS ▶ TO START
Bu derste oyunun haritası 🗺️
Bir NPC’nin anatomisi — algıla → hatırla → karar ver → davran; dönemin hangi haftası nereye oturuyor?
Hepsi bir arada — A*, algılama, farkındalık, kara tahta, karar, steering, yönetmen: canlı gizlilik oyunu
Proje seçimi ve kapsam — altı proje şablonu, en az / hedef / bonus kapsamı, takvim
YZ tasarım belgesi — kodlamadan önce yazılacak bir sayfa
Hata ayıklama ve test — görselleştirme, kayıt, birim testi, oyun testi
YZ asistanıyla çalışmak — izinli, beyanlı, anlaşılmış
Teslim ve değerlendirme — puanlama ölçütleri, video, sunum, “postmortem”
Buradan sonra — kitaplar, konferanslar, yarışmalar, meslekler
🎮 Bu dersin sonunda…
…dönem boyunca öğrendiğiniz teknikleri tek bir oyunda birlikte çalıştıracak bir mimari kurabilecek, gerçekçi bir kapsam ve takvim çıkarabilecek, projenizi ölçülebilir şekilde test edip sunabileceksiniz.
🤔 ISINMA: 18 HAFTA, 18 ARAÇ
FSM, davranış ağacı, utility, GOAP, minimax, steering, A*, navmesh, grup, algılama, taktik, RL, LLM, PCG, üretken YZ, zorluk, performans… Bir gizlilik oyununda hangilerini birlikte kullanırdınız?
Muhtemelen: A* ya da navmesh (yol), algılama + farkındalık (görme/duyma), FSM ya da BT (karar), steering (yumuşak hareket), belki bir yönetmen (zorluk).
Asıl beceri tek tek teknikleri bilmek değil, onları doğru katmana yerleştirip birbirleriyle konuşturmak. Bunun ortak dili: kara tahta (blackboard).
Ve en önemli tasarım sorusu hep aynı: “Bu YZ, oyuncunun deneyimine ne katıyor?”
🎯 Bu konu için bilmeniz gerekenler
Yeşil = gerekli · kesikli = faydalı ama şart değil. Tıklayınca ilgili sunuma gider.
Neden?Bu hafta yeni bir algoritma yok: dönemin araçlarını birleştiriyoruz. Canlı örnek oyun, Y2/Y3 (karar), Y7 (hareket), Y8 (yol), Y11 (algılama, farkındalık) ve Y17’yi (yönetmen) birlikte kullanıyor.
🧰 Kodlamadan korkuyorsanızProjeniz için bütün haftaları bilmeniz gerekmiyor: şablonunuzun kullandığı 3–5 haftayı tekrar etmeniz yeterli.
Mini sözlük
vertical slice
dikey dilim
Oyunun küçük ama her katmanı (YZ, oynanış, görsel, ses) bitmiş bir parçası
MVP · scope creep
en küçük çalışan ürün · kapsam kayması
Fikri kanıtlayan en küçük sürüm · özelliklerin kontrolsüz büyümesi
milestone
kilometre taşı
Tarihli, kontrol edilebilir ara hedef
blackboard
kara tahta
NPC sistemlerinin ortak bilgi deposu (son görülen yer, hedef, farkındalık…)
debug draw · overlay
hata ayıklama çizimi · katman
YZ’nin iç durumunu oyun içinde görselleştirmek
playtest · think-aloud
oyun testi · sesli düşünme
Gerçek oyuncuyla deneme · oyuncunun düşündüğünü söyleyerek oynaması
postmortem
proje sonrası değerlendirme
“Ne iyi gitti, ne kötü gitti, ne öğrendik?” raporu
LEVEL 0
Bir NPC’nin anatomisi
katmanlar ve kara tahta
bir NPC’nin anatomisi
hepsi bir arada: canlı örnek
proje seçimi ve kapsam
YZ tasarım belgesi
hata ayıklama ve test
YZ asistanıyla çalışmak
teslim, sunum ve değerlendirme
buradan sonra
Algıla → hatırla → karar ver → davran
Kara tahta: ortak dilHer katman kara tahtaya yazar ya da okur: algılama “son görülen yer”i yazar, karar katmanı okuyup “incele” der, eylem katmanı oraya yol ister. Katmanlar birbirini doğrudan çağırmaz: biri değişince diğerleri bozulmaz.
KuralHer katmanı tek başına test edebilmelisiniz: algılamayı karar olmadan, kararı hareket olmadan (laboratuvarlardaki gibi).
LEVEL 1
Hepsi bir arada
canlı gizlilik oyunu
bir NPC’nin anatomisi
hepsi bir arada: canlı örnek
proje seçimi ve kapsam
YZ tasarım belgesi
hata ayıklama ve test
YZ asistanıyla çalışmak
teslim, sunum ve değerlendirme
buradan sonra
🧭 OYUNU OKUMA KILAVUZU (bir sonraki slayt)
Siz yeşil topsunuz. Tıklayın: oraya A* ile yürür (yeşil çizgi). Amaç: 5 sarı altını toplayıp sağ alttaki ÇIKIŞ’a varmak.
X tuşu: farenin durduğu yere taş atar (3 hak). Ses halkasının içindeki muhafız oraya gidip 3 saniye bakınır: dikkat dağıtma. Altın toplamak da ses çıkarır!
Muhafızın rengi = durumu: mavi devriye, sarı incele, kırmızı kovala. Üstündeki küçük çubuk farkındalık: koninin içinde kaldıkça dolar; 0,4’te şüphelenir, 1’de kovalar.
Kesikli çizgi muhafızın A* yolu; çarpı kara tahtadaki “son görülen/duyulan yer”. Alt satırda üç muhafızın kara tahtası yazıyla da görünür.
Sağ panel: altın, taş, yakalanma, muhafız görüş menzili (yönetmen ayarlar), YZ’nin kare başına süresi, toplam A* çağrısı.
Üstteki kutucuklar hata ayıklama katmanları ve sistemleri açıp kapatır. Ses açık: yakalanınca ve fark edilince duyarsınız.
Canlı: gizlilik mini oyunu 🥷
Yol (Y8): haritaya tıklayın; yeşil çizgi A* yolu. Muhafızların kesikli çizgileri de A*.
Algılama + farkındalık (Y11): bir muhafızın konisine girin: çubuk yeşil → sarı (incele) → kırmızı (kovala). Uzaktan görünmek daha yavaş doldurur.
Hafıza / kara tahta: görüş alanından çıkın: muhafız “son görülen yer”e (çarpı) gider, etrafına bakar, 3 sn sonra vazgeçer. “Hafıza”yı kapatın: görüş kesildiği an unutur. Hangisi daha inandırıcı?
İşitme: altın toplamak ses dalgası çıkarır; yakındaki muhafız oraya gelir. İşitmeyi kapatıp karşılaştırın. X tuşu ile farenin olduğu yere taş atın (3 hak): muhafızı bilerek başka yere çekip arkasından geçin.
Yönetmen (Y17): her yakalanışta muhafızların görüşü kısalır; uzun süre yakalanmazsanız yavaşça uzar. Sağ panelde günlük.
Performans (Y18): sağ panelde YZ’nin kare başına süresi ve A* çağrı sayısı. Kovalama sırasında çağrı sayısı nasıl artıyor?
Siz yeşil topsunuz. Tıklayın: oraya A* ile yürür (yeşil çizgi). Amaç: 5 sarı altını toplayıp sağ alttaki ÇIKIŞ’a varmak.
X tuşu: farenin durduğu yere taş atar (3 hak). Ses halkasının içindeki muhafız oraya gidip 3 saniye bakınır: dikkat dağıtma. Altın toplamak da ses çıkarır!
Muhafızın rengi = durumu: mavi devriye, sarı incele, kırmızı kovala. Üstündeki küçük çubuk farkındalık: koninin içinde kaldıkça dolar; 0,4’te şüphelenir, 1’de kovalar.
Kesikli çizgi muhafızın A* yolu; çarpı kara tahtadaki “son görülen/duyulan yer”. Alt satırda üç muhafızın kara tahtası yazıyla da görünür.
Sağ panel: altın, taş, yakalanma, muhafız görüş menzili (yönetmen ayarlar), YZ’nin kare başına süresi, toplam A* çağrısı.
Üstteki kutucuklar hata ayıklama katmanları ve sistemleri açıp kapatır. Ses açık: yakalanınca ve fark edilince duyarsınız.
🔎 KATMANLARI TEK TEK DENEYİN
Yol (Y8): haritaya tıklayın; yeşil çizgi A* yolu. Muhafızların kesikli çizgileri de A*.
Algılama + farkındalık (Y11): bir muhafızın konisine girin: çubuk yeşil → sarı (incele) → kırmızı (kovala). Uzaktan görünmek daha yavaş doldurur.
Hafıza / kara tahta: görüş alanından çıkın: muhafız “son görülen yer”e (çarpı) gider, etrafına bakar, 3 sn sonra vazgeçer. “Hafıza”yı kapatın: görüş kesildiği an unutur. Hangisi daha inandırıcı?
İşitme: altın toplamak ses dalgası çıkarır; yakındaki muhafız oraya gelir. İşitmeyi kapatıp karşılaştırın. X tuşu ile farenin olduğu yere taş atın (3 hak): muhafızı bilerek başka yere çekip arkasından geçin.
Yönetmen (Y17): her yakalanışta muhafızların görüşü kısalır; uzun süre yakalanmazsanız yavaşça uzar. Sağ panelde günlük.
Performans (Y18): sağ panelde YZ’nin kare başına süresi ve A* çağrı sayısı. Kovalama sırasında çağrı sayısı nasıl artıyor?
LEVEL 2
Proje seçimi ve kapsam
küçük ama bitmiş
bir NPC’nin anatomisi
hepsi bir arada: canlı örnek
proje seçimi ve kapsam
YZ tasarım belgesi
hata ayıklama ve test
YZ asistanıyla çalışmak
teslim, sunum ve değerlendirme
buradan sonra
Altı proje şablonu
şablon
YZ’nin rolü
kullanılan haftalar
esinlenilecek oyunlar
🥷 Gizlilik
Devriye, şüphe, arama, kovalama; ses ve ışık
Y2/Y3, Y8, Y11, Y17
Mark of the Ninja, Metal Gear Solid
🏰 Kule savunma
Akış alanıyla binlerce birim, dalga yönetmeni, formasyonlar
Y7, Y8, Y10, Y15, Y17, Y18
Kingdom Rush, Bloons TD
🏎️ Yarış
Yol takibi, sollama, lastik bant; bonus: nöroevrim ya da ML-Agents sürücü
Y7, Y13, Y17
Mario Kart, Forza (Drivatar)
⚔️ Mini RTS / taktik
Etki haritası, siper seçimi, GOAP/HTN komutan, grup hareketi
Y5, Y10, Y12, Y18
StarCraft, XCOM
🗝️ Roguelike
Prosedürel zindan, utility düşmanlar, dinamik zorluk
Y4, Y15, Y17 (+Y6 boss)
Spelunky, Hades
💬 Konuşan yol arkadaşı
LLM diyalog + davranış ağacı + algılama; denetim hattı
Y3, Y11, Y14
The Last of Us (Ellie), Suck Up!
Kendi fikriniz de olabilir: koşul, en az üç farklı haftanın tekniğinin aynı oyunda birlikte çalışması ve en az birinin “derin” uygulanması (kendi yazdığınız, ayarladığınız, ölçtüğünüz).
Kapsam: en az / hedef / bonus
örnek: gizlilik oyunu
En az (geçer)
1 seviye, 2 muhafız, görüş konisi + FSM (devriye/kovala), A* ile kovalama, kazan/kaybet
Hedef
+ farkındalık sayacı, son görülen yere gitme, ses, 3 durumlu BT, hata ayıklama katmanları, 3 seviye
Bonus
+ grup koordinasyonu (biri arar, biri kapıyı tutar), yönetmen/DDA, prosedürel seviye, performans ölçümü
Kapsam kayması“Bir de envanter, bir de diyalog, bir de çok oyunculu…” En sık başarısızlık sebebi. Önce en az kapsamı bitirin, oynanabilir hâle getirin, sonra büyütün.
Örnek takvim (6 hafta)
Fikir ve tasarım belgesi (1 sayfa), şablon seçimi, boş proje + depo.
Dikey dilim: 1 NPC, 1 mekanik, uçtan uca çalışıyor.
Ana YZ sistemleri: hedef kapsamın YZ’si.
Hata ayıklama görünümleri, içerik, ayar.
Test ve performans: birim testleri, oyun testi (3+ kişi), ölçümler.
Cila, video, rapor, sunum.
Her haftanın sonunda oynanabilir bir sürüm olsun.
🎬 Ara: az ama iyi YZ
Less is More: Designing Awesome AI for Games GDC · 24 dk 56 sn · YouTube’da aç
Proje kapsamını seçmeden önce izlenecek konuşma: oyuncunun fark etmeyeceği karmaşıklığa zaman harcamamak, birkaç davranışı çok okunur yapmak. “En az / hedef / bonus” tablosunun tasarımcı gözüyle savunması.
🤔 İzlerkenKonuşmacı hangi YZ özelliklerini “oyuncu fark etmiyor” diye kesiyor? Kendi proje şablonunuzda kesebileceğiniz bir özellik var mı? Hangi davranışı oyuncuya daha okunur gösterebilirsiniz?
LEVEL 3
YZ tasarım belgesi
kodlamadan önce bir sayfa
bir NPC’nin anatomisi
hepsi bir arada: canlı örnek
proje seçimi ve kapsam
YZ tasarım belgesi
hata ayıklama ve test
YZ asistanıyla çalışmak
teslim, sunum ve değerlendirme
buradan sonra
Bir sayfalık YZ tasarım belgesi
Oyuncu deneyimi hedefi: “Oyuncu her köşede tetikte olmalı ama yakalandığında haksızlığa uğradığını hissetmemeli.”
NPC listesi: her NPC türünün amacı, yetenekleri, sınırları.
Karar yapısı: FSM/BT/utility şeması (bir çizim).
Algılama: görüş açısı, menzil, ışık, ses yarıçapları, farkındalık hızları.
Hareket ve yol: ızgara mı navmesh mi, hızlar, kaçınma.
Geri bildirim: oyuncu NPC’nin ne düşündüğünü nasıl anlıyor? (ünlem işareti, ses, çubuk)
Zorluk: ayar düğmeleri, varsa DDA ve sınırları.
Bütçe: hedef FPS, YZ’ye ayrılan ms, en kalabalık sahne.
Test planı: birim testleri, test seviyeleri, oyun testi soruları.
Neden yazmalı?Y11’deki “oyuncu ne zaman fark edildiğini anlamalı”, Y17’deki “oyuncu bunu öğrense rahatsız olur mu?”, Y18’deki “bütçe” soruları kodlamadan önce cevaplanırsa yeniden yazmanız gereken kod azalır. Belge değişebilir; önemli olan kararların bilinçli verilmesi.
Bir parametre tablosuBütün sayıları (açı, menzil, hız, eşik) koda gömmek yerine tek bir ayar dosyasında (Unity: ScriptableObject) tutun; tasarım belgesindeki tabloyla eşleşsin.
LEVEL 4
Hata ayıklama ve test
gör, kaydet, test et
bir NPC’nin anatomisi
hepsi bir arada: canlı örnek
proje seçimi ve kapsam
YZ tasarım belgesi
hata ayıklama ve test
YZ asistanıyla çalışmak
teslim, sunum ve değerlendirme
buradan sonra
YZ’nin içini görünür yapın
Hata ayıklama katmanları: canlı örnekteki gibi açılıp kapanan görüş konileri, yollar, durumlar, farkındalık çubukları. Unity’de Gizmos/Handles, Unreal’da Gameplay Debugger ve Visual Logger.
Kayıt: durum değişimleri, kararların sebepleri (“KOVALA çünkü farkındalık 1,02”). Final Fantasy XV ekibi kayıtları haritada görselleştirdi (Y18).
Geri sarma: David Young (Game AI Pro 3, 6. bölüm): oyunu oyun içinde anında geri sarıp bir hatanın tam anını yeniden izlemek. Basit sürümü: son 10 saniyenin durumlarını bir halka tamponda tutmak.
Testler
Birim testi: dönem boyunca laboratuvarlarda yazdığınız saf fonksiyonlar (karar, puan, yol maliyeti) birim testine en uygun kod. Projenizde de YZ mantığını böyle küçük, test edilebilir fonksiyonlara bölün.
Senaryo testi: iki karakterli küçük test seviyeleri (Malte Skarupke, Y18): “muhafız sesi duyunca 5 sn içinde oraya varıyor mu?”
Oyun testi: en az 3 kişi; sesli düşünme; “muhafızın ne yapacağını tahmin edebildin mi?”, “yakalandığında adil miydi?”
Karar fonksiyonunu test edilebilir yazmak
🔗 Başka gözle: etkileşimli anlatımlar ve yazılar
Aynı konuyu başka bir anlatımla, kendi elinizle oynayarak görmek çok işe yarar. Kartlar yeni sekmede açılır; çoğu İngilizce ama görsel ve etkileşimli.
Bir NPC’nin bir karesi (sadeleştirilmiş): dört katman, aralarındaki tek bağ kara tahta. Örnekteki gerçek kod aynı iskelete sınırları (0–1,5), “bakmadan unutma” kuralını ve yol yenilemeyi ekler.
🎮 Çalıştırın, kopyalayın, bozun
▶ Eksiksiz oyunu aç — yaklaşık 200 satır p5.js: A*, görüş konisi, farkındalık, kara tahta, üç durumlu karar, ses.
Kontroller: tıkla = yürü · X = taş at · R = baştan
Projeniz için başlangıç noktası:
kararVer’e dördüncü durum ekleyin (“alarm ver”: diğer muhafızları çağır, Y10).
Yakalandıkça GORUS’ü kısaltan bir yönetmen yazın (Y17).
Haritayı hücresel otomatla üretin (Y15); A* ile çıkışa yol var mı test edin.
astar çağrılarını sayın; kovalama sırasında kaç oluyor? (Y18)
🌱 Isınma kodu: muhafız beni görüyor mu?
ALGILA katmanı (Y11). Oyundaki koni tam olarak bu üç test: menzil, açı, görüş hattı. Sıra önemli: en ucuz test (uzaklık) önce, en pahalı test (duvar ışını) en sonda yapılır (Y18). Dikkat: oyuncu soldaysa açı eksi gelir.
🌱 Isınma kodu: farkındalık çubuğu
HATIRLA katmanı. Muhafızın üstündeki çubuk bu sayı. Hızlı dolup yavaş boşalması bilerek: bir anlık görünme şüphe yaratır, ama muhafız hemen unutmaz. Sıradaki laboratuvarda bu sayıya bakan KARAR fonksiyonunu yazacaksınız: böylece ALGILA → HATIRLA → KARAR zincirinin üç halkasını da kendiniz yazmış olacaksınız.
🧪 Canlı laboratuvar: muhafızın beyni
Sağda canlı örnekteki oyunun aynısı; üç muhafız sizin fonksiyonunuzla karar veriyor, bir bot oyuncu altınları topluyor. Başlangıç kodunda muhafızlar hiçbir şeye tepki vermez.
🐍 Laboratuvar: öncelikli seçici
Y3’teki seçici düğümün (selector) en sade hâli; laboratuvardaki muhafız beyni bunun özel bir durumu. Projenizde koşulları ayrı fonksiyonlara bölerseniz her birini ayrı test edebilirsiniz.
LEVEL 5
YZ asistanıyla çalışmak
izinli, beyanlı, anlaşılmış
bir NPC’nin anatomisi
hepsi bir arada: canlı örnek
proje seçimi ve kapsam
YZ tasarım belgesi
hata ayıklama ve test
YZ asistanıyla çalışmak
teslim, sunum ve değerlendirme
buradan sonra
Projede YZ kod asistanı: kurallar
İzinli: kod, açıklama, test ve hata ayıklama için YZ asistanı kullanabilirsiniz.
Beyanlı: raporunuzda hangi araç/modeli, ne için kullandığınızı yazın; önemli istemlerinizi saklayın (bir “istem günlüğü”).
Anlaşılmış: teslim ettiğiniz her satırı açıklayabilmelisiniz. Sunumda “bu fonksiyon ne yapıyor, neden böyle?” sorusu sorulacak.
Doğrulanmış: asistanın kodunu test edin; sürüm ve API’leri belgelerle kontrol edin.
Varlıklar: üretken YZ ile yaptığınız görsel/ses varsa Y16’daki köken kaydı ve lisans kuralları geçerli.
Dönem boyunca gördüğümüz tipik asistan hataları
Eski API’ler: ML-Agents’ın eski OnActionReceived(float[])’ı, Barracuda/Sentis yerine Inference Engine, Unity 6’da rb.velocity yerine linearVelocity.
Ekran koordinatlarında y aşağı iken yön hesabı (Y9 funnel), açıları derece/radyan karıştırmak.
A*’da kabul edilemez sezgisel (Y8), bitmiş bölümde gelecek değeri eklemek (Y13).
LLM çıktısına doğrudan güvenmek (Y14), tohumsuz rastgelelik (Y15).
Ölçmeden “optimize etmek” (Y18).
🤖 Bu konuyu bir YZ kod asistanıyla yazarken
Sık yapılan hatalar — kontrol edin
Bütün projeyi tek istemde yazdırmak
Anlamadığınız kodu teslim etmek
İstem günlüğü tutmamak
Üretilmiş varlıkları beyan etmeden kullanmak
İyi bir istek (prompt) örneği
“Unity 6, C#. Gizlilik oyunu projem için mimari kur: (1) Blackboard sınıfı (Sees, Awareness, HeardNoise, LastKnownPosition, TimeSinceSeen). (2) PerceptionSystem: 70° görüş konisi, 12 m menzil, Physics.Raycast ile görüş hattı, mesafeye bağlı farkındalık artışı (saniyede en çok 1,6), görmezken saniyede 0,12 azalma; NoiseEvent ile işitme. (3) GuardBrain.Decide(in Blackboard) saf fonksiyonu (kovala > incele > devriye). (4) GuardController: NavMeshAgent ile devriye noktaları, son görülen yere gidip 3 sn etrafa bakma, kovalama. (5) DebugOverlay: Gizmos ile koni, son görülen yer, durum etiketi; bir tuşla aç/kapa. (6) GuardBrain için 5 NUnit EditMode testi. Her sınıf ayrı dosya; ayarlar GuardSettings ScriptableObject’te.”
Tasarım belgenizi asistana verip mimari önerisi isteyin; kararı siz verin
Her sistem için önce testleri, sonra kodu isteyin
Hata ayıklama görselleştirmesini baştan isteyin
Sürüm ve paket adlarını açıkça yazın (Unity 6, ML-Agents 4.0, Inference Engine…)
LEVEL 6
Teslim, sunum ve değerlendirme
göster, ölç, anlat
bir NPC’nin anatomisi
hepsi bir arada: canlı örnek
proje seçimi ve kapsam
YZ tasarım belgesi
hata ayıklama ve test
YZ asistanıyla çalışmak
teslim, sunum ve değerlendirme
buradan sonra
Teslim edilecekler ve puanlama
Oynanabilir sürüm (Windows/WebGL/Android) + kaynak kod deposu (git geçmişiyle).
2–3 dakikalık video: oynanış + hata ayıklama katmanları açıkken YZ’nin nasıl düşündüğü.
Rapor (4–6 sayfa): tasarım belgesi, mimari şeması, ölçümler (FPS, YZ ms), test sonuçları, oyun testi bulguları, YZ asistanı beyanı, postmortem.
Sunum (8 dk + soru): canlı demo ve bir sistemin kodunu açıklama.
ölçüt
puan
Oynanabilirlik ve kapsam (en az kapsam tamam mı?)
15
YZ mimarisi: en az 3 tekniğin bütünleşmesi, katmanlı tasarım
25
Hata ayıklama görselleştirmesi ve kayıt
15
Test: birim/senaryo testleri ve oyun testi
10
Performans: bütçe ve ölçüm
10
Tasarım belgesi ve rapor
15
Sunum, video, YZ asistanı beyanı ve kodu açıklayabilme
10
Bu tablo bir öneridir; dersin yürütücüsü ağırlıkları ve teslim tarihlerini ayrıca duyurur.
Postmortem: ne iyi gitti, ne kötü gitti?
Oyun sektöründe proje bitince yazılan değerlendirmeler (Game Developer dergisinin yıllardır yayımladığı “postmortem”ler) en değerli öğrenme kaynaklarındandır. Raporunuzun son bölümü böyle olsun:
İyi giden 3 şey (ve neden).
Kötü giden 3 şey (ve bir dahaki sefere ne yapardınız).
Bir sayı: ölçtüğünüz ve sizi şaşırtan bir şey (ör. “A* çağrılarının %80’i kovalama sırasında”).
Oyuncu sesi: oyun testinden bir alıntı.
Video ipuçları
İlk 10 saniyede oyunun ne olduğunu gösterin.
YZ’yi görünür kılın: hata ayıklama katmanlarını açıp kapatarak anlatın (“burada muhafız sesi duydu, kara tahtaya son görülen yeri yazdı…”).
Bir “önce/sonra” gösterin: hafıza kapalı/açık, DDA kapalı/açık, LOD kapalı/açık.
Bir başarısızlığı da gösterin: neyi neden düzelttiniz?
LEVEL 7
Buradan sonra
okumaya, oynamaya, yapmaya devam
bir NPC’nin anatomisi
hepsi bir arada: canlı örnek
proje seçimi ve kapsam
YZ tasarım belgesi
hata ayıklama ve test
YZ asistanıyla çalışmak
teslim, sunum ve değerlendirme
buradan sonra
Okuma listesi ve topluluk
Kitaplar
Game AI Pro 1, 2, 3 ve Online Edition 2021 (Steve Rabin, ed.): sektörden yüzlerce bölüm; gameaipro.com’da ücretsiz. Dönem boyunca en çok alıntı yaptığımız kaynak.
Artificial Intelligence and Games (Yannakakis & Togelius): akademik bakış; gameaibook.org’da ücretsiz sürüm ve ders slaytları.
AI for Games (Ian Millington): klasik ders kitabı; algoritmaların ayrıntılı anlatımı.
Programming Game AI by Example (Mat Buckland): FSM, steering, yol bulma; bol C++ örneği.
İzlemek ve katılmak
AI and Games (Tommy Thompson): oyunlardaki YZ’yi anlatan video dizisi ve bülten; dönem boyunca birçok videosunu izledik.
GDC AI Summit konuşmaları (birçoğu YouTube’da ücretsiz).
Akademik: AIIDE, IEEE Conference on Games (CoG), FDG.
Yarışmalar: CodinGame bot yarışmaları, Kaggle simülasyon yarışmaları, CoG ve AIIDE’nin oyun YZ’si yarışmaları (microRTS, StarCraft, genel oyun oynama).
MesleklerOyun YZ programcısı, oynanış programcısı, teknik tasarımcı, araçlar programcısı, oyun verisi analisti, oyunlarda ML mühendisi, QA otomasyonu (test botları).
Yanınızdakiyle 2 dakika konuşun, sonra sınıfça tartışalım
Canlı oyunda “hafıza”yı kapatınca muhafızlar görüş kesilir kesilmez unutuyor. Hangisi daha eğlenceli, hangisi daha adil? İkisi aynı şey mi?
Dönem boyunca gördüğünüz tekniklerden hangisi sizi en çok şaşırttı (“bu kadar basit miymiş?” ya da “bu kadar zor muymuş?”)? Projenizde kullanacak mısınız?
Projenizin YZ’si çok iyi çalışıyor ama oyuncular fark etmiyor. Sorun YZ’de mi, geri bildirimde mi? Oyuncuya NPC’nin ne düşündüğünü göstermenin üç yolunu sayın.
Altı haftanız var ve üçüncü haftada hâlâ oynanabilir bir sürüm yok. Neyi kesersiniz? Kapsamı küçültmek başarısızlık mı?
YZ kod asistanı kodun %80’ini yazdıysa proje kimin? Sunumda hangi soruyu cevaplayabilmeniz gerekir?
🚀 Proje ve araştırma önerileri
[kolay]Gizlilik dikey dilimi — Bu sunumdaki canlı örneği kendi motorunuza taşıyın: 1 seviye, 2 muhafız, hata ayıklama katmanları.
[orta]Kule savunma — Akış alanı + 1000 birim + dalga yönetmeni; performans raporu.
[orta]Konuşan yol arkadaşı — LLM diyalog + davranış ağacı + algılama; denetim hattı ve 10 kötü niyetli test mesajı.
[zor]Taktik çatışma — Siper seçimi, etki haritası, tim koordinasyonu ve taktik A* ile 4’e 4 çatışma.
Adı geçen oyunu tanımıyorsanız: oyuncuların kullandığı wiki sayfası ve oyunu kısaca gösteren bir video. ▶ video slaydın üstünde açılır (Esc ile kapanır); 🎯 işaretli bağlantılar doğrudan bu sunumdaki konuya gider.
Mark of the Ninja2012 · 2B gizlilik
Yandan görünümlü ninja gizlilik oyunu; görüş konileri ve ses halkaları ekranda çizilir.
Adı geçen oyunu tanımıyorsanız: oyuncuların kullandığı wiki sayfası ve oyunu kısaca gösteren bir video. ▶ video slaydın üstünde açılır (Esc ile kapanır); 🎯 işaretli bağlantılar doğrudan bu sunumdaki konuya gider.
Spelunky2008 / 2012 · platform roguelike
Her ölümde yeni bir mağara: tuzaklar, hazineler ve acımasız fizik.