Z tego, co widzę, głównym problemem nie jest C ++ ani Unity3D, ale raczej potrzebujesz rozwiązania wysokiego poziomu lub rozwiązania niskiego poziomu .
Rozwiązanie niskiego poziomu to takie, które zabrudzisz procesami przekazywania danych wejściowych, zarządzania pamięcią lub ładowania modeli. Rozwiązaniem wysokiego poziomu jest jeden zgrabny pakiet, taki jak Unity3D.
Dla mnie to, czy korzystać z Unity3D (lub innego silnika gry), czy C ++, zależy od celów twojej gry i projektu.
Użyj Unity3D, jeśli czas programowania musi być szybki i / lub twoja gra nie wymaga dużej wydajności lub nie ma wysokiej wydajności graficznej / obliczeniowej. Jeśli chcesz skoncentrować się na grze, a domyślne narzędzia Unity3D są w porządku, możesz rozważyć użycie Unity3D
C ++ z innymi bibliotekami, jeśli masz dłuższy czas programowania, gra wymaga więcej mocy obliczeniowej / graficznej lub wykorzystuje technologię, której Unity3D nie może zastosować.
Zaletą Unity3D jest to, że nadal wykorzystuje języki skryptowe, które odzwierciedlają rzeczywisty rozwój (C # lub JavaScript). Wyuczone koncepcje OOP i inżynierii oprogramowania (singletony, elewacje, automaty stanów, dekoratorzy, kompozycje) można zastosować w Unity3D. Pomaga zadbać o procesy usuwania plików cookie, takie jak zarządzanie zasobami, wykres scen, ładowanie modelu, renderowanie, zapisywanie scen itp. Jeszcze lepiej, jeśli potrzebujesz funkcji, których nie zapewnia Unity3D, możesz to zrobić Kodowanie DLL.
Gdzie to pozostawia C ++? C ++ jest językiem i istnieje wiele koncepcji programowania, które możesz zrobić w C ++ w Unity3D, bez zarządzania pamięcią lub być może w szablonach (w Unity 3.2 specyfikacje języka poprawiły się, na przykład, na zamykanie).
Jak już wspomniałem, tak naprawdę nie jest to C ++ vs. Unity3D. To bardziej „C ++ plus biblioteki / SDK lub stwórz własny silnik” vs. Unity3D. To zależy od twoich celów. W przypadku wysokiej klasy gier lub gier, w których potrzebujesz kontroli nad strumieniem renderowania lub danymi wejściowymi, możesz użyć C ++ plus silnika, który pozwala na bałagan pod maską. Jeśli nie, wybieram Unity3D jako domyślny wybór gier 3D.
Jednak wiedza na temat Unity3d nie jest pod wrażeniem, ale jest to dobre miejsce, aby rozpocząć naukę ogólnego procesu tworzenia gier. Na przykład prawdopodobnie będziesz potrzebować semestru nauki, aby napisać renderer i załadować model w OpenGL, a także podstawowy scenariusz i dane wejściowe. Zrobisz to w Unity3D w niecały dzień.