Oyun NPC orkestrasyonu
Uzun oyun oturumlarında kalıcı, karakterde NPC'ler. Çok karakterli sahne için ensemble. Drift kontrolü — büyücünün 3. oturumda alaycı yapay zekaya dönüşmemesi için.
LLM tabanlı NPC'lerde acı şudur: drift'lerler. Kampanyaya soğuk ve hesaplı başlayan kötü karakter (villain) üçüncü oturumun sonunda sıcak ve yardımsever olur — yazar bunu istediği için değil, istem (prompt) bağlam penceresinden düştüğü için.
Moonborn'un çalışma zamanı zıt sonuç için kurulmuştur: uzun yaylar boyunca karakterde kalan karakterler. Drift detection + voice fingerprint + ensemble = NPC kadrosu binlerce oturum boyunca tanınabilir kalır.
Bu kullanım senaryosu sana uyar mı?
- RPG / interaktif kurgu — oyuncu küçük bir kadroyla saatler geçiriyor
- Çok karakterli sahne — iki NPC çatışmada, lonca toplantısı, rakip diyaloğu
- Anlatı tutarlılığı denetimi — bitmiş bir bölümü karakter incili (bible) ile kontrol
- Kod olarak NPC kadro incili — yazarlar karakterleri PR'da fark olarak (diff) görüyor
Moonborn ne sağlar
- Voice fingerprint — üretimde 50 senaryolu referans hat gömülüdür; her yanıt buna karşı puanlanır
- Drift detection — yapılandırılabilir eşikler (boss NPC sıkı, kalabalık NPC gevşek)
- Ensemble ilişkileri — çok karakterli sahne istemlerine enjekte edilen tipli kenar (rakip, eski sevgili, mentor)
- Lineage — "han sahibi (tavern keeper)" arketipini 12 belirli NPC'ye fork'la, kişiliklerini yeniden yazmadan
- Uzun süreli bellek — oyuncular NPC'nin 3 oturum önce verdiği sözü hatırlar
Moonborn ne sağlamaz
Desen — kod olarak NPC kadrosu
1. Kadroyu Markdown'da taslakla
(ad, rol, 2 satırlık pitch, ilişki notları)
2. Her birini "İlk persona'yı baştan sona üret" eğitimiyle üret
3. Denetle + ayarla
- Kötü karakter → sıkı refine
- Kalabalık NPC → daha az refine
4. İlişkileri tanımla
- Dedektif ↔ Tanık: suspicious-of
- Avukat ↔ Tanık: protective-of
5. Git senkronizasyonu bağla → incil depoda yaşar
(Kod olarak persona kullanım senaryosu)
6. Oyun motorunda her NPC diyalog tetikleyicisi:
tetikleyici → persona oturumu → chat.messages.create()Detay eğitimler: İlk persona'yı baştan sona üret, Çok karakterli sahneler.
NPC'ler için drift eşikleri
Başlangıç varsayılanları:
| NPC tipi | drift.threshold | Sebep |
|---|---|---|
| Ana kötü karakter / karşıt karakter | 0.20 | Sesleri olay-örgüsü-aracıdır (plot device), sıkı |
| Yoldaş (companion) karakterler | 0.25 | Tutarlı + insan değişkenliği uygun |
| Kalabalık / küçük NPC | 0.35 | Daha gevşek, daldırmayı (immersion) kırmamak yeterli |
| Arka plan dolgu | 0.50 | Çok gevşek, tutarsızlığa tahammül edilebilir |
Çalışma alanı geneli değil, persona başına ayarla:
await client.personas.update('per_villain', {
runtimeOverrides: {
'drift_detection.threshold': 0.20,
},
});Merkezi kötü karakter bütçeyi hak eder; han sahibi etmez.
Yayın anı kalite kapısı
Yeni bölümü göndermeden önce, her adlandırılmış NPC'ye karşı provocation test takımı koş:
for (const npcId of namedNpcs) {
const result = await client.personas.testSuite.run({
id: npcId,
categories: ['role_break', 'jailbreak_resistance', 'persona_swap'],
});
if (result.passRate < 0.85) {
console.error(`${npcId} bölüm yayın kapısını geçemedi`);
}
}Başarısızlıklar oyuncu enjeksiyonlu garipliğin altında kırılacak karakterleri işaret eder — Reddit dizilerinde çıkan başarısızlık biçimi tipleri.
Plan gereksinimi
| Plan | Yetenek |
|---|---|
| Free | Tek persona sohbeti (kadro yönetimi yok) |
| Pro | Ensemble + drift + lineage + bellek |
| Team | + özel provocation testi + Git senkronizasyonu (kod olarak incil) |
| Enterprise | + özel kurum-içi model, özel ilişki tipleri |
Pro ve üzeri — gerçek NPC kadrosu için.
İlgili
3 NPC'lik sahnenin uçtan uca kurulumu.
NPC incilini Git'te yaşat — PR inceleme akışı.
Oyun motoru entegrasyonu — Moonborn'un sınırı dışı.
CLI prototip + 3 NPC + sahne motoruna geçiş.