Project Name: Beyond the Airspace
Group Members:
- Nimrah Jawed – Team Lead
- Altaf Shaikh
- Syed Muhammad Fasih Hussain
- Syed Muhammad Ammar Alam
- Jazib Bhatti
Project Description: This is a game for flight enthusiasts all over the world. The purpose of the game is to dodge enemy planes coming through the way. They could be destroyed by the bullets of the plane. This will add to the total score of the player. There will also be obstacles in path of the flying object i.e. the enemy planes. Also there are coins, which if you collect, will give a 100 increase in the scores. There are power ups available throughout, which upon collecting will increase the health of the fighter plane. If the players crashed into an enemy plane, it dies. There will be a record of high scores that will be managed after each time a player plays the game. This is a battle to GO BEYOND THE ENEMY AIRSPACE!
Game Controls: • Press ‘S’ to move down, ‘W’ to move up , ‘A’ to move left and ‘D’ to move right • Press the ‘Space Bar’ to fire bullets • Kill all the enemies on your journey. Each of the enemy plane dies with 4 bullets • If you crash into an enemy plane, you lose 100 of your health • Press ‘P’ to pause game • Collect coins to increase your score • Collect powers up’s on your way to regenerate your health • Press and hold ‘B’ to go back to the main menu
Compilation Instructions: These libraries must be installed for the game to compile. • SDL ttf (true type font) library • SDL image Once its compiled, Press ctrl+Shift+B Acknowledgement: -Majority of the sprites used were taken from mobilegamegraphics.com -The initial code including the ECS management system was inspired by “Let’s Make Games” YouTube Channel
- Discord helped us collaborate effectively
- VS Code Live Share also helped us to increase efficiency
UML Link: https://www.lucidchart.com/invitations/accept/499327f3-4aaf-47bb-a645-ca83d4f599cd
YouTube Link: https://www.youtube.com/channel/UC6CEAZ5x0k-FgAvWE3JWb1g
Requirements:
- Polymorphism is implemented in GameObject.cpp and ECS. It is also used in Projectiles.cpp, which has functions used by its inherited members.
- Design Patterns we have used:
• Singleton : Ensures only one object from each class is made • Factory Pattern : Helps create objects from many different classes • Builder Pattern: The Entity Component System helps set up the entities and group the objects from a single class • State Pattern: changes an objects behavior when a state changes
- Menu is implemented which starts the game and renders instructions screen
- Operator Overloading is used in Vector2d.cpp to implement position and velocity vectors
- File I/O works separately but incorporated the code was not working properly
- All the graphics and controls work smoothly
- Code and UML match
Contribution: Each member of the team has contributed equally. The classes were not exactly divided into each person, instead each class was mostly made together using Discord and Live Share. Design Patterns we have used: • Singleton : Ensures only one object from each class is made • Factory Pattern : Helps create objects from many different classes • Builder Pattern: The Entity Component System helps set up the entities and group the objects from a single class • State Pattern: changes an objects behavior when a state changes
Time it took to complete the Project: 105 hours
Note: A team member of our group was successfully able to create a File I/O system for high scores independently. However the code could not be effectively integrated into our main project and it was giving us issues.
Contribution: Each member of the team has contributed equally. The classes were not exactly divided into each person, instead each class was mostly made together using Discord and Live Share. Design Patterns we have used: • Singleton : Ensures only one object from each class is made • Factory Pattern : Helps create objects from many different classes • Builder Pattern: The Entity Component System helps set up the entities and group the objects from a single class • State Pattern: changes an objects behavior when a state changes
Time it took to complete the Project: 105 hours
Note: A team member of our group was successfully able to create a File I/O system for high scores independently. However the code could not be effectively integrated into our main project and it was giving us issues.