Unreal'da Blueprint mi C++ mı? Hangisini ne zaman kullanırsınız?

Cevap

Kısa cevap: ikisi birlikte kullanılır. Performans kritik, karmaşık ve sistem seviyesindeki kod C++'ta yazılır; tasarımcıların hızlı iterasyon yaptığı içerik, tuning ve görsel akışlar Blueprint'te kalır.

KriterC++Blueprint
PerformansYüksekVM üzerinden, ağır döngülerde yavaş
İterasyon hızıDerleme gerekirAnında, tasarımcı dostu
Versiyon kontrolü / diffKolay (metin)Zor (binary .uasset, merge yok)
Karmaşık algoritmaUygunSpaghetti'ye dönüşür
Engine API erişimiTamSadece expose edilenler

Yaygın mimari: C++'ta temel sınıf yazılır, değerler ve hook'lar Blueprint'e açılır, Blueprint bundan türetilir.

UCLASS(Blueprintable)
class AWeapon : public AActor
{
    GENERATED_BODY()
public:
    UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) float Damage = 20.f;

    UFUNCTION(BlueprintCallable) void Fire();

    // Tasarımcı efekti BP'de uygular
    UFUNCTION(BlueprintImplementableEvent) void OnFired();

    // C++ varsayılanı var, BP override edebilir
    UFUNCTION(BlueprintNativeEvent) float CalculateDamage();
};

Kural: Tick içinde ağır hesap, büyük döngüler ve çok sayıda nesne üzerinde iterasyon Blueprint'te yapılmamalı; Unreal Insights'ta BP maliyeti görülüyorsa o kısım C++'a taşınır.

  1. Oyun motorlarında neden custom memory allocator kullanılır? Linear (arena), pool ve stack allocator nasıl çalışır?ZorUnreal & C++Game Dev
  2. Cache-friendly veri yapısı ne demektir? Array of Structs (AoS) ile Struct of Arrays (SoA) farkı nedir?ZorUnreal & C++Game Dev
  3. C++'ta move semantics nedir? Aşağıdaki kodda hangi constructor'lar çağrılır?ZorUnreal & C++Game Dev
  4. C++'ta virtual fonksiyonlar ve vtable nasıl çalışır? Destructor neden virtual olmalıdır?OrtaUnreal & C++Game Dev
  5. Unreal'da replication nasıl çalışır? Replicated property, RepNotify ve RPC türleri arasındaki fark nedir?ZorUnreal & C++Game Dev
  6. Unreal'ın Gameplay Framework'ünde GameMode, GameState, PlayerController, PlayerState ve Pawn'ın rolleri nelerdir?OrtaUnreal & C++Game Dev

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle