Dev Journal için eksiksiz kullanım kılavuzu; eklentiyle birlikte gelen USER_GUIDE_TR.md dosyasıyla aynıdır.
Dev Journal'ı Unreal Engine Editor içinde kullanmak için pratik bir el kitabı.
Kısa ürün tanıtımı ve kurulum özeti için README.md dosyasına bakın. Bu belge adım adım kullanım kılavuzudur.
Sürüm: 0.1.0 · Motorlar: UE 5.7.4, UE 5.8.2 · Platform: Windows 64-bit
Unreal Engine arayüz etiketleri, menü adları ve ayar isimleri İngilizce bırakılmıştır; editörde gördüğünüz metinle birebir eşleşmesi için.
Dev Journal, Unreal Editor içinde çalışır ve siz çalışırken geliştirme faaliyetlerinizi kaydeder. Ardından bu kaydı okuyabileceğiniz, inceleyebileceğiniz ve sürüm kontrolüne ekleyebileceğiniz Markdown dokümantasyonuna dönüştürür.
Takip edebildikleri:
Bunlardan yaşayan teknik dokümantasyon üretir: asset başına bir belge, system başına bir belge, gün başına bir belge ve asset başına bir geçmiş kaydı.
Dev Journal bir sohbet botu (chatbot) değildir. Sohbet yok, prompt kutusu yok, asistan yok.
AI özelliği isteğe bağlıdır ve varsayılan olarak kapalıdır. Yukarıdaki tüm özellikler AI kapalıyken çalışır; eklenti bu şekilde dağıtılır.
Deterministik bilgi tek doğruluk kaynağıdır. AI etkinleştirildiğinde yalnızca Dev Journal'ın zaten kaydettiği gerçekleri okunabilir metne dönüştürür; bunu kendi açıkça işaretlenmiş bölümünde yapar. Asla yetkili kayıt hâline gelmez ve asla yeni bir gerçek ekleyemez.
Başlamadan önce: proje yolunuzu kontrol edin. Unreal'in derleyici araç zinciri, ASCII dışı karakter içeren bir yoldan C++ derleyemez — ı, ş, ğ, ü, ö, ç, é, ñ, ä ve benzerleri — ve yanıltıcı bir "could not be compiled" mesajı verir. Bu, yalnızca bu eklenti için değil her kod eklentisi için geçerlidir. Proje yolunuzda böyle bir karakter varsa, kurulumdan önce klasörü düz ASCII olacak şekilde yeniden adlandırın. Bkz. §26.
DevJournal.uplugin bulunan tek bir DevJournal klasörü çıkmalıdır.DevJournal klasörünü projenizin Plugins dizinine kopyalayın:<ProjeniZ>/Plugins/DevJournal/DevJournal.uplugin
Projenizde Plugins klasörü yoksa oluşturun.
4. Projeyi açın. Editör eksik modülleri derlemeyi teklif ederse kabul edin.
5. Eklentinin etkin olduğunu doğrulayın: Edit → Plugins → Editor → Dev Journal.
6. İstenirse editörü yeniden başlatın.
Paket içeriği:
DevJournal/
├── DevJournal.uplugin
├── Source/ eklenti kaynak kodu, projeniz tarafından derlenir
├── Config/
├── Content/ (içerik asset'i yoktur; paket yapısı için mevcuttur)
├── Resources/ eklenti ikonu
├── README.md
├── USER_GUIDE.md
├── USER_GUIDE_TR.md
├── RELEASE_NOTES.md
└── CHANGELOG.md
Not. Dev Journal kaynak kod olarak dağıtılır ve projeniz tarafından derlenir. Yalnızca Blueprint kullanan bir projede derleme için standart Unreal C++ araç zincirinin kurulu olması gerekir. Eklenti yalnızca editöre yöneliktir ve paketlenmiş oyun build'ine asla dâhil edilmez.
Level Editor ana menüsünden:
Tools → Dev Journal
Bu, Dev Journal başlıklı yerleştirilebilir bir sekme açar. İstediğiniz yere yerleştirin; Unreal düzeni hatırlar.
Proje açıldığında Dev Journal hemen çalışmaya başlar. Yapılandırma gerekmez.
Başlangıçta otomatik olarak:
Ayrıca ilk çalıştırmada ve varsayılan olarak sonrasında:
Dev Journal'ı kullanmak için AI kurmanıza gerek yoktur. Günlük raporlar, asset dokümantasyonu, system dokümantasyonu, geçmiş, Blueprint değişiklik takibi ve sürüm kontrolü bağlamı, AI kalıcı olarak kapalıyken de çalışır.
Panelin üstünde beş sekme vardır: Today, Assets, Systems, Source Control, Source Changes.
Başlık kısmı mevcut takip durumunu (Tracking: Enabled veya Tracking: Paused) ve şu düğmeleri gösterir: Refresh, Pause Tracking / Resume Tracking, Generate Daily Report, Open Today’s Handoff, Open Session Report, Open Range Report, Open Documentation Folder, Clear Current Session.
Clear Current Session yalnızca ekrandaki faaliyet listesini temizler. Diskteki kayıtlı geçmişe dokunulmaz.
Günün ve oturumun durumunu gösterir.
| Satır | Anlamı |
|---|---|
| Session started | Bu editör oturumunun ne zaman başladığı |
| Session duration | Ne kadar süredir çalıştığı |
| Recorded today | Bugün kaydedilen olay sayıları |
| Source control | Algılandıysa sağlayıcı, branch ve revision |
| Live source watching | C++ dosyalarının canlı izlenip izlenmediği |
| Last documentation rebuild | Son yeniden oluşturmanın ne yaptığı |
Altında AI bölümü (bkz. AI Mode) ve zaman, eylem ve konu ile son kaydedilen olayları gösteren Activity listesi bulunur.
Salt okunur: düğmeler dışında her şey. Faaliyet listesi kaydedilenleri yansıtır; girdileri düzenleyemezsiniz.
Takip edilen asset'lerin filtrelenebilir listesi. Sütunlar: Asset, Type, Parent, Last change, Deps / Refs / C++, Recent changes.
Arama kutusuyla filtreleyin (Filter by name, path or type).
Düğmeler: Open Asset, Open Documentation, Open History ve AI etkinken Explain Changes, Regenerate, Cancel. Seçili asset için durumu gösteren bir AI status satırı vardır.
Kaydedilmiş ilişkilerden oluşturulan, birbiriyle ilgili asset ve native sınıf grupları.
Sütunlar: System, Members, Name from, Recent changes. Filter by system or member ile filtreleyin.
Düğmeler: Rebuild (tüm kayıt deposundan yeniden kümeleme), Open Documentation ve AI etkinken Suggest Name, Generate Description, Regenerate, Cancel.
Systems görünümü her yenilemede otomatik oluşturulmaz; çünkü kümeleme tüm kayıt deposunu okur. Not built yet. Press Rebuild. yazıyorsa Rebuild'e basın.
Çalışma kopyanızın salt okunur görünümü: sağlayıcı, branch, revision, kök dizin ve Staged, Modified, Untracked dosya listeleri ile Recent revisions.
Bu sekme tamamen salt okunurdur. Dev Journal'ın hiçbir yerinde commit, push, checkout veya revert düğmesi yoktur.
Değişen proje C++ dosyaları; durum harfi (A eklendi, M değiştirildi, D silindi), göreli yol ve modül ile birlikte.
Dev Journal, onu düşünmek zorunda kalmayacağınız şekilde tasarlanmıştır.
Documentation/DevJournal/ altındaki Markdown çıktısını inceleyin.Documentation/DevJournal/ dizinini diğer değişikliklerinizle birlikte commit'leyin.Hiçbir şeyi elle kaydetmeniz gerekmez. "Girdi ekle" düğmesi yoktur; çünkü girdiler gerçekte yaptığınız işlerden gelir.
Hiçbir şey değiştirmeden bir Blueprint'i açıp kaydetmek hiçbir kayıt üretmez. Bu kasıtlıdır.
Dev Journal şu asset olaylarını kaydeder:
Her kaydetme bir kayıt üretmez. Dev Journal asset'in şu anki hâlini öncekiyle karşılaştırır ve yalnızca gerçekten bir şey değiştiyse olay kaydeder. Bu, günlük raporu okunabilir tutar; aynı kaydetme girdilerinden oluşan bir duvara dönüşmesini engeller.
Asla kaydedilmesini istemediğiniz klasörler varsa — üçüncü taraf içerik, geçici klasör, üretilmiş asset'ler — bunları Project Settings → Plugins → Dev Journal → Filtering → Ignored Path Prefixes altına ekleyin.
Blueprint'ler için Dev Journal her kaydetmede ayrıntılı bir anlık görüntü alır ve öncekiyle karşılaştırır.
Algılayabildikleri:
Variable'lar ada göre değil, dâhilî tanımlayıcılarına göre izlenir. Health'i CurrentHealth yapmak, bir variable silinip başkasının eklenmesi olarak değil, yeniden adlandırma olarak raporlanır.
Dev Journal iki farklı değişiklik türünü ayırır:
İkisi de kaydedilir ve ayrı ayrı raporlanır.
Dev Journal'ın graph modeli görsel değil, davranışsaldır. Şunlar asla değişiklik sayılmaz:
Bir graph'ı düzenli hâle getirmek asla değişiklik olarak kaydedilmez. Yeniden bağlamak her zaman kaydedilir.
Dâhilî node bütçesini aşan Blueprint'ler yine bir logic parmak izi alır — yani "mantık değişti" bilgisi yine tespit edilir — ancak node bazlı ayrıntı atlanır. Bu durumda üretilen belge bunu sessizce atlamak yerine açıkça belirtir.
Dev Journal'da bir System, birbiriyle ilişkili asset ve native sınıflardan oluşan bir gruptur.
System'ler yalnızca Dev Journal'ın gerçekten kaydettiği ilişkilerden oluşturulur:
Önemli. Dev Journal geliştirici niyetini anlamaz. Sisteminizin ne için olduğunu bilmez. Kanıtlanabilir biçimde bağlantılı olan şeyleri gruplar ve grubu üyelerinin bulunduğu konuma ya da çoğunu birbirine bağlayan asset'e göre adlandırır. Bir gruplamanın yararlı olup olmadığı sizin vereceğiniz bir karardır, eklentinin değil.
Çok yaygın biçimde referans verilen sınıflar üyelikten çıkarılır; böylece tek bir yardımcı sınıf tüm projenizi tek bir kümeye çekmez.
Suggest Name kullanırsanız, AI'ın önerdiği ad yalnızca isteğe bağlı bir ifadedir. Deterministik system tanımlayıcısı yetkili olmaya devam eder — belgenin başlığı ve dosya adı olarak kalır. Öneri, onun yerine geçmeden, açıkça işaretlenmiş şekilde yanında gösterilir.
Dev Journal, takip edilen her asset için yaşayan bir Markdown belgesi tutar ve asset değiştikçe yerinde günceller.
Tipik bölümler:
| Bölüm | İçerik |
|---|---|
| Overview | Asset adı, tipi, parent class, yollar |
| Components | Component hiyerarşisi ve sınıfları |
| Variables | Ad, tip, kategori, bayraklar |
| Developer Notes | Yalnızca varsa. Bir geliştiricinin bu asset hakkında yazdıkları |
| Blueprint Contract | Bu Blueprint'in diğer Blueprint'lere sunduğu yüzey |
| Potential Breaking Changes | Yalnızca varsa. O sözleşmede kaydedilen değişiklikler |
| Migration Notes | Yalnızca varsa. Önce, sonra ve neye bakılması gerektiği |
| Interfaces | Uygulanan interface'ler |
| Functions | Function'lar ve macro'lar |
| Logic statistics | Graph başına node ve bağlantı sayıları |
| Important calls | Dikkate değer çağrılar, cast'ler ve spawn'lar |
| Dependencies | Bu asset'in neye bağlı olduğu |
| Referencers / potential impact | Bu asset'e neyin bağlı olduğu |
| Native Code Relationships | Bu asset'in kanıtlanabilir şekilde ilişkili olduğu proje C++ sınıfları |
| Recent Changes | En son kaydedilen değişiklikler |
| AI Summary | İsteğe bağlı. Yalnızca AI etkinse ve güncel, doğrulanmış bir sonuç varsa |
Bir asset değiştiğinde akla gelen soru şudur: başka neye bakmalıyım? Dev Journal bunu zaten kaydettiği ilişkilerden cevaplar.
### Directly Related
- `/Game/BP_PlayerHUD`
- Referencer
### Indirectly Related
- `/Game/WBP_GameHUD`
- Depth: 2
- Path: BP_PlayerCharacter → BP_PlayerHUD → WBP_GameHUD
İlişkili olmak bozuk olmak demek değildir. Dev Journal bir asset'in başka birine referans verdiğini görebilir; belirli bir düzenlemenin onun belirli bir kullanımına ulaşıp ulaşmadığını göremez. Listede olmak bakılmaya değer demektir, o kadar. Bir şeyin kırılacağını hiçbir zaman okumazsınız, çünkü bu, eklentinin söyleyecek konumda olmadığı bir iddiadır.
Yön önemlidir. Yürüyüş referansları içeri doğru takip eder: değişen asset'ten bahseden asset'leri. Değişen asset'in kendi bağımlılıkları, onu değiştirerek etkilenemez; bu yüzden bağımlılıklar etki sayılmaz, kendi bölümlerinde listelenir.
Sınırlar. Dependencies altındaki iki ayar yürüyüşü sınırlar:
| Ayar | Anlamı |
|---|---|
| Dependency Impact Depth | Kaç adım takip edileceği. 0 etki analizini kapatır; 1 yalnızca doğrudan referans verenleri raporlar |
| Max Dependency Impact Assets | Sonuç tavanı; böylece büyük bir proje kontrolden çıkamaz |
Tavan yürüyüşü kestiğinde belge bunu söyler:
Results truncated at the configured impact-analysis limit.
Bu satır asla atlanmaz. İki yüz asset'in ilişkili olduğu bir projede dörtlük bir liste, aksi halde dört olarak okunurdu.
Sözleşme değişikliğinin yanında. Bir asset'te potansiyel kırıcı değişiklik varsa, ilişkili asset'ler onun yanında görünür — nereye bakacağını bilmenin en değerli olduğu an. Belge, bir asset'e referans vermenin değişen üyeyi kullanmakla aynı şey olmadığını açıkça yazar.
Günlük rapor bu tarihte ne oldu sorusunu yanıtlar. Çoğu zaman doğru soru budur; gece yarısını aşarak çalışıyorsanız yanlış sorudur.
22:00'de başlayıp 03:00'te bıraktığınızda o akşam tek bir oturum ve iki tarihtir. Günlük raporlar onu doğru anlatır ama ikiye bölerek, ayrı sayfalarda anlatır. Oturum raporu ise aynı işi gerçekten yapıldığı sınır içinde — editör açılışından kapanışına — gösterir; böylece beş saatlik iş beş saatlik iş olarak okunur.
Hiçbir şeyin yerini almaz. Günlük raporlar yazılmaya devam eder ve doğrudur.
Nerede. Documentation/DevJournal/Sessions/, oturumun başladığı ana göre adlandırılır: 2026-09-23_2200_8a8a8a8a.md. Klasör listesi çalışma sıranıza göre sıralanır.
Ne zaman. Editörü kapattığınızda otomatik yazılır — oturumun bitiş saatinin ilk bilindiği an budur. Oturum sürerken görmek için Today sekmesindeki Open Session Report'a basın.
İçinde ne var
| Bölüm | İçeriği |
|---|---|
| Sitting | Başlangıç, bitiş, editörün ne kadar açık kaldığı, geliştirici, proje, motor |
| Summary | Asset'ler, kaynak dosyalar, notlar, toplam kayıtlı değişiklik |
| Feature Sessions | Bu oturumun hangi adlandırılmış işe katkı verdiği |
| Developer Notes | Bu oturumda yazılan notlar |
| Potential Breaking Changes / Migration Notes | Günlük raporun gösterdiği aynı kayıtlar |
| Assets Changed / Source Files Changed | Sıralı listeler |
| Timeline | Yalnızca oturum gün değiştirdiyse güne göre gruplu |
Açık kalma süresi, çalışma süresi değil. Öğle yemeğinde açık bırakılan editör bir saatlik iş kaydetmedi. Rapor Editor open for: 5h 00m der ve tam olarak bunu kasteder.
Oturum gözlenir, seçilmez. Dev Journal editörün ne zaman açılıp kapandığını bilir; bunun ötesinde bir tahminde bulunmaz. Kendi seçtiğiniz bir sınır istiyorsanız — birkaç oturuma ve birkaç güne yayılan — o bir Feature Session'dır.
Süren bir oturum saat basmaz. Geçen süre yerine still running yazar; böylece iki kez üretildiğinde aynı baytları verir.
Kapatmak için: Documentation → Generate Session Reports.
Gün, bir saatin söylediği şeydir. Gerçek iş öyle şekillenmez: bir envanter refactor'ü üç gün sürer ve on dokuz asset'e dokunur; onu günlük olarak okumak, bir yarıktan okumaktır.
Feature Session, o sınırı sizin çizmenizdir. Assets sekmesindeki kutuya ne üzerinde çalıştığınızı yazıp Start Feature'a basın. Complete Feature'a basana kadar Dev Journal'ın kaydettiği her şey o oturumla damgalanır.
Asla çıkarsanmaz. Asset adlarından, klasörlerden, branch'lerden, commit mesajlarından ya da birbirine yakın değişiklikleri kümeleyerek değil. Dev Journal'daki diğer her şey onun gözlemlediği bir şeydir; bu, sizin beyan ettiğiniz tek şeydir. Bunu tahmin etmek, eklentinin en görünür iddiasının içine uydurulmuş bir yapı koymak olurdu.
Aynı anda bir tane. Biri çalışırken yenisini başlatmak, çözülmek yerine reddedilir. Yeni bir işe başlamanın yan etkisi olarak birinin kayıtlı işini bitirmek, bir eklentinin onun adına vereceği bir karar değildir.
Yeniden adlandırmak bedavadır. Bir oturumun kimliği adı değildir; Inventory Refactor, üyeliğini ya da belgesini kaybetmeden Inventory System Refactor olabilir.
İptal etmek silmek değildir. Vazgeçtiğiniz bir oturum Cancelled olarak işaretlenir ve saklanır; Completed'dan bilinçli olarak ayrıdır. Denenip bırakılmış bir yaklaşım çoğu zaman en değerli kayıttır, çünkü bir sonraki kişinin aynı şeyi tekrarlamasını engeller.
Her oturum Documentation/DevJournal/Features/ altında bir belge alır; tamamladığınızda yazılır, çalışırken güncel tutulur.
| Bölüm | İçeriği |
|---|---|
| Summary | Durum, başlangıç, bitiş, geçen süre, dokunulan asset'ler, kayıtlı değişiklikler |
| Intent | Ne yapmaya niyetlendiğinizi söylediğiniz cümle, alıntı olarak |
| Developer Notes | Özellik hakkında yazılan notlar |
| Assets Touched | Her asset, en çok değişen önce, ilk ve son tarihleriyle |
| Potential Breaking Changes | Çalışma sırasında oynayan public yüzey |
| Timeline | Değişikliklerin kendisi, güne göre gruplu, en eski önce |
Geçen süre, harcanan süre değil. Hafta sonu açık kalan bir özellik üç günlük iş almadı. Belge Elapsed der ve rakamı kaba tutar; çünkü 37 dakika, harcanan zaman olarak okunmaya davet eder.
Çalışan bir özellik saat basmaz. Boşluğu güncel zamanla doldurmak yerine still running yazar; böylece iki kez üretildiğinde aynı baytları verir.
Bir oturum çalışırken yazılan not onunla damgalanır. Özellik belgesi bunları ayrı bir başlık altında — Notes written during this session — listeler ve açıkça, ne zaman yazıldıkları için orada olduklarını, özellik hakkında oldukları için değil, söyler. Gerçekten özellik hakkında bir not yazmak istiyorsanız, o kendi kapsamında bir nottur.
Belgeleri Documentation → Generate Feature Documentation altından kapatabilirsiniz. Özellik kaydının kendisi Saved/DevJournal/features.ndjson, append-only: bir yeniden adlandırma ya da tamamlama yeni bir kayıttır, eskisinin üzerine yazılan bir düzenleme değil.
Başka bir geliştirici Inventory Refactor'ü devralmadan önce onun Handoff belgesini açın. Bunu devralabilir miyim? sorusunun kısa cevabıdır: ne değişti, geliştirici ne yazdı ve ne kırılabilir.
İki tür, iki ayrı sınır boyunca kesilmiş:
| Kapsamı | Yeri | |
|---|---|---|
| Feature Handoff | Bir Feature Session, yayıldığı bütün günler boyunca | Documentation/DevJournal/Handoffs/Features/ |
| Daily Handoff | Bir takvim günü, içinde ne varsa | Documentation/DevJournal/Handoffs/Daily/ |
Bir günün hangi özelliğe ait olduğu asla tahmin edilmez; bir özellik de günden çıkarsanmaz. Bunlar ayrı sorulardır.
İkisi de belgeyi açmadan önce yazar, böylece okuduğunuz güncel olur. Değişmemiş bir handoff'u yeniden yazmanın maliyeti yoktur — Dev Journal baytları karşılaştırır ve dosyaya dokunmaz.
Bir Feature Session'ı tamamlamak handoff'unu hemen yazar. O belge, o iş parçasının nihai devir kaydıdır.
| Bölüm | İçeriği |
|---|---|
| Status | Active, Completed ya da Cancelled |
| Feature Session / Feature Sessions | Oturum, ya da o günün dokunduğu oturumlar |
| Summary | Sayılar: asset, Blueprint, kaynak dosya, sözleşme değişikliği, not |
| Developer Context | Geliştiricinin yazdığı notlar, yazılmış olarak etiketli |
| What Changed | Blueprint'ler, diğer asset'ler ve kaynak dosyalar olarak gruplu |
| Potential Breaking Changes | Oynayan public yüzey, öncesi ve sonrasıyla |
| Migration Notes | Değişen her üyenin şimdi nasıl okunduğu, önceye karşı |
| Source Control | Pencere içinde tarihlenmiş commit'ler |
| Timeline | Değişikliklerin kendisi, güne göre gruplu |
| What This Handoff Does Not Say | Boşluğun şekli |
Bir handoff geçmiş bir anı anlatır ve sonradan değişmez.
Inventory Refactor'ü bitirin, devredin, sonra gelecek ay onun Blueprint'lerinden birini başka bir iş kapsamında değiştirin: birine verdiğiniz handoff tam olarak eskisi gibi okunur. Öyle olmak zorunda. Devirden sonra sessizce yeni içerik kazanan bir devir kaydı, hiç kayıt olmamasından kötüdür.
Bu şöyle işler: üyelik, her değişiklik kaydedilirken belirlendi — her olay, o an açık olan Feature Session'ı taşır — ve handoff projeye şimdi bakmak yerine o damgayı okur. Aynısı Daily Handoff ve tarihi için de geçerlidir.
Kaynak kontrolü de dondurulur, ama yalnızca özellik için. Bir Feature Session'ı tamamlamak ya da iptal etmek, o pencerenin commit'lerini kayda kopyalar — hash, yazar, mesaj, tarih — ve handoff bir daha depoya sormaz. Commit teoride değişmezdir, pratikte değil: bir rebase, amend ya da geçmiş temizliği, deponun geçmiş bir tarih aralığı için verdiği cevabı değiştirir; tekrar soran bir handoff, birinin elindeki kopyayla çelişirdi.
| Belge | Kaynak kontrolü |
|---|---|
| Feature Handoff, Completed ya da Cancelled | Kapandığında donduruldu. Sonraki bir yeniden yazma ona ulaşamaz |
| Feature Handoff, Active | Depodan okunur. Oturum açık, yani belge canlı; tamamladığınızda oturur |
| Daily Handoff | Her seferinde okunur. Gün, birinin kapattığı bir iş değil, saatin üzerindeki bir penceredir; oturtulacak bir an yoktur |
Her belge bunlardan hangisi olduğunu söyler; anlık görüntü mü sorgu mu okuduğunuzu tahmin etmeniz gerekmez.
Dev Journal 0.1.0 ile tamamlanmış bir Feature Session'ın anlık görüntüsü yoktur. Handoff'u bunu söyler ve hiçbir şey göstermez; depoyu şimdi okumak, geçen yıldan bir tarihin altına projenin bugünkü halini yazmak olurdu.
Bir handoff'ta asla bulunmayanlar: güncel branch, çalışma kopyası, commit edilmemiş değişiklikler. Bunlar şimdiyi anlatır, o zamanı değil; bitmiş bir iş hakkındaki bir belgenin onları taşıması için bir neden yoktur.
Yine de değişebilenler. Bir handoff'ta iki şey, her yazılışında güncel kayıtlardan okunur — bilinçli olarak:
Bunların hiçbiri kaydedilmiş olanın değişmesi değildir. Olaylar, sözleşme değişiklikleri, migration notları ve kapanmış bir özelliğin commit'leri sabittir.
Bir gün notu asla Feature Handoff'a sızmaz. Bir salı günü hakkındaki bir söz, üç günlük bir refactor için bağlam değildir; oraya koymak, bir sonraki geliştiriciye yazarının o iş hakkında hiç yapmadığı bir iddiayı vermek olurdu.
Her not, nerede görünürse görünsün Developer-authored note olarak etiketlenir. Bu etiket, belgedeki iki ifade türü arasındaki sınırdır:
AddItem signature changedChanged this to support stacked itemsBir handoff asla nedenini söylemez. Bu performansı iyileştirir, bu mimariyi sadeleştirir, bu envanter hatalarını düzeltir demez — bir geliştirici tam olarak bunu bir nota yazmadıkça.
Hiçbir model devrede değil. Belge kayıtlı olgulardan derlenir ve aynı olgular için bayt bayt aynıdır. Çevrimdışı, AI kapalıyken, her zaman çalışır.
İkisi de bir Feature Session'ı anlatır ve birbirinin kopyası değildir:
Uzun kapsamlar tümüyle basılmak yerine bir sınıra kesilir; Documentation altında:
| Ayar | Anlamı |
|---|---|
| Max Handoff Timeline Entries | Durmadan önceki en uzun zaman çizelgesi |
| Max Handoff Assets | Liste durmadan önce listelenen en fazla asset |
Kesme her zaman, gerçek toplamıyla birlikte belirtilir. Özet her durumda hepsini sayar; böylece üstteki sayılar işi asla eksik göstermez.
Handoff'ları tümüyle kapatmak için: Documentation → Generate Handoff Documentation.
Bir handoff geçmiş bir anı anlatır; bu yüzden projeye "bu asset'e şimdi ne referans veriyor" diye soramaz — grafik o günden beri değişti. Uzun süre bu nedenle hiç etki göstermedi ve nedenini söyledi.
Artık gösteriyor, çünkü Dev Journal hesapladığı yanıtı o an yazıyor. Bir asset belgesi her üretildiğinde, etki bölümünün arkasındaki sayılar — kaç asset doğrudan referans veriyordu, kaçı bir zincir üzerinden ulaşıyordu, yürüyüşe ne kadar derine inme izni verilmişti ve erken kesilip kesilmediği — bir etki günlüğüne eklenir. Handoff, yalnızca kendi penceresine düşen kayıtları okur: tamamlanmış bir feature için, başladığı gün ile tamamlandığı gün arasını.
Kaydedilmiş, yeniden hesaplanmamış. Bölümün başlığı bu çalışma sürerken gözlendiği hâliyle der ve tam olarak odur. Hiçbir şey bugünden doldurulmaz.
Yalnızca sayılar ve doğrudan referans verenler. İlişki zincirleri yok. Bir zincir, o günden beri değişmiş bir grafiğin içinden geçen bir yoldur; hâlâ güvenilebileceği tek yer, onu yeniden hesaplayan canlı asset belgesidir.
Referans verilmiş olmak bozulmuş olmak değildir. Dev Journal bir asset'in başka birinden söz ettiğini görebilir. Belirli bir düzenlemenin, onun belirli bir kullanımına ulaşıp ulaşmadığını göremez.
Aynı kayıtlar bir asset history belgesinin her gününe etki satırını verir: o gün yürürlükte olan kayıt — çoğu zaman daha eski bir kayıt, çünkü kimsenin bakmadığı bir günde grafik değişmemiştir.
Günlük dosyası Saved/DevJournal/impact.ndjson, yalnızca ekleme yapılır.
Documentation/DevJournal/Coverage.md, her dokümantasyon geçişinde yeniden yazılır. Dev Journal'ın kayıtta neye sahip olduğunu, projenin neleri içerdiğine karşı gösterir.
Dokunulmamış bir asset eksiklik değildir. Dev Journal bir asset'i, ona bir değişiklik gözlediği ilk anda kaydeder. Eklentiyi kurduğunuzdan beri kimsenin açmadığı bir asset'in kaydı yoktur; bu, onu belgelemekte başarısız olunduğu değil, o asset hakkında doğru bir ifadedir. Rapor bunu en üstte, bu sözcüklerle söyler — böylece olgun bir projedeki %40'lık bir kapsam oranı hata gibi okunmaz.
| Bölüm | İçeriği |
|---|---|
| Summary | Projedeki asset sayısı, kaçının izlendiği, kaçının belgesi ve geçmişi olduğu |
| Documents Behind Their Asset | Anlattıkları değişiklikten daha eski yazılmış belgeler |
| By Asset Type | En az kapsanan önce |
| Not Yet Observed | Hakkında hiçbir kaydı olmayan asset'ler, sınırlı |
Bunlardan yalnızca biri tutarsızlıktır. Anlattığı değişiklikten eski bir belge gerçek bir sorundur ve genellikle dokümantasyon geçişinin o değişiklikten beri çalışmadığı anlamına gelir. Günlük rapor üretmek onları yeniden kurar.
Kapatmak için: Documentation → Generate Coverage Report.
Asset geçmişleri bu Blueprint buraya nasıl geldi sorusunu, bir asset ve bir gün ölçeğinde yanıtlar. Bu, geçen hafta ne oldu için yanlış biçimdir. Bir aralık raporu, aynı kayıtlı gerçeklerin öbür yöne toplanmış hâlidir: günler boyunca, asset bazında.
Today sekmesi → Open Range Report. Varsayılan olarak bugün dâhil son yedi günü kapsar; süreyi Project Settings → Plugins → Dev Journal → Range Report Days altından değiştirin. Belge, kapsadığı tarihlerle adlandırılarak Documentation/DevJournal/Diffs/ içine yazılır.
| Bölüm | İçeriği |
|---|---|
| Summary | Kapsanan gün, değişen asset, aralıkta ilk kez kaydedilenler, kaynak dosyalar, contract değişiklikleri |
| Potential Breaking Changes | Aralıkta gözlenen contract değişiklikleri, asset bazında |
| Assets Changed | En yoğun olan önce, ilk ve son dokunulma tarihleriyle |
| Source Files Changed | Değiştiği kaydedilen proje kaynak dosyaları |
Takvimle değil, istendiğinde. Bir tarih aralığı, projeye dair bir olgu değil, birinin sorduğu bir sorudur; siz istemeden hiçbir şey yazılmaz. Olası her aralık için belge yazmak, bir klasörü kimsenin istemediği yanıtlarla doldururdu.
Hiçbir şey icat etmez. Buradaki her satır, değişiklik gözlendiğinde çözümleyiciler tarafından yazılmıştı. Aralık yalnızca hangilerinin okunacağına karar verir.
Bir release, bir insanın tag yazarak ilan ettiği şeydir. Dev Journal bunu asla çıkarsamaz — dosya adındaki sürüm numarasından da, dal adından da, başka hiçbir şeyden de.
Bir dokümantasyon geçişi çalıştığında Dev Journal deponuzdaki tag'leri okur. Daha önce görmediği her tag yakalanır: tag, işaret ettiği revizyon, tarihi ve mesajı — ve dürüstçe yapabildiğinde, o andaki her izlenen asset'in yapısal durumu. Ardından ardışık her release çifti için bir karşılaştırmayı Documentation/DevJournal/Releases/ içine yazar.
İleriye doğru, bir kez, ya da hiç. Dev Journal asset başına tek bir anlık görüntü tutar — güncel olanı — ve olay günlüğü, bir şeyin neyden değiştiğini değil, değiştiğini kaydeder. Geçen yılın API'si bundan yeniden kurulamaz. Bu yüzden bir tag ilk görüldüğünde yakalanır; Dev Journal'ın geç tanıştığı bir tag ise durum bilgisi olmadan kayda geçer.
"Geç" sorusu saate değil, günlüğe sorulur. Tag'in tarihi ile görüldüğü an arasında değiştiği kaydedilmiş bir şey yoksa, Dev Journal'ın elindeki durum tag'in adlandırdığı durumdur. Varsa, release tag'den sonra kaç değişiklik geldiğini söyler; böylece ne kadar saptığını yalnızca saptığı söylenmiş olarak değil, görerek okursunuz.
Eksik taraf gösterilir, doldurulmaz. Durum taşımayan bir release ile karşılaştırma, hangi tarafın eksik olduğunu ve nedenini söyleyen bir Not Comparable belgesi üretir. Yarısı kayıttan, yarısı bugünden kurulmuş bir yanıt, okuyan hiç kimsenin fark edemeyeceği biçimde yanlış olurdu.
Bir yakalama asla değiştirilmez. Saved/DevJournal/Releases/ altında tag başına tek, değişmez bir dosya. Aynı tag'in ikinci yakalanışı, aynı ad altında başka bir anı anlatırdı; bu yüzden reddedilir.
Deponuza hiçbir şey yazılmaz. Tag okumak bir okumadır. Dev Journal asla tag oluşturmaz, taşımaz veya silmez.
Bunun için kaynak kontrol izlemesi açık olmalı ve tag taşıyan bir arka uç bulunmalıdır — bugün Git. Belgeleri kapatmak için: Documentation → Generate Release Documentation.
Dev Journal neyin değiştiğini kaydeder. Neden değiştiğini tahmin etmez — ve bu bilginin kayıtta olmasının güvenilir tek yolu, onu sizin yazmanızdır.
Assets sekmesinden bir asset seçin, not kutusuna bir cümle yazın ve Enter'a ya da Add Note'a basın. Hiçbir asset seçili değilse not, asset'e değil o güne bağlanır.
## Developer Notes
> Written by a developer, not recorded by Dev Journal. Everything else in this document was observed; this is the part that was explained.
- Part of the SaveGame v2 migration.
- 2026-09-22 14:30, Kasım
Bölüm, asset'in belgesinde ve o günün raporunda görünür; deterministik bölümlerin içine hiçbir zaman girmez. Hiç not yazmayan bir projede belgeler, bu özellik hiç var olmamış gibi bayt bayt aynı kalır.
Notlar saklanır, üzerine yazılmaz. Bir notu düzenlemek yeni bir kayıt yazar; geri çekmek de bir kayıttır. Saved/DevJournal/notes.ndjson günlüğü her revizyonu tutar, böylece bir not sessizce kaybolamaz — onu yazan kişi için bile.
Notlar 500 karakterle sınırlıdır ve tek satıra katlanır. Not, bir değişikliği açıklayan cümledir; tasarım dokümanı değil.
AI neden notu kullanabiliyor da kaynak kodunuzu kullanamıyor? Üretilen her cümle, kendisini destekleyen kayıtlı gerçekleri altını göstererek anılmak zorundadır. Bir kod bloğu bunu bozar: cümle onu altını göstererek anabilir ve yine de kodda yazmayan bir şey söyleyebilir. Notta böyle bir boşluk yoktur — not, iddianın kendisidir, dolayısıyla onu anmak sizi alıntılamaktır. Notlar modele, gözlemlenmiş değil bir geliştirici tarafından yazılmış olarak etiketlenip verilir; böylece niyet hiçbir zaman gözlem gibi sunulmaz.
Yukarıdaki Variables ve Functions bölümleri Blueprint'in içindeki her şeyi listeler. Blueprint Contract daha dar bir soruyu cevaplar: projenin geri kalanı buna gerçekten neresinden erişebilir?
İçeriği:
| Alt bölüm | Neyin girdiği |
|---|---|
| Public Functions | Erişimi Public olan function ve macro'lar. Private ve protected üyeler listelenmez |
| Exposed Variables | Blueprint Visible işaretli değişkenler; Read/Write veya Read Only bilgisiyle, ayrıca geçerliyse Instance Editable ve Expose on Spawn |
| Event Dispatchers | Hepsi. Bir dispatcher'a her şey bağlanabilir, dolayısıyla hepsi sözleşmenin parçasıdır |
| Interfaces | Uygulanan interface'ler |
| Parent Class | Miras alınan üyeler buradan gelir |
Örnek:
## Blueprint Contract
### Public Functions
- `Interact(Target : Actor) -> (Success : bool)`
### Exposed Variables
- `Health : float`
- Blueprint Visible
- Read/Write
### Event Dispatchers
- `OnInteractionCompleted(Target : Actor)`
### Interfaces
- BPI_Interactable
Instance Editable tek başına bir değişkeni sözleşmenin parçası yapmaz. O bayrak, yerleştirilmiş bir instance'ın detaylar panelini ilgilendirir; başka bir Blueprint'in grafının o değişkeni okuyup okuyamayacağını Blueprint Visible belirler ve Dev Journal bu bayrağa bakar.
Erişimi okunamayan bir üye — derlenmemiş bir Blueprint ya da eski bir sürümün kaydettiği snapshot — public varsayılmak yerine listeden çıkarılır.
Bu sözleşmede bir değişiklik kaydedildiğinde belgeye Potential Breaking Changes bölümü eklenir. Sözleşmede hiçbir şeyin değişmediği bir günde bölüm hiç yazılmaz.
Raporlananlar:
Dev Journal, public bir fonksiyonun imzasının değiştiğini kanıtlayabilir. Bir şeyin kırıldığını kanıtlayamaz, çünkü onu kimin çağırdığını bilmez — ve Unreal'de çoğu zaman bilemez de, çünkü bir çağıran fonksiyonu çalışma anında adıyla çözebilir.
Bu yüzden dil bilinçli seçilmiştir. "signature changed" ve "existing call sites may require updating" okursunuz. "Bu kırılacak" okumazsınız, çünkü bu, Dev Journal'ın söyleyecek konumda olmadığı bir iddiadır. Size verdiği şey, kaydettiği gerçeklerden türetilmiş, bakılmaya değer kısa bir liste.
Karşılaştırılacak iki yarısı olan değişiklikler için Migration Notes bölümü ikisini de ve neye bakılması gerektiğini yazar:
### `Interact`
Before: `Interact(Target : Actor)`
After: `Interact(Target : Actor, Kind : EInteract)`
Action: Review existing call sites and supply the new inputs where required.
Silinmiş bir üyenin gösterecek ikinci yarısı yoktur, dolayısıyla migration notu üretmez — ne yapılması gerektiği zaten yukarıdaki bölümde karşısında yazılıdır.
Bu notlar AI'dan değil, sabit kurallardan gelir. Sözleşme bölümü, kırıcı değişiklik listesi ve migration notlarının tamamı deterministiktir: aynı gerçekler, AI açık da olsa kapalı da olsa hep aynı metni üretir.
Node taşımak, comment kutusu çizmek, grafı derleyip toparlamak ya da hiçbir şey değiştirmeden yeniden kaydetmek Blueprint Contract bölümünü bayt bayt aynı bırakır. Bölüm yalnızca sözleşme değişince değişir.
Bir AI özeti, hakkında yazıldığı gerçeklere bağlıdır. Asset sonradan değişirse o özet projenizin geride bıraktığı bir durumu anlatır — bu yüzden görünmez olur. Yeniden etiketlenmez, yumuşatılmaz, uyarıyla gösterilmez. Siz yeniden üretene kadar yalnızca yoktur.
Üstündeki deterministik bölümler bundan etkilenmez ve daima günceldir.
Gün başına bir Markdown dosyası: Documentation/DevJournal/Daily/YYYY-MM-DD.md.
O gün sözleşme değişikliği kaydedilmişse rapora, asset bazında gruplandırılmış Potential Breaking Changes ve Migration Notes bölümleri eklenir. Sözleşmede hiçbir şeyin değişmediği bir günde ikisi de hiç yazılmaz.
## Potential Breaking Changes
### BP_PlayerCharacter
- `Interact` signature changed
`Interact(Target : Actor)` → `Interact(Target : Actor, Kind : EInteract)`
### BP_Chest
- `BPI_Interactable` was removed
Aynı kayıtlar her asset'in history belgesinde Contract changes başlığı altında da görünür.
Today sekmesinde Generate Daily Report'a basın veya ayarlardan Generate Report On Shutdown seçeneğini açarak editör kapanırken otomatik yazılmasını sağlayın.
İçerik:
| Bölüm | İçerik |
|---|---|
| Session | Editör oturumları ve süreleri |
| Summary | Güne ait toplam sayılar |
| Blueprints | Asset'e göre gruplanmış Blueprint değişiklikleri |
| Level Changes | Level ve actor değişiklikleri |
| Other Assets | Blueprint olmayan asset değişiklikleri |
| Native Source Changes | Modüle göre gruplanmış C++ dosya değişiklikleri |
| Source Control | Branch, revision, çalışma kopyası durumu, günün commit'leri |
| Activity Timeline | Zaman sırasına göre birleştirilmiş her şey |
| AI Development Summary | İsteğe bağlı. Yalnızca AI etkinse ve güncel, doğrulanmış bir sonuç varsa |
Deterministik rapor AI olmadan da eksiksiz çalışır. AI bloğu en üstte, kendi başlığı ve künyesiyle durur; altındaki her bölüm AI hiç yapılandırılmamış olsa da yazılır. Konum yetki anlamına gelmez — bunu etiketleme taşır ve ilk üretilmiş cümleden önce hepsini görürsünüz.
Bir günü yeniden üretmek, dosyayı kayıt deposundan yeniden yazar; sonuna ekleme yapmaz.
Yaşayan asset belgesinin yanı sıra Dev Journal, Documentation/DevJournal/History/ altında asset başına bir geçmiş tutar.
Asset belgesi bir asset'in şu anda nasıl göründüğünü gösterirken, geçmiş oraya nasıl geldiğini gösterir — zaman içinde kaydedilen değişikliklerin birikimli kaydı.
Geçmiş, Dev Journal'ın kaydettiği olaylardan türetilir. Eklentinin kurulup takibe başladığı andan itibaren olan dönemi kapsar; öncesinde yapılan değişiklikleri anlatamaz.
Dev Journal geçmişi Git veya Perforce'u tamamlar — yerini almaz. Blueprint yapısı ve proje ilişkileri açısından neyin değiştiğini kaydeder; bunu bir diff kolayca gösteremez. Dosya içeriği saklamaz ve hiçbir şeyi geri yükleyemez. Sürüm kontrol sisteminizi kullanmaya devam edin.
Dev Journal, projenizin C++ kaynak köklerini şu dosya türleri için izler:
.h.hpp.cpp.inlHangi dosyaların eklendiğini, değiştirildiğini veya silindiğini kaydeder ve bunları günlük raporda ve Source Changes sekmesinde modüle göre gruplar.
Dev Journal kaynak kodunuzu saklamaz. Dosya yollarını, modül adlarını ve bir dosyanın değiştiği bilgisini kaydeder. Dosya içerikleri asla dokümantasyona kopyalanmaz ve bunu ayrıca açıkça etkinleştirmediğiniz sürece bir AI sağlayıcısına asla gönderilmez (bkz. Gizlilik Ayarları).
Live source watching varsayılan olarak açıktır. Canlı izleme kullanılamıyorsa Dev Journal oturum başında tarama yapmaya geri döner ve Today sekmesi bunu belirtir.
Projeniz bir Git deposundaysa Dev Journal bunu otomatik algılar ve şunları okur:
Bu bilgiler Source Control sekmesinde ve günlük raporda görünür.
Dev Journal Git durumunu asla değiştirmez. Şunları yapmaz:
Eklentide böyle düğmeler yoktur. Yalnızca okur.
git PATH üzerinde değilse ayarlardan Git Executable Path değerini belirtin.
Projeniz Perforce kullanıyorsa Dev Journal şunları okur:
Dev Journal Perforce durumunu asla değiştirmez. Changelist oluşturmaz, değiştirmez, submit etmez, revert etmez; dosya checkout etmez ve sync yapmaz.
p4 PATH üzerinde değilse Perforce Executable Path değerini belirtin. Perforce entegrasyonu Enable Perforce Integration ile tamamen kapatılabilir.
Ayrıca Source Control Provider ile sağlayıcıyı zorlayabilirsiniz (Auto, Git, Perforce, None).
AI Mode varsayılan olarak KAPALIDIR.
Bir sağlayıcı seçersiniz:
AI'ı açmak hiçbir şey göndermez. Bağlantıyı test etmez, model keşfetmez, model indirmez, dokümantasyon üretmez. Yalnızca üretme düğmelerini kullanılabilir hâle getirir.
Bir özet istediğinizde Dev Journal modele zaten kaydetmiş olduğu gerçekleri gönderir — proje dosyalarınızı asla. Her gerçeğin bir tanımlayıcısı vardır. Modelin yazdığı her cümle, kendisini destekleyen gerçeklerin tanımlayıcılarına atıf yapmak zorundadır ve cevap, hiçbir şey yazılmadan önce denetlenir:
AI dokümantasyonunuza asla yeni bir gerçek ekleyemez. Yalnızca hâlihazırda orada olan gerçekleri yeniden ifade edebilir.
Ollama, bir dil modelini kendi makinenizde çalıştırır; böylece hiçbir şey makineden çıkmaz. Varsayılan ve önerilen sağlayıcı budur.
Ollama isteğe bağlıdır, Dev Journal ile birlikte gelmez ve asla otomatik kurulmaz.
http://127.0.0.1:11434.qwen3:4b.Bir model asla otomatik indirilmez. AI'ı açmak indirmez. Bağlantıyı test etmek indirmez. Modelleri yenilemek indirmez. Sahip olmadığınız bir modeli seçmek indirmez — eksik olduğunu söyler ve durur.
Varsayılan: AÇIK.
Unreal Editor ve Ollama aynı GPU için yarışır. Low Resource Mode açıkken Dev Journal:
Editörün akıcı olması gereken bir makinede doğru varsayılan budur.
Test makinesinde qwen3:4b ile, context size 8192'de gözlemlenen değerler:
| Ölçüm | Yaklaşık değer |
|---|---|
| Disk | ~2,5 GB |
| Bellekteyken VRAM | ~3,9 GB |
| Model yükleme süresi | ~2 saniye |
| Üretim (model bellekteyken) | ~0,5 saniye |
| Üretim (Low Resource Mode açıkken) | ~2,5–4 saniye |
Bunlar tek bir makinedeki gözlemlerdir; asgari gereksinim değildir. Donanımınız farklı olacaktır. Low Resource Mode açıkken model istekler arasında boşaltıldığı için her üretim yükleme süresini yeniden öder — belleği geri almak için yaptığınız takas budur. Keep Model Loaded'ı açmak tekrar eden üretimleri belirgin şekilde hızlandırır, ancak o belleği tutar.
Proje verisi, ancak siz açıkça izin verdikten sonra makinenizden çıkar.
Anahtar yapılandırmak hiçbir şeye izin vermez. Anahtar, bir hesabınız olduğu anlamına gelir; Allow Project Data To External AI ise proje gerçeklerinin makinenizden çıkmasına izin veren ayrı ve açık onaydır.
Yapı olarak OpenAI ile aynıdır.
Aynı anahtar yönetimi geçerlidir: Windows Credential Manager'da saklanır, proje yapılandırmasına yazılmaz, gösterilmez, üretilen belgelerde yer almaz.
Project Settings → Plugins → Dev Journal AI → Privacy altındadır.
Varsayılan: KAPALI.
Kapalıyken OpenAI ve Anthropic tamamen reddedilir — istek, hiçbir şey gönderilmeden engellenir. Makinenizde olmayan bir Ollama uç noktası da aynı şekilde ele alınır.
Açıkken Dev Journal'ın kaydettiği gerçekler (asset adları, yapı özetleri, değişiklik açıklamaları, sayılar) seçili sağlayıcıya gönderilebilir.
AI, hiçbir yapılandırmada kaynak dosyalarınızın içeriğini almaz. Buna izin verecek bir ayar yoktur.
Bunun yerine yapılandırılmış gerçekleri alır: dosya adları, sembol adları, sayılar ve diff istatistikleri. Bu, kaynağınızı hiçbir yere göndermeden neyin değiştiğini söylemeye yeter. Her prompt ayrıca dosya içeriklerinin verilmediğini açıkça belirten bir satır taşır; böylece model bu yokluğu bir ilişkinin yokluğu sanmaz.
"Ollama", "yerel" ile eş anlamlı değildir.
127.0.0.1 veya localhost üzerindeki uç nokta yereldir. Hiçbir şey makinenizden çıkmaz, onay gerekmez.Panel, hangi durumda olduğunuzu Data destination satırında gösterir: Local, Remote endpoint — consent required veya External AI; bir istek engellenecekse bunu açıkça belirtir.
Bunlar ayrı iki anahtardır ve bu ayrım önemlidir:
| Anahtar | Varsayılan | Anlamı |
|---|---|---|
| Enable AI | KAPALI | AI kullanılabilir. Üretim yalnızca siz istediğinizde olur. |
| Auto Generate | KAPALI | Dev Journal değişikliklerden sonra kendi başına üretim kuyruğa alabilir. |
AI'ı açmak hiçbir şey üretmez. Yalnızca düğmeleri kullanılabilir yapar. Siz birine basana kadar hiçbir şey çalışmaz.
Auto Generate, Dev Journal'ın sizin adınıza iş kuyruğa almasına izin veren ayrı bir tercihtir.
Low Resource Mode açıkken Dev Journal, eşzamanlılık ayarından bağımsız olarak aynı anda tek istek çalıştırır. Kuyruktaki işler sırasını bekler. Today sekmesindeki Queue satırı kaç tanesinin etkin ve bekleyen olduğunu gösterir.
Bu kasıtlıdır: editörle aynı GPU için yarışan yerel bir model aynı anda dört istek çalıştırmamalıdır.
Explain Changes (asset), Suggest Name / Generate Description (system), Generate Daily Summary (gün).
Tam olarak mevcut gerçekler için geçerli bir sonuç zaten varsa, Dev Journal istek harcamak yerine onu yeniden kullanır.
Önbelleği yok sayarak yeniden sorar.
Yeni sonuç üretilirken önceki geçerli sonuç tüm süre boyunca etkin kalır. Bir model düşünürken dokümantasyonunuz boşalmaz.
Başarısız bir yeniden üretim size asla çalışan dokümantasyonu kaybettirmez.
Cancel (veya Cancel AI) çalışan üretimi, arkasındaki kuyruğu ve planlanmış her yeniden denemeyi durdurur.
Deterministik belge geçerli ve eksiksiz kalır. Sağlayıcıya ulaşılamaması, zaman aşımı, iptal, doğrulamada reddedilme, model eksikliği, AI'ın kapalı olması — her durumda gerçekten güvendiğiniz dokümantasyon değişmez. AI bloğu yalnızca yoktur.
Documentation/DevJournal/
├── Daily/ gün başına bir Markdown rapor
├── Assets/ takip edilen asset başına yaşayan belge
├── Systems/ kümelenmiş system özetleri
└── History/ asset başına değişiklik geçmişi
Okuduğunuz ve paylaştığınız çıktı budur. Konum, ayarlardaki Documentation Path ile değiştirilebilir.
Saved/DevJournal/
├── devjournal.ndjson kaydedilen olay deposu
├── sessions.json editör oturum kayıtları
├── sourcefiles.json native kaynak dizini
├── Snapshots/ asset yapı anlık görüntüleri
├── Dependencies/ dependency anlık görüntüleri
└── AI/ önbelleğe alınmış AI sonuçları
Bu, makineye özgü çalışma durumudur. Bkz. Yedekleme ve Sürüm Kontrolü Önerileri.
Doğrudan oraya gitmek için paneldeki Open Documentation Folder düğmesini kullanın.
| Ayar | Varsayılan | Anlamı | Önerilen kullanım |
|---|---|---|---|
| Enable Dev Journal | Açık | Tüm takip için ana anahtar | Açık bırakın |
| Developer Name | (boş) | Raporlarda kullanılan ad | Ekip raporları için ayarlayın; aksi hâlde işletim sistemi kullanıcınız kullanılır |
| Generate Report On Shutdown | Kapalı | Editör kapanırken günlük raporu yaz | Düğmeye basmadan rapor istiyorsanız açın |
| Track Assets | Açık | Asset olaylarını kaydet | Açık bırakın |
| Track Blueprints | Açık | Blueprint yapı ve mantığını yakala | Açık bırakın — temel özellik budur |
| Track Dependencies | Açık | Dependency ve referencer ilişkilerini kaydet | Açık bırakın; Systems ve etki analizi için gerekli |
| Track Level Actors | Açık | Level ve actor değişikliklerini kaydet | Level hareketliliği gürültülüyse kapatın |
| Track Source Control | Açık | Git / Perforce bağlamını oku | Açık bırakın |
| Track Native Source | Açık | Proje C++ dosya değişikliklerini kaydet | C++ projelerinde açık bırakın |
| Documentation Path | Documentation/DevJournal |
Belgelerin yazıldığı yer | Proje düzeninize göre değiştirin |
| Include Engine Dependencies In Reports | Kapalı | Dependency listelerine engine asset'lerini dâhil et | Kapalı bırakın; gürültü ekler |
| Enable Live Source Tracking | Açık | C++ dosyalarını yalnızca başlangıçta değil canlı izle | Açık bırakın |
| Generate Source Documentation | Kapalı | Kaynak dosyalar için belge üret | İsteğe bağlı |
| Generate System Documentation | Açık | Kümelenmiş system belgeleri üret | Açık bırakın |
| System Rules | (boş) | Belirli yolları adlandırılmış system'lere zorla | Otomatik kümeleme önemsediğiniz bir grubu kaçırıyorsa kullanın |
| System Hub Classes | (boş) | System üyeliğinden hariç tutulan sınıflar | Her şeyi tek kümeye çeken bir sınıfı ekleyin |
| Generate Asset History | Açık | Asset başına geçmiş belgeleri tut | Açık bırakın |
| Incremental Documentation Rebuild | Açık | Yalnızca etkilenen belgeleri yeniden oluştur | Performans için açık bırakın |
| Generate Asset Documentation | Açık | Yaşayan asset belgeleri tut | Açık bırakın |
| Source Control Provider | Auto | Git, Perforce veya None zorla | Otomatik algılama yanlış seçerse açıkça ayarlayın |
| Enable Perforce Integration | Açık | Perforce algılamaya izin ver | Perforce kullanmayan projelerde kapatın |
| Perforce Executable Path | (boş) | p4 yolu |
p4 PATH üzerinde değilse ayarlayın |
| Git Executable Path | (boş) | git yolu |
git PATH üzerinde değilse ayarlayın |
| Generate Feature Documentation | Açık | Her Feature Session için bir belge tutar | Feature Session kullanıyorsanız açık bırakın |
| Generate Handoff Documentation | Açık | Feature ve günlük handoff belgelerini tutar | Ekip projelerinde açık bırakın |
| Generate Session Reports | Açık | Her editör oturumu için bir rapor yazar | Açık bırakın; özellikle gece yarısını aşan çalışmada |
| Generate Release Documentation | Açık | Bir tag ilk görüldüğünde release yakalar ve ardışık release'leri karşılaştırır | Açık bırakın; kimsenin tag atmadığı geçişte maliyeti yoktur |
| Generate Coverage Report | Açık | Coverage.md belgesini tutar |
Açık bırakın |
| Range Report Days | 7 |
Open Range Report düğmesinin kapsadığı gün sayısı, bugün dâhil | Daha uzun gözden geçirme döngüsü için artırın |
| Ignored Path Prefixes | (boş) | Asla kaydedilmeyen yollar | Üçüncü taraf veya üretilmiş içerik klasörlerini ekleyin |
| Ayar | Varsayılan | Anlamı | Önerilen kullanım |
|---|---|---|---|
| Enable AI | Kapalı | Ana AI anahtarı. Tek başına hiçbir şey göndermez | Yalnızca AI ifadesi istiyorsanız açın |
| Auto Generate Summaries | Kapalı | Dev Journal değişiklik sonrası üretim kuyruğa alsın | Elle sonuçlardan memnun kalana kadar kapalı bırakın |
| Provider | Ollama | Üretimlerin gideceği arka uç | Gizlilik için Ollama; kalite için bulut |
| Ollama Base Url | http://127.0.0.1:11434 |
Ollama uç noktası | Yerel Ollama için olduğu gibi bırakın |
| Ollama Model | qwen3:4b |
Yerel model kimliği | Daha büyük model daha iyi ifade, daha yüksek maliyet |
| Ollama Context Size | 8192 | Prompt penceresi (1024–131072) | Yalnızca prompt'lar kırpılıyorsa artırın |
| Keep Ollama Model Loaded | Kapalı | Modeli istekler arasında bellekte tut | Dokümantasyon oturumu için açın; VRAM boşaltmak için kapatın |
| OpenAI Model | gpt-5.6-luna |
OpenAI model kimliği | Serbest metin; hesabınızdaki bir modeli yazın |
| OpenAI Base Url | https://api.openai.com/v1 |
OpenAI uç noktası | Yalnızca proxy için değiştirin |
| OpenAI Reasoning Effort | low |
Desteklenen yerlerde akıl yürütme çabası | Yapılandırılmış gerçekleri yeniden ifade için "low" doğrudur |
| Anthropic Model | claude-haiku-4-5-20251001 |
Anthropic model kimliği | Serbest metin |
| Anthropic Base Url | https://api.anthropic.com/v1 |
Anthropic uç noktası | Yalnızca proxy için değiştirin |
| Allow Project Data To External AI | Kapalı | Verinin makinenizden çıkması için izin | Yalnızca bulut veya uzak AI kullanacaksanız açın |
| Low Resource Mode | Açık | Tek istek, sınırlı boyutlar, kullanım sonrası boşaltma | Editörde çalışırken açık bırakın |
| Temperature | 0.2 | Çıktı rastgeleliği (0.0–2.0) | Olgusal yeniden ifade için düşük doğrudur |
| Max Output Tokens | 1024 | Çıktı üst sınırı (64–8192) | Yalnızca uzun özetler için artırın |
| Request Timeout Seconds | 60 | İstek zaman aşımı (5–600) | Büyük yerel model yavaş yükleniyorsa artırın |
| Max Concurrent Requests | 1 | Paralel üretim (1–8) | Low Resource Mode bunu zaten 1'e sabitler |
Assets ve Systems sekmelerindeki AI status satırı ile Today sekmesindeki Today's summary şunlardan birini gösterir:
| Durum | Görünen metin | Anlamı |
|---|---|---|
| Current | Current |
Tam olarak mevcut gerçekler için doğrulanmış bir özet var. Belgede görünür. |
| Cached | Cached - current |
Current ile aynı, ancak AI Mode kapalı. Blok görünmeye devam eder; AI'ı açana kadar yenisi üretilmez. |
| Stale | Stale - regeneration required |
Bir özet var ama gerçekler sonradan değişti. Belgede gösterilmez. Regenerate'e basın. |
| Missing | Not generated |
Bunun için henüz bir şey üretilmemiş. |
| Generating | Generating... |
Şu anda bir istek çalışıyor. |
| Queued | Queued |
Auto Generate bunu kuyruğa aldı; sırasını bekliyor. |
| Failed | Failed regeneration |
Son deneme başarısız oldu. Daha önceki geçerli sonuç hâlâ gösterilir. |
| BlockedByPrivacy | External AI blocked until project-data permission is enabled. |
İzin vermeden bulut sağlayıcı veya uzak Ollama uç noktası seçtiniz. |
| MissingApiKey | API key not configured |
Seçili bulut sağlayıcı için anahtar yok. |
| ProviderUnavailable | Provider unavailable |
Uç noktaya ulaşılamadı. |
| ModelMissing | Model not installed |
Yapılandırılan model mevcut değil. |
| Cancelled | Cancelled |
Son denemeyi iptal ettiniz. |
| InsufficientContext | Insufficient context to summarise |
Modele soruldu ve söyleyecek yeterli kayıt olmadığını bildirdi. Bu bir hata değil, geçerli bir cevaptır — blok yazılmaz. |
| Disabled | AI Mode Disabled |
AI kapalı ve bunun için önbellekte bir şey yok. |
Edit → Plugins → Editor altından Dev Journal'ın etkin olduğunu doğrulayın ve editörü yeniden başlatın. Eklenti motor başlatıldıktan sonra yüklenir, bu yüzden açılış sırasında görünmez. Menü girdisi Tools → Dev Journal'dır.
Dev Journal bir sağlayıcı bulamadı. Source Control Provider'ı açıkça ayarlayın ve aşağıdaki çalıştırılabilir yol ayarlarını kontrol edin.
git'in PATH üzerinde olduğunu doğrulayın veya Git Executable Path ayarlayın.p4'ün PATH üzerinde olduğunu doğrulayın veya Perforce Executable Path ayarlayın.p4'ün terminalden çalışacak şekilde workspace ortamınızın yapılandırıldığını doğrulayın.http://127.0.0.1:11434 adresini açın.qwen3:4b eksikKurulu olanları görmek için Refresh Models'a basın. Ardından ya Install Configured Model ile indirin ya da Ollama Model'i zaten sahip olduğunuz bir modele ayarlayın.
Enable AI kapalı ya da bir kapı engelliyor. Today sekmesindeki Data destination ve Credential satırlarını kontrol edin — nedeni orada yazar.
OpenAI, Anthropic veya makinenizde olmayan bir Ollama URL'si seçtiniz. Amacınız buysa Allow Project Data To External AI'ı işaretleyin.
Project Settings → Plugins → Dev Journal AI altında seçili sağlayıcı için bir anahtar girin. Anahtarın tek başına izin olmadığını unutmayın — ayrıca Allow Project Data To External AI gerekir.
Bu genellikle bir hata değil, amaçlandığı gibi çalışmadır.
Dev Journal, üretilen her cümleyi verdiği gerçeklere karşı doğrular. Bir model, Dev Journal'ın verdiğini kanıtlayamadığı bir tanımlayıcıya atıf yapan bir cümle yazarsa cevap gösterilmek yerine reddedilir. Uydurulmuş bir atıf, atıfsızlıktan daha kötüdür; çünkü doğrulanabilir görünür ama değildir.
Bu bir doğruluk özelliğidir. Doğru tepkiler:
Bunu aşılması gereken bir engel olarak görmeyin. Deterministik dokümantasyonunuz her hâlükârda eksiksiz ve doğrudur.
Ya mevcut gerçekler için hiçbir şey üretilmemiştir ya da var olan özet Stale'dir. AI status satırını kontrol edin. Stale yazıyorsa Regenerate'e basın.
Özet yazıldıktan sonra asset veya gün değişti; dolayısıyla projenizin geride bıraktığı bir durumu anlatıyor. Dev Journal bunu güncelmiş gibi göstermez. Regenerate'e basın.
Low Resource Mode açıkken beklenen durumdur: model her cevaptan sonra boşaltılır, bu yüzden her üretim yükleme süresini yeniden öder (test makinesinde qwen3:4b için yaklaşık 2 saniye).
Tek oturumda çok sayıda dokümantasyon üretiyorsanız Keep Ollama Model Loaded'ı açın. Sonrasında belleği boşaltmak için tekrar kapatın.
Model bellekte duruyor. Keep Ollama Model Loaded'ı kapatın ve Low Resource Mode'u açık tutun. Ayrıca panelde Unload Model'a basarak hemen serbest bırakabilirsiniz. Daha küçük bir model daha az kullanır.
Çoğu zaman nedeni, proje yolunun ASCII dışı bir karakter içermesidir. Unreal'in derleyici araç zinciri böyle bir yoldan dosya açamaz ve hata, dosya diskte dururken "dosya bulunamadı" olarak bildirilir.
Yolun tamamını ı, ş, ğ, ü, ö, ç, é, ñ, ä gibi harfler için kontrol edin. Yolun herhangi bir yerinde tek bir tanesi yeterlidir — Windows kullanıcı adınız dahil.
C:\Projects\MyGame derlenir
C:\Projeler\Kullanılacak_Materyaller derlenmez
Çözüm: sorunlu klasörü düz ASCII olacak şekilde yeniden adlandırın, hem projedeki hem Plugins/DevJournal/ içindeki Binaries/ ve Intermediate/ klasörlerini silin, sonra projeyi yeniden açın.
Hata metni eklentiyi işaret eder, bu yanıltıcıdır. Bu durum yalnızca Dev Journal'ı değil, her Unreal kod eklentisini etkiler — yol düzeltilene kadar aynı proje hiçbir C++ eklentisini derleyemez. Dev Journal açılışta sorunlu yolu adlandıran bir uyarı loglar; böylece projedeki bir sonraki kişi belirtiyi değil nedeni görür.
Bir motor sürümünün derleme çıktısı başka bir sürüm için geçerli değildir. Proje klasörünüzde şunları silin:
Binaries/Intermediate/ve varsa Plugins/DevJournal/ içindeki aynı iki klasörü; sonra projeyi yeniden açın ve derlemesine izin verin.
Yalnızca
BinariesveIntermediatesilin. Bunlar derlemede yeniden oluşturulur.Content,Source,ConfigveyaDocumentationklasörlerini asla silmeyin — bunlar sizin projeniz ve emeğinizdir.
Nelerin değiştiğini ve yapısal olarak nasıl değiştiğini kaydeder. Dosya içeriği saklamaz ve hiçbir şeyi geri yükleyemez. Gerçek sürüm kontrolü için Git veya Perforce kullanmaya devam edin.
Documentation/DevJournal/ — isteğe bağlı ve ekip kararı.
Herkesin gördüğü, projeyle birlikte gelişen ortak yaşayan dokümantasyon istiyorsanız commit'leyin. Düz Markdown'dır, diff'te makul görünür ve programcı olmayanlara neyin değiştiğine dair okunabilir bir görünüm verir.
Her geliştiricinin dokümantasyonu yerel üretmesini tercih ediyorsanız veya incelemelerde gürültülü buluyorsanız commit'lemeyin. Dev Journal her iki şekilde de çalışır.
Commit'leyecekseniz, diff'lerin anlamlı kalması için raporları tutarlı zamanlarda üretmeyi düşünün.
Yoksayma dosyanıza ekleyin:
Saved/DevJournal/
Burada makineye özgü durum bulunur: olay deposu, anlık görüntüler, dependency verisi ve AI önbelleği. Geliştiriciye özgü çalışma durumudur ve paylaşılırsa sürekli çakışır.
Asla commit'lemeyin:
Saved/DevJournal/ — yerel durum ve AI önbelleğiIntermediate/Binaries/Dev Journal API anahtarlarını proje yapılandırmasına asla yazmaz, bu yüzden kazara commit'lenecek bir şey yoktur — ancak elle de eklemeyin.
Dev Journal AI gerektirir mi? Hayır. AI isteğe bağlıdır ve varsayılan olarak kapalıdır. Tüm dokümantasyon özellikleri AI olmadan çalışır.
Projemi otomatik olarak yükler mi? Hayır. Varsayılan ayarlarla hiçbir şey hiçbir yere gönderilmez. Bulut sağlayıcıları, siz açıkça izin verene kadar reddedilir.
Kaynak kodumu AI'a gönderir mi? Hayır, ve buna izin verecek bir ayar da yok. AI, dosya içerikleri yerine yapılandırılmış gerçekleri alır — dosya adları, sembol adları, sayılar, diff istatistikleri.
Yerel olarak Ollama ile çalışır mı?
Evet. Yerel Ollama varsayılan sağlayıcıdır ve 127.0.0.1 uç noktasıyla hiçbir şey makinenizden çıkmaz.
Git'i değiştirir mi? Hayır. Git entegrasyonu kesinlikle salt okunurdur. Dev Journal asla commit, push, pull, checkout, merge veya stage yapmaz.
Perforce'u değiştirir mi? Hayır. Perforce entegrasyonu kesinlikle salt okunurdur. Asla changelist oluşturmaz, değiştirmez, submit veya revert etmez.
AI proje gerçekleri uydurabilir mi? Üretilen ifadeler, Dev Journal'ın verdiği deterministik gerçeklere karşı doğrulanır. Her cümle bu gerçeklerin tanımlayıcılarına atıf yapmak zorundadır; hiçbir şeye atıf yapmayan veya verilmemiş bir şeye atıf yapan cümleler, hiçbir şey yazılmadan önce reddedilir. AI kayıtlı gerçekleri yeniden ifade edebilir — yenilerini ekleyemez.
Dev Journal'ı internet olmadan kullanabilir miyim? Evet. Tüm deterministik özellikler çevrimdışı tam çalışır. Model kurulduktan sonra yerel Ollama da çevrimdışı çalışır. Yalnızca bulut sağlayıcıları bağlantı gerektirir.
Documentation/DevJournal klasörünü commit'lemeli miyim?
İsteğe bağlı, ekibinize bağlı. Ortak yaşayan dokümantasyon için commit'leyin; yalnızca yerel üretimi tercih ediyorsanız veya diff gürültüsünü rahatsız edici buluyorsanız etmeyin.
Saved/DevJournal klasörünü commit'lemeli miyim?
Genellikle hayır. Makineye özgü durum ve AI önbelleğidir; geliştiriciler arasında çakışır.
Editörümü yavaşlatır mı? Takip kaydetmede çalışır ve artımlıdır — yalnızca etkilenen belgeler yeniden oluşturulur. Panel verilerini çizim yolunun dışında hesaplar, bu yüzden açık olması size kare kaybettirmez. AI etkinse, editörle yarışmaması için varsayılan olarak aynı anda tek istek çalıştırır.
Özet ürettikten sonra AI'ı kapatırsam ne olur? Anlattıkları gerçekler için hâlâ güncel olan özetler belgelerinizde açıkça işaretli olarak görünmeye devam eder. Yenisi üretilmez ve hiçbir şey silinmez. AI'ı tekrar açtığınızda kaldığı yerden çalışır.
Dokümantasyonun yazıldığı yeri değiştirebilir miyim? Evet — ayarlardaki Documentation Path.
Yalnızca Blueprint kullanan bir projede çalışır mı? Evet, ancak eklenti kaynak kod olarak dağıtıldığı için projenizin ilk açılışta derleyebilmesi adına standart Unreal C++ araç zincirine ihtiyacı vardır.
Dev Journal yalnızca editöre yönelik bir araçtır. Bir projeyi gözlemler ve hakkında dokümantasyon yazar. Asset'lerinizi, kaynak kodunuzu veya çalışma kopyanızı asla değiştirmez.