1. Trang chủ
  2. » Tất cả

Báo cáo đồ án 1 đề tài meow knight

54 4 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: MEOW KNIGHT 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: MEOW KNIGHT 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 20/12/2022 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 12 I Basic Information 12 Group Information 12 Project Information 12 Technology Used 12 II Statement Of The Project 14 Story 14 Brief About Entities And Objects In Game 15 Functional Requirements 18 Non-functional Requirements 19 Chapter II: Use Case 20 I User story 20 II Use Case Models 21 Chapter III: Data Design 43 Chapter IV: Structural Design 44 I Core Game Loop: 44 II Progression 44 Chapter V: Interface Design 45 I Regulation 45 II List Of UIs: 45 III Details Description 46 Chapter VI: Installation 52 Chapter VII: Conclusion 53 I Result 53 II Limitations 53 References 54 Images Table of Content Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image 1: Godot 12 2: GitHub 14 3: Player Use Case Diagram 21 4: Blue Slime Use Case Diagram 22 5: Orange Slime Use Case Diagram 22 6: Green Frog Use Case Diagram 23 7: Blue Frog Use Case Diagram 23 8: One-Eye Bat Use Case Diagram 24 9: Slime Knight Use Case Diagram 24 10: Frog Wizard Use Case Diagram 25 11: Bad Bat Use Case Diagram 25 12: The Meow Knight Use Case Diagram 26 13: Core Game Loop 44 14: Title Screen 46 15: Status UI - HP & MP 47 16: Coins Counter 47 17: Main Menu 48 18: Options 49 19: Shop Window 50 20: Confirm Dialog Window 51 21: Inventory 51 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 1, 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 Project as well as the Graduation Thesis I am sincerely appreciated Wish the best of luck will always accompany you all Hồ Chí Minh City 01/11/2022 Kiệt Nguyễn Tuấn Kiệt Detailed Outline PROJECT NAME: 2D ROUGE-LITE GAME Instructor: M.S Trần Thị Hồng Yến Implementation time: From 21/02/22 To 18/6/2022 Students: Nguyễn Tuấn Kiệt – 20520906 Project information: Purpose of the project: Before taking part in this course, I have studied about Object-Oriented Progamming (OOP) and Object-Oriented Analysis & Design (OOAD) I also have a chance to be aware of the design patterns like singletone pattern At that moment, I have known that developing is not just limited at coding To put my knowledge into practice, I decide to make an application, or more specifically, to make a game – my the most favorite hobby A game is a collection of different objects – which will help me improve my idea about Object-Oriented I would like to use Godot Engine for this project, since it is designed to be friendly with amateurs and Object-Oriented-like 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 Action with 2D Pixel Graphics and gameplay of Rogue-Lite - As a Rouge-Lite game, we will have two main principles to follow: Random Dungeon Generation (RDG) and Permadeath - Random Dungeon Generation is when players have various experience each time they start a new game The maps’ order will be randomly placed, random enemies spawn at the areas, random treasures,… However, to keep the game’s flow and balance in control, I will use a technique that pre-creating a lot of maps instead of using algorithm to draw the maps - Permadeath is the punishment to our players If player gets defeated – no matters how far they have gone, all of the process will be vanished - The main purpose of the game is to beat the Final Boss at the 13rd floor Therefore, the game will have 13 floors in total, gifts in 4th, 8th and 12nd floors Scoop - Environmental Scope: Windows or later/ On Web through Itch.io - Player Scope: Everyone (Based on ESRB) - Features Scope: • Player can move left & right, attack, jump, roll and learn new abilities during game flow • Abilities earned during a run will disappear when player was defeated • Defeated causes player random negative effect • Player can collect golds by passing a floor or breaking boxes • Gold can be used to upgrade player, buy items or cure negative effect • The maxium slots of inventory is Start at and can be expanded through shop • Enter the tower (game) costs gold • The entrance fee increases proportional with numbers of defeats • Enemies have different behaviors • There are enemies floors and traps floors • Beat all enemies to pass enemies floors • Collect key to pass traps floors • Gifts (skills/abilities) can be learned (randomly) at floor – – 12 • Random Bosses at – – 12 • Final Boss at 13 • Player turns into invincible state when taking damage • Can pause • Auto-save • Having some basic configurations Implementation - Working online with instructor during the course - Learning GDScript and Godot for game developing - Researching about game design to understand in depth about how a game functions - Version Control through Github - Using Google Docs and Microsoft Word/Excel for reports and documents - Using Draw.io for diagrams Developing platforms and environments - Platforms: Windows 10 - Environments: Godot - Programming Language: GDScript - IDE: Null (Writing scripts through Godot) - VCS: Github - UML Tools: Draw.io Expected result - The game runs without bugs 10 4.24 Shield Short Description Flow Of Events Basic Flow Alternative Flow Special Requirements Pre-Condition Post-Condition Extend Points The use case begins when entity collides with damage sources Entity collides with damage sources Ignore the damage None None Cooldown resets None None 4.25 Teleport Short Description Flow Of Events Basic Flow Alternative Flow Special Requirements Pre-Condition Post-Condition Extend Points The use case begins when entity want to approach Player or dodge Player’s damage Choose a position Transport to that position None None Cooldown resets None None 4.26 Multiple Shoot Short Description Flow Of Events Basic Flow Alternative Flow Special Requirements Pre-Condition The use case begins when entity can attack and there is distance between Player and entity Determines the distance between player and this entity Generates multiple projectors Shoots them towards player None None Cooldown resets 40 Post-Condition Extend Points None None 4.27 Exploding Spell Short Description Flow Of Events Basic Flow Alternative Flow Special Requirements Pre-Condition Post-Condition Extend Points The use case begins when entity can attack and there is distance between Player and entity Determines the distance between player and this entity Spawn explosion at that position None None Cooldown resets None None 4.28 Duplicate Short Description Flow Of Events Basic Flow Alternative Flow Special Requirements Pre-Condition Post-Condition Extend Points The use case begins when entity receives damage Entity receives damage Duplicate None None None None None 4.29 Explode Short Description Flow Of Events Basic Flow Alternative Flow Special Requirements The use case begins when entity receives damage Entity receives damage Explode None None 41 Pre-Condition Post-Condition Extend Points None None None 42 Chapter III: Data Design Player data will keep track of user’s progression in a single file named: save.dat save.dat is a serialized and stored locally in the persistent path and can be deserialized to recover its usage in the game save.dat will save your: Data maxHP maxMP maxJUMP maxATK skillList coin slots items Description Player’s max health points Player’s current HP cannot recover or add up surpass this boundary Player’s max mana points Mana is stanima, the point that player consumes everytime we use skills or roll/dash It stands for how many times we can jump before landing The max damage Player can deal each attack The skills that Player has unlocked Currency The number of slots have been upgraded in shop The items that have been bought 43 Chapter IV: Structural Design I Core Game Loop: Image 13: Core Game Loop The core game loop is following this proccess: Player enters the Tower to fight against 13 levels in total There are normal levels that will randomly be “fight” or “collect” map, mini bosses and final boss In normal levels, Player needs to kill all the monsters to advance to next level if Player stucks in a “fight” map, or, Player needs to collect the key in the “collect” map Beat the mini bosses will reward Player ability Player can pick one from three given The final boss will be at 13rd level, beat it leads to our true ending! However, this game is not that easy You cannot beat the game in one run, that is why we need to play, collect resources (gold) and upgrade the character through the game II Progression Player fights, earns gold, upgrades or buys items Slowly, the Player will advance deeper and deeper levels 44 Chapter V: Interface Design I Regulation • • • • Make UI consistent Accept user’s errors Confirm detrimental actions Disable unsuitable functions contextually II List Of UIs: No Name Title Screen Status UI Coins Counter Main Menu Shop Window Confirm Dialog Window Inventory 45 III Details Description Title Screen This is the first scene that user can interact with This scene is also the title map – the map where happens all the activities including: read credits/rules, shopping The only difference is: • Title Screen needs user to press any button to access the game • The main function is to introduce the game’s name and let user hear the theme song When user presses a random key, the title and blackout screen will vanish The system will load the old save file to recover user’s progression Image 14: Title Screen Status UI The Status UI will show user the current and maxium status of Player including: Health and Mana Points 46 • The HP is shown as a cat pawn Each pawn has toes, stand for HPs The HP bar is updated in real-time so everytime Player gains or loses HP, the bar will update the newest status • The MP is show as fishes Each fish stands for a MP Everytime Player consumes MP, the MP bar will hide one of the fish icon Image 15: Status UI - HP & MP Coins Counter The Coins Counter will keep track of how much coin have Player collected through the game It stays under the Status UI so user won’t need to move eyes into too much places on screen Image 16: Coins Counter 47 Main Menu The Main Menu contains buttons: • Resume: Unpause the game and close the Main Menu • Options: Show the Options Menu to personalize the Resolution or Volumn o Resolution: Can be change to [Fullscreen], [640x360], [1280x720] o Audio: Can be change from 0% to 100% by the value of 10% • To Title Screen: Abandon this run and return user back to the Title Screen • Quit: Close the game Image 17: Main Menu 48 Image 18: Options Shop Window The Shop Window shows user the list of items Each item needs to have an image, a name, a price and a description The description will change due to selected item 49 Image 19: Shop Window Confirm Dialog Window The Confirm Dialog Window has buttons [Yes] Button returns the true value, [No] Button returns the false value 50 Image 20: Confirm Dialog Window Inventory This inventory will show due to the unlocked slots that Player has purchased Image 21: Inventory 51 Chapter VI: 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 52 Chapter VII: 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 Only have mini bosses UIs are too basic Don’t have multiple available languages Cannot change the game controls 53 References Godot Documentation v3.5: • https://docs.godotengine.org/en/stable/ • https://docs.godotengine.org/en/stable/tutorials/physics/using_kinem atic_body_2d.html • https://docs.godotengine.org/en/stable/tutorials/physics/using_area_2 d.html • https://docs.godotengine.org/en/stable/tutorials/physics/raycasting.html • https://docs.godotengine.org/en/stable/tutorials/inputs/inputevent.ht ml • https://docs.godotengine.org/en/stable/tutorials/audio/audio_streams html#audiostreamplayer • https://docs.godotengine.org/en/stable/tutorials/2d/index.html • https://docs.godotengine.org/en/stable/tutorials/animation/index.html • https://docs.godotengine.org/en/stable/tutorials/ui/index.html • https://docs.godotengine.org/en/stable/classes/index.html • https://docs.godotengine.org/en/stable/tutorials/math/index.html • https://docs.godotengine.org/en/stable/tutorials/export/index.html • https://docs.godotengine.org/en/stable/getting_started/first_2d_game /index.html 54 ... Map 27 Buy Upgrades 10 Read Credits 11 Read Rules 12 Enter The Tower/New Run 13 Use item 14 Collect Item 15 Check Storage 16 Move 17 Jump 18 Roll 19 Drop Down 20 Interact 21 Attack 22 Take Damage... Frog Wizard Image 10 : Frog Wizard Use Case Diagram 1. 9 Bad Bat Image 11 : Bad Bat Use Case Diagram 25 1. 10 The Meow Knight Image 12 : The Meow Knight Use Case Diagram Actor List No Actor’s Name... 24 9: Slime Knight Use Case Diagram 24 10 : Frog Wizard Use Case Diagram 25 11 : Bad Bat Use Case Diagram 25 12 : The Meow Knight Use Case Diagram 26 13 : Core Game

Ngày đăng: 01/02/2023, 21:07

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w