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.
Greetings!
I'm Julio Trasferetti, experienced Game Developer and Computer Engineer.
My past work experience includes more than 13 years in the game industry and 8+ with LibGDX.
I've read your description and I feel confident to help you.
My workflow is very transparent, and communication is the base (I've samples to share).
Bests,
- J
As an experienced Java developer with a strong command over Object-Oriented Programming, I would be the perfect candidate for your Angry Bird game project using libGDX. My deep understanding of OOP concepts including inheritance, polymorphism, and interfaces guarantees the usage of the necessary principles as per your requirements. Not only that, but my grasp over two core Java design patterns will undoubtedly contribute to a well-structured and maintainable codebase for your game.
To me, adhering to best coding practices and thorough unit testing is not just a formality but a way of ensuring quality work. Given my extensive skillset in different frameworks like Django and Laravel (to name a few) along with my proficiency in database management using MySQL, MongoDB, and more, embedding a save game function that serializes the state won't be any challenge. And as you've emphasized that the saved game should be restorable, I guarantee I'll deliver on that front impeccably.
Moreover, being an adept problem-solver gives me the ability to approach every task strategically.
Hello, I believe I would be a great fit for your project. I would love the opportunity to discuss the details further with you. Providing high-quality results is always my top priority. Thank you for your time and consideration.
Drawing from my background as a Game Developer, I am confident in my ability to deliver the high-quality game you are looking for. I am not only fluent in libGDX and Java, but I have a strong understanding of OOP principles and core design patterns which will ensure your game is scalable, efficient and maintainable. Moreover, with my dedication to best coding practices and JUnit tests, you can expect clean and reliable code.
Having developed different game levels before, I understand the importance of a challenging yet enjoyable gameplay - and your project is no exception! Incorporating various types of birds, pigs and materials along with their respective characteristics would not pose a problem for me. Furthermore, constructing random level generators to make the game infinite is well within my ability.
Your project demands more than just gameplay; it also needs proper management of saved games through serialisation. Luckily, this is an area where my expertise particularly shines. I am well-versed in serialisation techniques using Java which will allow players to effortlessly save their progress and continue from where they left off without a hitch.
Warm regards,
Sumaira Anwar
At Ultrasol Technologies, we believe that a successful gaming experience depends on a combination of creative design, smooth functionality, and a commitment to delivering the best possible product. As a team experienced in Java-based game development, we are well-versed in utilizing and optimizing libGDX for a variety of game mechanics. Our strong grasp of OOPs principles and the ability to employ two core Java design patterns means your Angry Bird game will not only run flawlessly but will also be easily maintainable well into the future.
We understand that both adhering to best coding practices and comprehensive testing are crucial in creating a polished game. With this in mind, we'll ensure strict adherence to naming conventions, proper access modifiers for fields and classes, commenting extensively to aid understanding where needed, as well as creating JUnit tests to verify the functionality of different methods within the game. This way, you can rest assured that your game will be robust and ready for deployment.
Ultrasol Technologies also excels in incorporating unique and engaging features into our games - special abilities for birds like explosion or dividing into smaller units should be no problem.
Hi! I’d love to bring your libGDX game to life. I’ll implement core gameplay with various birds, pigs, and destructible structures, along with unique bird abilities and an endless level generator. The game will include save/load functionality and follow OOP best practices with clean code and JUnit tests. You’ll receive a polished project, demo video, and documentation by the deadline. Looking forward to working with you!