Công nghệ thông tin không chỉ dừng lại ở mục đích phục vụ cho khoa học kỹ thuật mà còn đi sâu vào đời sống chính trị, kinh tế, xã hội… trở nên thân thiện, gần gũi, mang lại nhiều lợi ích
CƠ SỞ LÝ THUYẾT
Các khái niệm cơ bản
Script là thành phần thiết yếu trong việc phát triển ứng dụng trên Unity, giúp nhận diện các Input và sự kiện trong quá trình thực thi Ngoài ra, Script còn cho phép tạo ra hiệu ứng hình ảnh, mô phỏng vật lý cho đối tượng, và xây dựng AI trong ứng dụng.
Tính chất cơ bản của Script:
+ Được viết bằng các ngôn ngữ lập trình (Thường là C#)
+ Được dùng để thực thi những yếu tố trong ứng dụng theo ý muốn của người thiết kế
Asset là các tài nguyên được sử dụng để cấu tạo lên ứng dụng Những tài nguyên này bao gồm:
+ Hình ảnh hiển thị ví dụ như các hoạ tiết, hình mẫu của một vật thẻ, v.v…
+ Âm thanh như nhạc nền, hiệu ứng cho một yếu tố nhất định, v.v…
Asset từ các nguồn bên ngoài của Unity đóng góp vào sự đa dạng trong thiết kế ứng dụng, giúp người thiết kế nâng cao chất lượng và tính sáng tạo cho sản phẩm của mình.
Component là các thành phần cấu thành một yếu tố, bao gồm những đặc điểm quan trọng trong ứng dụng Mỗi component đảm nhiệm một chức năng riêng biệt, và các yếu tố chứa chúng sẽ thể hiện những đặc điểm đặc trưng của component đó.
Các component có thể được tuỳ chỉnh tuỳ ý bởi người thiết kế để khiến các yếu tố trở lên đặc biệt hơn
Giao diện người dùng (UI) là phần hiển thị trên màn hình của ứng dụng Trong Unity, nhà thiết kế có thể tạo ra các UI thông qua nhiều chức năng khác nhau.
+ The Unity UI package (uGUI)
Việc tạo ra UI dễ sử dụng, dễ nhìn cho người sử dụng tuỳ thuộc vào người thiết kế và đối tượng hướng đến.
Ngôn ngữ lập trình C#
C# là một ngôn ngữ lập trình hướng đối tượng mạnh mẽ 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ủa ngôn ngữ này bao gồm ký tự thăng theo Microsoft, nhưng theo tiêu chuẩn ECMA, nó được gọi là C# với dấu số thường C# được xây dựng dựa trên nền tảng của C++ và Java, mang lại sự cân bằng giữa các ngôn ngữ lập trình như C++, Visual Basic, Delphi và Java.
C# là ngôn ngữ lập trình được phát triển bởi Anders Hejlsberg, một kiến trúc sư phần mềm nổi tiếng với nhiều sản phẩm như Turbo Pascal, Delphi, J++, và WFC Phiên bản mới nhất của C# là 9.0, được phát hành vào năm 2020, đi kèm với Visual Studio 2019 phiên bản 16.8.
C# có những đặc trưng như sau:
C# là một ngôn ngữ lập trình mạnh mẽ và đơn giản, được phát triển dựa trên nền tảng của C++ và Java, đồng thời chịu ảnh hưởng từ Delphi và VisualBasic Ngôn ngữ này kế thừa những ưu điểm của các ngôn ngữ trước đó, đồng thời khắc phục những nhược điểm, giúp C# trở nên dễ sử dụng hơn Với việc loại bỏ các cú pháp dư thừa và bổ sung các cú pháp cải tiến, C# mang đến trải nghiệm lập trình hiệu quả và thân thiện cho người dùng.
C# là một ngôn ngữ lập trình đa năng và hiện đại, lý tưởng cho phát triển trong kỷ nguyên 4.0 Nó hỗ trợ xây dựng ứng dụng web, ứng dụng di động, game, học máy, trí tuệ nhân tạo, phát triển đám mây, IoT, blockchain và microservices.
C# là ngôn ngữ lập trình hướng đối tượng mạnh mẽ, đồng thời hỗ trợ lập trình chức năng thông qua các tính năng như biểu thức lambda, khớp mẫu, functions và thuộc tính bất biến.
C# là ngôn ngữ lập trình gõ tĩnh với định kiểu mạnh, đồng thời hỗ trợ gõ động Nhờ vào việc gõ tĩnh, C# mang lại nhiều lợi ích như bảo đảm an toàn kiểu và tự động phát hiện lỗi cú pháp ngay trong quá trình viết mã.
+ C# là một ngôn ngữ ít từ khóa: C# có khoảng hơn 80 từ khóa
C# là một trong những ngôn ngữ lập trình phổ biến và phát triển nhanh chóng, với cộng đồng lập trình viên ngày càng đông đảo Tính đến tháng 10 năm 2020, ước tính có hơn 6 triệu người tham gia vào cộng đồng phát triển C# Sự gia tăng này phản ánh sự hấp dẫn và ứng dụng rộng rãi của C# trong ngành công nghiệp công nghệ thông tin.
Tìm hiểu về Unity
Unity là một game engine đa nền tảng do Unity Technologies phát triển, chủ yếu phục vụ cho việc phát triển video game trên máy tính, consoles và điện thoại Được giới thiệu lần đầu tiên trên hệ điều hành OS X tại Hội nghị Các nhà phát triển Toàn cầu của Apple vào năm 2005, Unity đã mở rộng hỗ trợ cho 27 nền tảng khác nhau.
Phần mềm này đã trải qua 6 phiên bản chính và được vinh danh tại triển lãm WWDC năm 2006 với giải thưởng Best Use of Mac OS X Graphics từ Apple.
Unity hỗ trợ phát triển đồ họa 2D và 3D chủ yếu bằng ngôn ngữ C#, cùng với một số ngôn ngữ khác như Boo và UnityScript, nhưng hai ngôn ngữ này đã bị loại bỏ trong các phiên bản gần đây Phần mềm này tương thích với nhiều đồ họa APIs như Direct3D, OpenGL, OpenGL ES, WebGL, và các APIs độc quyền trên máy chơi game Unity cũng hỗ trợ các APIs cấp thấp như Metal và Vulkan, cùng với Direct3D 12 Đối với trò chơi 2D, Unity cho phép nhập sprites và sử dụng renderer 2D tiên tiến, trong khi đối với trò chơi 3D, nó cung cấp nhiều tính năng như bump mapping, reflection mapping, và hiệu ứng bóng đổ Ngoài ra, Unity còn cung cấp nhiều dịch vụ hỗ trợ cho nhà phát triển như Unity Ads, Unity Analytics, và Unity Multiplayer.
Unity nổi bật với khả năng phát triển trò chơi đa nền tảng, hỗ trợ các hệ điều hành như Android, Android TV, Facebook Gameroom, Fire OS và Gear.
Virtual reality (VR) technology has been embraced across various platforms, including Google Cardboard, Google Daydream, HTC Vive, and Oculus Rift, as well as gaming consoles like PlayStation 4, Nintendo Switch, and Xbox One Additionally, devices such as Microsoft HoloLens and Samsung Smart TVs enhance the VR experience Unity, a popular game development platform, previously supported seven other platforms through the Unity Web Player, a browser plugin for Windows and OS X, which has since been discontinued in favor of WebGL for improved compatibility and performance.
Unity là bộ công cụ phát triển phần mềm chính thức (SDK) cho máy chơi game Wii U của Nintendo, đi kèm với phiên bản miễn phí cho mỗi giấy phép phát triển Wii U Unity Technologies đã khẳng định rằng việc kết hợp SDK với bên thứ ba là một "industry first".
Visual Studio
Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE) nổi tiếng của Microsoft, được biết đến như "trình soạn thảo mã phổ biến nhất thế giới" Nó chủ yếu được sử dụng để lập trình bằng C++ và C#, phục vụ cho việc phát triển các chương trình máy tính trên hệ điều hành Microsoft Windows, cũng như các trang web, ứng dụng web và dịch vụ web Visual Studio tận dụng các nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight, cho phép tạo ra cả mã máy và mã số quản lý.
Visual Studio là một công cụ phát triển mạnh mẽ, bao gồm trình soạn thảo mã với tính năng IntelliSense và cải tiến mã nguồn Nó tích hợp trình gỡ lỗi cho cả mã nguồn và mức máy, giúp phát hiện lỗi hiệu quả Ngoài ra, Visual Studio còn cung cấp các công cụ thiết kế cho giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế cơ sở dữ liệu Người dùng có thể mở rộng chức năng thông qua các plug-in, bao gồm hỗ trợ cho hệ thống quản lý phiên bản như Subversion và các bộ công cụ thiết kế trực quan cho các miền ngôn ngữ cụ thể, nâng cao quy trình phát triển phần mềm.
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình, cho phép biên tập và gỡ lỗi cho hầu hết các ngôn ngữ Các ngôn ngữ tích hợp bao gồm C, C++, VB.NET, C#, và F# Ngoài ra, Visual Studio còn hỗ trợ các ngôn ngữ khác như Python và Ruby thông qua cài đặt riêng Nó cũng hỗ trợ XML, HTML, JavaScript và CSS Microsoft cung cấp phiên bản miễn phí "Express" cho Visual Studio 2013 và "Community" cho các phiên bản từ 2015 trở đi.
CÀI ĐẶT CÔNG CỤ
Giới thiệu
Hướng dẫn này sẽ giúp bạn cài đặt các công cụ thiết yếu cho việc thiết kế game, với hai công cụ chính cần được cài đặt.
Unity
Vào trang chủ chính của Unity (https://unity.com/) và ấn Download
Hình 2.1 Giao diện trang chủ Unity
Chọn tiếp vào Download for Window và đợi file UnityHubSetup.exe tải về và mở lên cài đặt Unity Hub
Hình 2.2 Giao diện Download trang chủ Unity
Trong màn hình chính của Unity Hub > Installs và chọn nút Install Editor và chọn phiên bản Editor muốn tải xuống
Hình 2.3 Giao diện Unity Hub > Installs
2.2.3 Nhận License Để có thể sử dụng được Unity Editor đầu tiên ta phải có License
Trong màn hình chính của Unity Hub chọn vào biểu tượng bánh răng
Hình 2.4 Biểu tượng bánh răng
Chọn License và ấn Add rồi chọn loại License để thêm vào
Visual Studio
Vào trang chủ chính của Visual Studio (https://visualstudio.microsoft.com/) và ấn vào mục Download
Hình 2.6 Giao diện trang chủ Visual Studio
Chọn loại phiên bản để tải về và cài đặt
Hình 2.7 Giao diện Download Visual Studio
2.3.2 Cài đặt Workload của Unity trên Visual Studio
Sau khi tải xong Visual Studio, mở giao diện Visual Studio Installer và chọn bản Visual Studio sử dụng rồi nhấn modify
Hình 2.8 Giao diện Visual Studio Installer
Trong Workloads chọn gói “Game development with Unity” xong chọn modify
XÂY DỰNG GAME 2D
Giới thiệu
Với Unity, bạn có khả năng phát triển các ứng dụng game 2D đa dạng, từ những thể loại hiện có cho đến những ý tưởng sáng tạo riêng của mình.
Trong bài viết này, chúng ta sẽ khám phá các bước để phát triển một ứng dụng game 2D theo phong cách Platform, một thể loại trò chơi đi cảnh rất phổ biến Những trò chơi như Mario và Sonic the Hedgehog đã chứng minh sức hấp dẫn của thể loại này trong ngành công nghiệp game.
Tổng quan giao diện
Hình 3.1 Giao diện Unity Editor
1 Các đối tượng, vật thể
3 Bảng thông tin của đối tượng, vật thể được chọn
Tìm kiếm các Asset cho Project
Bước đầu tiên để có thể tạo ra được một ứng dụng game trên Unity, các Asset là những thứ không thể thiếu
Các Asset này có kiếm được từ những nguồn có sẵn như trang web Unity Assets Store (https://assetstore.unity.com/) hoặc tự tạo
Hình 3.2 Giao diện Unity Asset Store
Tại Unity Asset Store, danh mục 2D cung cấp các công cụ thiết yếu để phát triển ứng dụng game 2D Người dùng có thể lựa chọn các Asset mong muốn và thêm chúng vào Unity Editor bằng cách nhấn vào “Add to My Assets”.
Hình 3.3 Thêm Asset từ Unity Asset Store
Tạo dựng địa hình
Trong Unity Editor, bấm chuột phải nơi chứa các vật thể và tạo một vật thể Tilemap bằng cách chọn 2D Object > Tilemap > Rectangular
Khi chọn Tilemap, nhấn vào Open Tile Palette để mở cửa sổ Tile Palette, nơi bạn có thể sử dụng các Asset địa hình có sẵn để vẽ địa hình cho ứng dụng game.
Hình 3.5 Cửa sổ Tile Palette
Tạo nhân vật, các vật cản
Chúng ta có thể dễ dàng tạo ra nhân vật và chướng ngại vật trong trò chơi bằng cách sử dụng các Asset có sẵn Chỉ cần kéo và thả các Asset từ kho lưu trữ vào màn hình hiển thị để tạo ra các vật thể cần thiết.
Tạo hoạt ảnh
To create an animation for an object, right-click in the Assets folder and select Create > Animation Then, drag the Animation file onto the object you wish to animate.
After dragging and dropping the Animation, open the Animation window in the Unity Editor by selecting Window > Animation > Animation (shortcut: Ctrl + 6) In the Animation window, you can drag and drop assets to create animations for the selected object.
Hình 3.8 Kéo thả Asset để tạo hoạt ảnh
Sắp xếp trình tự các hoạt ảnh và điều kiện xảy ra
To organize the sequence of animations and their triggering conditions in Unity, open the Animator window by selecting Window > Animation > Animator in the Unity Editor Within the Animator window, you can arrange animations and the associated conditions that activate them when specific events occur in the application.
Tạo dựng User Interface
Bạn có thể tùy chỉnh giao diện người dùng bằng cách nhấp chuột phải vào bất kỳ đối tượng nào và chọn mục UI Mục UI bao gồm nhiều thành phần như Nút, Chữ, Bảng điều khiển, v.v., cho phép bạn tạo ra giao diện theo ý muốn của mình.
Hình 3.10 Tạo dựng User Interface
Tạo dựng Script
Để tạo ra Script, ta ấn chuột phải vào nơi chứa các Asset chọn Create > C# Script
Khi bạn nhấp đúp chuột vào tệp Script, cửa sổ Visual Studio sẽ mở ra, cho phép bạn tùy chỉnh các tệp Script theo ý muốn bằng ngôn ngữ lập trình C#.
Hình 3.12 File Script trong Visual Studio
Áp dụng các Component và Script vào vật thể
Khi chọn một vật thể trong Unity, bạn có thể sử dụng tùy chọn “Add Component” để thêm các Script hoặc các Component Built-in Điều này giúp vật thể thực hiện các chức năng theo chỉ định từ các Component và Script đã thêm vào.
Hình 3.13 Thêm Component và Script
Tạo dựng các Scene
Các Scene trong trò chơi giống như các cảnh trong một bộ phim, mỗi Scene có những đặc điểm và vai trò riêng biệt Để tạo Scene, bạn chỉ cần nhấp chuột phải vào khu vực chứa các Asset, sau đó chọn Create > Scene.
Tổng kết
Sau những quá trình đã nêu ra ta tạo ra được các vật thể sau:
+ BGM: Vật thể này sẽ phát nhạc nền
+ Main Camera: Là góc nhìn của người dùng ứng dụng
+ Canvas: Là vật thể bao gồm các yếu tố của User Interface
+ Terrain: Là địa hình mà người chơi có thể chạm vào
+ Background: Là nền ngoài của địa hình
+ Object: Là những vật xuất hiện trên địa hình
+ Player: Vật thể này tượng trưng cho nhân vật người chơi điều khiển
+ Collectible : Vật thể này là những vật thể người chơi có thể thu thập được
+ Trap: Vật thể này là những vật cản mà người chơi cần phải né tránh
+ Enemy: Vật thể này là những kẻ địch, người chơi phải đánh bại hoặc né tránh + Patrolroute: Là các điểm mà kẻ địch sẽ đi qua, đi lại
+ Cave, Chest: Những vật thể này khi người chơi chạm vào sẽ chuyển sang các Scenes kế tiếp
Hình 3.15 Các vật thể đã tạo
Các file Script được tạo lập:
+ PlayerMovements: Script đóng vai trò di chuyển của người chơi + Attack: Script khi người chơi thực hiện tấn công
+ Health: Độ bền bỉ của người chơi
+ EnmMovement: Script đóng vai trò di chuyển của kẻ địch + EnmHealth: Độ bền bỉ của kẻ địch
+ CameraController: Điều hướng Main Camera theo người chơi + ItemCollect: Script khi người chơi nhặt các vật phẩm Collectible + CaveEnter/ChestOpen: Script chuyển Scene
+ StartMenu: Script khởi động game
Các Component được sử dụng:
+ Rigidbody 2D: Component này cho vật thể trọng lượng
+ Box Collider 2D: Component này cho phép các vật thể có thể chạm được vào nhau
+ Audio Source: Component này cho các vật thể thêm hiệu ứng âm thanh
+ Tilemap Collider 2D: Component này cho phép địa hình chạm được vào
+ Platform Effector 2D: Tạo ra hiệu ứng của game Platform
Danh sách vật thể được gắn Component và Script:
+ Terrain: Tilemap Collider 2D, Platform Effector 2D
+ Player: Rigidbody 2D, Box Collider 2D, Audio Source, PlayerMovements.cs, ItemCollect.cs, Attack.cs, Health.cs
+ Enemy: Rigidbody 2D, Box Collider 2D, Audio Source, EnmMovement.cs, EnmHealth.cs
+ Cave: Box Collider 2D, Audio Source, CaveEnter.cs
+ Chest: Box Collider 2D, Audio Source, ChestOpen.cs
+ Player: Attack, Death, Indle, Running, Fall, Jump
User Interface được tạo dựng:
Hình 3.31 Bộ đếm số vật thể Collectible thu thập được
Hình 3.32 User Interface Start Menu
Hình 3.33 User Interface End Menu