Skip to content

This is a teamwork project that aimed to create the game based on Object-Oriented Programming principles. Then, our team had chosen pirate as the concept, and "The Treasure Hunt" had born.

Notifications You must be signed in to change notification settings

koitran14/The-Treasure-Hunt-Project

Repository files navigation

THE TREASURE HUNT

Object-Oriented Programming Project

GitHub repo size GitHub contributors GitHub stars GitHub forks GitHub issues

Team members:

Order Full name ID
1 Tran Ngoc Dang Khoi ITCSIU21197
2 Nguyen Tran Hoang Ha ITITIU21127
3 Ha Van Uyen Nhi ITCSIU21095
4 Nguyen Hoang Quan ITITIU21291

Introduction

In today’s rapid evolution of technology industry, there is an increasing need for continuous learning and updating of knowledge. To facilitate the adoption of new ideas, Object-Oriented Programming has emerged as a robust paradigm for organizing projects that including code more reusability, modularity, maintainability, and scalability, to embrace new algorithms more easily and systematically.

Consequently, our team has made the choice to utilize Java.Swing (Java.awt) as the primary library for coding and implementing Object-Oriented Programming (OOP) in our game project, “The Treasure Hunt”. This decision was made in order to evaluate the viability of the principles inherent in this model. Furthermore, our goals encompassed enhancing our proficiency in collaborative projects and obtaining a more comprehensive comprehension of the game development process.

After this project, we aim to gain:

  • Deep learning of Object-Oriented Programming's Principles✨
  • Process of game development and some tricks✨
  • Teamwork skills✨

About the game

"The Treasure Hunt" is a platform game where players control a pirate character, Captain Jack, navigating through levels filled with challenges and enemies. The game features a two-dimensional side-scrolling environment where players must jump over gaps, dodge hazards, and defeat aggressive enemies with swords. Cannons and traps add additional obstacles throughout the game. The levels progressively increase in difficulty, providing an engaging and challenging experience. The unique pirate theme and the presence of crabs as enemies add a distinctive flavor to the game, aiming to provide players with a fun and immersive experience.

Technique

To do this project, we use:

  • Language: Java
  • Library: Java.awt
  • IDE: IntelliJ, VsCode, Esclipe.

Methodology

To do this game, we create 10 packages to operate 10 main features of the game:

  1. Main package
  2. Levels package
  3. Entities package
  4. Objects package
  5. Gamestates package
  6. Inputs package
  7. UI package
  8. Audio package
  9. Effects package
  10. Utilz package

For more detailed information, you can find out in this file.

User manual

✨ Menu Navigation:

  • Use the mouse click to select options in the game's menu.
  • Press Ecs to pause the game.

✨ About character:

  • Stats of character: 200HP and 200PP maximum, automatic PP-recovery only.
  • Movement: A, D and SPACEBAR to move left, right and jump on the grid.
  • Attack: Use right-click to attack, left-click for the faster.

Note: the quick attack is required a huge energy consumption,
and you could use it with SPACEBAR to surf in the air.

✨ Items:

  • Potions: to recover stats of character with RED_POTION for HP and BLUE_POTION for PP.
  • Container: to contain the potions.

Installation

✨ Cloning the repository

git clone https://github.com/koitran14/The-Treasure-Hunt-Project.git

Once the download is complete from github, you can launch the game in two ways:

✨ By Common Prompt (CMD):

  • Step 1: Open the src file.
  • Step 2: Right-click once, then select Open in Terminal.
  • Step 3: Type like below and enjoy.
...\OOP.Project\src> javac *.java
...\OOP.Project\src> java MainClass

✨ By Editor (VsCode, IntelliJ, Esclipe):

Just open this project in your IDE, then enjoy 😉

Result

To summarize, the development of the Treasure Hunt game was made easier and more logical by adopting the Object-Oriented Programming (OOP) approach. This project effectively exemplifies the fundamental principles of OOP, such as encapsulation, abstraction, inheritance, and polymorphism. Alongside gaining expertise in applying OOP principles, it is essential to expand knowledge in related areas beyond the course curriculum. These areas encompass utilizing GIT for version control, resolving software bugs, solving complex problems, programming interactive games, and improving collaboration skills.

Limitation

Furthermore, the game possesses several constraints. Specifically, the game remains unfinished due to time constraints and a lack of sufficient experience and expertise. Consequently, the classes and methods lack proper organization, efficiency, and cleanliness, making testing a rather complex task. Most importantly, the team encountered challenges in constructing, coordinating, and assigning tasks, occasionally necessitating starting over due to inexperience and confusion in the game development process.

References

Tutorials and Resources

External Libraries and Frameworks

  • Java AWT: A powerful library used in this project for Graphics.

Acknowledgements

  • Dr. Le Duy Tan: made significant contributions, particularly in Object-Oriented Programming's standard knowledge, which supported the whole concept of this project.
  • Dr. Kieu Vu Thanh Tung: provided valuable feedback and suggestions throughout our project's development.

Documentation

  • To know more about our project, read me.

Thanks for reading 💖

If you have any questions, please contact: tndkhoi.work@gmail.com

About

This is a teamwork project that aimed to create the game based on Object-Oriented Programming principles. Then, our team had chosen pirate as the concept, and "The Treasure Hunt" had born.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages