UNREAL ENGINE İLE PROJE KURULUMUNU PLANLAMAK VE ÜRETİM YAPISINI OTURTMAK

Animasyon Akademi16 dk okuma
New Project Wizard kartında platform Lumen ve Starter Content seçimleri işaretli Unreal Engine başlangıç ekranı

Unreal Engine proje kurulumu, ilk gün alınan klasör düzeni, asset adlandırma, sürüm kontrolü ve build kararlarıyla üretim hattını çalışır hâle getirmektir; bu yazıda proje hedeflerini netleştirmekten sürüm kontrolüne, plugin mimarisine, asset pipeline ve CI/CD akışına kadar pratik bir yol haritası bulacaksın — çünkü “şimdilik idare eder” yaklaşımı birkaç hafta sonra daha pahalıya patlayan teknik borca dönüşür ve iyi başlangıç, ekiplerin daha az sürtünmeyle öngörülebilir üretim yapmasını sağlar.

1. Proje hedeflerini ve kapsamı netleştirmek

Sağlam kurulumun ilk adımı, “ne yapıyoruz” sorusunu teknik kararlarla bağlamakla başlar. Oyun mu geliştiriyorsunuz, simülasyon mu, mimari görselleştirme mi? Hedef platform (PC, konsol, mobil, VR), performans bütçesi, içerik yoğunluğu ve ekip sayısı; proje yapısını doğrudan etkiler.

Bu aşamada küçük bir “teknik özet” dokümanı hazırlamak, sonradan tartışmaları azaltır. Dokümanın içinde şunlar net olmalıdır:

  • Hedef platformlar, minimum ve önerilen donanım sınırları belirlemek
  • Render hedefi (Lumen, Nanite, forward/deferred) kararını vermek
  • Çoklu seviye, açık dünya veya sahne tabanlı akışı seçmek
  • Takım rolleri ve içerik üretim kapasitesini gerçekçi tahmin etmek

Bu çerçeve, “hangi plugin’ler?”, “hangi build ayarları?”, “hangi source control?” gibi soruların yanıtını da hızlandırır. Belirsiz hedef, belirsiz proje yapısı üretir.

Platform ve performans bütçesini erken tanımlamak

Örnek: VR hedefliyorsanız frame bütçesi çok daha sıkıdır; shader karmaşıklığı, post-process ve dinamik ışık sayısı daha sınırlı olmalıdır. Mobilde texture boyutları ve draw call sayısı belirleyici olur. PC’de ise kalite seçenekleri (Scalability) daha geniş tutulabilir. Bu farklar, daha baştan içerik standartlarını ve QA kontrol listesini etkileyecektir.

Teknik riskleri sprint planına bağlamak

Lumen ve Nanite kullanımında içerik türleri (yüksek poligon, decal yoğunluğu, translucent materyaller) risk yaratabilir. Online/multiplayer hedefleniyorsa replikasyon, network bandwidth, determinism gibi başlıklar erken prototiplenmelidir. Bu riskleri “ilk sprintte doğrulama” planına koymak, sonradan mimari değişikliklerin maliyetini azaltır.

Unreal Project Settings Target Hardware paneli Maximum Quality ile Lumen Nanite kutuları işaretli performans bütçesi ekranı

2. Klasör yapısını ve adlandırmayı standardize etmek

Unreal Engine projelerinde içerik karmaşası çoğu zaman “Content” klasörünün kontrolsüz büyümesiyle başlar. Tutarlı bir klasör yapısı ve naming convention, arama süresini azaltır, merge çatışmalarını düşürür ve onboarding sürecini hızlandırır. Buradaki amaç “mükemmel” değil, herkesin uyduğu tek bir ortak sistem kurmaktır.

İçeriği disipline ve kullanım alanına göre sınıflandırmak

Önerilen yaklaşım, içerikleri hem disipline göre hem de kullanım alanına göre sınıflandırmaktır. Örneğin “Characters, Environments, UI, FX” gibi üst klasörler; onların altında “Meshes, Materials, Textures, Animations” gibi alt yapılarla genişleyebilir. Projenin ölçeğine göre bu yapı sadeleştirilebilir.

Content, Source ve Config ayrımını oturtmak

Content tarafında asset’ler, Source tarafında C++ kodları, Config tarafında ini ayarları yönetilir. Ayrıca “Plugins” klasörü üzerinden modüler bileşenler ayrıştırılabilir. Bu ayrım, CI/CD tarafında da büyük avantaj sağlar; örneğin yalnızca Config değiştiğinde tam rebuild yerine daha hafif doğrulamalar yapılabilir.

Asset naming convention ile aramayı hızlandırmak

Pratikte en çok işe yarayan yöntem, prefix tabanlı adlandırmadır: “SM_” (Static Mesh), “SK_” (Skeletal Mesh), “M_” (Material), “MI_” (Material Instance), “T_” (Texture), “BP_” (Blueprint), “WBP_” (Widget Blueprint) gibi. Böylece Content Browser araması hızlı olur ve hatalı kullanım daha erken fark edilir.

Aşağıdaki örnek, küçük bir ekip için tipik bir Content düzenini gösterir:

Content/
  _Project/
    Blueprints/
    UI/
    Data/
  Characters/
    Hero/
      Meshes/
      Animations/
      Materials/
      Textures/
  Environments/
    Props/
    Modular/
    Materials/
    Textures/
  FX/
    Niagara/
    Materials/
  Audio/
    SFX/
    Music/

Bu düzeni “_Project” gibi bir kök altında proje geneli blueprint ve data asset’leri için kullanmak, çok sayıda ekipte karışıklığı ciddi biçimde azaltır. Önemli olan, herkesin aynı yolu izleyerek üretmesi ve kontrolün otomatikleştirilebilmesidir.

3. Sürüm kontrolünü ve dosya stratejisini belirlemek

Unreal projelerinde sürüm kontrolü yalnızca “kod” için değil; binlerce binary asset için de kritiktir. Bu nedenle seçilecek sistem ve dosya stratejisi, ekibin günlük hızını doğrudan belirler. Git kullanılıyorsa Git LFS, Perforce kullanılıyorsa depot ve workspace politikaları, daha ilk gün konuşulmalıdır.

Binary asset kilitleme ihtiyacını erken konuşmak

Özellikle binary asset’lerde kilitleme (locking) ihtiyacı ve büyük dosya yönetimi belirleyicidir. Perforce, Unreal ekosisteminde yaygın bir tercih olmasının nedenini burada gösterir; ancak doğru kurulum yapılmadığında o da darboğaz yaratabilir.

Git LFS ve Perforce kullanımını karşılaştırmak

Git, branching ve code review kültürüyle güçlüdür; fakat büyük binary dosyalarda LFS zorunlu hâle gelir ve ekip alışkanlıklarına göre sorun çıkarabilir. Perforce ise kilitleme akışını kolaylaştırır ve büyük depot’larda daha rahat ölçeklenebilir. Seçim, ekibin büyüklüğüne, içerik hacmine ve pipeline kültürüne bağlıdır.

Ignore, lock ve merge politikalarını netleştirmek

.gitignore veya P4 typemap kararları, gereksiz dosyaların repoya girmesini engeller. Unreal tarafında DerivedDataCache, Intermediate, Saved gibi klasörlerin repoya girmemesi kritik bir standarttır. Ayrıca “uasset” ve “umap” gibi dosyalarda kimlerin lock alacağı, hangi durumlarda branch açılacağı gibi kurallar net yazılmalıdır.

Örnek bir .gitignore parçası şu mantığı taşır:

# Unreal Engine
Binaries/
DerivedDataCache/
Intermediate/
Saved/
.vscode/
*.suo
*.opensdf
*.sdf

# Build outputs
Build/
*.log

Bu politikalar, yeni katılan birinin ilk gün doğru şekilde çalışmasını sağlar. Üstelik üretim sırasında “kim bu dosyayı repoya attı?” tartışmalarını azaltır. Sürüm kontrolü, ekip anlaşmasıdır; sadece araç seçimi değildir.

4. Proje ayarlarını ve plugin mimarisini kurgulamak

Unreal Engine’de Project Settings ve plugin seçimleri, hem performansı hem de üretim ergonomisini belirler. Erken dönemde yanlış plugin bağımlılıkları eklemek, ileride kaldırılması zor bir yük oluşturur. Bu nedenle “minimum gerekli” yaklaşımı daha güvenlidir: ihtiyacı doğrulanmamış eklentileri projeye dahil etmemek iyi bir alışkanlıktır.

Modüler ihtiyaçları plugin mimarisiyle ayrıştırmak

Bir diğer kritik konu, üretim sırasında ortaya çıkacak modüler ihtiyaçları plugin mimarisiyle karşılamaktır. Örneğin UI altyapısı, gameplay framework, araçlar (tools) veya özel import pipeline’ı plugin olarak ayrıştırılabilir. Böylece kod tabanı daha okunur olur ve ekipler paralel çalışmayı daha rahat yönetir.

Default config ve Scalability ayarlarını düzenlemek

Proje açılır açılmaz doğru kalite seviyelerini görmek, ekip içinde “bu sahne ağır mı?” tartışmalarını anlamlı kılar. DefaultEngine.ini, DefaultGame.ini ve Scalability ayarları; hedef platforma göre başlangıç değerleri belirlemek için kullanılabilir. Ayrıca input mapping, collision preset’leri ve physics ayarları da bu aşamada standardize edilmelidir.

Plugin sınırlarını ve bağımlılıklarını yönetmek

Plugin’ler “kolay çözüm” gibi görünse de bağımlılık zinciri büyüdükçe güncelleme ve uyumluluk riski artar. Özellikle marketplace plugin’lerinde sürüm geçişleri, engine upgrade sırasında sorun çıkarabilir. Bu yüzden plugin listesi için bir “değerlendirme kontrolü” oluşturmak faydalıdır: kullanım amacı, kritik mi, alternatif var mı, güncelleme sıklığı nasıl gibi.

Aşağıdaki örnek, .uproject içinde plugin ekleme mantığını gösteren sade bir parça sunar:

{
  "FileVersion": 3,
  "EngineAssociation": "5.3",
  "Category": "",
  "Description": "",
  "Plugins": [
    { "Name": "Niagara", "Enabled": true },
    { "Name": "EnhancedInput", "Enabled": true },
    { "Name": "OnlineSubsystem", "Enabled": false }
  ]
}

Buradaki hedef, proje büyüdükçe “hangi plugin neden aktif?” sorusunun yanıtının izlenebilir olmasıdır. İzlenebilirlik, üretim hızını doğrudan artırır.

Unreal Plugins penceresi içinde Niagara EnhancedInput aktif OnlineSubsystem pasif kategorik plugin liste paneli

5. Üretim hattını ve asset pipeline akışını kurmak

Proje kurulumu “çalışıyor” olsa bile üretim hattı oturmadan ekip verimli üretim yapamaz. Asset pipeline; DCC araçlarından (Maya, Blender, 3ds Max, Substance) Unreal’a import, materyal standardı, LOD üretimi, naming ve klasörleme, versiyonlama ve test süreçlerinin toplamıdır. Bu akışın standartları net değilse herkes kendi yöntemini üretir ve kalite dalgalanır.

Hatayı build sırasında erken yakalamak

İyi bir pipeline, hatayı erken yakalamayı hedefler. Örneğin yanlış ölçekte import edilen bir mesh’in, build sırasında otomatik kontrolle yakalanması, sonradan sahnede sorun aramaktan daha ucuzdur. Aynı şekilde texture formatı, mipmap politikası, compression ayarı gibi konular da “kişiye göre” değişmemelidir.

DCC export ve import standartlarını yazılı hâle getirmek

Ölçek birimi (cm), pivot standartları, naming kuralı, LOD adlandırması ve collision üretimi gibi konular için kısa ama net bir standart dokümanı hazırlamak gerekir. Bu doküman, teknik sanatçı ve level art ekibinin ortak referansı olur. Ayrıca “hangi içerik nasıl kontrol edilir” maddeleri, QA sürecini de kolaylaştırır.

Material ve texture politikalarını sürdürülebilir kılmak

Materyal tarafında master material yaklaşımı, tutarlı görünüm ve hızlı iterasyon sağlar. Texture tarafında ise maksimum çözünürlük sınırları, kanal paketleme (ORM), sık kullanılan compression ayarları, normal map standartları belirlenmelidir. Böylece performans ve kalite hedefleri daha öngörülebilir olur. Standartlar, yaratıcılığı kısıtlamak için değil; üretimi güvenli ve ölçeklenebilir yapmak içindir.

Bu aşamada ekip içinde basit bir checklist ile ilerlemek iyi sonuç verir:

  1. Asset adı prefix kuralına uyuyor mu kontrol etmek
  2. Doğru klasöre kaydedildi mi doğrulamak
  3. Pivot ve ölçek standartları sağlandı mı incelemek
  4. LOD ve collision politikası uygulandı mı gözden geçirmek
  5. Texture boyutları ve compression ayarlarını doğrulamak

6. Build, paketleme ve CI/CD akışını planlamak

Üretim yapısının en görünmez ama en etkili parçası, build ve paketleme akışıdır. “Bende çalışıyor” yaklaşımı, ekip büyüdükçe sorun üretir. Bu nedenle baştan itibaren en azından bir “gece build’i” ya da düzenli paketleme doğrulaması planlamak gerekir. Böylece entegrasyon sorunları erken yakalanır.

Platforma özel paketleme tuzaklarını günlük doğrulamak

Unreal tarafında paketleme, hedef platforma göre farklı tuzaklar barındırır: plugin uyumsuzluğu, missing cooking asset’ler, platform özel shader derleme süreleri ve config farkları. Bunları sprint sonunda fark etmek yerine günlük olarak doğrulamak daha sağlıklıdır.

Build konfigürasyonlarını ve hedeflerini tanımlamak

Development, DebugGame ve Shipping konfigürasyonları; hangi ekip üyesinin hangi durumda neyi kullanacağını belirler. Ayrıca “Test map” ve “Smoke test” gibi hızlı doğrulama haritaları kurmak, paketleme öncesi minimum kontrol sağlar. Build hedefleri net değilse herkes farklı şey test eder.

Otomasyon için UAT komutlarını standardize etmek

Unreal Automation Tool (UAT) ve BuildCookRun gibi akışlar, CI/CD tarafında standart komutlar üretmeye yarar. Bu komutları dokümante etmek, yeni bir makinenin hızlı kurulmasını sağlar ve build hatalarının tekrar üretilebilir olmasına yardımcı olur. Örneğin paketleme için ortak bir komut şablonu belirlemek, ekip içi “hangi ayarlarla alıyoruz?” sorusunu ortadan kaldırır.

7. Onboarding ve çalışma kurallarını dokümante etmek

Proje kurulumu sadece teknik ayarlar değildir; ekip davranışlarının da standardı olmalıdır. Yeni biri projeye katıldığında, “hangi branch?”, “nasıl commit?”, “nasıl lock?”, “hangi klasöre ne konur?” sorularının hızlı yanıtı olmalıdır. Bu amaçla kısa bir onboarding rehberi, üretim hızını belirgin şekilde artırır.

İlk sürümde yalnızca kritik kuralları yazmak

Dokümantasyonun güzel tarafı, mükemmel olmak zorunda olmamasıdır. İlk sürümde en kritik kuralları yazmak yeterlidir: proje kurulumu, sürüm kontrol adımları, klasör/naming standartları, build alma adımları, temel sorun giderme notları. Sonra ekip büyüdükçe genişletilebilir.

Code review ve asset review ritmini oturtmak

Code review, yalnızca hata yakalamak değil; ekipte ortak kalite anlayışı oluşturmak içindir. Asset review ise aynı mantıkla, görsel kaliteyi ve performans standardını korur. Haftalık ya da sprint sonu kısa review toplantıları, “standart sapmalarını” erken yakalar ve geri dönüş maliyetini düşürür.

Engine upgrade ve sürüm geçiş planını yapmak

Unreal Engine sürüm yükseltmeleri, özellikle plugin bağımlılıklarında kırılma riski taşır. Bu yüzden upgrade kararı, üretimin ortasında değil; planlı bir pencerede yapılmalıdır. “Önce prototip branch’inde denemek”, “kritik sahneleri benchmark etmek”, “paketleme testlerini tekrarlamak” gibi adımlar, geçişi daha güvenli hâle getirir.

Perforce P4V workspace ağacında Content Source Config kilitli ve checkout edilmiş uasset uproject satırlarının renkli durum simgeleri

8. Pratik kontrol listesiyle ilk günü güvenceye almak

Tüm bu başlıklar, ilk bakışta çok gibi görünebilir; ancak doğru sırayla ilerlediğinizde proje kurulumunu birkaç günde sağlam temele oturtmak mümkündür. Aşağıdaki kısa liste, “ilk gün” için pratik bir güvence sağlar:

  • Hedef platform ve performans bütçesini yazılı hâle getirmek
  • Klasör yapısı ve asset naming convention dokümanı oluşturmak
  • Source control aracı ve lock/merge politikasını belirlemek
  • Project Settings ve plugin listesini minimumla başlatmak
  • Import standartları ve master material yaklaşımını kurmak
  • Build/paketleme akışını en azından haftalık doğrulamak
  • Onboarding rehberini ilk sürüm olarak yayınlamak

Bu çerçeve, ekiplerin daha hızlı üretim yapmasına, hataları erken yakalamasına ve içerik kalitesini tutarlı bir çizgide tutmasına yardım eder. Farklı disiplinler aynı projede yoğun çalışıyorsa, bu yapıların eğitimle birlikte ele alınması daha hızlı sonuç verir; bu noktada kapsamlı Unreal Engine eğitimi ile ekip içi standartları ortaklaştırmak iyi bir adım olabilir.

Kurulumu baştan tasarlamak

Özetle: Unreal Engine proje kurulumu, üretim yapısını “sonradan toparlamak” yerine en baştan tasarlamayı gerektirir. Doğru planlama, sadece teknik borcu azaltmaz; ekip iletişimini ve teslim hızını da doğrudan iyileştirir.

Sıkça Sorulan Sorular

Unreal Engine proje kurulumu neden üretim hızını bu kadar etkiler?

Proje kurulumu; klasör düzeni, asset adlandırma, sürüm kontrolü ve build akışını belirlediği için günlük çalışma hızını doğrudan etkiler. Standartlar yoksa ekip üyeleri aynı işi farklı yöntemlerle yapar, arama süreleri uzar ve merge/lock sorunları artar. Doğru kurulum, hatayı erken yakalayan bir pipeline kurarak yeniden iş yapmayı azaltır ve teslimleri daha öngörülebilir hâle getirir.

Git LFS mi yoksa Perforce mu Unreal projeleri için daha uygundur?

Seçim ekip büyüklüğü ve içerik hacmine bağlıdır. Git, branching ve code review tarafında güçlüdür; ancak büyük binary asset’lerde Git LFS zorunlu olur ve doğru süreç kurulmazsa performans ve kullanım karmaşıklığı artabilir. Perforce ise kilitleme ve büyük depot yönetiminde daha rahat ölçeklenir. En iyi yaklaşım, ekibin alışkanlıkları ve üretim yoğunluğuna göre deneme yaparak karar vermektir.

Klasör yapısı ve naming convention belirlemek için ideal başlangıç nedir?

En pratik başlangıç, disiplin ve kullanım alanına göre üst klasörler belirlemek ve asset türleri için prefix standardı oluşturmaktır. Örneğin Characters, Environments, UI gibi ana klasörler; altında Meshes, Materials, Textures gibi alt klasörlerle genişleyebilir. Prefix ile adlandırma (SM_, M_, BP_ gibi) aramayı hızlandırır ve hatalı yerleşimi erken görünür kılar.

Plugin seçimlerini baştan yapmak neden riskli olabilir?

Gereksiz plugin’ler bağımlılık zincirini büyütür ve engine yükseltmelerinde uyumluluk sorunları çıkarabilir. Marketplace plugin’lerinde güncelleme döngüsü belirsizse risk daha da artar. Bu yüzden minimum gerekli yaklaşımıyla başlamak, ihtiyaç doğrulandıkça eklemek daha güvenlidir. Ayrıca plugin’leri modüler bir mimariyle ayırmak, ekiplerin paralel çalışmasını ve bakım süreçlerini kolaylaştırır.

Asset pipeline kurarken en çok hangi standartlar gözden kaçırılır?

En sık kaçırılanlar ölçek birimi, pivot standardı, LOD politikası, texture çözünürlük sınırları ve compression ayarlarıdır. Bu maddeler net değilse içerikler birbiriyle tutarsız olur ve performans sorunları geç aşamada ortaya çıkar. Kısa bir export/import standardı dokümanı ve basit bir checklist, hataları daha sahneye girmeden yakalamayı sağlayarak üretimi hızlandırır.

CI/CD ve paketleme doğrulaması küçük ekiplerde de gerekli midir?

Evet, çünkü küçük ekiplerde bile entegrasyon sorunları birikerek sprint sonunda büyük zaman kaybına dönüşebilir. Haftalık veya günlük basit bir paketleme doğrulaması; eksik cooking asset’leri, config hatalarını ve plugin uyumsuzluklarını erken yakalar. “Bende çalışıyor” durumunu azaltır, build sürecini tekrarlanabilir kılar ve teslim öncesi sürprizleri minimize eder.

 ANİMASYON AKADEMİ