LẬP TRÌNH GAME VỚI UNITY, TẠI SAO KHÔNG?

Lập trình game với Unity là một xu hướng mới và đang rất phát triển trong thị trường game của thế giới cũng như tại Việt Nam. Đối với những bạn yêu thích về lập trình game thì chắc chắn không thể bỏ qua Unity. Hãy cùng ITPlus khám phá tại sao nó lại hot như vậy nhé.

1. Đôi nét về Unity

Unity là một commercial game engine, được xây dựng bởi đội ngũ Unity Technologies. Hiện tại đã giải phóng đến version 3.5 và đang chuẩn bị cho những bước tiến mới bằng version 4.0 sắp được phát hành.

Với các phiên bản đầu tiên như 1.x - 2.x, Unity còn rất đơn giản và gần như chỉ hướng đến các nhà làm game không chuyên với những khả năng đơn giản. Các phiên bản về sau, Unity được cải tiến, nâng cấp và tích hợp nhiều thành phần, công nghệ mạnh mẽ khác để đủ sức phát triển một hệ thống 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-game-engine-tutorial-guide.jpg

2. Đặc điểm khiến Unity trở nên được ưa chuộng:

Unity có giá thành rẻ với nhiều gói license để lựa chọn. Hơn nữa, Unity tích hợp nhiều công cụ, công nghệ về graphic rendering (DirectX, OpenGL), physic (NVIDIA PhysX), audio (OpenAL) giúp quá trình phát triển game trở nên nhanh và đơn giản hơn khi không phải thực hiện và kết hợp nhiều thành phần riêng lẻ lại với nhau. Thay vào đó là sự gắn kết liền mạch giữa các thành phần một cách trực quan và logic nhờ sự hỗ trợ trực tiếp từ Unity.

Ở Unity, các công cụ, tính năng dành cho mảng thiết kế trực quan, thân thiện thuận lợi cho Designer. Hỗ trợ lập trình bằng nhiều ngôn ngữ (C#, JavaScript, Boo) bởi một thư viện API không kém đồ sộ. Ngoài ra còn hỗ trợ Networking để phát triển MMO game, hỗ trợ xuất bản nhiều platforms từ stand alone cho PC và Mac, mobile như iOS và Android, console như PS3, XBOX360, Wii đến các phiên bản chạy trực tiếp trên web nhờ Unity Web Player.

3. Unity 4.0:


Unity 4.0 lần đầu tiên được nhà sản xuất cam kết có thể dùng để phát triển một game hạng AAA với những tính năng mạnh mẽ không thua kém một engine nào trên thị trường
Graphic rendering với DirectX 11
Công nghệ diễn hoạt nhân vật mới
Xuất bản cho nền tảng Flash và Linux
Cập nhật, cải tiến Workflow
4. Các thành phần trong Unity:

Assets:

Asset là những tài nguyên xây dựng nên một dự án Unity. Từ những tập tin hình ảnh, mô hình 3D đến các tập tin âm thanh. Unity gọi các tập tin mà chúng ta dùng để tạo nên trò chơi là tài sản (Asstets). Điều này lý giải tại sao tất cả các tập tin, thư mục của các dự án Unity đều được lưu trữ trong một thư mục có tên “Assets”.

Scenes:

Trong Unity, chúng ta cần hiểu một cảnh (hay một phân đoạn) nghĩa là một màn chơi riêng biệt hoặc một khu vực hay thành phần có trong nội dung của trò chơi (ví dụ như Game menu). Bằng cách tạo nên nhiều Scene cho trò chơi, chúng ta có thể phân phối thời gian tải hoặc kiểm tra các thành phần khác nhau của trò chơi một cách riêng lẽ.

Game Object:

Khi Assets được sử dụng trong Scene, chúng trở thành Game Object – một thuật ngữ được sử dụng trong Unity (đặc biệt là trong mảng lập trình). Tất cả các Game Object đều chứa ít nhất một thành phần là Transform. Transform là thông tin về vị trí, góc xoay và tỉ lệ của đối tượng, tất cả được mô tả bởi bộ 3 số X, Y, Z trong hệ trục tọa độ. Thành phần này có thể được tùy biến lại trong quá trình lập trình nhằm thay đổi vị trí, góc quay và tỉ lệ của đổi tượng (so với đối tượng gốc) qua các đoạn mã. Từ các thành phần cơ bản này, chúng ta sẽ tạo ra Game Object, với các thành phần khác, bổ sung chức năng cần thiết để xây dựng nên bất kỳ một thành phần nào trong kịch bản Game mà chúng ta đã thiết kế.

Components:

Components có nhiều hình thức khác nhau. Chúng có thể xác định hành vi, cách xuất hiện, … hay ảnh hưởng đến các khía cạnh khác nhau trong chức năng của Game Object trong trò chơi.

Bằng cách “gắn” chúng vào trong Game Object, chúng ta có thể ngay lập tức áp dụng tác động của chúng lên đối tượng. Những Components phổ biến trong quá trình phát triển trò chơi đều được Unity hỗ trợ sẵn. Ví dụ như thành phần Rigitbody chuyên xử lí các vấn đề vật lý, các yếu tố đơn giản đến từ thực tế khác như ánh sáng, Camera, … Để tạo nên các yếu tố tương tác trong trò chơi, chúng ta sẽ sử dụng Script (mã kịch bản), chúng cũng được xem như là một Components trong Unity.

Script:

Được Unity xem như một Component, Script là một thành phần thiết yếu trong quá trình phát triển trò chơi và đáng đề cập như một khái niệm “chìa khóa”. Unity cung cấp cho chúng ta khả năng viết Script bằng cả 3 ngôn ngữ là JavaScript, C# và Boo (một dẫn xuất của ngôn ngữ Python).

Unity không đòi hỏi chúng ta phải học làm thế nào để lập trình trong Unity, nhưng hầu như chúng ta phải sử dụng Script tại mỗi thành phần trong kịch bản mà chúng ta phát triển. Unity đã xây dựng sẵn một tập hợp đa dạng các Class, Function, … mà chúng ta hoàn toàn có thể ứng dụng trong quá trình lập trình trò chơi của mình.

Để viết Script, chúng ta sẽ làm việc với một trình biên tập Script độc lập của Unity, hoặc với chương trình Mono Developer được tích hợp và đồng bộ với Unity trong những phiên bản mới nhất gần đây.

Mono Developer là một IDE khá tốt để lập trình khi cung cấp đầy đủ các chức năng của một IDE hoàn chỉnh tương tự Visual Studio. Mã nguồn viết trên Mono Developer sẽ được cập nhật và lưu trữ trong dự án Unity.

Prefabs:
Là một thành phần khá quan trọng, cho phép chúng ta tạo dựng các gói tài nguyên mà có thể tận dụng lại ở mọi lúc mà chúng ta cần, Prefabs cho phép chúng ta lưu trữ các đối tượng với những Components và những thiết đặt hoàn chỉnh. Có thể so sánh với khái niệm MovieClip trong Adobe Flash, Prefabs chỉ đơn giản là một đối tượng chứa (Container) mà chúng ta có thể đưa bất kỳ một đối tượng hay dữ liệu mẫu nào mà chúng ta muốn tái sử dụng về sau.

Hy vọng với những gợi ý này, các bạn yêu thích về lập trình game sẽ có thêm những sự lựa chọn cho bản thân cũng như cho sự nghiệp trong tương lai.Chúc các bạn thành công!
 

Bình luận mới

DesignerVN là chuyên trang cung cấp thông tin dành cho cộng đồng Designer, nhà thiết kế Việt Nam. Thư viện font chữ, tài nguyên thiết kế đa dạng.
Back
Bên trên