Unity là công cụ sản xuất trò chơi hoặc là một phần mềm được viết để thiết kế và xây dựng các trò chơi điện tử Game Engine... Game Engine cung cấp các bộ công cụ trực quan và có thể tái
Trang 1Họ - tên: Lê Ngọc Hảo.
MSSV:
Môn học: Văn phong kỹ thuật.
Trang 2Unity3D: Hướng đi cho xây dựng Game đa nền tảng
I Tổng Quan
Trong thời đại công nghệ thông tin như hiện nay, sản phẩm công nghệ ngày càng chịu sự đánh giá khắt khe của người dung, đặc biệt là sản phẩm Game được nhận rất nhiều đánh giá từ các Game thủ, hay các người dung bình thường Điều đó đưa đến yêu cầu đối với một Game được phát hành, đội ngũ phát triển Game ngày càng cao
Lập trình Game là một trong những mảng khó khăn nhất trong lập trình máy tính – bạn cần phải nắm vững chuyển động, đồ họa lập trình, cấu trúc dữ liệu, lập trình hướng đối tượng… và còn nhiều thứ nữa Nhưng với công cụ thích hợp, chiến lược đúng đắn, bạn sẽ ngạc nhiên vì những thứ bạn có thể làm
Unity3D là mảnh ghép mới của công nghệ, có thể giúp bạn phát triển Game dễ dàng và đơn giản hơn Unity là công cụ sản xuất trò chơi hoặc là một phần mềm được viết để thiết kế và xây dựng các trò chơi điện tử (Game Engine)
Trang 3II Giới Thiệu
1 Sơ lược về Game Engine
Một Game Engine là một phần mềm được viết với mục đích thiết và xây dựng Game Chức năng cốt lõi phần lớn nằm trong hệ thống dựng hình (Rendering System) cho các hình ảnh 2D, 3D, hệ thống vật lý (Physics System), hệ thống giao diện người dung (UI System) và một số bộ phận khác [1] Quá trình làm Game được tiết kiệm rất nhiều kinh phí và thời gian khi có thể tái sử dụng, thích ứng một Game Engine để tạo ra nhiều Game khác nhau
Game Engine cung cấp các bộ công cụ trực quan và có thể tái sử dụng từng thành phần đó Nói chung các bộ công cụ này cung cấp một môi trường phát triển được tích hợp đơn giản hóa Những Game Engine này đôi khi còn được gọi là các phần mềm trung gian cho Game (Game Middleware), như ý nghĩa của thuật ngữ, nó cung cấp một nền tảng dễ sử dụng lại với mọi chức năng cốt lõi cần thiết ngay trong nó để phát triển một Game hoàn chỉnh, đồng thời giảm giá thành, độ phức tạp và thời gian phát triển – tất cả các yếu tố quan trọng trong nền công nghiệp Game đầy cạnh tranh
Một số Game nổi tiếng và Game Engine để phát hành nó như [2]:
Games: Dota 2, Half Life 2 series, Counter-Strike: Source, Counter-Strike: Global
Offensive, Left4Dead, Left4Dead 2, Portal 1 and 2
Game Engine: Source Engine
Game: Hitman Absolution
Game Engine: Glacier 2
Game: Battlefield: Bad Company 2, Battlefield 3, Need for Speed: The Run
Game Engine: FrostBite
Games: Mass Effect Series, Dishonored, Bioshock Infinite, Batman: Arkham
Asylum and City and hundreds more
Game Engine: Unreal Engine
Game: Crysis 2 and 3
Game Engine: CryEngine
Trang 4Game: Liên Quân Mobile, Osiris: New Dawn Game Engine: Unity3D
Trang 52 Sơ lược về Unity
Hình II.1 Logo Unity
Unity Technologies được thành lập vào ngày 2 tháng 8 năm 2004 bởi David Helgason (CEO), Nicholas Francis (CCO) và Joachim Ante (CTO)
những người như Sequoia Capital , WestSummit Capital và
iGlobe Partners [3]
Phiên bản mới nhất: Unity 2018.3.11 và Unity 2019.2.0 Alpha 9
Ngôn ngữ sử dụng: C#
Phát triển Game đa nền tảng: Windows, Mac OS X, Android, IOS, WebGL, Xbox 360, PS3…
Website: www.Unity3D.com
Unity là một Game Engine rất mạnh, hỗ trợ phát triển đa nền tảng như Web,
Andoid, IOS… Đồng thời Unity không yêu cầu cấu hình máy quá cao và có hỗ trợ các nhà phát triển với phiên bản Free
Với lượng người dung lớn nên tài liệu Unity3D cũng rất nhiều trên mạng, với nhiều tutorials, sách hướng dẫn được cung cấp bởi đội phát triển của Unity3D và các người dùng Unity Dễ dàng cho người mới bắt đầu
Unity3D là phần mềm làm Game trực tiếp chạy theo thời gian thực mà không cần render, cho phép người dùng có thể thiết kế các Interface Graphics, Character hay Map từ các phần mềm thứ 2 (thường là các phần mềm thiết kế đồ họa như:
Photoshop CS6, 3DsMax, Blender, Cinema4D, Maya…) sau đó chỉ cần import vào Unity dưới định dạng như *.FBX, *.PNG, *.3DS tùy vào loại cần đưa vào
Một thế mạnh nữa của Unity là bạn có thể chạy demo Game ngay trên Editor (Sence, Game Editor) mà không cần phải build ra để chạy trên các device hoặc máy ảo Điều đó làm cho việc phát triển và testing thuận lợi hơn rất nhiều
Trang 7III Một số đặc điểm và tính năng của Unity
1 Rendering và Lighting
Unity hỗ trợ Windows đồ họa DirectX 11 API nhằm cải thiện hiệu suất tính toán Shaders (bóng của vật thể), trong đó cung cấp khả năng sử dụng CPU và GPU song song và thêm chi tiết phong phú hơn với các mô hình, thế giới, vật thể trong Game
Để tạo độ hoang dã cho Game, Unity sử dụng kỹ thuật vượt trước ánh sáng để cho ánh sáng cao hơn và độ trung thực của bóng tối của vật thể
Các đối tượng được render qua Camera theo các Layer giúp người dùng dễ sắp xếp, tùy chỉnh
Ánh sáng là một yếu tố thiết yếu giúp môi trường đẹp hơn, thực tế hơn Unity cung cấp hỗ trợ các dạng Lighting đa dạng như Point Light (điểm sáng), Direction Light (Nguồn sáng có hướng) Một số công cụ và kỹ thuật ánh sáng mà Unity hỗ trợ như: LightMapping, Realtime Shadows, Lens Flares
Một số hỗ trợ:
Unity cung cấp sẵn hơn 100 Shaders với đầy đủ các loại phổ biến nhất
Hỗ trợ Surface Shaders, Occlusion Culling, GLSL Optimizer
Hỗ trợ LOD
2 Physics
PhysX là một Engine cực mạnh về xử lý vật lý và va chạm được phát triển bởi nhà phát triển Card đồ họa hàng đầu thế giới NVIDIA Unity tích hợp Engine này nhằm đảm nhiệm mọi vấn đề về vật lý và va chạm Một số tính năng vật lý được
hỗ trợ bởi Unity như: Rigidbody, Ragdolls, Collider, Cloths, Joint
3 Terrains
Terrains gọi chung là địa hình, bao gồm nền đất, núi sông trong mỗi trường trò chơi mà trên đó các đối tượng như cây cỏ được dựng lên
Trang 8Unity cung cấp một bộ công cụ giúp tùy chỉnh một cách tinh tế như nâng hạ địa hình, kéo dãn địa hình Bên cạnh đó công cụ còn cung cấp chổi vẽ với các kích thước khác nhau, có nhiều thông số để tùy chỉnh các kết cấu địa hình
Cùng Terrains Tools và Tree Creator là một công cụ giúp xây dựng cây cỏ trên địa hình một cách tuyệt vời với đủ loại hình, kích thước
Trang 94 Audio
Unity cung cấp công cụ mạnh cho những cảnh cộng hưởng âm thanh Trong Game
âm thanh được hỗ trợ bởi FMOD, một trong những thư viện rộng lớn nhất thế giới
và những bộ công cụ giúp hỗ trợ tích hợp âm thanh mạnh mẽ
Trang 105 UI System
Hệ thống giao diện người dùng được phát triển một cách hoàn hảo bởi Unity
Các đối tượng UI Unity hỗ trợ cơ bản như: Canvas, Panel, Button, Image, Slider, Scroll View có nhiều tùy chọn hỗ trợ người phát triển để dễ dàng custom tùy ý theo từng Game
Các thành phần UI được hiển thị thông qua Canvas và bắt sự kiện qua
EventSystems giúp người phát triển dễ quản lý giao diện người dùng
Đặc biệt, hệ thống anchor, scaler UI System của Unity rất mạnh mẽ Điều đó giúp cho phát triển Game trên đa màn hình với các kích thước khác nhau dễ dàng hơn
6 Particle System – Effect System
Với yêu cầu ngày càng cao của người chơi về đồ họa Game, thì các hiệu ứng trong Game là không thể thiếu
Hệ thống hiệu ứng của Unity cũng rất tuyệt vời khi hỗ trợ gần như hoàn thiện tất cả các loại hiệu ứng có thể có như: Line, Trails, Particle Particle của Unity hỗ trợ render cả triệu hạt một lần, thật mạnh mẽ
Trang 11III Tạm Kết
Unity3D là một Game Engine rất mạnh mẽ, các tinh năng được cập nhật phát triển liên tục Trên đây chỉ là một số rất nhỏ các tính năng của Unity
Với Engine này, các nhà phát triển có thể phát triển Game nhanh nhưng vẫn đảm bảo được chất lượng, phù hợp với ngành công nghiệp Game phát triển rất nhanh hiện tại Đồng thời với Unity, chúng ta có thể làm được gần như tất cả những gì chúng ta nghĩ, chỉ cần đủ trình độ và kinh nghiệm
IV Tài Liệu Tham Khảo
[1].https://vi.wikipedia.org/wiki/Game_enginehttps://vi.wikipedia.org/wiki/
Game_engine
[2].https://www.worldofleveldesign.com/categories/level_design_tutorials/
recommended-game-engines.php
[3].https://en.wikipedia.org/wiki/Unity_Technologies