1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án xây dựng multiplayer peer to peer game

53 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN ĐỀ TÀI: XÂY DỰNG MULTIPLAYER PEER-TO-PEER GAME Giảng viên: Trần Thị Hồng Yến Sinh viên thực hiện: Nguyễn Tuấn Kiệt Thành phố Hồ Chí Minh, năm 2022 VIETNAM NATIONAL UNIVERSITY - HO CHI MINH CITY UNIVERSITY OF INFORMATION TECHNOLOGY THE FACULTY OF SOFTWARE ENGINEERING PROJECT REPORT PROJECT: BUILDING MULTIPLAYER PEER-TO-PEER GAME Instructor: Trần Thị Hồng Yến Student: Nguyễn Tuấn Kiệt Hồ Chí Minh, year 2022 Document change record sheet Date Version Description Authors 30/06/2023 1.0 Nguyễn Tuấn Kiệt Disclaimer: All of the resources in game are free for commercial usages, or, drawn by myself Every credits have been listed in Credit Section (this document), in Credit File (the game folder) and in Credit Board (in game) Table of Contents Table of Contents Images Table of Content Acknowledgement Detailed Outline Chapter I: Introduction 14 I Basic Information 14 Group Information 14 Project Information 14 Technology Used 14 II Statement Of The Project 16 Story 16 Brief About Objects In Game 17 Functional Requirements 18 Non-functional Requirements 20 Chapter II: Use Case 22 I User story 22 II Use Case Models 23 Chapter III: Data Design 36 I Local Data Control: 36 II Database Design: 36 User 36 Character 36 LobbyRoom 37 Chapter IV: Interface Design 38 I Regulation 38 II List Of UIs: 38 III Details Description 38 Chapter V: Installation 51 Chapter VI: Conclusion 52 I Result 52 II Limitations 52 References 53 Images Table of Content Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image 1: Godot 14 2: GitHub Error! Bookmark not defined 3: Player Use Case Diagram Error! Bookmark not defined 4: Login Screen Error! Bookmark not defined 5: Register Screen Error! Bookmark not defined 6: Naming Screen Error! Bookmark not defined 7: Main Screen Error! Bookmark not defined 8: Credit Screen Error! Bookmark not defined 9: Customization Window Error! Bookmark not defined 10: Lobby Screen Error! Bookmark not defined 11: Host UI Error! Bookmark not defined 12: Join UI Error! Bookmark not defined 13: Password UI Error! Bookmark not defined 14: Ingame UI Error! Bookmark not defined 15: Join UI Error! Bookmark not defined 16: Confirm Dialog Window 49 17: Yes/No Dialog Window 50 Acknowledgement Have been studying and training in University of Information Technology – Hồ Chí Minh City as a Software Engineering student, I now have the fundamental knowledge and practical abilities needed to attend Project I would like to offer my sincere appreciation to those who made it possible to complete this course: To University of Information Technology This is where I created my base programming skills Without taking part in our university, I wouldn’t have a chance to pursue my passion To Mrs Yến Without your enthusiastic help and guidances, the development would not process as I had planned To Juan Linietsky, Ariel Manzur and Godot Community Studying and using Godot is one of my best experience in my “game dev” lifetime Thanks you for creating a tool that can make any imagination possible And finally, to my family, my love, all the teachers and staffs in the university, my friends You are my reasons to keep working In the process of doing Project 2, I will have unavoidable mistakes Therefore, it would be so grateful for me if I can receive guidances, suggestions and advices from everyone That will be my inventories to improve and develop myself to take part in the Graduation Thesis I am sincerely appreciated Wish the best of luck will always accompany you all Hồ Chí Minh City 30/06/2023 Kiệt Nguyễn Tuấn Kiệt Detailed Outline PROJECT NAME: PEER-TO-PEER MULTIPLAYER GAME Instructor: M.S Trần Thị Hồng Yến Implementation time: From 27/02/23 To 17/06/2023 Students: Nguyễn Tuấn Kiệt – 20520906 Project information: Purpose of the project: Before taking part in this course, I have taken part in the Project course by developing a Rogue-Lite game However, I want to try to develop a multiplayer game that can be played by multiple people, from different places at the same time! Using GDScript cannot optimize the performance of the game; therefore, I need to study about the database and network So, in Project 2, I want to: • Using C# instead of GDScript to improve performance • Developing a multiplayer game using Peer-to-Peer method • Having an online database And, it is nice to have: • The game can protect user’s information • The game is able to get fixed, updated In conclusion, I not only want to improve my skills after this course but also want to create a fun game that has wide-range of players About game: - The game’s main genre is Platformer with 2D Pixel Graphics - As a Platformer game, the game should create challenge by using tricky platform to restrict players’ movement, or everything else relative to “the platform” - The main purpose of the game is to be the fastest person reaching the goal before anyone else Scoop - Environmental Scope: Windows or later - Player Scope: Everyone (Based on ESRB) - Features Scope: • For users: o Sign in, sign up or finding password through Email o Change the appearance of the ingame character o Watch the credits o Can host a new room or join available rooms o Can customize the room when created • Game: o Have lobby to track for all of available rooms o Each room has: ▪ Name (required) ▪ Password ▪ Map (required) o The character can move left and right, wall climb and wall jump o The game can handle situations like when the host goes offline, clients disconnect,… o All the animations, graphics, name can be synced between multiple devices o The game needs to run real-time with the online database o Has methods to secure users’ information like password o Handle errors during game sessions Implementation - Working online with instructor during the course - Using Godot for game developing - C# as programming language - Visual Studio Code as the IDE - Firestore for online database - Version Control through Github - Using Google Docs and Microsoft Word/Excel for reports and documents - Using Draw.io, Lucid Chart for diagrams Developing platforms and environments - Platforms: Windows 10 - Environments: Godot - Programming Language: C# - IDE: Visual Studio Code - VCS: Github - UML Tools: Draw.io Expected result - The game runs without bugs 10 • Can find the password Image 4: Login Screen Register Screen This is the screen where the user can fill in information in order to create a new account In this screen, we need: • • • • • • Username Password Confirm password Email Cancel Button Confirm Button This screen also gives the user the ability to switch back to the login screen or turn off the game 39 Image 5: Register Screen Naming Screen Naming Screen is where the user chooses their character’s name Image 6: Naming Screen 40 Main Screen Main Screen is the main navigator to other screens such as: credits, customization, lobby In Main Screen, the user can control the character normally, enjoys the chill soundtrack and view The Main Screen also gives the user to escape the game Image 7: Main Screen Credits Screen The Credits Screen will give information about all the assets used in the game Those are the assets which were not drawn by the author – Nguyễn Tuấn Kiệt – but by other artists from over the world, on the Internet All the assets are free for commercial used and non-commercial used 41 Image 8: Credits Screen Customization Screen In Customization Screen, we can customize our characters such as: the skin color, the head mask It has: • The counter to select the available head masks • The counter to select the default skin colors • The text area to type in the HEX Color that the user likes! All of the changes can be previewed with the model in the right of the screen All of the changes will be updated after leaving the screen 42 Image 9: Customization Screen Lobby Screen In Lobby Screen, we will have the lobby which shows all of the available rooms for the user to choose Each room will have its information and a button to connect to the room Filters will have: • • • • ID filter Map filter Max Player filter Join and Host Buttons 43 Image 10: Lobby Screen Host UI In Host UI, we will have some information to fill in like: the map, the password and the max players 44 Image 11: Host UI Join UI In Join UI, we will have some information to fill in like: the room’s ID and the room’s Password if there is any 45 Image 12: Join UI Password UI If the room has password, it will require us to fill in the password 46 Image 13: Password UI 10 Ingame UI It has text UI like tutorials and Button like Start Button 47 Image 14: Ingame UI 11 Confirm Dialog Window This is the dialog to notice the user about something – for example, welcome, errors,… 48 Image 15: Confirm Dialog Window 12 Yes/No Dialog Window This dialog is to let the user re-confirms his/her decision 49 Image 16: Yes/No Dialog Window 50 Chapter V: Installation • The game will come in the form of a zip file Extract the package and run the exe file to play the game • The game can also be played on browser at itch.io site 51 Chapter VI: Conclusion I Result • • • • Finished implementing 100% of the planned features Easy to understand UIs Finished testing the game Have enough maps to give different experience each time playing the game • Balanced the game • Implemented sounds and graphics II Limitations • • • Don’t have various difficulties Don’t have multiple available languages Cannot change the game controls 52 References Godot Documentation v4.0: • https://docs.godotengine.org/en/stable/ 53

Ngày đăng: 04/09/2023, 20:49

w