[Unity Basic 2] Giới thiệu Unity cho người mới bắt đầu

Unity hiện là game engine được nhiều Game Studio trên toàn thế giới sử dụng. Nó được xây dựng bởi đội ngũ Unity Technologies. Với sự hỗ trợ đa nền tảng, đơn giản trong sử dụng và chi phí rẻ (có bản free) thì Unity là một lựa chọn tối ưu cho các dự án game.

1. Khái niệm

Unity là một game engine (công cụ tạo game) là một ứng dụng được phát triển với mục đích thiết kế và phát triển game Video. Unity hỗ trợ làm game theo thời gian thực mà không cần render, cho phép người dùng có thể thiết kế InterfaceGraphic, map hay character … từ một phần mềm thứ 2 (ví dụ các phần mềm thiết kế đồ họa chuyên nghiệp như 3Dsmax, Blender, Maya, XSL, Cinema4D, Cheetah3D, Modo, Autodesk FBX, LightWave…) sau đó chỉ việc import nó vào trong Unity với định dạng của tập tin là *.FBX hay *.dae, *.3DS, *.dxf và *.obj, nhưng định dạng *.FBX hay được dùng vì được tối ưu hóa hơn, còn dùng các định dạng khác ngoài FBX thì phải cài phần mền thiết kế character tưng ứng thì mới dùng được (tức là dùng Maya có định dạng *.mb, *.ma thì muốn dùng được phải cài Maya)

unity-ai-navigation-fundamentals

Unity là một commercial game engine, được xây dựng bởi Unity Technologies. Theo định nghĩa của Unity Technologies thì Unity là một hệ sinh thái (engine) đa nền tảng với mục đích phát triển game.

Các phiên bản đầu tiên như 1.x - 2.x, nó còn rất đơn giản và hầu như chỉ hướng đến các nhà làm game nghiệp dư với những tính năng đơn giản. Với các version về sau, Unity được nâng câp, cải tiến và tích hợp nhiều tính năng, công nghệ mạnh mẽ hơn để đáp ứng phát triển một serious game. Hiện nay, mặc dù cộng đồng sử dụng Unity đa số vẫn là các cá nhân hay các indie team, nhưng Unity vẫn phát triển mạnh với tốc độ rất nhanh, bằng chứng là càng có nhiều cá nhân, công ty sử dụng Unity, đồng thời đã có nhiều tựa game được phát triển bởi Unity được tung ra thị trường (đặc biệt là thị trường game mobile).

Unity hỗ trợ 3 ngôn ngữ phát triển chính là C#, UnityScript (dựa trên Javascript) và Boo. Boo là ngôn ngữ ít được sử dụng nhất và thường được khuyên không nên dùng. C# là ngôn ngữ được dùng phổ biến nhất trong cộng đồng Unity với rất nhiều plugin và ví dụ sử dụng ngôn ngữ này. Bạn có thể cân nhắc sử dụng Unityscript tuy nhiên có thể bạn sẽ gặp vấn đề khi tương tác với một số plugin được viết bằng C#

2. Ưu và nhược điểm

Ưu điểm

  • Unity có rất nhiều tính năng tuyệt vời:
  • Unity có một cồng đồng phát triển lớn về asset và plugin – trong đó có rất nhiều resources miễn phí và có nhiều công cụ rất đáng bỏ tiền
  • Unity có bộ công cụ rất trực quan và editor có thể mở rộng bằng plugins
  • Unity support rất nhiều định dạng asset khác nhau và có thể tự động chuyển đổi đến định dạng phù hợp nhất với nền tảng tương ứng
  • Unity support nhiều nền tảng: di động, desktop, web và console
  • Việc triển khai đến các nền tảng khác nhau cũng khá dễ quản lý
  • Bạn có thể dễ dàng xây dựng một game 3D mà không cần cấu hình quá phức tạp
  • Unity bản miễn phí có hầu hết những tính năng quan trọng nhất
  • Unity bản trả phí phù hợp với các developer chuyên nghiệp

Nhược điểm

Tuy nhiên Unity cũng có những nhược điểm mà bạn cần cân nhắc:

  • Việc hợp tác làm việc nhóm rất khó khăn. Unity sử dụng một cloud server asset rất hiệu quả để support các đội phát triển phần mềm hợp tác với nhau. Tuy nhiên nếu bạn không sử dụng nó thì việc chia sẽ code và asset giữa các thành viên trong team có thể gây ra những vấn đề rắc rối. Lựa chọn tốt nhất là sử dụng một số công cụ quản lý resource bên ngoài nhưng có một vài binary file không thể merge được với nhau và việc cập nhật asset có thể gây nên một số vấn đề trong scenes, mất kết nối đến script và các đối tượng khác

  • Hiệu năng chưa thật sự ấn tượng cho đến khi Unity 5 ra mắt. Unity 5 đã chạy hầu hết trên một luồng duy nhất và hầu như không sử dụng thêm 1 nhân phụ nào trên các thiết bị di động. Bộ biên dịch chưa được tối ưu tốt cho các bộ xử lý ARM trên hầu hết các thiết bị di động. Để giải quyết vấn đề này thì Unity đã quyết định transpile (source-to-source compiler) sang C++ và sử dụng LLVM để tối ưu được nhiều hơn thay vì giải quyết vấn đề này trực tiếp trên các phiên bản sau này

  • Mã nguồn của engine không được công bố kể cả cho những người dùng chấp nhận trả tiền. Điều đó có nghĩa là nếu bạn gặp một bug với engine bạn phải chờ Unity fix chúng trong các bản tiếp theo. Điều này có thể gây nên những vấn đề nghiêm trọng với project của bạn


Share Tweet Send

0 Comments
Bài viết liên quan
scrolltop