Simple LibGDX Java Angry Bird Game Development

Job ID: 38737066

Budget: ₹600 – ₹1,500 INR

Submission by 20th November.

Using libGDX for game development in Java.

Some of the rules for the gameplay are mentioned below. Read the rules. In your implementation, you should follow all those rules.

Kindly make sure that you are using all the OOPs principles (inheritance, polymorphism, interfaces, etc.), including at least 2 design patterns(core java design patterns), along with following best coding practices (naming conventions, access modifiers for class, fields, comments, etc.) and JUnit tests.



Basic Features-

• You must implement the basic gameplay, where you have a set of finite birds to shoot at a structure containing pigs.
• A bird is shot by dragging it from a catapult and aiming it at the structure/pigs. The bird should follow the trajectory based on the angle and speed of the bird.
• The structure may be made of blocks of different materials like wood, glass, steel, etc., which might break on a single hit or multiple hits based on the material used.
• The collapse of a block will lead to all blocks above it dealing one hit each.
• A pig deals a hit if a bird hits it or the block immediately below it collapses.
• Based on the size of the pig, it might die on a single hit or multiple hits.
• You win the level if all pigs are dead.
• You lose the level if you have exhausted all the birds available to you.
• Each bird might have a different speed and impact. For example, a bird might deal one hit to each
pig/structure it hits or it might deal two hits.
• You must implement at least 3 types of birds, 3 types of pigs, and 3 types of materials.
• Once a bird deals hits, the next bird should sit on the catapult.
• Each level has a different set of birds and a different structure and a different set of pigs.
• You should implement at least 3 different levels.


Special Features-

• Implement special features for birds (e.g., a Black Bird can explode, a Blue Bird can split into three, etc.).
• Implementing a random level generator, leading to infinite gameplay.


Serialisation and Game Saves-

You should also have a save game function, which saves the current state of the level, including collapsed structures, hits dealt to each pig, remaining birds, etc. You should also be able to restore the game using a restore menu. This should be accomplished using serialisation.


Deliverables-

Submit a ZIP file containing your entire repository of code, along with the README file, the game demo video, JUnit Tests, and a sample saved game.




The game should have all the features implemented. The game should be serialisable, and you should be able to save the state of your game (current level, progress within current level including all attributes and components of the level, solved levels, etc.). You should also record a demo video, where you show the functioning of each and every component of your game. You also need to create appropriate JUnit Tests to verify the functioning of different methods within your game. Your repository should also have a README file detailing the commands to be run to set up, run and test your project, as well as any online sources you referred to.