Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
2,52 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN XÂY DỰNG GAME ÂM NHẠC CHO NHIỀU NGƯỜI CHƠI GV HƯỚNG DẪN: TS Đỗ Thị Thanh Tuyền SV THỰC HIỆN: Trần Quốc Huy-20520554 TP HỒ CHÍ MINH, 2023 LỜI CẢM ƠN Đầu tiên, em xin gửi lời cảm ơn chân thành đến cô Đỗ Thị Thanh Tuyền, người dành thời gian hướng dẫn em mơn Đồ án Trong q trình học thực đồ án, em biết ơn quan tâm hỗ trợ tận tâm từ cô Đồ án thử thách đầy khó khăn, địi hỏi em phải dành thời gian công sức để nghiên cứu xây dựng Điều hội để tơi rèn luyện hồn thiện thân thơng qua việc tích lũy kỹ suốt q trình học tập Nhờ vào ý kiến đóng góp động viên quý báu, em có động lực để hoàn thành đồ án trang bị cho kỹ vững cho tương lai Tuy hạn chế kiến thức nhiều lỗi vặt Em mong nhận góp ý quan tâm từ để đồ án em hồn thiện Cuối cùng, em xin chân thành cảm ơn cô xin chúc cô nhiều sức khỏe, hạnh phúc thành công đường nghiệp giảng dạy Trần Quốc Huy MỤC LỤC Chương 1: GIỚI THIỆU ĐỀ TÀI 1.1 Mô tả đề tài 1.2 Lý chọn đề tài 1.3 Tìm hiểu 1.3.1 Youtube 1.3.2 Udemy 1.3.3 Discord 1.3.4 ChatGPT 1.4 Video showcase Chương 2: KIẾN THỨC VÀ CÔNG NGHỆ SỬ DỤNG 2.1 Unity 2.2 Firebase: 2.3 Photon: 2.4 Github 11 2.5 Figma: 12 Chương 3: XÂY DỰNG ỨNG DỤNG 13 3.1 Luồng hình 13 3.1.1 Menu : ( ảnh 4.1, 4.2, 4.3 ) 13 3.1.2 Select song scene: ( ảnh 4.3, 4.4 ) 14 3.1.3 Gameplay scene: ( ảnh 4.5, 4.6, 4.7 ) 14 3.1.4 Score screen: ( ảnh 4.8, 4.9 ) 15 3.1.5 Lobby: ( ảnh 4.10 ) 15 3.1.6 Waiting room: ( ảnh 4.11 ) 15 3.2 Logic game 15 3.2.1 Map folder: 15 3.2.2 Map data: 16 3.2.3 Map.txt: 16 3.2.4 Note rating: ( Cơ chế tính điểm note ) 19 3.2.5 Approach rate: ( thời gian xuất ) 20 3.2.6 Offset: ( Độ trễ ) 20 3.2.7 HP: ( Máu ) 20 3.2.8 Database: ( Firebase ) 20 Chương 4: GIAO DIỆN GAME 22 4.1 Màn hình menu 22 4.2 Màn hình chọn map 23 4.3 Màn hình gameplay 24 4.4 Màn hình kết 26 4.5 Màn hình tạo/join phòng 27 4.6 Màn hình lobby 27 Chương 5: KẾT LUẬN 28 5.1 Bảng tiến độ công việc 28 5.2 Đánh giá 29 5.2.1 Ưu điểm đồ án: 29 5.2.2 Nhược điểm đồ án: 29 5.2.3 Thuận lợi 29 5.2.4 Khó khăn 30 5.3 Hướng phát triển đồ án 30 TÓM TẮT ĐỒ ÁN Đồ án bao gồm tìm hiểu, phân tích chế vận hành game, làm map, xây dựng database, kết nối cho nhiều người chơi, điểm game tự làm map tự chơi offline, chơi nhiều người tài khoản Về tảng game, game sử dụng engine Unity2D, map, lúc hỗ trợ việc tạo file txt, sau mở rộng tạo game, database, game sử dụng firebase để lưu trữ thông tin đăng nhập người dùng phục vụ nhiều người chơi, để kết nối nhiều người chơi, game sử dụng Photon để kết nối -Chương 1: Giới thiệu đề tài: trình bày lí chọn đề tài, đối tượng sử dụng, mục tiêu hướng đến -Chương 2: Kiến thức công nghệ sử dụng: giới thiệu cơng nghệ, lí thuyết, nguồn học cơng nghệ đóng góp vào đồ án -Chương 3: Xây dựng game: Giới thiệu ý tưởng, phác thảo giao diện, logic game, cách vận hành game -Chương 4: Giao diện game: hình ảnh giao diện game thích -Chương 5: Kết luận: Bàn luận vạch kết đạt được, kết luận, đánh giá, mục tiêu tương lại Tên đồ án / game: YOTE Link tải, trải nghiệm : https://github.com/Huytimeclock/YOTE Logo: Chương 1: GIỚI THIỆU ĐỀ TÀI 1.1 Mô tả đề tài Thời đại phát triển, người dùng có nhiều nhu cầu giải trí, mục đích việc tạo game để người dùng vừa giải trí vừa nghe nhạc, việc người dùng tự tạo map tạo nên cộng đồng chia sẻ thành cho người khác chia sẻ thể loại nhạc mà thân thích Ngồi ra, với việc game hỗ trợ nhiều người chơi, bạn so tài với bạn bè, hay người lạ 1.2 Lý chọn đề tài Ban đầu, suy nghĩ thể loại làm, thân em nhận trường hướng sinh viên làm app quản lí sử dụng database, nên thân muốn học làm mẻ hơn, từ em định chọn đề tài làm game, với vốn kiến thức sẵn có cách game âm nhạc hoạt động, em chọn làm game âm nhạc, đồng thời làm nhiều người chơi để tìm hiểu cách thức hoạt động game nhiều người chơi 1.3 Tìm hiểu Đã tìm hiểu kĩ unity thơng qua khóa học Udemy Youtube, có tìm hiểu chút firebase, photon thơng qua trang web họ 1.3.1 Youtube Youtube có từ sớm dẫn đầu tảng video sharing Lượng kiến thức, nội dung dồi nhiều người tin cậy để đăng tải nội dung lên Nội dung video kiểm soát kĩ lưỡng nhờ vào thuật tốn cơng nghệ tiên tiến 1.3.2 Udemy Là trang web khóa học online, chuyên cung cấp khóa học, trước khithanh tốn xem review nội dung người dùng nhận biết có nên mua hay khơng 1.3.3 Discord Khi tham gia Discord cộng đồng unity, đăng hỏi câu hỏi người dùng nhiệt tình trả lời Ngồi cung cấp tài nguyên chia project cho người 1.3.4 ChatGPT Khơng thể phủ nhận việc tìm kiếm giải pháp tối ưu hỗ trợ người dùng check code tìm hiểu lỗi cách dễ dàng mà đọc hẳn document cách vận hành 1.4 Video showcase Link: [1] Video https://drive.google.com/file/d/1RS4c1miTNSJhYe9tt3i7EHCFtAqiLviX/view ?usp=sharing Video để show cho chức đăng nhập, người đăng nhập chơi Multiplayer ( nhiều người chơi ), để chứng minh cho việc multi có hoạt động sau: - Join room list thành viên ( 1:27 ) - Chọn người chơi chọn - Cuối game có list điểm người chơi ( 4:07 ) [2] Video https://drive.google.com/file/d/14Zmje3WWmixeDLOf9O5jEpJaSw033BjP/v iew?usp=sharing Video show chức lưu điểm ( có video ), level, đồng thời show số tính trải nghiệm người dùng Chương 2: KIẾN THỨC VÀ CƠNG NGHỆ SỬ DỤNG 2.1 Unity Hình 2.1: Biểu tượng Unity Unity cơng cụ phát triển trị chơi đa tảng mạnh mẽ phổ biến, phát triển công ty Unity Technologies, Unity cho phép nhà phát triển tạo trò chơi 2D 3D chất lượng cao cho tảng máy tính, điện thoại di động, máy chơi game thực tế ảo Unity cung cấp môi trường làm việc dễ sử dụng linh hoạt, giúp nhà phát triển xây dựng trò chơi ứng dụng cách nhanh chóng hiệu Nó hỗ trợ ngơn ngữ lập trình C# cho phép tích hợp nhiều công nghệ công cụ phát triển khác hình ảnh, âm thanh, vật lý, đồ họa mạng kết nối Với Unity, nhà phát triển tạo trị chơi ứng dụng có đồ họa đẹp mắt, hiệu ứng đặc sắc tính phong phú Unity có cộng đồng mạnh mẽ tài liệu tham khảo phong phú, cho phép nhà phát triển học hỏi, chia sẻ tương tác với Với phổ biến tính đa tảng nó, Unity trở thành công cụ ưu tiên cho nhiều nhà phát triển trị chơi tồn giới Nó khơng dễ học sử dụng mà cịn mang lại nhiều hội tiềm cho ngành công nghiệp trò chơi ứng dụng số 2.2 Firebase: Firebase cung cấp loạt dịch vụ cho phép quản lý liệu, xây dựng hệ thống xác thực quản lý người dùng, lưu trữ đồng liệu thời gian thực, phân tích theo dõi hiệu suất ứng dụng, chí việc tích hợp tính trí tuệ nhân tạo Với Firebase, nhà phát triển không cần phải lo lắng việc xây dựng quản lý hạ tầng sở liệu, máy chủ việc triển khai ứng dụng Firebase tự động quản lý mở rộng sở hạ tầng để đảm bảo hiệu suất ổn định ứng dụng Ngoài ra, Firebase cung cấp công cụ phát triển tài liệu phong phú, giúp nhà phát triển nhanh chóng tiếp cận tận dụng tối đa tính tảng 2.3 Photon: Hình 2.2:Biểu tượng Photon [MAP INFO]: chứa thơng tin sơ map bao gồm diff ( độ khó ), hp ( máu, set từ 0->10, cao máu giảm giây nhiều ), artist ( tên nhạc sĩ nhạc ), bpm ( dùng người chơi định hình tốc độ map ), creator ( tên người làm map ) [MAP VISUAL]: Phục vụ việc làm đẹp tô điểm game play, cấu trúc gồm [time][r,g,b,o], tới thời gian thay đổi màu sắc BG theo hệ số r,g,b,o liệt kê [MAP DATA]: chứa thông tin map, cấu trúc map [time][keytopress] o Time: thời gian mà người chơi phải nhấn, thông thường không phản ánh mà phải cộng thêm khoảng offset từ bpm, o Keytopress: phím mà người chơi phải bấm, chạy khoảng 26 chữ latin bàn phím, có loại phím in thường in hoa, với phím in hoa buộc người chơi phải nhấn giữ phím shift để bấm VD: [3][t]: giây thứ 3, người chơi phải bấm phím t [5][T]: giây thứ 5, người chơi phải bấm shift + t [6][a,b]: giây thứ 6, người chơi phải nhấn đồng thời phím a b [7][A,B]: giây thứ 7, người chơi phải nhấn đồng thời phím shift + a b 17 Hình 3.6: Hình ảnh cấu trúc file map.txt, map chia thành phần ( MAP INFO, MAP DATA, MAP VISUAL ) 18 3.2.4 Note rating: ( Cơ chế tính điểm note ) Hình 3.7: Hình ảnh thể chế tính điểm note Một note tạo thời gian t có khoảng thời gian t+-0.1s để người chơi bấm, bấm, nốt ghi nhận biến + vạch xanh cây: người chơi nhận kết good + vạch đỏ: người chơi nhận kết great + vạch vàng: người chơi nhận kết perfect + vạch cam: người chơi nhận kết critical perfect VD: note có cấu trúc [5][a] - Nếu người chơi a khoảng thời gian 4.9 -> 4.93 5.071 -> 5.1 nhận good - Nếu người chơi a khoảng thời gian 4.931 -> 4.96 5.041 -> 5.07 nhận great - Nếu người chơi a khoảng thời gian 4.961 -> 4.98 5.021 -> 5.04 nhận perfect - Nếu người chơi a khoảng thời gian 4.981 -> 5.02 nhận critical perfect 19 - Nếu người chơi a khoảng thời gian >5.02 bị coi miss Tính điểm Số điểm nhận bấm good (100/tổng số note)*0.5 Số điểm nhận bấm great (100/tổng số note)*0.75 Số điểm nhận bấm perfect/critical perfect = (100/tổng số note)*1 3.2.5 Approach rate: ( thời gian xuất ) Người chơi chỉnh mục setting, biểu thị cho thời gian từ lúc phóng to dấu hiệu để nhận biết có note cần bấm lúc kết thúc + Ví dụ: note tạo thời điểm t, thời gian xuất hình phóng to vào lúc t-approach rate kết thúc lúc t 3.2.6 Offset: ( Độ trễ ) Độ trễ áp dụng để dịch chuyển thời gian tạo note thời gian tính điểm + Ví dụ: note tạo thời điểm t có offset o thời gian hiển thị hình ảnh t-approach rate + offset kết thúc t+offset, có thời gian khả thi cho việc bấm t+offset-0.1 -> t+offset+0.1 3.2.7 HP: ( Máu ) Khi bắt đầu game, có mặc định 1000 đơn vị máu Trong file beatmap.txt có đề cập mức độ khó máu ( từ 0>10 ) (hpvalue) + Trong 1s, số đơn vị máu bị trừ hpvalue*10 + Khi bấm good, đơn vị máu cộng (11-hpvalue)*3 + Khi bấm great, đơn vị máu cộng (11-hpvalue)*5 + Khi bấm perfect/critical perfect, đơn vị máu cộng (11hpvalue)*10 3.2.8 Database: ( Firebase ) 20 Hiện tại, game áp dụng database autuhentication để phục vụ việc kết nối vào multiplayer, việc lưu điểm coi chưa cần thiết vì: - Map chưa phải thức, map bị sửa đổi điểm lúc khơng phản ánh Hình 3.2.8.1: Authentication firebase 21 Chương 4: GIAO DIỆN GAME 4.1 Màn hình menu Hình 4.1: Giao diện menu ( hình default ) Hình 4.2: Giao diện lựa chọn 22 Hình 4.3: Giao diện chọn việc chơi 4.2 Màn hình chọn map Hình 4.4: Giao diện hình chọn map 23 Hình 4.5: Giao diện quick setting 4.3 Màn hình gameplay Hình 4.6: Màn hình vào chơi 24 Hình 4.7: Giao diện pause Hình 4.8: Giao diện Game over 25 4.4 Màn hình kết Hình 4.9: Giao diện hình kết điểm Hình 4.10: Giao diện hình kết điểm chơi multiplayer 26 4.5 Màn hình tạo/join phịng Hình 4.11: Màn hình tạo phịng/gia nhập phịng 4.6 Màn hình lobby Hình 4.12: Màn hình phịng chờ 27 Chương 5: KẾT LUẬN 5.1 Bảng tiến độ công việc Mục tiêu Mô tả Tiến độ Phác thảo Phác thảo đồ họa game, thiết kế assest thơng qua figma Hồn thành Phác thảo ý tưởng Ý tưởng logic game hoạt động, hình, cách tình điểm Thiết kế, đưa ý tưởng từ phác thảo mang vào (UI game) Hoàn thành ( ảnh 3.1.1 ) Xây dựng hình Xây dựng logic Xây dựng database Xây dựng hệ thống kết nối nhiều người chơi Cải thiện UI Hồn thành Từ script binding, game có Hồn thành ( demo ) thể hoạt động phác thảo ý tưởng Áp dụng database để quản lí Hồn thành ( đăng nhập tài khoản ( việc quản lí điểm phải đăng nhập chơi map cần liên quan tới vấn multiplayer ) đề thay đổ map ) Để kết nối nhiều người chơi Hoàn thành ( demo ) vấn đề sync Thêm nhiều yếu tố để game thêm hấp dẫn Hoàn thành ( việc thêm MAP VISUAL ) Bảng 5.1.1: Bảng tiến độ công việc 28 5.2 Đánh giá 5.2.1 Ưu điểm đồ án: Phục vụ người chơi: Game đáp ứng tiện ích người chơi, có sẵn map, folder từ người chơi khác người chơi có kho map dồi thỏa sức chơi, ngồi người dùng tự tạo map riêng cho thân mình, dùng nhạc u thích, xây dựng map theo cách thân thích, thỏa sức thể thân trình độ Phục vụ nhiều người chơi: Game áp dụng nhiều người chơi để ngồi việc chơi mình, người dùng mở room, tạo phịng, đón chờ bạn bè/người lạ ghé room để chơi map đó, share kết để so tài, giải trí 5.2.2 Nhược điểm đồ án: Xây map cịn nhiều khó khăn: thân người tạo map phải tạo map tay, canh milisecond, dù sử dụng nhiều tool hỗ trợ osu editor hay convert osu delay ( thân người làm app tạo ) để phục vụ việc làm map việc làm map mệt thách thức Server nhiều người chơi: thân app sử dụng công nghệ photon phiên miễn phí, nên tại, app khơng thể cơng khai cung cấp cho người dùng tạo tài khoản người chơi vào multiplayer làm hao tổn kinh phí người làm app NoteBlock: Một định nghĩa game âm nhạc mà khó để giải note block mà nhiều note xuất chỗ thời gian ngắn, nhấn phím, 1/nhiều note bị ảnh hưởng tính điểm ( khơng với chất phải bấm nhiều lần ) thân người làm app cố gắng fix 5.2.3 Thuận lợi Là người chơi rhythm game lâu năm, từ osu, maimai, arcaea, thân tích lũy/biết chế tính điểm, delay, … từ vẽ ý tưởng dựa thứ đó, kết hợp với việc gõ bàn phím monkeytype,… 29 5.2.4 Khó khăn Làm mình: thân em khơng tin tưởng khơng quen làm với sinh viên trường, phần khó kiếm người có chung suy nghĩ đam mê, hai rủi ro người đồng hành không làm dẫn đến chậm tiến độ, nên việc từ tìm hiểu, phác thảo, xây UI, logic thân phải tự làm, nhiều cơng việc Chưa tìm hiểu sâu database hay kết nối: việc sử dụng kiến thức bản, thân tự áp dụng vào game, biết rõ chế hồn thiện đồ án 5.3 Hướng phát triển đồ án Sửa lỗi vặt game: Noteblock ví dụ điển hình game âm nhạc Xây dựng chế kết nối server riêng: tìm hiểu phương thức kết nối minecraft, mà thân máy người dùng máy chủ Làm web để người dùng upload beatmap share cho người khác ( làm đồ án ) Cải thiện visual game 30 TÀI LIỆU THAM KHẢO [1] Udemy Course (GameDev.TV): https://www.udemy.com/course/unitycourse/ ( Lần cuối truy cập 7-5-2023 ) [2] Youtube Proton turorial https://bitly2s.com/m2abk5 ( Lần cuối truy cập 18-72023 ) [3] Unity 2D Document https://docs.unity3d.com/Manual/Unity2D.html ( Lần cuối truy cập 18-7-2023 ) [4] Figma website https://www.figma.com/ ( Lần cuối truy cập 20-7-2023 ) [5] Github: https://github.com/Huytimeclock/YOTE 31