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.
| Kriter | C++ | Blueprint |
|---|---|---|
| Performans | Yüksek | VM üzerinden, ağır döngülerde yavaş |
| İterasyon hızı | Derleme gerekir | Anında, tasarımcı dostu |
| Versiyon kontrolü / diff | Kolay (metin) | Zor (binary .uasset, merge yok) |
| Karmaşık algoritma | Uygun | Spaghetti'ye dönüşür |
| Engine API erişimi | Tam | Sadece 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.
İlgili Unreal & C++ soruları
- Oyun motorlarında neden custom memory allocator kullanılır? Linear (arena), pool ve stack allocator nasıl çalışır?
- Cache-friendly veri yapısı ne demektir? Array of Structs (AoS) ile Struct of Arrays (SoA) farkı nedir?
- C++'ta move semantics nedir? Aşağıdaki kodda hangi constructor'lar çağrılır?
- C++'ta virtual fonksiyonlar ve vtable nasıl çalışır? Destructor neden virtual olmalıdır?
- Unreal'da replication nasıl çalışır? Replicated property, RepNotify ve RPC türleri arasındaki fark nedir?
- Unreal'ın Gameplay Framework'ünde GameMode, GameState, PlayerController, PlayerState ve Pawn'ın rolleri nelerdir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.