Subject : Information and Communications
Technology
Project : SDLC (Software Development Life Cycle)
Project Designed by
Roman Aftab
FUI/FUSST/F-24-BSBA-021
Ahsam Ul Haq
FUI/FUSST/F-24-BSBA-005
Abdul Basit Khan
FUI/FUSST/F-24-BSBA-002
Irfan Ali
FUI/FUSST/F-24-BSBA-013
Requirement Gathering
Overview.
A company called XYZ approached us to make a game just like candy crush. We set up an
online meeting on Skype to gather their functional and nonfunctional requirements. I met the
owner of the company and we started a conversation.
conversation.
Roman: What type of basic features do you want?
Owner: Firstly I want a 2D game in which I want a colorful screen with a play button in the
center. After clicking the play button and screen will appear the user will reach the next screen
after watching the ad. Then there will be a level screen and after that a more screen will appear
when tapped on any level. Then there will be music continuously playing in the background.
SFX is also included in it. At the end of level there will be a screen shown according to the
situation. There are some nonfunctional requirements like some boosts and vibration options.
Candies would be expressed by emojis.
Roman: Sir kindly tell me what is its color scheme and how many levels do you want?
Owner: The color scheme should be green, blue and yellow and levels would be 200.
Roman: What kind of emojis do you want and there would be in game currency and real
currency?
Owner: Emojis would be smiles, love, anger and sickness. There should be in-game currency
which you can get by watching rewarded ads and can buy from real currency.
Roman: how many lives a user got in a game for a day?
Owner: A user gets 5 lives in a day and they recharge after some time.
Roman: what are other basic requriment?
Owner: There should be a feedback option and a user support menu. There should be a
feature by which we can catch the unfair players. The game should quickly load and be easy to
use.
FUNCTIONAL REQUIREMENTS NON FUNCTIONAL
REQUIREMENTS
Play button screen In game boosts for each level
Ad screen In game music
Levels display SFX
200 levels Fast loading time
User review Smooth game play
Exit button Frame rate
5 lives Protection against cheating
In game currency Tutorial and guidance
Real currency In game tips
Play level screen Easy updates
Emojis User support
Animated emojis Feedback
Score display
victory animation
Play next level screen or retry
Game Animations
Gift and rewards
Security
Service provider signature.
Customer signature.
Design
It is a custom design app designed by roman aftab. In this game the colour scheme will be
green.blue and yellow. Firstly we will make make first screen on this screen there is a play
button and we will write the name of game in design.after this an ad will appear. After that there
will a level screen on this screen 200 level appear only the first level is unlock other all are
locked.these levels will unlock after completing the previous level.on this screen there is also a
setting option by which you can access music control vibration and you can leave the
game .there should be only 5 lives means that a user can only play 5 time if he lose all the
games. These lives will recharge after some time.there is also in game currency and real
currency.in this game.there are some boosts in the game.in this game you will combine the
emoji to break the sugar cubes too complete level and the emojis would be smile,love.anger
and sick. All the emojis are animated.there would be SFX in the game like emoji collision sound.
There would a victory animation shown if the user win the game.
Service provider signature.
Customer signature.
Implementation
Implemented the code of the Game “Emoji World” by the Implementation Team.
Testing
Unit Testing for "Emoji World" Game
Objective:
Unit testing focuses on testing individual components or units of the Emoji World game in
isolation to ensure that each part functions correctly. Each unit, such as individual game
mechanics or specific functions, will be tested separately to catch bugs early and ensure the
stability of the game.
Unit Test Cases:
1. Play Button Functionality
● Test Case: Verify that clicking the Play button navigates the player to the next screen
(ad screen).
● Expected Result: The play button should trigger the display of the ad screen when
clicked.
2. Ad Screen Flow
● Test Case: Verify that the ad is displayed after clicking the Play button.
● Expected Result: The game should display an ad and transition to the level screen after
the ad ends or is skipped.
3. Level Unlocking Logic
● Test Case: Verify that only the first level is unlocked initially.
● Expected Result: The level screen should display 200 levels, but only the first level
should be unlocked initially. Subsequent levels should remain locked until the previous
level is completed.
4. Lives System
● Test Case: Verify that the player starts with 5 lives.
● Expected Result: The game should display 5 lives when a player starts. If the player
runs out of lives, they should receive a prompt indicating no remaining lives.
● Test Case: Verify that lives recharge after a certain amount of time.
● Expected Result: Once all 5 lives are used up, after a predefined period (e.g., 30
minutes), the player’s lives should automatically replenish.
5. In-Game Currency (Rewarded Ads)
● Test Case: Verify that the player receives in-game currency after watching a rewarded
ad.
● Expected Result: After watching an ad, the player’s in-game currency should increase
by the predefined reward amount.
● Test Case: Verify that in-game currency is correctly deducted when the player buys a
boost.
● Expected Result: When the player uses in-game currency to purchase a boost, the
corresponding amount should be deducted from their balance.
6. Boost Activation
● Test Case: Verify that activating a boost works correctly.
● Expected Result: When a player activates a boost (e.g., extra time or extra moves), the
boost should activate and have the intended effect on gameplay.
7. Emoji Collision and Interaction
● Test Case: Verify that emoji collisions are detected correctly.
● Expected Result: When emojis (e.g., smile, love, anger) collide with sugar cubes, the
game should recognize the collision and trigger the appropriate animation or action.
● Test Case: Verify that emojis break sugar cubes when combined.
● Expected Result: When emojis are combined (e.g., two smiles), they should break the
sugar cubes and clear the level.
8. Emoji Animation
● Test Case: Verify that emojis animate correctly when interacting with the game board.
● Expected Result: When emojis are combined or moved, they should animate smoothly
(e.g., moving, spinning, or changing facial expressions).
9. Background Music and Sound Effects (SFX)
● Test Case: Verify that background music plays when the game starts.
● Expected Result: The background music should automatically start playing as soon as
the main menu or game begins.
● Test Case: Verify that sound effects (SFX) play when emojis collide or levels are
completed.
● Expected Result: When emojis collide or a player wins a level, the corresponding
sound effects should play (e.g., collision sounds, victory sound).
● Test Case: Verify that the music and sound settings in the Settings menu work.
● Expected Result: If a player adjusts the music or sound effects volume from the
settings, the changes should take effect immediately.
10. Feedback Submission
● Test Case: Verify that the feedback option allows players to submit feedback.
● Expected Result: The player should be able to submit feedback (positive or negative)
via a form, and the feedback should be recorded in the game’s database (or sent to the
backend).
11. Victory Animation
● Test Case: Verify that the correct victory animation is triggered at the end of each level.
● Expected Result: Upon completing a level, a victory animation (e.g., fireworks, confetti)
should play.
● Test Case: Verify that the game rewards the player (e.g., in-game currency) after the
victory animation.
● Expected Result: After the victory animation finishes, the game should reward the
player with in-game currency or boosters as appropriate.
12. Exit Button
● Test Case: Verify that the Exit button works.
● Expected Result: When the player clicks the Exit button, the game should prompt for
confirmation and then exit gracefully, saving the player's progress.
13. Score Calculation
● Test Case: Verify that the score is calculated correctly based on the player’s
performance.
● Expected Result: The score should increase based on level completion, with bonuses
for moves, speed, and any other specific criteria.
14. Anti-Cheating Mechanism
● Test Case: Verify that the anti-cheating mechanism correctly detects and prevents
suspicious actions.
● Expected Result: If a player uses any hacks or cheats (e.g., modifying in-game
currency), the game should detect it and prevent them from continuing. A warning or ban
should be triggered in case of suspicious behavior.
15. Level Retry and Progression
● Test Case: Verify that players can retry a level after losing.
● Expected Result: If a player fails a level, the game should provide the option to retry the
level or move to the next one, depending on the situation.
Unit Testing Strategy:
1. Test Each Game Mechanic Individually:
Each game function, such as level unlocking, emoji collisions, or currency transactions,
should be tested in isolation to ensure it behaves correctly.
2. Use Mock Data:
For some functions, such as in-game purchases or server-side interactions (e.g.,
feedback submission), mock data or mock server responses should be used to test the
game logic without making actual network requests.
3. Isolate Dependencies:
Functions dependent on external systems, such as ad integrations or backend APIs,
should be tested with mock dependencies to avoid issues during unit testing.
4. Test Edge Cases:
Ensure that edge cases, such as running out of lives, completing levels in unexpected
ways, or purchasing items with zero in-game currency, are thoroughly tested.
5. Automate Repetitive Tests:
Automate tests for critical game mechanics (such as level progression, in-game
currency, etc.) to quickly catch regressions as the code evolves.
Integration Testing
Objective
Integration testing focuses on verifying the interactions between the different modules of the
Emoji World game. It ensures that the components work together as expected when combined.
Modules to be Tested:
● Main Menu and Play Button: Checking the interaction between the button click and the
transition to the next screen.
● Ad Screen: Verifying the integration of the ad display (rewarded ads) before the level
screen appears.
● Level Screen: Ensuring that the levels unlock correctly, the UI displays the right number
of levels, and the setting options work.
● Lives System: Testing the correct display and recharge functionality of lives after the
player loses them.
● In-Game Currency: Ensuring that in-game currency updates correctly based on ad
views, purchases, and level completion.
● Boosts and Emojis: Testing how boosts are activated and the correct display/animation
of emojis during the game (collision sound, animations).
● Background Music and SFX: Checking the interaction between the background music
and sound effects, ensuring both are playing as expected.
● Feedback and User Support: Verifying the feedback option and user support menu
work correctly and capture the necessary data.
● Victory Animation: Testing that the correct victory animation triggers when a level is
completed.
● Cheating Prevention: Ensuring that the anti-cheating mechanisms, such as monitoring
player actions for unusual behavior, are integrated properly.
Steps:
1. Test Main Menu Flow:
Click on the Play button. Ensure the game moves to the ad screen, and once the ad
finishes, the game proceeds to the level screen.
2. Test Level Unlocking:
The first level should be unlocked by default. After completing the first level, verify that
the second level unlocks, and so on. Test if the levels correctly lock and unlock.
3. Test Lives System:
If a player loses all lives, check that the game correctly shows the "Out of lives"
message and only allows 5 lives per day. After waiting for the recharge time, ensure that
lives are replenished correctly.
4. Test In-Game Currency:
Ensure that in-game currency increases when watching ads or completing certain tasks.
Test the transaction between in-game and real currency (e.g., purchasing boosts).
5. Test Boosts:
Ensure that any in-game boosts, such as extra time or additional moves, can be
activated properly during gameplay. Check that the boosts affect the gameplay as
expected.
6. Test Emojis and Animations:
Verify the correct interaction between different emojis (smile, love, anger, sickness). Test
that emojis animate properly when they collide with sugar cubes and when a level is
completed.
7. Test Audio:
Verify that background music and sound effects play during the game and can be
toggled via the settings menu.
8. Test Feedback Mechanism:
Ensure that users can submit feedback and that the system handles it correctly (whether
sending to a database or triggering an email).
System Testing
Objective:
System testing involves testing the entire Emoji World game as a complete unit to ensure that
all functionalities work correctly when the entire system is integrated.
Scope:
● Testing the game as a whole, including its features and functionality.
● Ensuring the game meets the defined requirements and performs as expected on the
target devices (e.g., Android).
Test Scenarios:
1. Game Flow Test:
○ Test the entire game flow, from the main menu to level completion, ensuring
transitions happen smoothly.
○ Test the game’s ability to resume after being paused or minimized.
2. Ad Integration Test:
○ Ensure that ads play correctly between levels and that rewarded ads work as
intended (e.g., earning in-game currency or lives).
3. Level Progression Test:
○ Check that players can complete a level and proceed to the next one after
meeting the objectives. Ensure levels are locked until completed.
4. Lives Recharge Test:
○ Check that the lives system functions properly, recharging correctly over time.
5. In-Game Currency and Purchases Test:
○ Test both in-game currency and real currency transactions, ensuring that
purchases (such as boosts or extra lives) are processed correctly.
6. Boosts and Emoji Mechanics:
○ Test the functionality of boosts (e.g., extra moves or time) and verify that emoji-
based gameplay mechanics (combining emojis to break sugar cubes) work
without issues.
7. Victory Animation and Game Completion Test:
○ Ensure that the game properly triggers victory animations when a level is won
and the corresponding reward (currency, boost, etc.) is given.
8. Settings Options Test:
○ Test the settings screen, ensuring players can adjust music and vibration
preferences, toggle SFX, and exit the game properly.
9. Performance and Load Testing:
○ Ensure that the game loads quickly, handles multiple levels, and doesn’t crash or
lag on typical mobile devices.
○ Test the frame rate under different game conditions (many emojis on screen,
multiple level transitions, etc.).
10. Security Test:
● Test that user data is properly secured, especially in transactions involving real currency.
● Verify anti-cheating features to prevent unfair behavior in the game.
Acceptance Testing
Objective:
Acceptance testing verifies that the Emoji World game meets the specified requirements and is
ready for release. This phase is focused on ensuring that the game aligns with the client’s
expectations and that it performs correctly in a production environment.
Criteria for Acceptance:
1. Functional Requirements:
○ Ensure that all basic and advanced features, such as the 2D gameplay, level
unlocking, emoji animations, background music, in-game currency, boosts, and
feedback mechanisms, work as specified in the requirements document.
2. Non-Functional Requirements:
○ Performance: Verify that the game loads quickly, maintains smooth
performance, and operates within acceptable frame rates on target devices.
○ Usability: Test that the game is easy to navigate, with intuitive interfaces, clear
instructions, and minimal bugs.
○ Compatibility: Test on different devices (Android phones, tablets) to ensure
compatibility and performance consistency.
○ Security: Confirm that real currency transactions are secure and that the game
has adequate protection against cheating and exploits.
3. User Acceptance:
○ Client Feedback: Present the final version to the KING company’s owner for
approval. Ensure that any concerns raised are addressed.
○ Beta Testing: Conduct a limited beta test with real users to gather feedback on
gameplay, difficulty, user interface, and overall enjoyment.
4. Final Approval:
○ Once all issues are addressed, and the game meets the client’s expectations, the
client signs off on the product, and the game is ready for release.
○
Service Provider Signature:
Customer Signature:
TRAINING
First, we visited XYZ company to gather feedback and provide training on our app. First, we
approached a few members of the company and requested their time to participate in the
process. Once they agreed, we shared our app with them and asked them to download it on
their smartphones. After they downloaded the app, we started by explaining its features and
how it works.
The first thing users see when they open the app is a "Play" button. Clicking on this button takes
them to a screen where they can see the available levels. The app also includes a "Settings"
menu, where users can adjust preferences and even add real currency if they wish to enhance
their experience. For example, they can use this currency to purchase boosts that help them
progress through the levels more easily.
We then gave the participants a detailed tutorial on how the game works. The gameplay is
simple and fun. The main objective is to match three or more identical emojis. When a match is
made, the emojis disappear, or "crush," creating space for new emojis to fall into place.
Each level comes with a time limit, and the goal is to complete the level's objectives within the
given time. If a player successfully completes the level on time, they advance to the next one.
However, if they fail to finish in time, they must replay the level until they succeed.
To make it easier for new players, we provided a hands-on demonstration. We showed them
how to navigate through the app, explained how to use the boosts effectively, and guided them
through a couple of levels to ensure they understood the mechanics of the game.
The training session was interactive, and we encouraged the participants to ask questions and
share their feedback. Overall, the session was aimed at helping users understand the app,
enjoy the gameplay, and feel confident using its features.
Name Total Marks Obtained Marks
ALI 10 8
AHMED 10 10
QASIM 10 9
ABDULLAH 10 8
EMAN 10 9
AMNA 10 10
SARA 10 7
KINZA 10 9
DEPLOYMENT
The deployment of the "Emoji World" game will be carried out in a series of well-defined stages
to ensure smooth transition from development to production, ensuring the game is accessible to
the users while meeting performance, security, and user-experience standards.
1. Pre-Deployment Checklist:
○ Final System Testing: Ensure the game passes all system, acceptance, and
integration tests. Confirm all bugs and issues are resolved.
○ Game Package Creation: The final game build will be prepared and packaged for
distribution. This involves compiling the source code and resources (such as
images, sounds, and animations) into a deployable APK (for Android devices) or
IPA (for iOS devices).
○ Asset Preparation: Ensure that all necessary game assets (such as emojis,
sounds, and levels) are finalized, optimized for mobile devices, and ready for
deployment.
○ Backend Setup: If the game integrates with a backend server (for in-app
purchases, rewards, or user data storage), ensure the server is configured and
tested for performance, security, and scalability.
○ Ad Integrations: Verify that the ads integration is functional and ensures that
rewarded ads and ad monetization mechanisms are tested and fully working.
○ Payment Gateway Testing: If the game supports real currency transactions,
validate that the payment gateway integration is seamless and secure.
2. Deployment Process:
○ App Store Deployment (Google Play Store, Apple App Store):
■ Submit the APK (for Android) or IPA (for iOS) to the respective app
stores.
■ Fill in required information for the app store listing, including descriptions,
keywords, screenshots, and videos.
■ Set the game’s pricing (if applicable) and confirm all payment gateway
configurations.
■ Ensure the game complies with app store guidelines, such as privacy
policies and age restrictions.
■ Once submitted, undergo the review process where both stores evaluate
the game for adherence to their policies before approving it for release.
○ Internal Release (Staging Servers for Testing): Before the public release, the
game will be deployed to a staging environment. This allows internal team
members or selected testers to try out the game on multiple devices and
configurations, ensuring compatibility, bug-free performance, and user
satisfaction.
○ Go-Live: Once approved by the app stores, the game will be made live, available
for public download, and accessible by the intended user base.
3. Monitoring Post-Deployment:
○ User Feedback Collection: After the game is deployed, the team will collect user
feedback, review ratings, and report any bugs or issues. This feedback is crucial
for identifying any unreported issues that were not caught during testing.
○ Game Performance Monitoring: Track the game's performance on various
devices, including load times, in-game purchases, crash reports, and server
uptime.
○ Crash Monitoring & Error Logs: Use tools such as Firebase Crashlytics, Google
Analytics, or other monitoring tools to detect crashes and other errors post-
launch. Analyzing error logs will allow the team to address any issues and push
updates as needed.
Maintenance
Maintenance is essential for keeping "Emoji World" running smoothly after deployment. It
involves periodic updates, performance enhancements, and security fixes to keep the game
fresh and bug-free. The following maintenance tasks will be carried out:
1. Bug Fixes and Updates:
○ Routine Bug Fixes: Address any bugs that emerge after the game is launched,
especially those identified by players or through automated crash reporting tools.
○ Feature Updates: Periodically update the game with new features, levels, or in-
game events to keep the game engaging for players.
○ User Interface Improvements: Make enhancements to the game’s user
interface (UI) based on user feedback and usability testing.
○ Patch Management: For quick fixes or security patches, a maintenance patch
will be deployed without significant downtime.
2. Server and Backend Maintenance:
○ Database Optimization: Ensure that the database supporting the game remains
efficient, with regular backups and optimizations to improve response times and
reduce server load.
○ Scaling Server Infrastructure: Depending on the number of active players,
server infrastructure may need to be scaled to handle increased demand. This
may involve adding more server resources or using cloud solutions like AWS or
Azure for better scalability.
○ Security Updates: Apply necessary patches to backend services and payment
gateways to maintain high security standards. Implement encryption for user data
and real currency transactions.
3. Ad Integration Maintenance:
○ Ad Network Management: Maintain relationships with ad networks (such as
Google AdMob or Unity Ads) and monitor ad performance. Optimize ad
placement to balance monetization with user experience.
○ Ad Performance Optimization: If users are experiencing issues with ad
displays or ads are causing crashes, adjustments will be made to ensure smooth
integration and functionality.
4. In-Game Currency & Payments:
○ Monitor Transactions: Ensure the in-game currency system and real currency
payments function correctly. Investigate and resolve any issues related to
purchases or currency balance discrepancies.
○ Adjust Currency Balances: If any bugs are found in the in-game currency (e.g.,
incorrect earnings after ads or purchases), fix them promptly.
5. Player Support and Feedback Management:
○ Customer Support: Set up a customer support team to respond to player issues
and inquiries (via email, live chat, or in-game support).
○ In-App Feedback System: Continuously improve the feedback system, making
it easier for players to report issues or suggest features.
6. Regular Updates and Content Expansion:
○ New Levels and Content: To keep the game fresh, regular content updates will
be released, including new levels, new emojis, and other gameplay features.
○ Seasonal Events: Introduce seasonal challenges, limited-time events, and
special in-game offers to encourage player retention and engagement.
○ Boosts and Power-ups: Occasionally introduce new boosts, power-ups, or
features to enhance gameplay and add variety to the game.
7. Performance Optimization:
○ Game Optimization: Regularly test and optimize the game to ensure it runs
smoothly on a wide range of devices, including low-end smartphones.
○ Reduce Loading Time: Periodically review the game’s loading time and
optimize assets to ensure quick startup times.
○ Memory and Battery Consumption: Monitor memory and battery consumption
during gameplay and optimize the game to ensure it does not consume
excessive resources.