Kể từ năm 2020, khi cả thế giới thực hiện biện pháp “lockdown”, hạn chế tối đa mọi sự gặp mặt trực tiếp đã vô tình mở ra cơ hội cho ngành công nghiệp Game tăng trưởng mạnh mẽ. Thị trường Game toàn cầu tạo ra mức doanh thu 159,3 tỷ USD vào năm 2020, tăng 9,3% so với cùng kỳ năm trước và dự kiến sẽ vượt mốc 200 tỷ USD vào năm 2025. Tất cả các phân khúc trò chơi điện tử đều chứng kiến sự gia tăng về mức độ tương tác và doanh thu. Trong đó, trò chơi trên thiết bị di động có mức tăng lớn nhất (tăng hơn 13.3% so với cùng kỳ của năm 2019). Cho đến thời điểm hiện tại, Game di động vẫn là chiếm thị phần lớn nhất trong ngành công nghiệp Game và trong tương lai khó có thể bị soán ngôi bởi các thị phần khác nhờ ưu điểm về sự tiện dụng, dễ chơi, dễ tiếp cận nhiều đối tượng người dùng bởi ngày nay, đa phần mọi người đều sử dụng smartphone và đặc biệt là chi phí chi trả cho các trò game mobile thấp hơn nhiều so với các thể loại Game console hay PC. Theo ước tính, năm 2020 có tổng cộng 2,7 tỷ người chơi Game trên toàn cầu. Tuổi thơ của mỗi người chúng ta thường gắn liền với những lần lén lút ba mẹ chơi game điện tử với đám bạn tinh nghịch. Nhắc đến game ngày xưa, sẽ rất thiếu sót nếu ta không kể Chicken Invaders Game bắn gà cực kỳ phổ biến với nội dung vui nhộn và lối chơi đơn giản. Với mục đích tạo ra một trò chơi giải trí nhẹ nhàng, nhóm đã xây dựng một game hoàn toàn mới mà vẫn giữ được sự lôi cuốn, phù hợp với mọi lứa tuổi. Hơn nữa các đối thủ cản trở trong game cũng đa dạng và khó nhằn hơn.
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
- -BÀI TẬP LỚN PHÁT TRIỂN ỨNG DỤNG GAME
Đề tài: Xây dựng game bắn máy bay Star Wars
Giáo viên: Trịnh Bá Quý Nhóm số: 21
Nhóm sinh viên thực hiện:
Trang 2BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
- -BÀI TẬP LỚN PHÁT TRIỂN ỨNG DỤNG GAME
Đề tài: Xây dựng game bắn máy bay Star Wars
Giáo viên: Trịnh Bá Quý Nhóm số: 21
Nhóm sinh viên thực hiện:
Trang 3Mục lục
LỜI NÓI ĐẦU 2
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 4
1.1 Đặt vấn đề, giới thiệu đề tài 4
1.2 Phạm vi đề tài 4
1.3 Phương pháp nghiên cứu và hướng giải quyết 5
1.4 Kịch bản 5
1.5 Giải pháp thực hiện 7
1.5.1 Giới thiệu về phần mềm Unity 7
Hình 1.1 Giao diện ban đầu Unity Hub 10
Hình 1.2 Lựa chọn version Unity 10
Hình 1.3 Lựa chọn các gói cài đặt cùng Unity 11
Hình 1.4 Sau khi cài đặt thành công 11
Hình 1.5 Giao diện chính của Unity (2020.3.25f1) 12
Hình 1 6 Tạo mới project Unity 12
Hình 1.7 Giao diện folder làm việc 12
1.5.2 Giới thiệu về phần mềm Visual Studio 12
Hình 1.8 Thư mục chưa file cài đặt (file exe) 16
Hình 1.9 Quá trình cài đặt Visual Studio Installer 16
Hình 1.10 Lựa chọn các gói hỗ trợ 17
Hình 1.11 Giao diện tổng quan Visual Studio 2019 17
Hình 1.12 Thanh công cụ 17
Hình 1.13 Nơi tổ chức sắp xếp hệ thống lớp, tập tin, thư viện 18
Hình 1.14 Nơi chỉnh sửa code 18
CHƯƠNG II: THIẾT KẾ GAME 19
2.1 Ý tưởng về game 19
2.1.1 Mô tả 19
2.1.2 Điểm độc đáo 19
2.1.3 Thể loại game 19
2.1.4 Thị trường 19
2.1.5 Yêu cầu về phần cứng 20
2.1.6 Bản quyền trò chơi khi phát hành 20
2.2 Đề xuất trò chơi 20
2.2.1 Câu chuyện 20
2.2.2 Game play 20
2.2.3 Thị trường 21
2.2.4 Lợi nhuận 21
Trang 42.3 Kỹ thuật thực hiện 22
2.3.1 Kỹ thuật tạo chuyển động chiến cơ 22
Hình 2.1 Các component và thông số của GameObject Player 23
Hình 2.2 Thiết lập di chuyển cho GameObject Player 24
Hình 2.3 Thiết lập hành động bắn laser cho GameObject Player 24
Hình 2.4 Nhân bản laser 24
2.3.2 Kỹ thuật tạo chuyển động Enemy (quân địch) 25
Hình 2.5 Tạo một EnemyConfig 25
Hình 2.6 Thuộc tính và thông số của EnemyConfig 26
2.3.3 Kỹ thuật EnemySpawner 26
Hình 2.7 Kỹ thuật EnemySpawner 26
2.3.4 Kỹ thuật chuyển các Wave (màn chơi) 26
Hình 2.8 Tạo một WaveConfig 27
Hình 2.9 Kỹ thuật chuyển các WaveConfig (màn chơi) 27
CHƯƠNG 3: KẾT QUẢ ĐẠT ĐƯỢC 29
3.1 Hướng dẫn chơi 29
Hình 3.1 Giao diện bắt đầu trò chơi 29
Hình 3.2 Wave đầu tiên của game 29
Hình 3.3 Chiến cơ tấn công với đạn Laser cấp 1 30
Hình 3.4 Kẻ địch không ngừng tấn công Chiến cơ của người chơi 30
Hình 3.5 Item hồi phục và nâng cấp đạn ngẫu nhiên rơi ra khi tiêu diệt địch 31
Hình 3.6 Người chơi bị kẻ địch tiêu diệt và kết thúc game 32
3.2 Đăng tải ứng dụng 32
3.3 Đánh giá kết quả 32
3.4 Hướng phát triển 32
TÀI LIỆU THAM KHẢO 33
KẾT LUẬN 34
Trang 5LỜI NÓI ĐẦU
Trong thời buổi công nghệ như hiện nay, ngành công nghiệp game pháttriển với tốc độ vô cùng nhanh chóng Tiềm năng của ngành cũng như địnhhướng phát triển lâu dài cũng tăng lên theo cấp số nhân, chính vì thế gamedesign ngày càng có được sự quan tâm của rất nhiều bạn trẻ đầy tài năng vànhiệt huyết
Trong bài tập lớn, chúng em mang đến một game phiêu lưu bắn máy bay2D với cốt truyện lôi cuốn, âm thanh sôi động cùng đồ họa sống động mang đếncho người chơi những trải nghiệm thú vị trong những phút giây thư giãn
Chúng em xin cảm ơn thầy Trịnh Bá Quý đã hướng dẫn chúng em trongquá trình thiết kế và xây dựng trò chơi Chương trình và báo cáo của chúng emchưa được chuyên nghiệp, hoàn chỉnh nhất, còn có những thiếu xót Vì thếchúng em rất mong thầy và mọi người có thể góp ý để nhóm em xây dựng đạtkết quả tốt nhất có thể
Nhóm sinh viên thực hiện
Trang 6DANH SÁCH NHÓM VÀ PHÂN CÔNG
Với phân công công việc như sau:
STT Công việc Nội dung
Người thực hiện
Thời gian (ngày)
1
Tìm hiểu
về phầnmềm
Tìm hiểu về phần mềm
Unity
Nguyễn VănMạnh, PhạmVăn Tiến
3 Thiết kế
game
Tự vẽ/thu thập/… tạo hìnhnhân vật, môi trường, …
Nguyễn HồngPhong, PhạmVăn Tiến
7
4 Lập trình
game
Sử dụng phần mềm unity vàhiện thực hóa, kịch bản, thiết
kế
Nguyễn VănMạnh, PhạmVăn Tiến
14
5
Upload lên
chợ ứngdụng
Upload lên chợ Play Store,chụp hình ảnh kết quả (sốlượt tải, đánh giá, …)
Nguyễn HồngPhong, Nguyễn
Thời gian làm: 6 tuần từ 22/11/2021 đến 2/1/2022
Trang 7CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Đặt vấn đề, giới thiệu đề tài
Kể từ năm 2020, khi cả thế giới thực hiện biện pháp “lockdown”, hạn chếtối đa mọi sự gặp mặt trực tiếp đã vô tình mở ra cơ hội cho ngành công nghiệpGame tăng trưởng mạnh mẽ Thị trường Game toàn cầu tạo ra mức doanh thu159,3 tỷ USD vào năm 2020, tăng 9,3% so với cùng kỳ năm trước và dự kiến sẽvượt mốc 200 tỷ USD vào năm 2025 Tất cả các phân khúc trò chơi điện tử đềuchứng kiến sự gia tăng về mức độ tương tác và doanh thu Trong đó, trò chơitrên thiết bị di động có mức tăng lớn nhất (tăng hơn 13.3% so với cùng kỳ củanăm 2019) Cho đến thời điểm hiện tại, Game di động vẫn là chiếm thị phần lớnnhất trong ngành công nghiệp Game và trong tương lai khó có thể bị "soán ngôi"bởi các thị phần khác nhờ ưu điểm về sự tiện dụng, dễ chơi, dễ tiếp cận nhiềuđối tượng người dùng bởi ngày nay, đa phần mọi người đều sử dụng smartphone
và đặc biệt là chi phí chi trả cho các trò game mobile thấp hơn nhiều so với cácthể loại Game console hay PC Theo ước tính, năm 2020 có tổng cộng 2,7 tỷngười chơi Game trên toàn cầu
Tuổi thơ của mỗi người chúng ta thường gắn liền với những lần lén lút ba
mẹ chơi game điện tử với đám bạn tinh nghịch Nhắc đến game ngày xưa, sẽ rấtthiếu sót nếu ta không kể Chicken Invaders - Game bắn gà cực kỳ phổ biến vớinội dung vui nhộn và lối chơi đơn giản Với mục đích tạo ra một trò chơi giải trínhẹ nhàng, nhóm đã xây dựng một game hoàn toàn mới mà vẫn giữ được sự lôi
cuốn, phù hợp với mọi lứa tuổi Hơn nữa các đối thủ cản trở trong game cũng đa
dạng và khó nhằn hơn
1.2 Phạm vi đề tài
Phạm vi không gian: Dựa theo thống kê số liệu của các tổ chức lớn trên thế giới
về lĩnh vực phát triển game và nhu cầu thị trường hiện hữu cuộc sống xung
quanh, nhóm đã lên ý tưởng và xây dựng theo thể loại Game phiêu lưu bắn máy
bay 2D
Phạm vi thời gian: Bài tập lớn được thực hiện trong 2 tháng từ ngày 22/11/2021
đến 2/1/2022
Trang 8Phạm vi nội dung: Nhóm tập trung nghiên cứu cách xây dựng, thiết kế game và
lập trình game 2D trong Unity
1.3 Phương pháp nghiên cứu và hướng giải quyết
Khóa học Complete C# Unity Game Developer 2D (2018)
archived-course/learn/lecture/28655904
https://viblo.asia/p/gioi-thieu-ve-unity-engine-game-engine-pho-bien-nhat-hien-Tìm hiểu và cài đặt Visual Studio 2019:
dung-visual-studio-2019
Kỹ thuật tạo chuyển động chiến cơ
Kỹ thuật tạo chuyển động Enemy (quân địch)
Trang 9Khi HP = 0, màn hình game over sẽ hiện ra
Khi đang chơi, kích vào nút “Pause” trên màn hình
Trang 101.5 Giải pháp thực hiện
Trong đề tài kết hợp sử dụng các phần mềm sau để thực hiện:
- Phần mềm Unity version 2020.3.25f1
- Phần mềm Visual Studio 2019 version 16.11.8
1.5.1 Giới thiệu về phần mềm Unity
1.5.1.1 Lịch sử
Unity là một game engine đa nền tảng được phát triển bởi UnityTechnologies, mà chủ yếu để phát triển video game cho máy tính, consoles vàđiện thoại Lần đầu tiên nó được công bố chạy trên hệ điều hành OS X, tạiApple's Worldwide Developers Conference vào năm 2005, đến nay đã mở rộng
có thể cộng tác dễ dàng hơn Nó bao gồm một Networking Layer để các nhàphát triển tạo game nhiều người chơi dựa trên User Datagram Protocol, cung cấpNetwork Address Translation, State Synchronization, và Remote ProcedureCalls
Trang 11Khi Apple ra mắt App Store của họ năm 2008, Unity nhanh chóng bổsung các hỗ trợ cho iPhone Trong vài năm, công cụ này đã không được thửnghiệm trên iPhone và nó trở nên nổi tiếng với các nhà phát triển trò chơi iOS.
Unity 3.0 ra mắt tháng 9 năm 2010 với tính năng mở rộng các tính năng
đồ họa của engine cho máy tính để bàn và video game consoles INgoài hỗ trợAndroid, Unity 3 còn có tính năng tích hợp công cụ Beast Lightmap củaIlluminate Labs, deferred rendering, một built-in tree editor, kết xuất phông chữgốc, ánh xạ UV tự động và bộ lọc âm thanh, cùng nhiều thứ khác
Năm 2012, VentureBeat phát biểu rằng "rất ít công ty đóng góp vào sựphát triển trò chơi độc lập như Unity Technologies hơn 1.3 triệu người dùngđang sử dụng Unity để phát triển game trên iOS, Android, máy chơi game, PC,
và trò chơi trên web Unity sẽ mở ra thời kỳ phát triển công cụ phát triển tròchơi đa nền tảng." Một khaỏ sát vào tháng 5/2012 của tạp chí Game Developer
đã chỉ ra Unity là game engine hàng đầu dành cho nền tảng di động for mobileplatforms Tháng 11 năm 2012, Unity Technologies phát hành Unity 4.0 Phiênbản này bổ sung các hỗ trợ cho DirectX 11 và Adobe Flash, các công cụ hoạtảnh mới có tên Mecanim, và quyền truy cập vào bản xem trước Linux
Đối với Apple Design Awards tại cuộc triển lãm thương mại WWDC
2006, Apple, Inc đã gọi Unity là Best Use of Mac OS X Graphics (tạm dịch:Ứng dụng tốt nhất cho đồ họa trên nền tảng Mac OS X), một năm sau khi Unity
ra mắt tại cùng một triển lãm thương mại Unity Technologies cho biết đây là lầnđầu tiên một công cụ phát triển game được trao giải thưởng này Một cuộc khảosát tháng 5 năm 2012 của tạp chí Game Developer đã khẳng định Unity là công
cụ phát triển trò chơi hàng đầu trên di động Vào tháng 7/2014, Unity đã đạt giải
"Best Engine" tại liên hoan trao giải thưởng công nghệ hàng năm của Anh
Unity 5 cũng nhận được những lời khen tương tự, với The Verge đã nóirằng "Unity giúp việc phát triển game trở nên dễ dàng và phổ biến Unity 5 làmột biến tiến đáng mong đợi trong tương lai."
Sau khi phát hành Unity 5, Unity Technologies bị chỉ trích rằng khổilượng lớn các game phát hành trên Steam là của các nhà phát triển thiếu kinhnghiệm
1.5.1.2 Các phiên bản
Trang 12- Vào tháng 12 năm 2016, Unity Technologies thông báo họ sẽ thay đổi hệ thống
số phiên bản trên Unity từ định theo thứ tự sang năm phát hành để sắp xếp cácphiên bản với nhịp cập nhật thường xuyên hơn Một số phiên bản:
Trang 131.5.1.3 Cách cài đặt
Cài đặt Unity Hub
Liên kết tải file cài đặt: https://unity.com/download
Cài đặt Unity Hub và lựa chọn phiên bản Unity để cài đặt
Hình 1.1 Giao diện ban đầu Unity Hub
Click Add và lựa chọn version Unity phù hợp
Hình 1.2 Lựa chọn version Unity
Tùy chọn các gói cài đặt cùn Unity (kiểm tra dung lượng ổ cứng, thường là ổ C)
Để sử dụng và phát triển game Unity cần lựa chọn các gói sau đây:
Trang 14Hình 1.3 Lựa chọn các gói cài đặt cùng Unity
Bấm Next và đợi quá trình cài đặt hoàn tất (Phụ thuộc vào phần cứng của máy
tính và đường truyền mạng nên sẽ ảnh hướng tới tốc độ cài Unity)
Hình 1.4 Sau khi cài đặt thành công
Trang 15Hình 1.5 Giao diện chính của Unity (2020.3.25f1)
Hình 1 6 Tạo mới project Unity
Hình 1.7 Giao diện folder làm việc
1.5.2 Giới thiệu về phần mềm Visual Studio
1.5.2.1 Lịch sử
Visual Studio là (IDE – Integrated Development Environment) một bộcông cụ phát triển phần mềm do Microsoft phát triển Visual Studio cũng là một
Trang 16phần mềm được sử dụng bởi các lập trình viên để xây dựng nên các sản phẩmphần mềm.
Phiên bản đầu tiên của Visual Studio được Microsoft phát hành vào năm
1997 với hai phiên bản là Professionalvà Enterprise Tính đến thời điểm hiện tại,Visual Studio đã trải qua nhiều thời kì phát triển và đã phát hành những bảnVisual Studio như Visual Studio 2005, VS 2008, VS 2010, VS 2012, VS2013….Và phiên bản mới nhất của Visual Studio là phiên bản Visual Studio
2022 phát hành chính thức vào tháng 8 năm 2022 Với mỗi phiên bản phát hình
có nhiều công nghệ và tính năng mới mẽ được tích hợp
1.5.2.2 Các phiên bản
Visual Studio 97
Microsoft lần đầu ra mắt Visual Studio vào năm 1997 và tích hợp nhiềucông cụ phát triển đi kèm Visual Studio 97 có 2 phiên bản là Professional &Enterprise
Trong Visual studio này có chứa các ngôn ngữ lập trình sau:
- Visual Basic 5.0 và Visual C++ 5.0 dành cho Hệ điều hành Windows
- Visual J++1.1 dành cho Java
- Visual FoxPro 5.0 lập trình cơ sở dữ liệu
-Visual InterDev để thiết kế web động như ASP, hỗ trợ cả 2 ngôn ngữ làJAVASCRIPT và VBSCRIPT
Trang 17-Visual Studio 97 được Microsoft thử nghiệm việc sử dụng cùng một môitrường phát triển cho nhiều ngôn ngữ: Visual C++, Visual J++, InterDev, vàMSDN Library Developer Studio) sử dụng chung một môi trường phát triểnWinAPI, trong khi Visual Basic và Visual FoxPro lại phát triển theo một hướngriêng lẻ so với các ngôn ngữ trên.
Visual Studio 2019
Visual Studio 2019 sẽ mang lại cho bạn trải nghiệm với các công cụ vàdịch vụ tốt nhất phù hợp cho mọi nhà điều hành phát triển, mọi ứng dụng và nềntảng Dù cho bạn là người đã từng dùng qua hay lần đầu tiên đến với VisualStudio thì chắc bạn cũng sẽ yêu thích với những tính năng trong phiên bản hoàntoàn mới này
Visual Studio Preview còn cung cấp đầy đủ Cho phép bạn xem trước bảndemo các tính năng và cải tiến hiện đại nhất chưa từng có trong phiên bản pháthành chính nào Bằng cách xem thử trước, bạn có thể tận dụng các bản dựng vàcập nhật mới thường xuyên
Các tính năng đặc biệt của Visual Studio 2019:
Live Share: Đây là tính năng được cài đặt mặc định, hỗ trợ các thành viêntrong nhóm có thể thực hiện thao tác theo thời gian, bao gồm chia sẻ ứng dụng
Trang 18desktop, kiểm soát sự thay đổi mã nguồn và comment code Tính năng LiveCode này phát huy hữu hiệu trong các trường hợp lập trình theo cặp, đánh giácode, giảng bài, thuyết trình cho sinh viên và đồng nghiệp, thậm chí là lập trìnhteam trong các cuộc thi hackathon.UI và UX đều được cải tiến tinh tế hơn trước,
ví dụ như các icon biểu tượng mới, chủ đề đa dạng hơn và thanh menu đượcchiết lại trông thon gọn bắt mắt.Thanh tìm kiếm Quick Launch nơi các coder –lập trình viên có thể trải nghiệm và tìm kiếm mọi thứ chạy nhanh hơn : từ cácđoạn mã, cài đặt, thậm chí với cả những từ gõ sai chính tả.Visual StudioIntelliCode là một phần được mở rộng thêm bằng cách sử dụng trí tuệ nhân tạo(AI) giúp tăng cường nỗ lực phát triển phần mềm IntelliCode đào tạo trên 2.000
dự án nguồn mở trên GitHub, mỗi dự án có hơn 100 sao để tạo ra các đề xuấtmới.Chỉ dẫn các nhà phát triển tuân thủ theo các mô hình và phong cách củariêng họ Tìm ra các vấn đề về code khó phát hiện Đưa ra đánh giá mã tập trungbằng cách thu hút sự chú ý vào các khu vực quan trọng nhấtCải thiện hiệu suấtDebuggingCải tiến cho Snapshot Debugger để nhằm vào Azure KubernetesService (AKS) và Virtual Machine Scale Sets (VMSS)
1.5.2.3 Cách cài đặt
Cấu hình tối thiểu Visual Studio 2019
Bộ xử lý CPU 1,8 GHz hoặc có thể nhanh hơn càng tốt.RAM tối thiểu 2 GB;Khuyến nghị RAM 8 GB (tối thiểu 2,5 GB nếu chạy trên máy ảo)Dung lượng ổcứng: Tối thiểu 800 MB đến 210 GB dung lượng trống, còn tùy thuộc vào cáctính năng được cài đặt; thông thường cài đặt cần khoảng 20-50 GB dung lượngtrống.Tốc độ ổ cứng: để cải thiện hiệu suất, hãy cài đặt Windows và VisualStudio trên ổ đĩa trạng thái rắn (ổ SSD)
Hệ điều hành: Windows 10 version 1703 or higher: Home, Professional,Education, and Enterprise (LTSC and S are not supported) Windows Server2019: Standard and DatacenterWindows Server 2016: Standard andDatacenterWindows 8.1 (with Update 2919355): Core, Professional, andEnterpriseWindows Server 2012 R2 (with Update 2919355): Essentials,Standard, DatacenterWindows 7 SP1 (with latest Windows Updates): HomePremium, Professional, Enterprise, Ultimate