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.
Để có thể tìm hiểu thêm về cụ thể Unity là gì cũng như các cơ hội để phát triển sự nghiệp Unity Developer tại Việt Nam, ITviec đã có buổi chia sẻ thông tin đầy bổ ích với bạn Trịnh Đức Huy – Tech Manager và CEO tại UniqTech.
Nội dung chính
Tổng quan về Unity là gì
Unity là gì?
Unitylà một game engine đa nền tảng được tăng trưởng bởi công ty Unity Technologies, hầu hết được dùng để tăng trưởng video game cho 21 nền tảng gồm có máy tính, game consoles ( như PlayStation ) và điện thoại thông minh, …
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 hoàn toàn 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, hoàn toàn có thể được vận dụng phổ cập 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 thuần cho con nít .
Tính năng cơ bản của Unity là gì?
Unity tương hỗ mạnh những tính năng sau :
- Tạo giao diện UI của trò chơi như tạo drop bar, textbox, …
- Hiển thị quy mô 3D, 2D – mạng lưới 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 quan trọng 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 hiển thị game, tương hỗ package tạo nên bot trong game
- Hỗ trợ hiển thị chữ bằng font đặc biệt quan trọng
- …
Trong toàn bộ những tính năng của Unity thì cá thể Huy tôn vinh nhất giao diện ứng dụng Editor. Unity Editor, với nhiều công cụ ( tool ), tương hỗ những đầu việc tăng trưởng game như tạo quy mô 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 tương hỗ tốt cho cả những vị trí khác trong quy trình tăng trưởng trò chơi như Game Designer .
Huy san 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ó designer, 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 thuần, Huy đưa ví dụ :
- Bỏ hình ảnh vào trong Unity .
- Editor tương hỗ tạo thành từng scene hoặc group lại thành từng thư mục. Trên mỗi scene viết từng script, miêu tả cách hoạt động giải trí của đối tượng người tiêu dùng đó như qua trái qua phải, click đến vị trí nào thì đối tượng người dùng vận động và di chuyển đến vị trí đó, …
- Khi script hoàn hảo thì Developer hoàn toàn 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 xu 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ó hội đồng ,forum Unityđể tương hỗ mỗi khi người dùng có vướng mắc về cách sử dụng hoặc về những phiên bản update, khi gặp lỗi, bug. Huy san sẻ rằng mỗi khi bạn gặp phải yếu tố, Huy sẽ lên forum của Unity ,“ Trên hội đồng có cả đại diện thay mặt của Unity và những developer khác nên mình sẽ được giải đáp nhiều, nhanh và hiệu suất cao hơn hẳn Stack Overflow luôn ( cười ). ”
Ngoài ra, Unity còn có “ chợ ” plug-in vô cùng đa dạng chủng loại. Trên chợ có những gói package do chính Unity hoặc những nhà tăng trưởng khác sản xuất. Thậm chí, có những nhà tăng trưởng đăng tải hàng loạt một game show hoặc một quy mô 3D hoàn hảo, bạn chỉ cần tải về và sử dụng. Hầu hết toàn bộ những plug-in trên chợ đều phải trả phí .
“ Chợ ” plug-in trên Unity rất tiện nghi cho những ai cần những game đơn thuầ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 hạn để lập trình hay phong cách thiết kế game. ”
Không chỉ ở quốc tế mà hội đồng Unity Developer ở Nước Ta cũng tăng trưởng vô cùng mạnh. Nếu bạn chăm sóc thì hoàn toàn có thể tham gia những hội đồ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à Nước Ta vẫn có những game engine được nhiều developer yêu thích như Unreal, CryEngine, …. Mỗi engine sẽ có mỗi ưu điểm yếu ké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 san sẻ về ba ưu điểm lớn mà Unity chiếm hữu :
- Editor:Với Editor, nhà tăng trưởng không thiết yếu phải viết Code để sắp xếp những đối tượng người tiêu dùng trong trò chơi như những Engine khác mà Developer hoàn toàn có thể kéo thả, biến hóa vị trí của từng đối tượng người tiêu dùng trong trò chơi trực tiếp trên Editor .
- Đa nền tảnglà quyền lợi 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 trò chơi mà trò chơi đó hoàn toàn có thể chạy được trên hầu hết những hệ quản lý quan trọng như Desktop ( Mac, Window và Linux ) hay Mobile ( iOS, Android ) hoặc Web ( WebGL ) thì cũng đã tiết kiệm ngân sách và chi phí sức lực lao động cũng như ngân sách rất nhiều cho doanh nghiệp đó .
- Miễn phí:Và yếu tố ở đầu cuối chính là ngân sách. Với Unity, không lấy phí là một điểm lôi cuốn rất nhiều Developer chọn thao tác với game engine này. Tuy nhiên, với những game được tạo ra không lấy phí thì bắt buộc phải có Logo Unity trong trò chơi .
Tuy chiếm hữu những ưu điểm tuyệt vời trên nhưng Unity vẫn có những điểm yếu ké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 tích 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 hoàn toàn có thể có dung tích lên đến cả trăm MB nên web chạy không nổi. Chính cho nên 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 điểm yếu kém mà Huy rút ra từ chính kinh nghiệm tay nghề thao tác với Unity qua nhiều dự án Bất Động Sả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à những developer phải cực kỳ thận trọng khi update những 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 và khám phá rõ về Unity là gì, ắt hẳn bạn đang tâm lý mình có nên lựa chọn Unity thay vì những game engine khác để kiến thiết xây dựng game hay không ? Đừng tiêu tốn lãng phí thời hạn, tiền tài và nhân lực với một game engine mà không tương thích với bạn hoặc team. Hãy chọn một công cụ đủ mạnh và hiệu suất cao để triển khai những gì bạn cần làm để kiến thiết xây dựng game show của mình .
Sau đây là bảng so sánh đơn thuần giữa Unity và những game engine thông dụng khác trên thị trường ( CryEngine và Unreal ) :
Unity | CryEngine | Unreal | |
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ệ quản lý Window . – Không thông dụng 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 những gói hạng sang từ USD 40 / tháng . |
Từ $ 9.90 / tháng |
– Miễn phí sử dụng . – Áp dụng 5 % phí bản quyền khi lệch giá 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 những ngôn từ giống C . – Tạo những game mobile thường thì, ví dụ điển hình như những game show đứng đầu bảng xếp hạng trên App Store hoặc Google Play Store . |
– Mạnh về đồ hoạ thiên nhiên và môi trường ( environment ) . – Có kinh nghiệm tay nghề 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 . |
Tham khảo ngay Việc làm Unity “chất” nhất TP. HCM trên ITviec
Tài liệu Unity tham khảo
Huy san sẻ những nguồn tài liệu khá đầy đủ và cơ bản nhất về Unity cho người mới mở màn :
Ngoài ra, bạn có thể tham khảo 30+ tài liệu học lập trình game “chất” nhất do chính ITviec tổng hợp!
Những lưu ý khi phát triển game với Unity là gì?
Developer cần những kỹ năng, tố chất gì khi phát triển Game trên Unity?
Huy san sẻ rằng Unity cũng chỉ là một game engine – hay nói rộng ra là công cụ, để tăng trưởng game mà thôi nên điều quan trọng là Developer cần chú trọng hơn đến những kiến thức và kỹ năng, năng lực khi tăng trưởng trò chơi nói chung .
Về tố chất cơ bản của một Game Developer, ngành Game là một ngành nghề khá bay bổng và không có nhiều ràng buộc nguyên tắc như những lĩnh vực khác, như phát triển Web hay ứng dụng Điện thoại di động, nên tùy vào trí tưởng tượng của bạn và đam mê thì bạn có thể bắt đầu tạo ra một thế giới riêng – là nơi mà bạn có thể kiểm soát mọi thứ, vào bất kỳ lúc nào.
“Làm thế nào để bắt đầu? Nếu bạn thích game gì, thì bạn có thể làm thử. Lúc mới bắt đầu làm về game, mình thường nhìn game trên thị trường, chỉ là một vài game đơn giản thôi, rồi tự hỏi xem game đó được làm ra sao, mình viết code thử xem có thể làm được như vậy không.
Tuy không hẳn giống 100% thì mình cũng có thể bắt chước được khoảng 95-99% bằng cách nhìn vào logic, nhìn người ta viết thế nào thì mình cũng bắt chước làm theo.”
Về kỹ thuật, một game developer trước nhất cần nắm vững những nguyên tắc về hình học, vật lý, toán học cấp 3, và nắm vững C#, OOP, các thuật toán, cấu trúc dữ liệu,…
Bạn hoàn toàn có thể tập viết Code theo Code Convention của Microsoft cũng như những Design Pattern. Huy cũng san sẻ thêm đánh giá và nhận định cá thể về nguyên do vì sao bạn lại cho rằng hình học, vật lý, toán học cấp 3 lại quan trọng trong việc làm game :
“Đối với Game Developer thì cả 3 đều quan trọng. Hồi xưa đi học không để ý, thấy không xài chứ sau này đi làm Game thì xài thường xuyên. Còn Developer về web thì ít xài lắm. Với game 3D thì yêu cầu vật lý, cảm quan hình học cao. Thậm chí, với game 3D thì còn có những vị trí chuyên phát triển hệ thống vật lý gọi là Physics Developer.
Nhưng khi làm việc với Unity thì họ có sẵn một thư viện vật lý, mình chỉ cần áp dụng thôi. Còn với game 2D, ví dụ như game Hayday, thì yếu tố vật lý, hình học lại không quan trọng. Với những game đó thì Toán học lại quan trọng hơn.”
Ngoài ra, tiếng Anh luôn quan trọng với Developer, dù bạn học ngôn ngữ hay lập trình ngành nào.
Hầu hết những tài liệu về Unity lúc bấy giờ đều được viết bằng tiếng Anh, cũng như hội đồng quốc tế Dev tương hỗ với ngôn từ chính là tiếng Anh. Khi bạn gặp phải một yếu tố gì đó, để tìm kiếm đúng keyword nói về yếu tố đó hoặc tên gọi của lỗi đó, tìm được đúng giải pháp cho yếu tố thì bạn cần phải nắm đúng từ vựng tiếng Anh để dễ xử lý hơn .
Đồng thời, khi làm game với team quốc tế thì bắt buộc phải cải tổ kỹ năng và kiến thức tiếng Anh để hoàn toàn có thể thuận tiện tiếp xúc với họ .
Các lỗi thường gặp khi làm việc với Unity là gì và cách khắc phục/phòng ngừa
Đối với những developer nặng về code, những bạn thường mắc một sai lầm đáng tiếc đó là không khai thác những resource có sẵn của Unity .
Thay vì khám phá sử dụng những tool sẵn có, khám phá cách sử dụng Editor của Unity ( điểm mạnh nhất của Unity ) thì những developer hay viết code from scratch để làm những việc đó. Một ví dụ nổi bật là những bạn hay bỏ lỡ tool Animator / Animation của Unity .
Huy ví dụ: “Khi bạn cần làm scene chuyển cảnh 5 giây, ghép bằng 120 tấm hình chỉ khác nhau chút chút. Thông thường, mọi người sẽ phải tự viết code để làm những cảnh chuyển như vậy, rất tốn thời gian. Trong khi đó, Unity có hỗ trợ tool animation này và bạn chỉ cần kéo và thả hình ảnh thôi.”
Cơ hội việc làm Game Unity Developer ở Việt Nam
Mức độ yêu cầu Unity của các công ty game ở Việt Nam
Các game studio ở Việt nhu yếu kiến thức và kỹ năng Unity phong phú, từ đơn thuần tới phức tạp, nâng cao :
- Điều kiện cần : Nắm vững lập trình C # hoặc tối thiểu ở mức cơ bản, và cách sử dụng Unity. Yêu cầu hiểu Unity là gì ở mức độ cơ bản, không phức tạp do tự game engine đã rất vừa đủ, một người không biết code cũng có tạo ra game với Unity nếu biết cách tối ưu Editor của Unity .
- Nâng cao : Nắm vững OOP, thuật toán và cấu trúc tài liệu. Nếu nhu yếu cao hơn nữa thì sẽ cần developer hiểu biết thêm về vật lý, cảm quan hình học .
- Yêu cầu 3D tùy công ty .
Tham khảo ngay Việc làm Unity “chất” nhất Hà Nội trên ITviec
Cơ hội nghề nghiệp cho Game Unity Developer ở Việt Nam
Việc sử dụng Unity ở những Studio Game ở Nước Ta đang là một xu thế vì với sự tăng trưởng can đảm và mạnh mẽ cũng như nhu yếu cải tổ hiệu năng hiệu suất của team tăng trưởng trò chơi thì Unity hoàn toàn có thể tương hỗ hết toàn bộ những yếu tố đó. Chính do đó, những việc làm nhu yếu Unity sẽ luôn luôn cần trên thị trường .
Theo quan sát cá nhân, Huy nhận định rằng hiện tại, nhu cầu tuyển dụng Unity Developer ở Việt Nam rất là cao, nhất là trong những năm 2021 và 2022. Lý giải nguyên nhân, Huy cho rằng: “Một phần do xu hướng gamefi (blockchain) tăng cao. Thách thức lớn nhất để tìm được việc trên thị trường đó là kỹ năng của bạn đến đâu. Bạn phải làm chủ được những công nghệ như Unity với đa dạng những thành phần như vật lý, editor, C#.”
Tuy Unity vẫn là game engine thông dụng nhưng không phải tổng thể công ty, studio trò chơi ở Nước Ta đều nhu yếu Unity. Vẫn có một số ít công ty ở Nước Ta sử dụng những engine khác như Cocos2D-X, Unreal, hoặc sử dụng internal engine .
Game Unity Developer trong ngành IT nói gì?
Điều gì quan trọng nhất khi phát triển game multi-player?
Trong suốt nhiều năm làm Unity Game Developer, Huy san sẻ về một trong những sai lầm đáng tiếc “ để đời ” nhất của bản thân khi làm game multi-player – game nhiều người chơi :
“Để làm game nhiều người chơi, có nhiều cách để làm, cách đơn giản nhất là tạo server như một trạm trung chuyển. Người chơi A muốn di chuyển thì gửi tín hiệu lên server rồi server forward tín hiệu qua cho người chơi B để người chơi B biết về A.
Đối với mô hình này, server chỉ đóng vai trò là nhận tín hiệu rồi gửi đi, không tính toán gì, nên nếu khi có nhiều người chơi cùng tính, cùng gửi tín hiệu đi, thì hậu quả là màn hình chơi không giống nhau. Có nghĩa là ví dụ như người A thấy người B hết máu rồi nhưng người C không thấy. Thế là người chơi C lại tiếp tục tấn công người B. Như vậy dẫn đến nhiều vấn đề hơn.
Tuy nhiên, khi chơi game multiplayer, việc đồng bộ giữa các người chơi (tất cả người chơi đều thấy chung một thế giới) là yêu cầu vô cùng quan trọng nên mô hình này không hiệu quả.
Ban đầu mình làm theo mô hình đó vì đơn giản, dễ làm. Sau này, khi nhận ra vấn đề, mình phải xây dựng mô hình mới. Ở mô hình mới, người chơi chỉ gửi tín hiệu lên trên server và yêu cầu server tính toán, nếu server thấy ổn thì mới đưa ra kết quả cho tất cả người chơi. Mô hình này chỉ có 1 bên tính (chính là server) thì kết quả sẽ đồng bộ, tất cả người chơi đều thấy như nhau. Hồi trước mình không chọn cách này vì mình thấy quá trình phát triển phức tạp (cười).”
Xã hội nghĩ gì về Game Developer?
Một trong những “định kiến” lớn nhất mà Game Developer phải đối mặt từ xã hội chính là câu hỏi: “Học cái gì mà không có lợi ích gì cho xã hội vậy?”.
Theo lời Huy kể thì cả Huy và những người bạn nghe những câu hỏi thế này nhiều đến mức mà “thấy chuyện đó cũng bình thường nên không lấy làm buồn nữa”. Tuy nhiên, đây cũng là trăn trở khiến cho nhiều sinh viên, hay Fresher/Junior nản lòng trong những ngày đầu của nghiệp. Vậy thì làm thế nào để “đương đầu” với những định kiến như vậy? Huy chia sẻ một cách đầy tích cực về nghề nghiệp:
“ Mình cũng xác lập game là vui chơi, là vui mà cái gì vui thì dễ nghiện. Tuy nhiên, khi game hoàn toàn có thể vận dụng vào trong giáo dục được thì cũng là ích lợi tích cực của game. Đồng thời, ngày càng có ít người nghiện game hơn rất lâu rồi nên mình tin rằng xã hội sẽ có góc nhìn tích cực hơn so với game và người làm game ( cười ). ”
Cảm ơn Huy đã san sẻ với ITviec cũng như bạn đọc những thông tin vô cùng hữu dụng và mê hoặc về Unity là gì, thời cơ tăng trưởng nghề nghiệp Unity Game Developer nói riêng ở Nước Ta và những san sẻ của một Game Developer nói chung với nhiều kinh nghiệm tay nghề .
Thông tin Trịnh Đức Huy
Trịnh Đức Huy có hơn kinh nghiệm 8 năm lập trình game với Unity trong các agency của studio game nước ngoài như Antler Interactive, Stylinkz GmbH & Co. KG.
Một số tựa game Huy đã tham gia lập trình và chịu nghĩa vụ và trách nhiệm chính như : My Neighbour Alice, Island Rumble .
Hiện tại, Huy đang giữ chức vụ là Tech Manager và CEO của UniqTech.
Bạn thấy bài viết hay và cần thiết với nhiều người? Đừng ngại nhấn nút Share bên dưới nhé.
Và đừng quên tham khảo việc làm IT trên ITviec!
Source: http://139.180.218.5
Category: Thuật ngữ đời thường