Unity là gì?
Unity is a cross-platform game engine developed by Unity Technologies, designed for creating games across multiple platforms This versatile tool enables developers to build games for PCs, consoles, mobile devices, and websites.
Quá trình phát triển game Unity
Launched in 2005 at Apple's Worldwide Developer Conference by founder David Helgason, Unity has evolved significantly over the past 12 years, now showcasing the refined version 5.5 with numerous enhancements.
In May 2012, a survey conducted by Game Developer Magazine recognized Unity as the best game engine for mobile development By 2014, Unity further solidified its reputation by winning the "Best Engine" award at the UK's annual Develop Industry Excellence awards.
Một số thống kê về Unity
Tính đến quý 3 năm 2016, game và ứng dụng phát triển bằng Unity đã đạt 5 tỷ lượt tải xuống Trong số đó, có 2,4 tỷ thiết bị di động đã từng tải ít nhất một ứng dụng sử dụng công nghệ Unity.
Trong top 1000 game Mobiles miễn phí thì số lượng game tạo ra bơi Unity chiếm tới34%.
Số lượng người dùng (gamer) của Unity đạt tới con số 770 triê v u, trong khi đó số người thường xuyên sử dụng Twitter là 310 triê vu người.
Sự thay đổi trong thói quen chơi game của người dùng đang ngày càng rõ rệt, với xu hướng ngày càng nhiều người tập trung vào việc chơi game trên thiết bị di động.
Ưu điểm của Unity
Các chức năng cốt lõi của engine game bao gồm cung cấp công cụ dựng hình cho hình ảnh 2D và 3D, công cụ vật lý để tính toán và phát hiện va chạm, âm thanh, mã nguồn, hình ảnh động, trí tuệ nhân tạo, phân luồng, tạo dò ng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị và kết nối mạng Nhờ vào các engine này, việc phát triển game trở nên tiết kiệm chi phí và đơn giản hơn.
Unity3D nổi bật với khả năng hỗ trợ đa nền tảng, cho phép phát triển trò chơi trên nhiều hệ điều hành như PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt Web và Flash Nhờ vào một gói engine duy nhất, các studio có thể dễ dàng chuyển đổi trò chơi giữa các nền tảng khác nhau, tạo điều kiện cho các trò chơi online đa nền tảng có thể chơi trên nhiều thiết bị như Web, PC, Mobile và Tablet.
Unity3D là một công cụ phát triển dễ sử dụng, được tích hợp trong một môi trường phát triển toàn diện, hỗ trợ lập trình viên từ việc soạn thảo mã nguồn đến tự động hóa và sửa lỗi Nhắm đến cả lập trình viên không chuyên và các studio chuyên nghiệp, Unity3D mang lại trải nghiệm thân thiện cho người dùng Đặc biệt, đây là một trong những engine phổ biến nhất toàn cầu, giúp người dùng dễ dàng tìm kiếm kinh nghiệm và kiến thức từ cộng đồng trên các diễn đàn công nghệ.
Unity Technologies cung cấp phiên bản miễn phí của engine Unity3D cho cá nhân và doanh nghiệp có doanh thu dưới 100.000 USD mỗi năm Đối với phiên bản Pro, người dùng chỉ cần chi 1.500 USD mỗi năm, một mức giá hợp lý so với giá trị mà engine này mang lại.
T;M HI<U V UNITY ENGINE
Các thành phần trong Unity Editor
Phần này cho phép hiển thị các đối tượng trong cảnh một cách trực quan, người dùng có thể dễ dàng lựa chọn, kéo thả, phóng to, thu nhỏ và xoay các đối tượng theo ý muốn.
Trong phần này, người dùng có thể thiết lập các thông số như ánh sáng, âm thanh và chế độ hiển thị 2D hoặc 3D Khung nhìn Scene cho phép bố trí các đối tượng trong game như cây cối, cảnh quan, kẻ thù, người chơi và camera Việc bố trí hoạt cảnh là một trong những chức năng quan trọng nhất trong Unity.
Tab hierarchy là công cụ hiển thị các Game Object trong các Scenes hiện tại Khi có sự thay đổi như thêm hoặc xóa đối tượng trong Scenes, cửa sổ Hierarchy sẽ tự động cập nhật để phản ánh những thay đổi đó.
Trong tab Project, Hierarchy có tích hợp thanh tìm kiếm, giúp người dùng quản lý và thao tác với các Game Object một cách hiệu quả hơn, đặc biệt là trong các dự án quy mô lớn.
2.1.3 Cưa s Game Đây là mạn hình demo Game, là góc nhìn từ camera trong game.
Thanh công cụ trong cửa sổ game cung cấp các tùy chỉnh về độ phân giải man hình, thông số (stats), gizmos, tùy chọn bật tắt các component
2.1.4 Cưa s Project Đây là cưa sổ explorer của Unity, hiển thị thông tin của tất cả các tài nguyên (Assets) trong game của bạn.
Cột bên trái hiển thị tài sản và các mục yêu thích dưới dạng cây thư mục giống như Windows Explorer Khi nhấp vào một nhánh, nội dung của nhánh đó sẽ được hiển thị ở khung bên phải Người dùng có thể tạo thư mục mới bằng cách nhấp chuột phải và chọn Create -> Folder, hoặc nhấn nút Create ở góc trên bên trái cửa sổ Project và chọn Folder Ngoài ra, các tài nguyên trong game cũng có thể được tạo ra theo cách này.
Mục Favorites ở trên cây thư mục cho phép truy cập nhanh vào các tài nguyên thường dùng, và người dùng có thể thêm tài nguyên vào Favorites bằng cách kéo thả Để dễ dàng tiếp cận các thư mục con hoặc thư mục gốc, chỉ cần nhấp chuột vào mũi tên hoặc tên thư mục hiện tại.
Cửa sổ Inspector cung cấp thông tin chi tiết về Game Object mà bạn đang làm việc, bao gồm các component và thuộc tính liên quan Bạn có thể dễ dàng điều chỉnh và thiết lập mọi thông số cũng như chức năng của Game Object thông qua cửa sổ này.
Tất cả các thuộc tính hiển thị trong Inspector đều có thể được điều chỉnh trực tiếp mà không cần sử dụng kịch bản Tuy nhiên, Scripting API cung cấp nhiều tùy chọn hơn, vì giao diện Inspector có những hạn chế nhất định.
Các thiết lập của từng component được đặt trong menu Các bạn có thể click chuột phải, hoặc chọn icon hình bánh răng nhỏ để xuất hiện menu.
Ngoài ra Inspector cũng thể hiện mọi thông số Import Setting của asset đang làm việc như hiển thị mã nguồn của Script, các thông số animation, …
Các khái niệm cơ bản trong Unity
Trong game, một đối tượng cụ thể được gọi là game object, có thể là nhân vật hoặc đồ vật như cây cối, xe cộ, nhà cửa và con người.
Một GameObject bao gồm nhiều thành phần cấu tạo, như hình ảnh (sprite renderer), bộ điều khiển hoạt ảnh (animator), thành phần xử lý va chạm (collision), tính toán vật lý (physics), mã điều khiển (script) và các thành phần khác Mỗi thành phần này được gọi là một component của GameObject.
Là một hình ảnh 2D của một game object có thể là hình ảnh đầy đủ, hoặc có thể là một bộ phận nào đó.
Là tập một hình ảnh động dựa trên sự thay đổi liên tục của nhiều sprite khác nhau.
Key Frame hay Frame là một trạng thái của một animation Có thể được tạo nên từ 1 sprite hay nhiều sprite khác nhau.
Prefab trong Unity là khái niệm cho phép tái sử dụng các đối tượng giống nhau trong game bằng cách khởi tạo lại các giá trị vị trí, tỉ lệ biến dạng và góc quay từ một đối tượng ban đầu Chẳng hạn, trong game Mario, các đồng tiền đều có cách xử lý giống nhau, vì vậy chỉ cần tạo một đối tượng ban đầu, các đồng tiền còn lại sẽ sử dụng prefab Tương tự, khi lát gạch cho nền nhà, các viên gạch cũng được sử dụng dưới dạng prefab.
2.2.7 Sounds Âm thanh trong game.
Script là tệp tin chứa mã nguồn, được sử dụng để khởi tạo và xử lý các đối tượng trong game Trong Unity, người dùng có thể lập trình Script bằng các ngôn ngữ như C#, Java Script và BOO.
Quản lý tất cả các đối tượng trong một màn chơi của game.
Bao gồm tất cả những gì phục vụ cho dự án game như sprite, animation, sound, script, scenes…
Là một game object đặc biệt trong scene, dùng để xác định tầm nhìn, quansát các đối tượng khác trong game.
Là 3 phép biến đổi tịnh tiến, quay theo các trục, và phóng to thu nhỏ một đối tượng
TNG QUAN Đ TÀI
Giới thiệu ý tưởng và nội dung game
Game tập trung vào nhân vật Swordsman trong thể loại 2D platformer, nơi người chơi vượt chướng ngại vật và tiêu diệt kẻ thù Lối chơi yêu cầu người chơi phải có kỹ năng di chuyển để tránh các cạm bẫy, vì mỗi lần va chạm sẽ làm giảm máu của nhân vật Nếu máu giảm xuống 0, người chơi sẽ phải quay lại vị trí xuất phát Sự tập trung và cẩn thận là rất quan trọng, bởi mỗi màn chơi đều có nhiều bẫy và quái vật khó đánh bại Số lượng bẫy và kẻ thù sẽ tăng lên theo từng màn, tạo ra sự thách thức và hứng thú cho người chơi Game được phát triển dựa trên ý tưởng của tựa game Mario huyền thoại, mang lại cảm giác quen thuộc và dễ dàng hòa nhập với lối chơi.
Game kể về hành trình của một samurai, Swordsman, đang tìm cách trở về quê hương để cứu đất nước khỏi sự tấn công của quái vật không gian Người chơi sẽ nhập vai vào nhân vật chính, đối mặt với nhiều loại quái vật và các trụ lazer công thành hiện đại Để vượt qua các màn chơi và đánh bại Boss, người chơi cần tập trung và khéo léo Mục tiêu cuối cùng là giải cứu quê hương khỏi hiểm họa.
CƠ SỞ LÝ THUYẾT VÀ PHÂN TÍCH THIẾT KẾ
Giới thiệu về ngôn ngữ C#
C# (đọc là "C thăng" hay "C sharp") là một ngôn ngữ lập trình hướng đối tượng do Microsoft phát triển, đóng vai trò quan trọng trong kế hoạch NET của họ Tên gọi C# bao gồm ký tự thăng theo cách gọi của Microsoft, nhưng theo tiêu chuẩn ECMA, nó được viết là C# Ngôn ngữ này được xây dựng dựa trên nền tảng của C++ và Java, và được mô tả là có sự cân bằng giữa C++, Visual Basic, Delphi và Java.
C# được thiết kế chủ yếu bơi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC.
C# là ngôn ngữ lập trình phản ánh trực tiếp NET Framework, nơi tất cả các chương trình NET hoạt động Ngôn ngữ này phụ thuộc mạnh mẽ vào Framework, với mọi dữ liệu cơ sở được quản lý như đối tượng thông qua trình dọn rác Garbage Collector (GC) Ngoài ra, C# còn hỗ trợ nhiều kiểu trừu tượng như class, delegate, interface và exception, thể hiện rõ đặc trưng của NET runtime.
So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ơ một vài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:
Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn, trong khi hầu hết các đối tượng được tham chiếu an toàn và các phép tính đều được kiểm tra tràn bộ đệm Chúng chỉ được dùng để gọi các loại kiểu giá trị, trong khi các đối tượng thuộc bộ thu rác chỉ được gọi thông qua tham chiếu.
Các đối tượng không thể được giải phóng tường minh.
Chỉ có một đơn kế thừa nhưng có thể cài đặt nhiều interface trừu tượng, giúp đơn giản hóa quá trình thực thi trong thời gian thực thi.
C# thì an-toàn-kiểu (typesafe) hơn C++.
Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "int a[5]").
Kiểu thứ tự được thay thế bằng tên miền không gian (namespace).
Có thêm Properties, các phương pháp có thể gọi các Properties để truy cập dữ liệu.
Các công cụ sử dụng
Unity3D là phần mềm làm games trực tiếp theo thời gian thực, mà không cần render, cho phép người design game có thể thiết kế InterfaceGraphic, map hay character
Để sử dụng mô hình 3D trong Unity, bạn cần xuất nó từ phần mềm thiết kế đồ họa chuyên nghiệp như 3Dsmax, Blender, Maya, XSL, Cinema4D, Cheetah3D, Modo, Autodesk FBX, hoặc LightWave Sau đó, chỉ cần import mô hình vào Unity với định dạng tệp phù hợp.
Trong lĩnh vực thiết kế 3D, định dạng tệp *.FBX được ưa chuộng hơn so với các định dạng khác như *.dae, *.3DS, *.dxf và *.obj nhờ vào khả năng tối ưu hóa tốt hơn Đối với các định dạng không phải FBX, người dùng cần cài đặt phần mềm thiết kế tương ứng, ví dụ như Maya với định dạng *.mb hoặc *.ma, để có thể sử dụng hiệu quả.
Ngoài ra khi bạn design được một game thì bạn có thể xuất được ra một file.exe và có thể chạy và chơi được trên PC khác.
Một trong những thế mạnh nổi bật của Unity là khả năng chạy thử nghiệm game ngay trong quá trình thiết kế Unity hỗ trợ hai chế độ là Scene và Game, giúp người dùng dễ dàng kiểm tra các mô-đun game một cách thuận tiện và hiệu quả.
Unity3D có 2 loại phiên bản, một cho người dùng free, và một phiên bản pro thì mất phí.
Khi tải và cài đặt Unity, bạn có thể chọn phiên bản Pro để sử dụng, nhưng cần phải mua bản quyền Nếu bạn là người dùng miễn phí, hãy chọn kích hoạt qua web với kết nối internet, sau đó thực hiện cài đặt thủ công, nhập email và chọn phiên bản miễn phí để sử dụng Unity một cách hợp lệ.
Unity hỗ trợ ba ngôn ngữ phát triển chính: C#, UnityScript (dựa trên Javascript) và Boo, trong đó Boo là ngôn ngữ ít phổ biến và không nên được sử dụng C# là ngôn ngữ được ưa chuộng nhất trong cộng đồng Unity, với nhiều plugin và ví dụ phong phú Mặc dù UnityScript có thể được xem xét, nhưng người dùng có thể gặp khó khăn khi tương tác với các plugin được viết bằng C#.
4.2.1.1 Ưu điểm và nhược điểm
Unity có rất nhiều tính năng tuyệt vời:
Unity có một cồng đồng rất lớn về asset và plugin – trong đó có rất nhiều resources free và có nhiều thứ rất đáng bỏ tiền.
Unity có bộ công cụ rất trực quan và editor có thể mơ rộng bằng plugins.
Unity hỗ trợ rất nhiều định dạng asset khác nhau và có thể tự động chuyển đổi đến định dạng phù hợp nhất với nền tảng thích hợp.
Unity hỗ trợ nhiều nền tảng: di động, desktop, web và console.
Việc triển khai đến các nền tảng khác nhau cũng khá dễ quản lý.
Bạn có thể dễ dàng xây dựng một game 3D mà không cần cấu hình quá phức tạp.
Unity bản free có hầu hết những tính năng quan trọng nhất.
Unity bản trả phí phù hợp với các developer chuyên nghiệp
Tuy nhiên Unity cũng có vài nhược điểm mà bạn cần cân nhắc:
Việc hợp tác trong phát triển phần mềm gặp nhiều khó khăn, đặc biệt khi không sử dụng server asset của Unity, điều này có thể dẫn đến các vấn đề nghiêm trọng trong việc chia sẻ code và tài nguyên giữa các thành viên trong đội Sử dụng các công cụ quản lý tài nguyên bên ngoài là một lựa chọn tốt, nhưng một số file nhị phân không thể được gộp lại, và việc cập nhật tài sản có thể gây ra sự cố trong các cảnh, làm mất kết nối với script và các đối tượng khác.
Hiệu năng của Unity chưa thật sự ấn tượng cho đến khi Unity 5 ra mắt, khi mà nó chủ yếu hoạt động trên một luồng duy nhất và không tận dụng được nhiều nhân phụ trên các thiết bị di động Bộ biên dịch vẫn chưa được tối ưu cho các bộ xử lý ARM trên hầu hết các thiết bị di động Để khắc phục vấn đề này, Unity đã quyết định transpile sang C++ và sử dụng LLVM để tối ưu hóa hiệu suất thay vì chỉ giải quyết vấn đề trong các phiên bản sau.
Mã nguồn của engine không được công khai, ngay cả với người dùng trả phí, dẫn đến việc nếu gặp lỗi, bạn phải chờ Unity khắc phục trong các bản cập nhật tiếp theo Điều này có thể tạo ra những vấn đề nghiêm trọng cho dự án của bạn.
Adobe Photoshop, thường gọi là Photoshop, là phần mềm chỉnh sửa đồ họa do Adobe Systems phát triển và phát hành từ năm 1988 trên hệ máy Macintosh Được xem là phần mềm hàng đầu trong lĩnh vực sửa ảnh bitmap, Photoshop đã trở thành chuẩn mực cho các ngành liên quan đến chỉnh sửa ảnh Kể từ phiên bản Photoshop 7.0 ra mắt vào năm 2002, phần mềm này đã tạo ra một cuộc cách mạng trong công nghệ ảnh bitmap Phiên bản mới nhất hiện nay là Adobe Photoshop CC.
Photoshop không chỉ nổi bật trong việc chỉnh sửa ảnh cho các ấn phẩm mà còn được ứng dụng rộng rãi trong thiết kế trang web, vẽ tranh (bao gồm matte painting và nhiều thể loại khác), cũng như tạo texture cho các chương trình 3D Phần mềm này gần như phục vụ cho mọi hoạt động liên quan đến ảnh bitmap.
Adobe Photoshop có khả năng tương thích với hầu hết các chương trình đồ họa khác của Adobe như Adobe Illustrator, Adobe Premiere, After After Effects và Adobe Encore.
Adobe Photoshop CC 2018 là phiên bản mới nhất của phần mềm chỉnh sửa ảnh nổi tiếng Adobe Photoshop Bạn có thể tìm hiểu và tải về miễn phí phiên bản này để trải nghiệm những tính năng mới và cải tiến.
Hình 4.2.2 a Hình nền sư dụng trong game
Hình 4.2.2 c Backgound và Chướng ngại vật
4.2.3 Một Scrips sữ dụng trong game
THIẾT KẾ GIAO DIỆN ĐỒ HỌA GAME
Tổng quan đồ họa màn chơi
Hình 5.2.1 màn hình Paused 5.2.2 Chướng ngại vật