Name of Project: Good Impression
Link of Project: Good Impression
Group Member:
Mentor:
The team operates according to the Scrum model, using Linear to manage work. Jobs are kept fully tracked on Linear.
- Link linear: Linear of Good Impression
Each week, the team will sit down to review the work they have done, solve problems together and propose solutions for the following week. There will then be a demo session for the mentor to receive feedback and guidance.
The team works according to Gitflow to manage code. Each member will create a branch from develop
to work, branches are placed according to format feature/ten-chuc-nang
. Once completed, a Pull Request will be created to review the code and merge it into develop
- Main branches:
master/main
: Contains stable, thoroughly tested and tested codedevelop
: Contains the latest code, reviewed and testedfeature/
: Branches contain code under development, short-live, and will be merged into developdevelop
.
After each week, the team will merge develop
into master
to release the new version.
Describe: Good Impression is set in the context of you are a very nomal, lazy and FA student living in a small apartment. Your room are all messed up because you're always throwing things around and you 're too lazy to tidy up.
To day, just like another day, you woke up and checked your phone. There's a message from your mom, she said she's on the way to your apartment.
Urgent, you need to clean your apartment immidiately and as fast as possible or you'll be scolded.
- Trash must be thrown in the trash can, wet floors must be wiped away, dirty dishes must be washed, clothes must be stored in a flat cupboard, in general everything must be neat.
- When doing an action, press the button according to the game's instructions
- The guy can ask his friend to help (2-player mode), the two of them clean the house together, and can throw objects back and forth to each other.
- Function 1: Pick up, throw trash, food, clothes,... into containers.
- Function 2: Mopping the floor using clothes or tissue, washing dishes.
- Function 3: 1 or 2 player mode.
- Function 4: Local leaderboard for each play mode.
- Function 5: With 2-player mode, 2 people can clean the house together and throw things back and forth to each other.
- Java language
- LibGDX framework
├── ProGameCup
│ ├── assets
│ │ ├── alert
│ │ ├── animations
│ │ │ ├── main-char1
│ │ │ ├── main-char2
│ │ │ ├── mom
│ │ ├── button
│ │ │ ├── game
│ │ │ ├── menu
│ │ ├── endgame
│ │ │ ├── score
│ │ ├── files
│ │ ├── fonts
│ │ ├── instruction
│ │ ├── items
│ │ │ ├── dynamic-items
│ │ │ │ ├── items
│ │ │ │ ├── pick-items
│ │ │ ├── static-items
│ │ │ │ ├── items
│ │ │ │ ├── pick-items
│ │ │ │ ├── storage
│ │ ├── leaderboard
│ │ ├── maps
│ │ ├── music
│ │ ├── otherImage
│ │ ├── sounds
│ │ ├── story
│ │ ├── ...
│ ├── core
│ │ ├── src
│ │ │ ├── com.mygdx.game
│ │ │ │ ├── common.constant
│ │ │ │ ├── controller
│ │ │ │ │ ├── collision
│ │ │ │ │ ├── discover
│ │ │ │ │ │ ├── discovermulti
│ │ │ │ │ │ ├── discoversingle
│ │ │ │ │ ├── filter
│ │ │ │ │ │ ├── filterendgame
│ │ │ │ │ │ ├── filtermulti
│ │ │ │ │ │ ├── filtersingle
│ │ │ │ │ ├── handleinput
│ │ │ │ │ │ ├── firstplayer
│ │ │ │ │ │ ├── secondplayer
│ │ │ │ │ ├── item
│ │ │ │ │ │ ├── activity
│ │ │ │ │ │ │ ├── throwitem
│ │ │ │ │ │ ├── setup
│ │ │ │ │ ├── player
│ │ │ │ ├── model
│ │ │ │ │ ├── item
│ │ │ │ ├── view
│ │ │ │ │ ├── draw
│ │ │ │ │ │ ├── item
│ │ │ │ │ │ ├── map
│ │ │ │ │ │ ├── player
│ │ │ │ │ │ ├── screengame
│ │ │ │ │ │ ├── text
│ │ │ │ │ │ ├── ui
│ │ │ │ │ ├── effect
│ │ │ │ │ ├── screens
│ │ │ │ │ │ ├── endgame
│ │ │ │ │ │ │ ├── DrawMom
│ │ │ │ │ │ │ ├── DrawResult
│ │ │ │ │ │ ├── maingame
│ │ │ │ │ │ │ ├── multiplayer
│ │ │ │ │ │ │ ├── singleplayer
│ │ │ │ │ │ ├── mainmenu
│ │ │ │ │ │ ├── mainstory
│ │ │ │ │ │ ├── optionplayer
│ │ │ └── ...
│ ├── desktop
│ │ ├── src
│ │ │ ├── com.mygdx.game
│ │ ├──...
│ ├── README.md
│ ├──...
Explain:
- assets: Contains resources such as images, sounds, files,...
- core: Contains the main packages of the game such as model, view, controller
- desktop: Contains classes to run on desktop platforms
Photos Demo:
Home game screen Show how to play and wait for game mode selection One player mode Two player mode Game pause screen Final score screen If a new record is discovered, a name will be requestedThe amount of RAM used by the game continuously increases after each frame, consuming a lot of system RAM. When the amount of RAM used is too large, the game begins to lag, become unstable and crash when the system RAM is not enough.
Solution:
- Due to creating too many objects, it leads to RAM overflow and reduced performance
- Use Design Pattern Object Pool to reuse objects. When the object is no longer in use, it will be put into the pool for reuse.
- After using
Object pool
, the amount of RAM used by the game has become stable (700 - 1400 MB of RAM), the amount of RAM used depends on each screen. - The amount of RAM used for each screen varies by no more than 50 MB.
When objects stand next to each other, one object stands in front and partially or completely obscures another object.
Ex: The character stands in front of the bed or the character stands behind the bed.
An object can be behind one object but at the same time can be in front of another object.
Ex: The character stands between the table and the sofa, then the character stands behind the table and in front of the sofa.
Solution: Based on the player's standing position, divide the objects into 2 sets standing behind and in front of the player. The set of objects behind will be drawn first, then the player and finally the objects in front.
- Solve the problem, clearly showing the distance relationship between objects.
Results achieved: The group's game project has been greatly improved in terms of performance, game logic,...
Next development direction: In the coming time, the team will research to develop some more parts such as: Expanding characters (Speed up characters), Expanding levels (Creating some more levels for the game).
After this project, our team got a chance to gain Gitflow related knowledge, teamwork skills and learn how to run a project in real life, which greatly improved skills program. Hope everyone will love our game. All pull requests are welcome. For major changes, please open an issue first to discuss what you want to change.