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
HỌ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 LỜ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ẩm cô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ười chơ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 gian qua 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ông thể 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! LỜ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ài liệ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ến thứ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 MỤ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 2.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 Hì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 DANH 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 CHƯƠ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ương tá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ơi game 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ột nú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 khi nhữ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à tai nghe và loa, ngoài ra nó cũng có những phản hồi khác để báo động cho người chơi thô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: Luật chơi Mục tiêu Tiến trình của game ở mỗi lần chơi Cạnh tranh Mỗi tiêu chí đều rất cần thiết, nó là yếu tố quan trọng để quyết định sự thành công, ăn khách của game phát triển ra tùy theo mục đích phát triển game của nhà sáng tạo Các tiêu chí chung này là một trong những bước phát triển game mà nhà lập trình game nào cũng cần nắm bắt được 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 Mọ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ắng hay 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ân vua 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ến thuậ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ến thắ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ói mộ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ục tiê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ười thắ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ới game 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ình củ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ững phươ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ững người chơi phải cạnh tranh trong một game, có người thua và người thắng Hay thậm chí 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 đó 2.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át triển bởi Microsoft vào năm 2000 Microsoft phát triển C# dựa trên C++ và Java và C Sharp 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 C Sharp (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ạo bở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 được tạ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