Đang tải... (xem toàn văn)
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn: Đinh Nguyễn Anh Dũng
Nhóm sinh viên thực hiện:
Nguyễn Văn Thiên20521952Nguyễn Duy Minh Tuấn20520845
Trang 2Hồ Chí Minh, tháng 6 năm 2023
Biên bản thay đổi tài liệu
Thời gian Phiên bản Mô tả Tác giả28/12/202
Thiên
Trang 3LỜI CẢM ƠN
Nhóm em đã và đang học tập và rèn luyện tại Trường Đại học CôngNghệ Thông Tin, chuyên ngành Software Engineering 3 năm nay Nhóm em xin cám ơn trường đã tạo điều kiện cho chúng em có thểgiao lưu học tập và rèn luyện cùng nhau
Và nhóm em xin cám ơn thầy Đinh Nguyễn Anh Dũng đã góp ýchân thành và hướng dẫn chúng em hoàn thành đồ án môn họcnày.
Trong quá trình làm Đồ Án 2 nhóm em đã có một số sai sót mongthầy giảng viên hướng dẫn bỏ qua Nhờ đó giúp chúng em khôngngừng nỗ lực phát triển, hoàn thiện bản thân để chuẩn bị cho Khóaluận tốt nghiệp và những môn học sau.
Một lần nữa, nhóm em xin chân thành cám ơn thầy Đinh NguyễnAnh Dũng.
Thành phố Hồ Chí Minh ngày 28/12/2023
Nguyễn Văn Thiên
Trang 4MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU 2
I Thông Tin Chung 2
1 Thông tin nhóm 2
2 Thông tin sơ lược về đồ án 2
3 Sơ lược về những công nghệ sử dụng 2
II Thông Tin Sơ Lược Về Game 5
1 Sơ lược về các thực thể và đối tượng trong game 5
2 Các yêu cầu về chức năng 8
3 Các yêu cầu về phi chức năng 8
CHƯƠNG 2: USE CASE 9
Trang 5III Danh Sách Usecase 17
CHƯƠNG 3: THIẾT KẾ DỮ LIỆU 28
CHƯƠNG 4: THIẾT KẾ CẤU TRÚC 29
I Vòng Lặp Game 29
II Tiến Trình Game 29
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN 30
CHƯƠNG 6: CÀI ĐẶT 31
CHƯƠNG 7: KẾT LUẬN 32
I Kết Quả 32
Trang 6II Một Số Hạn Chế 32
TÀI LIỆU THAM KHẢO 33
Tài liệu tiếng Anh: 33
Asset: 33
Trang 7TÓM TẮT ĐỒ ÁN
Đồ án này tập trung vào việc phát triển một trò chơi bắn máy bay bằng Unity và trình bày một số kết quả đạt được trong quá trình thực hiện dự án.
Vấn đề nghiên cứu của đồ án là tạo ra một trò chơi bắn máy bay hấp dẫn và thú vị, sử dụng công nghệ Unity để xây dựng nền tảng và tích hợp các yếu tố trò chơi như chuyển động, đồ họa và âm thanh.
Để giải quyết vấn đề, chúng tôi đã tiến hành một số hướng tiếp cận như sau:
Thiết kế các kỹ năng điều khiển cho người chơi để tạo ra trải nghiệm chơi game đa dạng và thú vị.
Thiết kế kẻ địch, quái vật làm cho người chơi có hứng thú khi đối đầu.
Tạo ra hệ thống ghi điểm và thăng cấp để khích lệ người chơitiếp tục chơi và cải thiện kỹ năng của mình.
Tối ưu hóa trò chơi để đảm bảo trải nghiệm mượt mà.
Thiết kế hệ thống kỹ năng với những hiệu ứng như: làm tê liệt, làm mất phương hướng, làm cho người chơi tăng tính tò mò.
Kết quả đạt được sau khi thực hiện dự án là một trò chơi bắn máy bay hấp dẫn và thú vị, với đồ họa dễ nhìn, hiệu ứng âm thanh sốngđộng và cơ chế chơi game mượt mà
Tóm lại, đồ án đã thành công trong việc phát triển một trò chơi bắnmáy bay sử dụng Unity, với các yếu tố trò chơi hấp dẫn và kết quả
Trang 8đạt được đã chứng minh khả năng của công nghệ Unity trong việc xây dựng trò chơi trực quan và tương tác.
CHƯƠNG 1: GIỚI THIỆU
I Thông Tin Chung1 Thông tin nhóm
Nguyễn Duy MinhTuấn
Bảng 1.1: Thông tin nhóm
2 Thông tin sơ lược về đồ án
Tên đồ án: Thiết kế và hoàn thiện một game hoàn chỉnh bằng
công nghệ Unity 3D.
Tên trò chơi: Mercenaries.
Công nghệ sử dụng: Unity Engine.
Môi trường phát triển: Visual Studio / Visual Studio Code.
3 Sơ lược về những công nghệ sử dụng.3.1 Unity Engine
Trang 9Hình 1.1: Unity
Unity Engine là một cross-platform game engine được phát triển
bởi công ty Unity Technology, nó được sử dụng nhằm mục đích
phát triển video game 2D, 3D trên máy tính, điện thoại, console vàcác nền tảng thực tế ảo Được công bố và phát hành lần đầu tiên vào tháng 6 năm 2005 chạy trên hệ điều hành MacOS Nó sử dụng ngôn ngữ C# làm script Nó còn có thể sử dụng để làm phim, và sửdụng trong ngành sản xuất ô tô.
Trong 2D games, Unity cho phép nhập sprites và một renderer thế giới 2D tiên tiến Đối với 3D games, Unity cho phép thiết lập các đập điểm kỹ thuật của các kết cấu và độ phân giải mà công cụ trò chơi hỗ trợ, cung cấp các hỗ trợ cho bump mapping, reflection mapping, parallax mapping, cảnh không gian ambient occlusion (SSAO), hiệu ứng bóng đổ bằng cách sử dụng shadow maps,
render thiết lập toàn cảnh đến hiệu ứng Unity cũng cung cấp các dịch vụ cho nhà phát triển, bao gồm: Unity Ads, Unity Analytics, Unity Cloud Build, Unity Everyplay, Unity API, Unity Multiplayer, …
3.2 C Sharp
Trang 10Hình 1.2: C Sharp
C#(C Sharp) là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ được phát triển bởi Microsoft Nó được Microsoft phát
triển dựa trên C++ 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 như
Turbo Pascal, Delphi, J++, WFC Phiên bản mới nhất của C# là C# 10, được hỗ trợ trên Net 6.
Trang 11Nó đã trở thành một yếu tố có sức ảnh hưởng trong cộng đồng phát triển mã nguồn mở Thậm chí nhiều công ty đã yêu cầu các developer phải biết sử dụng nó Vào ngày 04/06/2018, Microsoft đãthông báo đạt được thỏa thuận mua lại Github.
Trang 12II Thông Tin Sơ Lược Về Game
1 Sơ lược về các thực thể và đối tượng trong game.
Melee
Hình 1.5: Melee
Là một kẻ địch trong game người chơi phải đốiđầu, nó có 1 thanh dao, khi gặp người chơi nó sẽ đuổi theo và tiêu diệt.
Hình 1.6:SuicideAttacker
Là một kẻ địch trong game người chơi phải đốiđầu, nó là kẻ địch đánh bom liều chết gây sát thương cực mạnh.
game người chơi phải đốiđầu, nó có vũ khí là 1 khẩu súng lục và có khả năng tạo tường chắn khi
Trang 13Hình 1.7:
EnemyShield đối đầu với người chơi.
Hình 1.8:EnemyDefault
Là một kẻ địch trong game người chơi phải đốiđầu, nó có một khẩu súng lục.
Hình 1.9:EnemyArtilery
Là một kẻ địch trong game người chơi phải đốiđầu, nó có một khẩu súng boom bắn từ khoảng cách cực xa.
Hình 1.10: Turret
Là thực thể người chơi cóthể tạo ra để phòng thủ, tiêu diệt kẻ địch Turret sẽ không thể di chuyển.
Hình 1.11: Drone
Là thực thể người chơi cóthể tạo ra để bảo vệ bản thân, tiêu diệt kẻ địch Drone sẽ đi theo người chơi.
Trang 14Hình 1.12:OriginPickable
Là item người chơi có thểnhặt được Khi tiêu diệt kẻ địch có tỉ lệ rơi vũ khí,hoặc máu để người chơi nhặt.
Là tường chắn đạn, boom Thường được tạo ra bởi EnemyShield.Bảng 1.2: Các thực thể và đối tượng
2 Các yêu cầu về chức năng
Người chơi có thể tạm dừng khi đang chơi. Người chơi có thể điều chỉnh âm lượng.
Các phím bấm chức năng phản hồi nhanh chóng và rõ ràng. Người chơi có thể chỉnh bàn phím phù hợp với bản thân. Có thể dễ dàng phân biệt người chơi và kẻ địch trên màn
Trang 15 Yêu cầu về tính tương thích: có thể chơi ổn định trên máy tính.
CHƯƠNG 2: USE CASE
I Biểu Đồ1 Character
Hình 2.1: Character Usecase Diagram
2 Melee
Trang 16Hình 2.2: Melee Usecase Diagram
3 SuicideAttacker
Trang 17Hình 2.3: SuicideAttacker Usecase Diagram
4 EnemyShield
Trang 18Hình 2.4: EnemyShield Usecase Diagram
5 EnemyDefault
Trang 19Hình 2.5: EnemyDefault Usecase Diagram
6 EnemyArtilery
Trang 20Hình 2.6: EnemyArtilery Usecase Diagram
7 Turret
Hình 2.7: Turret Usecase Diagram
8 Drone
Trang 21Hình 2.8: Drone Usecase Diagram
9 OriginalPickable
Hình 2.9: OriginalPickable Usecase Diagram
10 BulletProofWall
Hình 2.10: OriginalPickable Usecase Diagram
II Danh Sách Actor
1 Character Là đối tượng mà người chơi sẽ
Trang 22tương tác với game Nó có thểdi chuyển, tấn công, né tránh,sử dụng kỹ năng, …
Là kẻ địch mà người chơi sẽ phải đối mặt trong game Nó có thể di chuyển, tấn công, vàngười chơi có thể tiêu diệt nó.
3 SuicideAttacker
Là kẻ địch mà người chơi sẽ phải đối mặt trong game Nó có thể di chuyển, tấn công, vàngười chơi có thể tiêu diệt nó.Khi nó đến gần người chơi, nó sẽ đánh boom tự sát gây lượng sát thương khổng lồ lênngười chơi.
4 EnemyShield
Là kẻ địch mà người chơi sẽ phải đối mặt trong game Nó có thể di chuyển, tấn công, vàngười chơi có thể tiêu diệt nó.Nó có khả năng tạo khiên chắn đạn boom từ người chơi.
5 EnemyDefault
Là kẻ địch mà người chơi sẽ phải đối mặt trong game Nó có thể di chuyển, tấn công, vàngười chơi có thể tiêu diệt nó.
6 EnemyArtilery
Là đối tượng mà người chơi sẽphải đối mặt trong game Người chơi phải tiêu diệt nó Nó có khả năng bắn từ
khoảng cách cực xa.
7 Turret Là đối tượng mà người chơi sẽ
Trang 23có thể tạo ra khi chọn một số nhân vật trong game Nó có khả năng tấn công kẻ địch.
Là đối tượng mà người chơi cóthể tạo ra khi chọn một số nhân vật đặc biệt Nó đi theo bảo vệ người chơi và tấn côngkẻ địch.
Bảng 2.1: Danh sách Actor
III Danh Sách Usecase
Trang 24STTTên UsecaseMô tả1 Mở màn hình
3 Mở màn hình tạm
dừng(Pause Menu)
Khi đang chơi game, người dùng muốn tạm dừng thì nhấn phím P.
Ở Main Menu, người dùng nhấn Start trên màn hình để bắt đầu trải nghiệm game.
Khi người dùng muốn thoát game, nhấn “Quit” ở Main Menu.
6 Tiếp tục chơi
Khi đang tạm dừng game, người dùng tiếp tục chơi game bằng cách nhấn phím ESC hoặc nhấn “RESUME”.
7 Sử dụng kỹ năng Người chơi có thể triệu hội turret hoặc drone.
8 Điều khiển nhân vật
Người chơi dùng chuột để điều khiển nhân vật tránh né đạn, quái vật, tấn công kẻ địch và thu thập vật phẩm
Dò tìm kẻ địch đối với Drone hoặc Turret Dò tìm người chơiđối với những kẻ địch.
10 Tấn công người chơi Các kẻ địch tấn công người chơi thông qua bắn đạn
Trang 25thường, va chạm hoặc sử dụng kỹ năng
Kẻ địch di chuyển để né đạn và tấn công người chơi, tuần tra.
12 Nhận sát thương
Khi người chơi bị tấn công bởi kẻ địch hoặc kẻ địch bị tấn công bởi người chơi thì sẽ nhận một lượng sát thương.
13 Bị tiêu diệt Khi kẻ địch hoặc thiên thạch nhỏ hết máu sẽ bị tiêu diệt.Bảng 2.2: Danh sách Usecase
IV Đặc Tả Usecase
Trang 261 Mở màn hình chính(Main Menu)Tên Mở màn hình chính.
Mô tả
Người chơi bật file game hoặc có thể nhấn thoát khi đang mở màn hình tạm dừng để hiển thị màn hình chính.
n Hiển thị màn hình chính.Yêu cầu đặc
biệt Không có.Luồng cơ
Trường hợp mở game: bật file game exeTrường hợp đang chơi game:
- Mở màn hình tạm dừng.- Nhấn Thoát.
n Mở Main Menu hoặc Pause Menu.Postconditio
n Hiển thị một số thứ có thể điều chỉnh.Yêu cầu đặc
biệt Không có.Luồng cơ
- Người chơi mở Main Menu hoặc Pause Menu.- Mở màn hình tạm dừng.
- Nhấn cài đặt(Option).
Trang 27Luồng thay
thế Không có.
Bảng 2.4: Cài đặt
Trang 283 Mở màn hình tạm dừng(Pause Menu)Tên Mở màn hình tạm dừng.
Mô tả Khi đang chơi game, người chơi có thể tạm dừng
biệt Không có.Luồng cơ
Mô tả Người dùng bắt đầu game.
Trang 295 Thoát game
Mô tả Người dùng thoát khỏi chương trình.
Người chơi đang ở màn hình menu chính (Main Menu)
n Người chơi thoát khỏi chương trình thành công.Yêu cầu đặc
biệt Không có.Luồng cơ
- Người chơi đang ở màn hình menu chính- Nhấn vào nút Quit trên màn hình
Luồng thay thế
- Người chơi chuyển qua desktop hoặc một chương trình khác.
- Người chơi tắt game bằng cách Close Window từ TaskBar.
- Người chơi có thể tắt cưỡng bức bằng cách nhấn tổ hợp phím Alt + F4
Bảng 2.7: Thoát game
Trang 306 Tiếp tục chơi
Tên Tiếp tục chơi
Mô tả Khi đang tạm dừng game, người dùng tiếp tục
chơi game.
Người chơi đang ở màn hình tạm dừng (PauseMenu)
n Người chơi tiếp tục chơi game.Yêu cầu đặc
biệt Không có.Luồng cơ
- Người chơi đang trong game.- Người chơi chưa sử dụng kỹ năng.
Yêu cầu đặc
biệt Không có.Luồng cơ
Trang 318 Điều khiển nhân vật
Tên Điều khiển nhân vật
Mô tả Người chơi điều khiển nhân vật để né tránh đạn,
tiêu diệt kẻ địch, nhặt đồ và máu.
- Người chơi đang ở trong game.
- Người chơi sử dụng bàn phím để điều khiển nhân vật, dùng chuột để sử dụng vũ khí tấn côngkẻ địch
Luồng thay
thế Không có.
Bảng 2.10: Điều khiển nhân vật
Trang 32- Người chơi đang ở màn hình chơi game.- Kẻ địch sẽ dò tìm xem người chơi có ở trong vùng hoạt động của nó hay không, nếu có sẽ tấn công.
- Đối với Turret và Drone thì sẽ dò tìm xem kẻ địch có ở gần nó hay không, nếu có sẽ tấn công.
Luồng thay
Bảng 2.11: Dò tìm
10 Tấn công người chơi
Tên Tấn công người chơi
Mô tả Khi kẻ địch dò tìm được nhân vật, nó sẽ truy đuổi
tấn công người chơi.
n Đã dò tìm được nhân vật.Postconditio
Yêu cầu đặc
biệt Không cóLuồng cơ
- Kẻ địch đã và đang truy sát nhân vật.
- Nếu trong tầm bắn, kẻ địch sẽ nổ súng tấn côngnhân vật.
Luồng thay
Trang 33Bảng 2.12: Tấn công người chơi
Trang 3411 Di chuyển
Tên Di chuyển
Mô tả Kẻ dịch di chuyển để né đạn và tấn công người
chơi hoặc tuần tra.
- Người chơi đang trong game.
- Nếu kẻ địch không trong trạng thái truy sát người chơi, kẻ địch sẽ di chuyển, tuần tra trong tầm hoạt động của nó.
Kẻ địch, người chơi và Turret còn sống trong màn chơi.
Yêu cầu đặc
biệt Không cóLuồng cơ
- Kẻ địch va chạm với đạn hoặc kỹ năng do ngườichơi bắn ra hoặc do Turret hoặc Drone người chơitạo ra tấn công.
- Kẻ địch nhận sát thương
Luồng thay - Người chơi va chạm với đạn hoặc kỹ năng do kẻ
Trang 35thế địch bắn ra.
- Người chơi nhận sát thươngBảng 2.14: Nhận sát thương
Trang 3613 Bị tiêu diệt
Tên Bị tiêu diệt
Mô tả Khi kẻ địch hoặc Turret hết máu sẽ bị tiêu diệt.
Trang 37CHƯƠNG 3: THIẾT KẾ DỮ LIỆU
Trang 38CHƯƠNG 4: THIẾT KẾ CẤU TRÚC
I Vòng Lặp Game
Vòng lặp game theo quy trình như sau: người chơi nhấn nút start và bắt đầu tiến vào màn chơi 1, người chơi phải hoàn thành màn chơi nếu muốn chiến thắng Khi người chơi tiêu diệt kẻ địch sẽ có tỉlệ rơi ra các vật phẩm hoặc vũ khí.
Trang 39II Tiến Trình Game
Người chơi phải chiến đấu với những kẻ địch, né tránh các đòn tấn công, kỹ năng từ kẻ địch Người chơi ngày càng tiến vào các màn chơi cam go, khó khăn hơn.
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN
Hình 5.1 Giao diện menu chính
Hình 5.2 Giao diện menu tùy chỉnh
Trang 40Hình 5.3 Giao diện trong màn chơi
CHƯƠNG 6: CÀI ĐẶT
Tải file zip về, giải nén ra và bật file exe để thưởng thức trò chơi.
Trang 41 Không có nhiều độ khó khác nhau.
Game mới chỉ chơi được trên Windows 10. Không hỗ trợ đa ngôn ngữ.
Game chưa hỗ trợ nhiều người chơi chung.
Trang 42TÀI LIỆU THAM KHẢO
Tài liệu tiếng Anh:
https://awesometuts.com/blog/unity-2d-game-tutorial-5/ https://bergstrand-niklas.medium.com/setting-up-a-simple-
https://catlikecoding.com/unity/tutorials/tower-defense/enemies/?
https://docs.unity.com/
case-diagram-tutorial/
https://online.visual-paradigm.com/diagrams/tutorials/use- random-point-on-circle-edge-in-unity3d.html
https://www.loekvandenouweland.com/content/calculate- https://www.youtube.com/watch?v=hkaysu1Z-N8 https://www.youtube.com/watch?v=sZp8746MR1Y
explosion-32x32