"Chuyên nghiệp" chính của Uinty3D là nó rất nhanh. Tôi không nói về hiệu suất ở đây, nhưng về tốc độ phát triển. Bạn có:
- Đường ống tài sản thống nhất. Không cần phải dành thời gian cho hệ thống con tài nguyên, không có thói quen nhập lỗi để viết và sửa lỗi: chỉ cần thả một tệp vào thư mục và nó hoạt động.
- Tổng biên tập cấp. Không cần phải dành thời gian cho các công cụ cấp độ: chỉ cần đi thẳng vào kinh doanh.
- Hỗ trợ tinh chỉnh và gỡ lỗi tuyệt vời: tất cả các biến trò chơi của bạn được hiển thị ngay khi bạn chơi và cũng có thể được thay đổi nhanh chóng - và tất cả điều này mà không cần viết một dòng mã. Tạm dừng trò chơi bất cứ lúc nào hoặc từng bước thông qua mã một tuyên bố.
- Thư viện khá đầy đủ của các thành phần làm sẵn. Kết xuất, âm thanh, vật lý, điều khiển - rất nhiều mã "soạn sẵn" đã được viết.
- Mono như một máy chủ kịch bản. Mặc dù người ta có thể tranh luận về giá trị của C # như một ngôn ngữ, thư viện lớp cơ sở của Mono cung cấp rất nhiều chức năng. Các bộ sưu tập, I / O, đa luồng và LINQ biểu cảm điên rồ đều tăng tốc độ phát triển đáng kể.
Ngoài ra, Unity3d thực sự tốt trên nhiều nền tảng. Tất nhiên, bạn không thể tạo, giả sử, một trò chơi windows .exe và sau đó kỳ diệu là nó "chỉ hoạt động" trên iPhone; nhưng Unity khá gần với điều đó. Những gì được yêu cầu là "điều chỉnh" nhiều hơn "porting".
Tất nhiên, trong một số trường hợp, Unity3D không lý tưởng. Nhiều người chơi mạng được tích hợp trong Unity là ổn đối với một số trò chơi ngang hàng LAN, nhưng bất cứ điều gì yêu cầu máy chủ trung tâm khá nhiều đều yêu cầu bạn viết tất cả mã mạng từ đầu. Hệ thống GUI của Unity khá kỳ quặc và chậm chạp, do đó, việc tạo GUI trong trò chơi phức tạp là một điều khó khăn. Tuy nhiên, tất cả các hệ thống GUI trò chơi khác mà tôi thấy cũng rất đau đớn, vì vậy, một hệ thống của Unity không phải là xấu về tổng thể.
Và, tất nhiên, Unity3D kém linh hoạt hơn một chút so với "công cụ trò chơi" như OGRE, chỉ cung cấp một thư viện / mã nguồn. Hiệu suất của nó không chính xác hàng đầu, và vì bạn chỉ có một hộp cát kịch bản, bạn không thể sử dụng một số hack cấp thấp thông minh để cải thiện nó. Ví dụ: nếu một số lý do, trình kết xuất cây tích hợp của Unity không làm bạn hài lòng, bạn không thể tự viết một cái (bạn có thể, nhưng nó sẽ hoạt động thông qua các tập lệnh và hầu hết có thể quá chậm và quá nhiều rắc rối ). Tuy nhiên, bạn vẫn có thể làm bất cứ điều gì với Unity miễn là bạn không mất một chút hiệu suất.
Tuy nhiên, "con" lớn nhất của Unity3D là kiểm soát nguồn. Như đã đề cập, Máy chủ tài sản của Unity có giá một xu khá. Và nó hút, thực sự, thực sự khó khăn. Nó thậm chí không có phân nhánh. Mặc dù về mặt lý thuyết, Unity3D hỗ trợ các hệ thống SCM của bên thứ 3, nhưng việc sử dụng chúng cũng rất nguy hiểm. Tôi đã thấy các cài đặt nhập "thay đổi" một cách kỳ diệu sau khi cam kết SVN hoặc tất cả các tham số của đối tượng biến mất sau khi sử dụng Perforce. Tất cả những thứ này có thể được xử lý xung quanh, nhưng dù sao, Unity3D + Kiểm soát nguồn = đau.
Vì vậy, để thực sự trả lời câu hỏi của bạn. Tôi tin rằng Unity3D là một trong những lựa chọn tốt nhất, nếu không phải là tốt nhất, lựa chọn công cụ trò chơi cho một trò chơi "nhỏ". Đặc biệt là trong giai đoạn nguyên mẫu.
Điều đó nói rằng, nếu chúng ta đang nói về một dự án giáo dục, tôi khuyên bạn nên chống lại nó. Để tìm hiểu cách các trò chơi hoạt động, tốt hơn hết là viết một bài ở mức độ thấp nhất có thể. Công cụ trò chơi là một công cụ tuyệt vời; nhưng để sử dụng nó để đạt được lợi ích tối đa, cần phải hiểu cách họ làm việc và lý do tại sao họ làm việc theo cách đó. Và cách tốt nhất để học điều này là viết công cụ trò chơi của riêng bạn - ngay cả khi cuối cùng nó trở nên tào lao.