NGHIÊN CỨU VÀ PHÁT TRIỂN GAME HERO JUMP TRÊN ANDROID • Ngôn ngữ lập trình C và công cụ Unity • Game Flappy Bird từ đó xây dựng game Hero Jump như một phiên bản cải tiến. trau đồi kĩ năng làm game và cho ra đời một tựa game hay hứng thú phù hợp với nhiều đối tượng
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC
LẬP TRÌNH GAME ANDROID
Đề tài:
NGHIÊN CỨU VÀ PHÁT TRIỂN GAME HERO JUMP
Giảng viên hướng dẫn: ThS
Sinh viên thực hiện:
Nhóm 10
Hà Nội, 12-2022
Trang 2LỜI NÓI ĐẦU
Xã hội ngày càng phát triển, Trong thời đại công nghệ như hiện nay, sản phẩmcông nghệ ngày càng chịu nhiều sự đánh giá khắt khe từ phía người dùng, đặc biệt làcác sản phẩm Game nhận được rất nhiều sự đánh giá từ các Game Thủ và những ngườichơi bình thường Ngành công nghiệp Game hiện nay có thể nói là bùng nổ, với tốc độphát triển chóng mặt, rất nhiều Game hay và hấp dẫn đã được ra đời trong thời gianqua Phía sau những Game phát triển và nổi tiếng như vậy đều cần có một ngôn ngữ đủmạnh, có đầy đủ các chức năng giúp ích cho việc lập trình game
Hiện nay, tại bất cứ nơi đâu ta cũng dễ dàng bắt gặp hình ảnh từ mọi lứa tuổi vàngành nghề giải trí bằng những Game Vì vậy, nhóm chúng em đã chọn đề tài
“Nghiên cứu và phát triển game Hero Jump” Do hạn chế về mặt kiến thức nên khôngthể tránh khỏi sai sót trong quá trình làm báo cáo, nhóm chúng em rất mong được sựgiúp đỡ và góp ý của thầy và các bạn
Chúng em xin chân thành cảm ơn!
Trang 3LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn sâu sắc nhất đến thầy ThS Bùi Văn Công đãhướng dẫn, định hướng cho nhóm chúng em, đồng thời, cũng đã cung cấp nhiều tàiliệu và tạo điều kiện thuận lợi trong suốt quá trình học tập và nghiên cứu để em có thểhoàn thành bài tập lớn này
Nhóm chúng em xin chân thành cảm ơn đến các thầy, cô trong Khoa Công nghệthông tin, Trường Học Viện Kỹ Thuật Mật Mã cùng với ban lãnh đạo nhà trường đãnhiệt tình giảng dạy, cung cấp những trang thiết bị tốt nhất và truyền đạt những kiếnthức, kinh nghiệm quý giá trong suốt quá trình học tập rèn luyện tại trường
Chúng em rất mong nhận được những sự góp ý quý báu của thầy cô, bạn bè Một lần nữa xin gửi lời cảm ơn chân thành và sâu sắc
Trang 4MỤC LỤC
DANH MỤC HÌNH VẼ i
DANH MỤC BẢNG BIỂU ii
CHƯƠNG 1 GIỚI THIỆU VỀ GAME 1
1.1 Khái niệm về game 1
1.2 Tiêu chí của game 1
1.2.1 Luật chơi 2
1.2.2 Mục tiêu 2
1.2.3 Tiến trình của game ở mỗi lần chơi 2
1.2.4 Cạnh tranh 3
1.3 Các bước để phát triển một game 3
1.4 Tổng kết 3
CHƯƠNG 2 ỨNG DỤNG 4
2.1 Tổng quan ứng dụng 4
2.1.1 Lý do chọn đề tài 4
2.1.2 Đối tượng nghiên cứu 4
2.1.3 Mục tiêu nghiên cứu 4
2.2 Ý tưởng hệ thống 4
2.2.1 Lên ý tưởng 4
2.2.2 Phát triển ý tưởng 5
2.3 Đặc tả yêu cầu 6
2.3.1 Biểu đồ Usecase 6
2.3.2 Mô tả tổng quan 7
2.3.3 Đặc tả yêu cầu 7
2.4 Thiết kế đồ họa 13
2.4.1 Background 14
2.4.2 Vật cản 14
2.4.3 Nhân vật chính 14
2.4.4 Nhân vật phụ 15
2.5 Code 15
2.5.1 Tạo dựng hình ảnh nhân vật chính và hệ thống vật cản 15
2.5.2 Xử lý ca chạm trong game 15
Trang 52.5.3 Tạo chuyển động cho nhân vật chính 15
2.5.4 Tạo hệ thống tính điểm cho game 15
2.5.5 Tạo cửa sổ kết thúc 15
2.6 Bổ sung âm thanh 15
2.7 Hoàn thiện 15
CHƯƠNG 3 THỰC NGHIỆM GAME FLAPPY BIRD 16
3.1 Cấu hình máy tối thiểu 16
3.2 Đường dẫn dữ liệu game 16
3.3 Một số file quan trọng 16
3.4 Thực nghiệm ( hướng dẫn cài đặt và chơi game) 16
KẾT LUẬN 17
Kết luận chung 17
Hướng phát triển 17
TÀI LIỆU THAM KHẢO 18
DANH MỤC HÌNH V
Trang 6Hình 1.1 Ngôn ngữ C# 3
Hình 1.2 Unity 4
Hình 2.1 Sơ đồ Usecase tổng quát 8
Hình 2.2 Mô tả tổng quan Game 9
Hình 2.3 Biểu đồ hoạt động chức năng chơi game 13
Hình 2.4 Biểu đồ hoạt động chức năng lưu điểm 14
Hình 2.5 Biểu đồ hoạt động chức năng xem cách chơi 14
Hình 2.6 Biểu đồ hoạt động chức năng chọn nhân vật 14
Hình 2.7 Biểu đồ hoạt động chức năng xem điểm 15
Hình 2.8 Biểu đồ hoạt động chức năng chơi lại 15
Hình 2.9 Backgroud 16
Hình 2.10 Vật cản 17
Hình 2.11 Nhân vật chính Hero 17
Hình 2.12 Nhân vật phụ 18
Hình 3.1 Cấu trúc các mục quan trọng 25
Hình 3.2 Hình ảnh thực nghiệm vào game 25
Hình 3.3 Hình ảnh thực nghiệm chọn nhận vật và cài đặt 26
Hình 3.4 Hình ảnh thực nghiệm chơi game 26
Hình 3.5 Hình ảnh thực nghiệm hướng dẫn chơi game 27
Hình 3.6 Hình ảnh thực nghiệm cài đặt 27
Hình 3.7 Hình ảnh thực nghiệm bảng xếp hạng 28
Hình 3.8 Hình ảnh thực nghiệm kết thúc lượt chơi 28
Trang 7DANH MỤC BẢNG BIỂU
Bảng 2 1 Đặc tả yêu cầu vào trò chơi 9
Bảng 2 2 Đặc tả yêu cầu Hướng dẫn 10
Bảng 2 3 Đặc tả yêu cầu Xếp hạng 10
Bảng 2 4 Đặc tả yêu cầu chuyển sang chức năng chơi 10
Bảng 2 5 Đặc tả yêu cầu chơi 11
Bảng 2 6 Đặc tả yêu cầu cài đặt 11
Bảng 2 7 Đặc tả yêu cầu kết thúc 12
Bảng 2 8 Đặc tả yêu cầu chơi lại 12
Bảng 2 9 Đặc tả yêu cầu lưu thành tích 12
Trang 8CHƯƠNG 1
CHƯƠNG 2 GIỚI THIỆU VỀ GAME
2.1 Khái niệm về game
Video game hay còn được gọi tắt là game, là một dạng trò chơi điện tử và tươngtác với người dùng thông qua một giao diện để hiển thị hình ảnh (video), nó có thể là:màn hình máy vi tính, màn hình tivi, kính thực tế ảo hay cũng có thể là các máy chơigame thông dụng khác có kích cỡ từ chiếc máy tính đồ sộ cho đến những thiết bị nhỏgọn cầm tay Trong đó các thiết bị đầu vào sử dụng để thao tác trong game được gọi làgame controller hay thiết bị cầm điều khiển và sẽ có sự thay đổi tùy theo hệ máy.Lấy một ví dụ cụ thể: một thiết bị game controller chuyên dụng có khi chỉ cần có mộtnút và một cần là có thể điều khiển được tất cả các chức năng trong game, trong khinhững loại khác lại có hàng tá các nút bấm khác nhau và có hơn một cần điều khiển.Bên cạnh các thiết bị tay cầm điều khiển game, thì đối với dòng game cho máy tính thì
để có thể chơi được, người dùng bắt buộc phải có thêm sự hỗ trợ từ chuột và bàn phím
Có khá nhiều cách để các video game có thể tương tác với người dùng của mình, trong
đó phổ biến vẫn là âm thanh và sử dụng các thiết bị tái tạo âm thanh, nó có teher là tainghe và loa, ngoài ra nó cũng có những phản hồi khác để báo động cho người chơithông qua các thiết bị ngoại vi có chức năng cảm ứng, có thể kể đến như: công nghệtạo chức năng rung phản hồi/cảnh báo cho tây cầm chơi game hay điện thoại di động
2.2 Tiêu chí của game
Cũng giống như các trò chơi thông thường khác, game cũng được xây dựng dựa trên
cơ sở của những tiêu chí chung, trong đó bao gồm các tiêu chí như sau:
2.2.1 Luật chơi
Trong mọi trường hợp luật chơi chính là những thảo luận trước đó giữa người dùng vàcác chủ admin trước khi bắt đầu vào cuộc chơi Mỗi game đều có luật chơi khác nhau
Trang 9Mọi thứ nếu hoạt động không nằm trong luật chơi thì cũng đồng nghĩa nó cũng khôngđược công nhận trong game đó Bởi thể mà luật chơi cũng được hiểu như linh hồn vàtrái tim của game vậy.
2.2.2 Mục tiêu
Mục tiêu trong game sẽ được chia thành 2 mục tiêu chính là điều kiện để người thắnghay yêu cầu và chiến thuật để người dùng thắng game đó Ví dụ dễ hình dùng nhất là :Trong game cờ vua, điều kiện để người chơi dành chiến thắng chính là ăn được quânvua của đối phương Thế nhưng để có thể đạt được điều kiện này thì người chơi thìngười chơi phải tính toán ở từng nước đi và mục tiêu của game ở đây chính là chiếnthuật, mà người chơi cần phải thực hiện một cách khôn khéo mới có thể dành chiếnthắng
Trong hàng ngàn các game khác nhau, thì chỉ có một số lượng nhỏ mục tiêu game Nóimột cách dễ hiểu hơn thì nó có nghĩa là hầu hết các game hiện nay đều có một mụctiêu như nhau, thường thì ban đầu điều này sẽ khiến nhiều người khá bất ngờ, thếnhưng khi nhìn nhận lại một cách kỹ càng thì mọi game đều phải có kẻ thua ,ngườithắng và mục tiêu của game luôn phải là có thể đo lường, nhưng vẫn phải tương đốiđơn giản và được diễn đạt một cách dễ hiểu trong game
2.2.3 Tiến trình của game ở mỗi lần chơi
Đây là một trong những thuộc tính riêng biệt và chỉ có ở game Có thể những hoạtđộng khác như: xem phim, đọc báo, nghe nhạc,… có thể được lặp đi lặp lại ở bất cứthời điểm nào và tiến trình của nó cũng vì thế mà chẳng có gì thay đổi Thế nhưng vớigame thì lại hoàn toán khác, bạn có thể chơi game vô số lần nhưng chắc chắn tiến trìnhcủa mỗi lần chơi không bao giờ giống nhau, nó luôn được thay đổi một cách bí ẩn vàchẳng ai có thể đoán trước được phần thắng thuộc về ai Đây chính là một trong nhữngđặc điểm khiến game trở nên thú vị và dễ dàng thu hút người dùng hơn so với nhữngphương tiện giải trí khác
2.2.4 Cạnh tranh
Ở mỗi game, sự cạnh tranh lại có những cách thể hiện khác nhau, có thể là nhữngngười chơi phải cạnh tranh trong một game, có người thua và người thắng Hay thậmchí sự cạnh tranh có thể xuất hiện từ ngay cả với những người cùng trong một team.Trường hợp này, những người chơi sẽ phải cùng đấu tranh chống lại một tình huống đãđược định hướng từ trước đó
Trang 102.2.5 Các bước để phát triển một game
Để phát triển một game cần trải qua 6 giai đoạn: Lên ý tưởng, thiết kế đồ họa, code, bổ sung âm thanh, hoàn thiện và quảng cáo Để cụ thể hơn chúng em xin phép được nói rõ phần này trong chương sau.
2.3 Giới thiệu về ngôn ngữ và framework sử dụng
2.3.1 Giới thiệu chung về C#
C Sharp (C#) là ngôn ngữ lập trình hướng đối tượng mạnh mẽ và đa năng Được pháttriển bởi Microsoft vào năm 2000 Microsoft phát triển C# dựa trên C++ và Java và CSharp cũng được xem là ngôn ngữ cân bằng giữa C++, Visual Basic, Delphi và Java
Hình 1.1 Ngôn ngữ C#
Trong thế giới game, các developer thường ưa thích việc sử dụng ngôn ngữ lập trình CSharp (C#) Ngôn ngữ này đặc biệt mạnh mẽ trong việc xây dựng các trò chơi “hot”hiện nay
C# được sử dụng rộng rãi cho tạo game trên công cụ game Unity – công cụ game phổbiến nhất hiện nay Hơn một phần ba số trò chơi thuộc hang top game đều được tạobởi Unity và có khoảng 770 triệu người chơi trên thế giới đang sử dụng các game đượctạo bằng công cụ Unity Unity cũng được sử dụng cho công nghệ VR (công nghệ thực
tế ảo), trong đó, 90% tất cả Samsung Gear và 53% tất cả các trò chơi Oculus Rift VRđều được phát triển trên Unity
Trang 11C# là một công cụ rất phổ biến để tạo các ứng dụng dạng này, và do đó, là một lựachọn tuyệt vời cho bất kỳ lập trình viên nào muốn gia nhập ngành công nghiệp pháttriển trò chơi hay bất kỳ ai quan tâm đến công nghệ thực tế ảo.
2.3.2 Giới thiệu chung về Unity
2.3.2.1 Unity là gì?
Unity là một “cross- flatform game engine” tạm hiểu là công cụ phát triển game đa nềntảng được phát triển bởi Unity Technologies Game engine này được sử dụng để pháttrển game trên PC, consoles, thiết bị di động và trên websites
Hình 1.2 Unity
2.3.2.2 Quá trình phát triển Unity
Ra mắt đầu tiên vào năm 2005 tại sự kiện Apple’s Worldwide Developer Conferencebởi nhà sáng lập David Helgason, trải qua hơn 12 năm phát triển, nay Unity đã cóversion 5.5 hoàn thiện hơn về rất nhiều mặt Tháng 5-2012 theo cuộc khảo sát GameDeveloper Megazine được công nhận là Game engine tốt nhất cho mobile Năm 2014Unity thắng giải “Best Engine” tại giải UK’s annual Develop Industry Exellence
2.3.2.3 Tính năng cơ bản của Unity
Unity hỗ trợ mạnh mẽ rất nhiều tính năng, nổi bật là:
Unity tạo giao diện UI của game như textbox, drop bar…
Hiển thị các mô hình 2D, 3D – hệ thống vật lý 3D, 2D
Networking: hỗ trợ tạo game cho phép nhiều người chơi tham gia cùng một thờiđiểm
Trang 12 Hỗ trợ nền tảng đặc biệt mới như Virtual reality (VR) – thực tế ảo vàAugmented reality (AR) – thực tế tăng cường.
AI – hỗ trợ bot trong màn hình game và package tạo nên bot trong game
Hỗ trợ hiển thị ngôn ngữ bằng nhiều font chữ đặc biệt
Trong tất cả số tính năng cơ bản của Unity, giao diện ứng dụng Editor được đề caohơn cả Unity Editor, với nhiều công cụ giúp hỗ trợ tốt các đầu việc phát triển gamegồm tạo ra mô hình 3D (ánh sáng, vật lý), viết Script… chỉ được thực hiện bằng thaotác đơn giản là kéo và thả hình ảnh Cũng chính nhờ vào tính năng này mà Unity đã hỗtrợ tốt cho những vị trí khác trong game phải kể đến là Game Designer
2.4 Tổng kết
Tổng kết chương 1 ta làm rõ được một số nội dung: Game là một dạng trò chơi điện tử
và tương tác với người dùng thông qua một giao diện để hiển thị hình ảnh (video).Game gồm 4 tiêu chí: Luật chơi, mục tiêu, tiến trình và cạnh tranh
Để phát tiển một game cần trải qua 6 giai đoạn: Lên ý tưởng, thiết kế đồ họa, code, bổxung âm thanh, hoàn thiện và quảng cáo
Trang 133.1.2 Đối tượng nghiên cứu
Ở đề tài này đồi tượng nghiên cứu của chúng em gồm:
Ngôn ngữ lập trình C# và công cụ Unity
Game Flappy Bird từ đó xây dựng game Hero Jump như một phiên bản cải tiến
3.1.3 Mục tiêu nghiên cứu
Hiểu rõ hơn về nền tảng Android, C# và Unity, trau đồi kĩ năng làm game và cho rađời một tựa game hay hứng thú phù hợp với nhiều đối tượng
3.2 Ý tưởng hệ thống
3.2.1 Lên ý tưởng
Với một game cơ bản khi lên ý tưởng ta thường đặt ra những câu hỏi như sau:
Mồi câu: Điều gì làm game trở nên tuyệt vời ? Một game kích thích tư duy ?Một game kích thích tính sáng tạo ? Một game có kết cục bất ngờ ?
Cách chơi : Người chơi sẽ phải làm gì ? Vì mục đích gì ? Đây chính là phầngameplay Người chơi sẽ di chuyển bằng các phím W,A,S,D và bấm phímSpace để nhảy như trong game Mario, người chơi thực hiện sẽ có hàng tấn cáccombo đã mắt như Street Fighter…
Cốt truyện: Người chơi sẽ nhớ về game như thế nào ? Những cảm xúc nàongười chơi nên có sau khi hoàn thành game ? Có thể là một trong những ngườisống sót ở thảm họa zombie trong The Walking Dead, hoặc một cuộc hành trìnhgiải cứu con trai trên một hòn đảo hoang trong The Forest …
Trang 14 Cảm xúc: Trò chơi để lại ấn tượng gì ? Hình ảnh ? âm thanh ? Ấn tượng đầutiên rất quan trọng Ấn tượng đầu tiên sẽ thu hút người chơi vào trò chơi.
3.2.2 Phát triển ý tưởng
Ở đây chúng em lựa chọn một game với các tiêu chí:
Mồi câu: Hero Jump thu hút người chơi bằng nhân vật dễ thương, cách chơiđơn giản nhưng có độ khó cao tạo nên sự cuốn hút đối với người chơi
Cách chơi: Người chơi thực hiện chạm trên màn hình để điều khiển nhân vậttránh vật cản, tấn công tiêu diệt quái vật, …
Cốt truyện: Trong Hero Jump, người chơi sẽ nhập vai vào một anh hùng, chiếnđấu chống lại những con quái vật
Cảm xúc: Jump Hero được xây dựng với mục đích sẽ là một game có hình ảnh
dễ thương, âm thanh hợp lý với những hành động của nhân vật, người chơi sẽ
có cảm giác quen thuộc bởi cách chơi nhưng sẽ có những điều mới lạ, khác biệt
so với tựa game FlappyBird Điều này sẽ mang lại những cảm xúc, trải nghiệmmới lạ đến với người chơi
Hero Jump mang phong cách của những game đơn giản, phù hợp để người chơi giải trítrong thời gian rảnh Người dùng phải liên tục nhấn vào màn hình để điều khiển cnhânvật vượt qua các chướng ngại vật và tấn công quái vật Trò chơi kết thúc khi nhân vậtchạm vào vào chướng ngại vật hoặc quái vật và người dùng sẽ được tính 1 điểm nếuvượt qua một chướng ngại vật, tiêu diệt quái vật
Với đề tài phát triển game này, nhóm chúng em lựa chọn đồ họa nhân vật hoản toànkhác so với một phiên bản Flappy Bird thường thấy và sẽ cải tiến hơn về các thử tháchkhi ngoài phải vượt qua những vật cản, người chơi còn phải vượt qua những chướngngại vật di chuyển theo chiều ngang như quái vật hay quả cầu lửa Người dùng có thểđăng nhập để lưu lại thành tích của cá nhân dùng để xếp hạng vào bảng RANK
Trang 15Hình 2.3 Sơ đồ Usecase tổng quát
3.3.2 Mô tả tổng quan
Ứng dụng của chúng em được mô tả tổng quản như sơ đồ dưới đây:
Trang 16Hình 2.4 Mô tả tổng quan Game
3.3.3 Đặc tả yêu cầu
3.3.3.1 Đặc tả yêu cầu khi bắt đầu chơi
Bảng 2 1 Đặc tả yêu cầu vào trò chơi
Chức năng Vào trò chơi
Hành động Nhấn biểu tượng trò chơi Hero Jump trên màn hình điện
thoại
Diễn biến Hiển thị màn hình bắt đầu (tên game, giao diện chọn nhân
vật, 4 nút: Hướng dẫn, Bắt đầu, Xếp hạng, Cài đặt)
Bảng 2 2 Đặc tả yêu cầu Hướng dẫn
Chức năng Hướng dẫn
Hành động Nhấn nút Hướng dẫn trên màn hình bắt đầu
Diễn biến 1 Hiển thị màn hình giới thiệu trò chơi, hướng dẫn thao tác
Trang 17Bảng 2 3 Đặc tả yêu cầu Xếp hạng
Chức năng Xếp hạng
Hành động Nhấn nút Xếp hạng trên màn hình bắt đầu
Diễn biến Hiển thị màn hình xếp hạng, tại đây có thể:
1 Xem điểm và xếp hạng cao nhất trong cộng đồng
Bảng 2 4 Đặc tả yêu cầu chuyển sang chức năng chơi
Chức năng Chuyển sang chức năng chơi
Hành động Nhấn nút Bắt đầu trên màn hình bắt đầu
Diễn biến Người chơi chơi game tại màn hình này
3.3.3.2 Đặc tả khi người dùng chơi
Bảng 2 5 Đặc tả yêu cầu chơi
Hành động Nhấn bất kì trên màn hình hướng dẫn
Diễn biến Hiển thị màn hình chơi
1 Nhấn bất kì trên màn hình trên màn hình điều khiển nhân vật bay lên
2 Tránh chướng ngại vật (ống nước) và vật cản ngang
3 Hiển thị điểm, mỗi lần vượt qua ống nước hoặc vượt qua quái vật sẽ được cộng điểm.
4 Đụng trúng chướng ngại vật hay rơi xuống đất sẽ bị thua
3.3.3.3 Đặc tả cài đặt thông số trò chơi
Bảng 2 6 Đặc tả yêu cầu cài đặt
Chức năng Cài đặt thông số trò chơi