…bir LLM’in neyi yapıp neyi yapamayacağını bilecek, bir NPC’ye kişilik, hafıza ve sınırlar verebilecek, modelin çıktısını oyunun kurallarından geçirmeden asla uygulamayacak ve LLM’i bir oyuna gömmenin gecikme, maliyet ve etik bedelini hesaplayabileceksiniz.
…ilk ne sorardınız? Peki oyunu bozmak için ne söylerdiniz?
Yeşil = gerekli · kesikli = faydalı ama şart değil. Tıklayınca ilgili sunuma gider.
| LLM · SLM | büyük / küçük dil modeli | Milyarlarca parametreli metin tahmin modeli · cihazda çalışabilecek kadar küçüğü |
| token · context window | parça · bağlam penceresi | Modelin gördüğü metin birimi (≈ ¾ kelime) · aynı anda görebildiği en fazla parça |
| temperature · sampling | sıcaklık · örnekleme | Olasılıkların ne kadar “düzleştirileceği” · sıradaki parçanın zarla seçilmesi |
| system prompt · persona | sistem istemi · kişilik | Modele her konuşmanın başında verilen talimat · karakterin tanımı |
| hallucination | halüsinasyon (uydurma) | Modelin akıcı ama yanlış bilgi üretmesi |
| RAG · embedding | getirmeyle zenginleştirme · gömme | Soruyla ilgili belgeleri bulup isteme eklemek · metnin anlam vektörü |
| structured output · tool use | yapılandırılmış çıktı · araç çağrısı | Modelin belirli bir şemaya uyan JSON üretmesi · oyunun bir fonksiyonunu “çağırması” |
| prompt injection · jailbreak | istem enjeksiyonu · kafes kırma | Kullanıcı metniyle modelin talimatlarını ele geçirmek · kuralları deldirmek |
| latency · TTFT · streaming | gecikme · ilk parça süresi · akış | Cevabın gelme süresi · ilk kelimeye kadar geçen süre · cevabı geldikçe göstermek |
Telefonda “Bugün akşam” yazınca klavye üstte üç kelime önerir: yemek, sinemaya, eve. Klavye ne düşündüğünüzü bilmez; yalnızca milyonlarca mesajda “Bugün akşam”dan sonra en sık hangi kelimelerin geldiğini öğrenmiştir.
Şimdi bir oyun oynayalım: hep ortadaki öneriye basın. “Bugün akşam yemek yiyelim mi diye düşünüyordum ama…” Cümle kendi kendine uzar. Büyük dil modeli (LLM) bu oyunun çok çok büyük hâlidir:
| 📱 telefon klavyesi | 🤖 LLM | |
|---|---|---|
| neye bakar? | son 1–2 kelime | son yüz binlerce parça |
| nereden öğrendi? | sizin mesajlarınız | internetin büyük kısmı |
| ne üretir? | 3 öneri | her parça için bir olasılık; birini seçip ekler, tekrarlar |
“Anlıyor” gibi görünen her şey bu tekrardan çıkar. Hancının “bilgeliği” de.
Hepsi bu. “Anlama”, “düşünme”, “bilme” gibi görünen her şey bu döngüden çıkar. Model, internetteki çok büyük miktarda metinle (ön eğitim), sonra da insanların tercihleriyle (Y13’teki pekiştirmeli öğrenmenin bir türü, RLHF) eğitilir.
Large Language Models explained briefly
3Blue1Brown (Grant Sanderson) · 7 dk 58 sn · YouTube’da aç
Minicik modelimizin yaptığı “sıradaki kelimeyi tahmin et”in gerçek boyutu: parçalara bölme, olasılık dağılımı, eğitim ve insan geri bildirimi. Çok sade ve tamamen görsel; hiç matematik bilmeden izlenebilir.
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.
| rol | LLM ne yapar? | kararı kim verir? | risk |
|---|---|---|---|
| Sadece ağız | Oyunun belirlediği niyeti (“indirim yapma, ama kibar ol”) doğal cümleye çevirir | Oyun (FSM/BT) | düşük |
| Kulak + ağız | Oyuncunun serbest cümlesini bir niyete çevirir (“pazarlık”, “tehdit”, “soru”), cevabı üretir | Oyun, LLM’in sınıflandırmasıyla | orta |
| Planlayıcı | Yüksek seviye hedef ya da eylem önerir (“kuyuya git”, “kapıyı kilitle”) | Oyun, öneriyi doğrulayarak | orta–yüksek |
| Anlatıcı / yönetmen | Olay ve diyalog üretir (AI Dungeon tarzı) | LLM | yüksek |
Oyuncu hancıdan %30 indirim istiyor. LLM ikna olup "oran":30 önerse bile oyunun kuralı “en çok %10” der: istek ya %10’a indirilir ya da yedek replik kullanılır. Bu yüzden oyuncu modeli kandırsa bile ekonomiyi kandıramaz.
Diplomacy: yedi oyuncunun pazarlık edip ittifak kurduğu, sonra birbirini sırtından bıçakladığı bir strateji oyunu. Kazanmak için hem iyi hamle hem de ikna edici konuşma gerekir.

Joon Sung Park ve arkadaşları (Stanford ve Google), The Sims’ten esinlenen küçük bir kasabaya 25 LLM tabanlı ajan yerleştirdi. Her ajanın kısa bir kimlik tarifi vardı; gerisi kendiliğinden gelişti.
{"eylem": "git", "hedef": "demirhane"}.Fiyatlar örnektir, model ve sağlayıcıya göre değişir; güncel listeyi kontrol edin. Hesap: replik başına (girdi × girdi fiyatı + çıktı × çıktı fiyatı) / 1.000.000.
Denetim hattı demosundaki “istem enjeksiyonu” senaryosu bunun basitleştirilmiş hâli.
| async / await · fetch | eşzamansız çağrı | Cevap gelene kadar oyunu dondurmadan beklemek · HTTP isteği |
| IEnumerator · yield return · StartCoroutine | Unity eşyordamı | Birkaç kareye yayılan iş; istek bitince devam eder |
| JSON.parse · JsonUtility.FromJson · json.loads | JSON okuma | Metni nesneye çevirir; bozuk metinde hata fırlatır |
| try { } catch { } | hata yakalama | Hata olursa programı çökertmeden yedek yola geçmek |
| enum (şemada) | izinli değerler listesi | Model sadece bu değerlerden birini yazabilir |
| strict · tool_choice | katı şema · araç seçimi | strict: araç girdisi şemaya birebir uyar. tool_choice: auto: aracı çağırıp çağırmamaya model karar verir; çağırmazsa yedek replik devreye girer |
| System.Action<T> | geri çağırma | “İş bitince bunu çalıştır” diye verilen fonksiyon |
JSON.parse bozuk metinde hata fırlatır ve oyununuz çöker; try / catch ile sarıp null döndürün. null gelince NPC el yazımı yedek repliğini söyler (“Hmm, ne dedin yolcu?”).| ad | platform | ne yapar / sınırları | nasıl eklenir |
|---|---|---|---|
| Ollama | Windows / macOS / Linux | Açık ağırlıklı modelleri (Llama, Qwen, Gemma, Mistral…) tek komutla indirip yerel HTTP sunucusu olarak çalıştırır; JSON şeması destekler. Geliştirme ve prototip için ideal. | ollama pull llama3.2:3b |
| llama.cpp | C/C++ · her yerde | GGUF biçimindeki modelleri CPU/GPU’da çalıştıran motor; çoğu yerel çözümün altında bu var. Dilbilgisiyle (grammar) çıktıyı kısıtlayabilir. | derle ya da hazır ikili |
| LLM for Unity | Unity | llama.cpp tabanlı, oyunla birlikte dağıtılan yerel modeller; RAG, sohbet bileşenleri. Apache 2.0. | Asset Store ya da Git URL ile paket |
| NobodyWho | Godot 4 | Yerel LLM düğümleri (NobodyWhoModel, NobodyWhoChat); çevrimdışı, API anahtarı yok. | Godot Asset Library |
| NVIDIA ACE | Unreal / Unity / C++ | Konuşma tanıma, küçük dil modelleri, ses sentezi ve yüz animasyonu (Audio2Face); cihazda çalışma. inZOI, PUBG Ally. | NVIDIA geliştirici portalı |
| Inworld · Convai | Unity / Unreal SDK | Karakter platformları: kişilik, hafıza, hedefler, ses; bulut tabanlı, kullanım başına ücret. | SDK paketi |
| Claude / Gemini / GPT API | her platform (HTTP) | En güçlü bulut modelleri; araç çağrısı, yapılandırılmış çıktı, istem önbelleği. | pip install anthropic vb. |
| Whisper · Piper | yerel | Konuşmayı yazıya (Whisper) ve yazıyı konuşmaya (Piper) çeviren açık modeller: sesli NPC için. | pip / ikili |
“Unity 6, C#. Bir LLM NPC sistemi yaz: (1) NpcBrain: davranış ağacı benzeri basit bir durum makinesi (Boşta, Konuşuyor, Yürüyor). (2) Konuşma: oyuncu metnini kendi arka uç sunucumdaki /npc ucuna POST eder (API anahtarı istemcide YOK), 8 sn zaman aşımı, bu sürede “düşünüyor…” baloncuğu. (3) Cevap şeması {eylem: git|söyle|ver, hedef, söz}; doğrulama: eylem listede mi, hedef sahnedeki NavPoint’lerde mi, “ver” için QuestManager.IsComplete(questId) true mu, söz 200 karakterden kısa mı; geçersizse 5 el yazımı yedek replikten rastgele biri. (4) Her reddedilen çıktıyı sebebiyle birlikte günlüğe yaz. Ayrıca bu sistemi kırmaya çalışan 10 kötü niyetli oyuncu mesajı listesi ver.”
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.
Large Language Models explained briefly
Intro to Large Language Models
Generative Agents: Interactive Simulacra of Human Behavior
NVIDIA x Inworld AI — Covert Protocol
My AI Voice Makes a Terrible NPC
The Dev of This Vampire AI Game Challenged Me… (Suck Up!)