Gördüğüm kadarıyla temel sorun C ++ ya da Unity3D değil, yüksek seviye bir çözüme veya düşük seviye bir çözüme ihtiyacınız var .
Düşük seviyeli bir çözüm, giriş yapma, belleği yönetme veya modelleri yükleme işlemleriyle kirlendiğiniz bir çözümdür. Unity3D gibi temiz bir paket elde ettiğiniz üst düzey bir çözümdür.
Bana göre Unity3D (veya başka bir oyun motoru) veya C ++ kullanıp kullanmamanız oyununuzun ve projenizin hedeflerine bağlıdır.
Geliştirme süresinin hızlı olması ve / veya oyununuzun performansı yoğun olmaması veya grafiksel / hesaplamalı performansın en yüksek noktasında olmaması durumunda Unity3D kullanın. Oyuna odaklanmak istiyorsanız ve Unity3D’nin sağladığı varsayılan araçlar iyi durumdasa, Unity3D’yi kullanmayı düşünebilirsiniz.
C ++ diğer kütüphanelerde daha uzun geliştirme süresine sahipseniz, oyun daha fazla hesaplama / grafik gücü gerektirir veya Unity3D'nin içeremediği bir teknoloji kullanır.
Unity3D'nin iyi yanı, hala gerçek dünyadaki gelişmeleri yansıtan betik dilleri kullanmasıdır (C # veya JavaScript). Unity3D'de öğrendiğiniz OOP ve yazılım mühendisliği kavramları (Singleton, cephe, durum makineleri, dekoratörler, kompozisyon) uygulanabilir. Kaynak yönetimi, sahne grafiği, model yükleme, görüntü oluşturma, sahne kaydetme vb. DLL kodlaması.
Bu C ++ 'ı nerede bırakır? C ++ bir dildir ve C ++ 'ta Unity3D'de yapabileceğiniz birçok programlama kavramı vardır, bellek yönetimi veya belki de şablonlar siler (Unity 3.2 ile dil özellikleri, örneğin kapanmaları kapsayacak şekilde geliştirilmiştir).
Dediğim gibi, Unity3D'e karşı gerçekten C ++ değil. Unity3D'ye göre "C ++ plus kitaplıkları / SDK ya da kendi motorunuzu döndürün". Bu sizin hedeflerinize ve hedeflerinize bağlıdır. Yüksek kaliteli oyunlar veya görüntü oluşturma hattı veya girişi üzerinde kontrol sahibi olmanız gereken oyunlar için, C ++ plus kaputun altına girmenize izin veren bir motor kullanmak isteyebilirsiniz. Olmazsa, Unity3D ile 3D oyunlar için varsayılan tercihim olarak gideceğim.
Bununla birlikte, Unity3d ile bilgi, başlık deneyimi altında değildir, ancak oyun geliştirme sürecinin tamamını öğrenmek için başlamak için iyi bir yerdir. Örneğin, muhtemelen bir renderleyici yazmak ve OpenGL'de bir model yüklemek için artı bir sahne senaryosu ve giriş yapmak için çalışmaya değer bir sömestre ihtiyacınız olacak. Bunu Unity3D'de bir günden daha kısa sürede halledersiniz.