Các tính năng tiêu biểu của Unity3D Engine

Một phần của tài liệu KHẢO SÁT MỘT SỐ GAME ENGINE HIỆN CÓ VÀ ỨNG DỤNG PHÁT TRIỂN MỘT GAME CỤ THỂ (Trang 50 - 55)

Đƣợc viết dựa trên ngôn ngữ C# và JavaScript; thiết kế theo hƣớng đối tƣợng, cấu trúc có khả năng mở rộng cao, hỗ trợ các API đồ họa là OpenGL và DirectX

Là một môi trƣờng phát triển tích hợp mạnh mẽ, có khả năng xem trƣớc kết quả, sản phẩm có thể triển khai trên nhiều nền tảng:

b. Ứng dụng chạy trên nền web (thông qua plugin Unity Web Player) trên Windows and Mac OS X.

c. Chức năng Dashboard widget trên Mac OS X

d. Ứng dụng chạy trên Nintendo Wii, iPhone/iPad, Android, Xbox 360 và PlayStation 3 (đối với phiên bản có phí).

Unity cho phép nạp các thiết kế từ 3ds Max, Maya, Blender, Modo, Zbrush, Cinema 4D và Cheetah3D.

Engine đồ họa sử dụng Direct3D (Windows), OpenGL (Mac, Windows), OpenGL ES (iOS) và proprietary APIs (Wii).

Về mặt dựng hình, Unity Engine có những đặc điểm nổi bật sau:

a. Deferred Lightning: cho khả năng thể hiện ánh sáng vào bóng đổ cực kỳ trung thực, mọi đối tƣợng đều thể hiện đƣợc hiệu ứng ánh sáng cũng nhƣ bóng tối, mức tác động ở cấp từng điểm ảnh.

b. 100 kiểu tạo bóng tích hợp: từ đơn giản (Diffuse, Glossy,…) đến phức tạp (Self Illuminated Bumped Specular,…).

c. Surface Shaders: bộ phát sinh mã tự động nhằm đem lại sự đơn giản trong việc lập trình Vertex Shader và Pixel Shader. Chúng ta đơn giản chỉ cần viết mã Cg và Unity sẽ biên dịch nó thành mã dựng hình, thậm chí cũng có thể biên dịch sang GLSL để chạy trên các thiết bị di động.

d. Scalability: mở rộng khả năng tƣơng thích với phần cứng. Unity sẽ phân tích phần cứng hiện có để bảo đảm ngƣời dùng có thể trải nghiệm đƣợc những hiệu ứng đồ họa tốt nhất.

e. Full Screen Post-Processing Effects: Unity tích hợp rất nhiều hiệu ứng hậu xử lý hình ảnh toàn màn hình nhƣ: Sun shaft, high quality depth- of-field, lens effects, chromatic abberation, curve-driven color correction,…

Nhằm tăng hiệu năng, Unity áp dụng một số kỹ thuật nhƣ sau:

a. Batching: nhằm hạn chế số lệnh gọi hàm vẽ, Unity tự động kết hợp các đối tƣợng hình học lại thành các tổ hợp, cách làm này sẽ giúp giảm đáng kể chi phí nhƣng đồng thời vẫn giữ lại đƣợc toàn bộ hiệu ứng hình ảnh.

b. Rewritten Rendering Engine: tăng sức mạnh và tinh linh động của bộ kết xuất hình ảnh lên đến 50% so với các phiên bản trƣớc.

c. Occlusion Culling: giải pháp giúp giải chi phí cho các sản phẩm chạy trên nền console, di động và Web bằng cách giảm số lƣợng đối tƣợng cần kết xuất xuống mức tối thiểu.

d. GLSL Optimizer: mặc dù OpenGL ES cho phép sử dụng hiệu ứng đổ bóng trên nền di động song nó vẫn tỏ ra quá nặng so với khả năng của thiết bị. Vì vậy, Unity đƣợc trang bị bộ tối ƣu GLSL Shader với khả năng tăng hiệu năng lên 2-3 lần.

Về khía cạnh chiếu sáng, Unity 3 có những đặc điểm khá ƣu việt:

a. Deferred Renderer: kỹ thuật chiếu sáng hiện đại cho khả năng bao phủ toàn bản đồ, mọi nguồn sáng đều tạo ra hiệu ứng chiếu sáng, thậm chí là tia sáng phát ra từ một vụ nổ.

b. Realtime Shadows: Hệ thống tạo bóng đổ tiên tiến có khả năng tạo bóng từ mọi nguồn sáng, đồng thời sử dụng ít tài nguyên phần cứng. c. Screen Space Ambient Occlusion (SSAO): Unity Pro sử dụng công

nghệ SSAO nhƣ là một công cụ tạo hiệu ứng ảnh chuẩn. Đơn giản chỉ cần thêm thành phần này vào bất kỳ góc nhìn nào và chúng ta sẽ đạt đƣợc hiệu quả tuyệt vời.

d. Sun Shafts & Lens Effects: Unity 3 Pro cũng hỗ trợ thêm hiệu ứng tia sáng mặt trời, đồng thời mô phỏng hiệu ứng phản chiếu thấu kính nội

và hiệu ứng lóe sáng nhằm mang lại một trải nghiệm mang tính nghệ thuật cao.

e. Lightmapping: là công nghệ duy nhất cho phép chúng ta điều khiển không gian toàn bộ game một cách chính xác. Unity 3 tích hợp công cụ lightmapper tốt nhất hiện nay là Beast, giúp tạo ra không gian game hoàn hảo nhất.

Hệ thống đối tƣợng địa hình gồm:

a. Sculpt Like a Master: Unity cung cấp các công cụ tinh vi hỗ trợ việc tạo, nâng cao, hạ thấp độ cong của các mô hình đồi núi.

b. Trees, Bushes, Rocks, Grass: hỗ trợ việc vẽ phong cảnh nền cho game.

c. Detail Texture Painting: cho khả năng tạo ra những đối tƣợng đa dạng và hấp dẫn cho địa hình.

d. Lightmaps Integrated: Unity tích hợp đầy đủ công nghệ Beast lightmapper, cho phép kết hợp nhiều thành phần đồ họa bên trong địa hình game.

e. Blazing Speeds: Unity có khả năng tạo ra hàng ngàn đối tƣợng cây, hàng triệu mảnh vỡ và hàng tỉ lá cỏ mà vẫn giữ đƣợc hiệu năng đáng kinh ngạc, không ngốn quá nhiều tài nguyên phần cứng. (adsbygoogle = window.adsbygoogle || []).push({});

Hệ thống Physics gồm những đặc điểm:

a. NVIDIA® PhysX®: Hỗ trợ công nghệ tƣơng tác vật lý mạnh mẽ từ NVIDIA.

b. Cloth: Unity hỗ trợ 2 loại chất liệu vải là Interactive Cloth (chuyên dùng mô phỏng tƣơng tác với môi trƣờng nhƣ màn che, khăn trải bàn,…) và Skinned Cloth (đƣợc tối ƣu hóa để dùng làm trang phục cho nhân vật, đòi khả năng chuyển động phức tạp và chính xác).

c. Soft Bodies: những đối tƣợng “mềm” với khả năng tƣơng tác một cách chân thực với môi trƣờng (ví dụ nhƣ quả bóng).

d. Rigidbodies: là những đối tƣợng trong game tƣơng tác dƣới sự điều khiển của các thuật toán vật lý, tạo ra những chuyển động chân thực mà không cần phải viết thêm mã.

e. Ragdolls: hỗ trợ tạo ragdoll từ những nhân vật động trong game nhanh chóng, đồng thời cho phép lập trình viên có thể tùy chỉnh để phù hợp với nhu cầu.

f. Joints: hỗ trợ nhiều loại khớp nối cho phép tạo ra những đối tƣợng “có khả năng phá vỡ”, mang lại cho game tính chân thực cao hơn.

g. Cars: cho khả năng tạo ra game đua xe nhanh chóng và dễ dàng hơn bao giờ hết. Bên cạnh đó, công nghệ Wheel Collider mô phỏng một cách chính xác những lốp xe thực.

Sử dụng ngôn ngữ ShaderLab cho các xử lý tạo bóng, hỗ trợ cả các ống lệnh chức năng sẵn có và lập trình tạo bóng viết bằng ngôn ngữ Cg hay GLSL. Một bộ tạo bóng gồm nhiều tham số và khả năng nhận biết cho phép Unity chọn đƣợc tham số phù hợp nhất với phần cứng đồ họa hiện có, hoặc giảm bớt chức năng để tăng độ tƣơng thích.

Hệ thống luận lý trong Unity dựa trên nền tảng dotNET nguồn mở có tên là Mono để viết mã game. Đây đƣợc xem là một môi trƣờng phát triển game hàng đầu thế giới, mang lại cho nhà phát triển game đầy đủ sức mạnh, tốc độ và sự linh hoạt. Lập trình viên cũng có thể sử dụng JavaScript, C# hoặc Boo (có cấu trúc tƣơng tự Python) để viết mã kịch bản cho game. Cả 3 ngôn ngữ này đều có thể sử dụng các thƣ viện dotNET để thao tác với cơ sở dữ liệu, thao tác với tập tin XML, lập trình mạng,…

Cung cấp Unity Asset Server nhƣ là một công cụ để quản lý phiên bản sản phẩm toàn diện.

Hệ thống âm thanh dựa trên thƣ viện FMOD, cho khả năng phát đƣợc định dạng âm thanh nén Ogg Vorbis. Bên cạnh đó bộ lọc âm DSP còn cho khả năng tạo ra đƣợc những trải nghiệm thật sự thú vị.

Bộ phát video sử dụng bộ giải mã Theora.

Hỗ trợ phát triển game nhiều ngƣời chơi thông qua kết nối mạng một cách tối đa, lập trình viên không cần quá nhiều sức lực cũng nhƣ kiến thức để chuyển đổi từ chế độ chơi đơn sang chế độ đa ngƣời chơi qua mạng.

Một phần của tài liệu KHẢO SÁT MỘT SỐ GAME ENGINE HIỆN CÓ VÀ ỨNG DỤNG PHÁT TRIỂN MỘT GAME CỤ THỂ (Trang 50 - 55)