Vấn đề cốt lõi, từ những gì tôi có thể thấy, không phải là C ++ hay Unity3D, mà là bạn cần một giải pháp cấp cao hay giải pháp cấp thấp .
Một giải pháp cấp thấp là một giải pháp mà bạn bị bẩn với các quy trình xử lý đầu vào, quản lý bộ nhớ hoặc tải các mô hình. Một giải pháp cấp cao là bạn có được một gói gọn gàng, như Unity3D.
Đối với tôi, việc sử dụng Unity3D (hoặc bất kỳ công cụ trò chơi nào khác) hoặc C ++ tùy thuộc vào mục tiêu của trò chơi và dự án của bạn.
Sử dụng Unity3D, nếu thời gian phát triển phải nhanh chóng và / hoặc trò chơi của bạn không chuyên sâu về hiệu năng hoặc không ở mức cao về hiệu suất đồ họa / tính toán. Nếu bạn muốn tập trung vào trò chơi và các công cụ mặc định mà Unity3D cung cấp hoàn toàn ổn, bạn có thể cân nhắc sử dụng Unity3D
C ++ với các thư viện khác, nếu bạn có thời gian phát triển lâu hơn, trò chơi đòi hỏi sức mạnh tính toán / đồ họa nhiều hơn hoặc sử dụng một số công nghệ mà Unity3D không thể kết hợp.
Điểm hay của Unity3D là nó vẫn sử dụng các ngôn ngữ kịch bản phản ánh sự phát triển của thế giới thực (C # hoặc JavaScript). Các khái niệm OOP và kỹ thuật phần mềm bạn học (Singletons, mặt tiền, máy trạng thái, trang trí, sáng tác) có thể được áp dụng trong Unity3D. Nó giúp chăm sóc các quy trình cắt cookie như quản lý tài nguyên, biểu đồ cảnh, tải mô hình, kết xuất, lưu cảnh và v.v. Thậm chí tốt hơn, nếu có một chức năng bạn cần mà Unity3D không cung cấp, bạn có thể làm Mã hóa DLL.
Trường hợp đó rời khỏi C ++? C ++ là một ngôn ngữ và có nhiều khái niệm lập trình bạn làm trong C ++ mà bạn có thể thực hiện trong Unity3D, quản lý bộ nhớ sans hoặc có lẽ các mẫu (ví dụ với Unity 3.2, thông số kỹ thuật ngôn ngữ đã được cải thiện để bao gồm các lần đóng cửa).
Vì vậy, như tôi đã nói, nó không thực sự là C ++ so với Unity3D. Nó giống với "C ++ cộng với thư viện / SDK hoặc cuộn công cụ của riêng bạn" so với Unity3D. Nó phụ thuộc vào mục đích và mục tiêu của bạn. Đối với các trò chơi hoặc trò chơi cao cấp mà bạn cần kiểm soát đường truyền kết xuất hoặc đầu vào, bạn có thể muốn sử dụng C ++ cộng với một công cụ cho phép bạn lộn xộn dưới mui xe. Nếu không, tôi chọn Unity3D làm lựa chọn mặc định cho các trò chơi 3D.
Tuy nhiên, kiến thức với Unity3d không thuộc kinh nghiệm, nhưng đó là một nơi tốt để bắt đầu tìm hiểu quá trình phát triển trò chơi tổng thể. Chẳng hạn, có lẽ bạn sẽ cần một học kỳ đáng để nghiên cứu để viết trình kết xuất và tải một mô hình trong OpenGL, cộng với một sơ đồ cơ bản và đầu vào. Bạn hoàn thành nó trong Unity3D sau chưa đầy một ngày.