Unity có quan trọng với sự nghiệp của Game Developer không?

hovanban

Well-known member
Unity là gì? Unity là một game engine đa nền tảng mà bất kỳ người Game Developer nào cũng nên biết. Thậm chí, chỉ cần biết sử dụng Unity thì chẳng những đảm bảo bạn không thất nghiệp mà còn sở hữu mức lương vượt trội so với mặt bằng lương IT nói chung.

Tổng quan về Unity là gì
Unity là gì?

Unity là một game engine đa nền tảng được phát triển bởi công ty Unity Technologies, chủ yếu được dùng để phát triển video game cho 21 nền tảng bao gồm máy tính, game consoles (như PlayStation) và điện thoại,…

Hơn 50% số lượng game trên thị trường được sản xuất bởi Unity. Một vài tựa game vô cùng nổi tiếng được tạo ra bởi Unity có thể được kể đến như Pokémon Go, Hearthstone, Ori And The Blind Forest, Monument Valley, Axie Infinity,… Độ “phủ sóng” của Unity rất rộng, có thể được áp dụng phổ biến trong nhiều dòng game khác nhau từ game “hạng nặng” Triple A (AAA) cho đến game giáo dục đơn giản cho con nít.

Tính năng cơ bản của Unity là gì?
Unity hỗ trợ mạnh các tính năng sau:
  • Tạo giao diện UI của Game như tạo drop bar, textbox,…
  • Hiển thị mô hình 3D, 2D – hệ thống vật lý 2D, 3D
  • Networking: Hỗ trợ tạo game chơi nhiều người cùng lúc
  • Hỗ trợ nền tảng đặc biệt mới: AR – Augmented reality (Thực tế tăng cường), VR – Virtual reality (Thực tế ảo)
  • AI – Hỗ trợ con bot trong màn hình game, hỗ trợ package tạo nên bot trong game
  • Hỗ trợ hiển thị chữ bằng font đặc biệt
Trong tất cả các tính năng của Unity thì cá nhân Huy đề cao nhất giao diện ứng dụng Editor. Unity Editor, với nhiều công cụ (tool), hỗ trợ các đầu việc phát triển game như tạo mô hình 3D (vật lý, ánh sáng) và viết Script,… chỉ bằng thao tác kéo thả hình ảnh.

Nhờ vào tính năng này, Unity hỗ trợ tốt cho cả những vị trí khác trong quá trình phát triển Game như Game Designer.

Huy chia sẻ thêm:
“Thời gian đầu dùng Unity, mình toàn dùng code, không dùng Editor do không quen. Nhưng sau này thấy Editor rất lợi hại do trong team không chỉ có mỗi người developer mà còn có game designer, game artist cùng tham gia thì họ đều có thể làm trực tiếp trên Unity. Điểm hay của Editor là bạn không cần phải biết code mà vẫn có thể làm game được.
Mình ví dụ: Khi làm game đua xe, designer muốn thay đổi yêu cầu hiển thị số tốc độ km/h trên xe thì nếu là ngày xưa, họ phải liên lạc với developer để điều chỉnh tới lui nhiều lần đến khi nào ổn thì thôi. Còn bây giờ, với Unity thì designer có thể tự test trước trên Unity đến khi nào thỏa mãn rồi thì họ báo Developer đúng một lần để hoàn thiện lại là được.”
Cách sử dụng Editor cũng vô cùng đơn giản, Huy đưa ví dụ:
  • Bỏ hình ảnh vào trong Unity.
  • Editor hỗ trợ tạo thành từng scene hoặc group lại thành từng folder. Trên mỗi scene viết từng script, mô tả cách hoạt động của đối tượng đó như qua trái qua phải, click đến vị trí nào thì đối tượng di chuyển đến vị trí đó,…
  • Khi script hoàn chỉnh thì Developer có thể viết code dựa trên script đó.
Vì sao Huy lại cảm thấy Editor là một điểm “đáng đồng tiền bát gạo” nhất của game engine Unity?
“Dùng những game engine không có Editor thì người lập trình viên phải thủ công đặt từng đối tượng bằng code. Còn một game làm bằng Unity sẽ được tạo ra từ nhiều modules viết sẵn bởi Unity hay bởi Developer khác nên bạn sẽ tiết kiệm được khá nhiều thời gian.
Ví dụ như hỗ trợ việc thiết lập góc nhìn, vị trí đối tượng mà không còn code.
Ngoài ra, khi làm việc, bạn sẽ thiết kế giao diện của Game trên Editor và chỉ cần viết Code (C#) bằng phần mềm thứ 3 như VSCode một lần mà thôi. Chỉ viết code một lần nhưng có thể chạy trên nhiều nền tảng, thiết bị hay hệ điều hành như Android, iOS, Playstation.”
Cộng đồng hỗ trợ Unity

Unity có cộng đồng, forum Unity để hỗ trợ mỗi khi người dùng có thắc mắc về cách sử dụng hoặc về các phiên bản cập nhật, khi gặp lỗi, bug. Huy chia sẻ rằng mỗi khi bạn gặp phải vấn đề, Huy sẽ lên forum của Unity, “Trên cộng đồng có cả đại diện của Unity và những developer khác nên mình sẽ được giải đáp nhiều, nhanh và hiệu quả hơn hẳn Stack Overflow luôn (cười).”

Ngoài ra, Unity còn có “chợ” plug-in vô cùng phong phú. Trên chợ có những gói package do chính Unity hoặc các nhà phát triển khác sản xuất. Thậm chí, có những nhà phát triển đăng tải toàn bộ một trò chơi hoặc một mô hình 3D hoàn chỉnh, bạn chỉ cần tải về và sử dụng. Hầu hết tất cả những plug-in trên chợ đều phải trả phí.
“Chợ” plug-in trên Unity rất tiện lợi cho những ai cần những game đơn giản dùng cho việc giáo dục, quảng cáo,… vì bạn chỉ cần trả phí, tải về và sử dụng ngay liền được, không cần phải tốn thời gian để lập trình hay thiết kế game.”
Không chỉ ở quốc tế mà cộng đồng Unity Developer ở Việt Nam cũng phát triển vô cùng mạnh. Nếu bạn quan tâm thì có thể tham gia các cộng đồng sau:

Ưu điểm và Nhược điểm của Unity là gì?
Trên thị trường game quốc tế và Việt Nam vẫn có những game engine được nhiều developer ưa chuộng như Unreal, CryEngine,…. Mỗi engine sẽ có mỗi ưu nhược điểm khác nhau và vẫn được sử dụng ở nhiều studio game. Xét riêng về sức mạnh tổng quan khi làm game, Huy chia sẻ về ba ưu điểm lớn mà Unity sở hữu:
  1. Editor: Với Editor, nhà phát triển không cần thiết phải viết Code để sắp đặt các đối tượng trong Game như những Engine khác mà Developer có thể kéo thả, thay đổi vị trí của từng đối tượng trong Game trực tiếp trên Editor.
  2. Đa nền tảng là lợi ích thứ 2 rất quan trọng với nhiều công ty cũng như developer. Vì với việc bạn tạo ra Game mà Game đó có thể chạy được trên hầu hết những hệ điều hành quan trọng như Desktop (Mac, Window và Linux) hay Mobile (iOS, Android) hoặc Web (WebGL) thì cũng đã tiết kiệm công sức cũng như chi phí rất nhiều cho doanh nghiệp đó.
  3. Miễn phí: Và yếu tố cuối cùng chính là chi phí. Với Unity, miễn phí là một điểm thu hút rất nhiều Developer chọn làm việc với game engine này. Tuy nhiên, với các game được tạo ra miễn phí thì bắt buộc phải có Logo Unity trong Game.
Tuy sở hữu những ưu điểm tuyệt vời trên nhưng Unity vẫn có những nhược điểm:

1. Dung lượng Unity game bundle khá lớn:

So với những game engine khác, Unity sản xuất game có dung lượng nặng nên đây là một điểm trừ lớn. Theo Huy, một game tốt nhất chỉ nặng dưới 100MB. Thậm chí, game web do Unity sản xuất có thể có dung lượng lên đến cả trăm MB nên web chạy không nổi. Chính vì thế, cũng cùng một game đó thì game mobile lại chạy tốt trong khi game web lại giật, lag.

Lý giải nguyên nhân cho vấn đề này, Huy nhận định rằng: “Về cơ bản, những game engine nhiều tool hỗ trợ để mau ra sản phẩm thì sẽ phải có nhiều layer, structure phức tạp nên khiến cho sản phẩm game nặng, dư thừa nhiều tính năng không cần thiết.”

2. Các phiên bản cập nhật:

Đây là một nhược điểm mà Huy rút ra từ chính kinh nghiệm làm việc với Unity qua nhiều dự án:
“Unity cho ra mắt nhiều phiên bản cập nhật liên tục trong một năm và nhiều năm liên tục. Nếu phiên bản cập nhật được ra mắt trong cùng một năm thì vẫn có thể sử dụng song song nhiều phiên bản cùng năm.
Còn nếu trong trường hợp bản cập nhật khác năm, và trong nội bộ một team, hoặc giữa team phát triển và khách hàng, sử dụng các phiên bản Unity khác năm với nhau thì khi push code, đẩy code lên cho member thì sẽ bị lỗi hình ảnh, script, code,… thậm chí là mất hết tiến độ.
Tuy nhiên, điều khó là nếu như bạn nhận nhiều dự án cùng một lúc mà mỗi khách hàng lại sử dụng một phiên bản Unity khác nhau để phát triển game thì bạn bắt buộc phải thay đổi qua lại.”
Nhìn chung, lời khuyên ở đây là các developer phải cực kỳ thận trọng khi cập nhật các phiên bản mới của Unity.

So sánh Unity và những game engine phổ biến khác trên thị trường

Sau khi đã tìm hiểu rõ về Unity là gì, ắt hẳn bạn đang suy nghĩ mình có nên lựa chọn Unity thay vì các game engine khác để xây dựng game hay không? Đừng lãng phí thời gian, tiền bạc và nhân lực với một game engine mà không phù hợp với bạn hoặc team. Hãy chọn một công cụ đủ mạnh và hiệu quả để thực hiện những gì bạn cần làm để xây dựng trò chơi của mình.

Sau đây là bảng so sánh đơn giản giữa Unity và những game engine phổ biến khác trên thị trường (CryEngine và Unreal):

UnityCryEngineUnreal Engine
Ngôn ngữC#Lua, C++ và C#C++
Hạn chếPerformance game chưa tốt bằng những game engine khác.– Chỉ dùng được với hệ điều hành Window.
– Không phổ biến bằng những game engine khác.
Phát triển game 2D chưa tốt.
Chi phí– Miễn phí với gói cơ bản.
– Nâng cấp lên các gói cao cấp từ $40/tháng.
Từ $9.90/tháng– Miễn phí sử dụng.
– Áp dụng 5% phí bản quyền khi doanh thu vượt 1 triệu đô-la.
Nên sử dụng nếu bạn– Chuyên lập trình C# hoặc lập trình với các ngôn ngữ giống C.
– Tạo các game mobile thông thường, chẳng hạn như các trò chơi đứng đầu bảng xếp hạng trên App Store hoặc Google Play Store.
– Mạnh về đồ hoạ môi trường (environment).
– Có kinh nghiệm lập trình C ++ và C#.
– Chuyên về game 3D, game quy mô lớn.
– Thích hợp khi lập trình game theo nhóm.

CÔNG TY TNHH TƯ VẤN TRUYỀN THÔNG MINARA
ĐỊA CHỈ:
- 182 Trần Bình Trọng, P.3, Q.5, Tp.HCM
- 27 Đường số 16, Trung Tâm Hành Chính Dĩ An, Bình Dương.
Điện thoại: 097.777.1060
Email: info@minara.vn
Website: www.minara.vn
 
Chỉnh sửa lần cuối:
Bên trên