Skip to content

Dev-ellaij/angry_bird

 
 

Repository files navigation

HNG Mobile Dev: Stage Six Task - Angry Bird Game


Splash Screen

Table of contents

Overview

This is a solution to the mobile dev stage six task of building a game using flutter and flame engine.

Objectives: Develop a mobile game inspired by "Angry Birds," where players launch characters to destroy structures and defeat enemies. The game should be engaging, visually appealing, and provide a fun and challenging experience for players.

Task Requirement

Kindly click here to see project brief

Acceptance Criteria

  • Use Only Necessary Third-party Dependencies: Ensure that the application is built using only the necessary third-party packages, plugins, or libraries.
  • Intuitive and Adaptive UI: The application should have a user-friendly and intuitive user interface, with clear labelling and spacing.
  • Project architecture: Ensure your Project’s codebase is easily understood, maintainable and scalable.
  • Proper README File: it should contain proper setup instructions, app screenshots, apk download link e.t.c.

Solution

Angry Bird is a 2D mobile game inspired by "Angry Birds," where players launch characters to destroy structures and defeat enemies. The game is engaging, visually appealing, and provide a fun and challenging experience for players.

Screenshot

Home screen

Level Screen Playing game Playing game Playing game alt text alt text alt text alt text

Features

  • Gameplay Mechanics:
    • Launch Mechanism: Characters can be dragged and launched at obstacles and enemiesic.
    • The game simulates realistic movement and interactions.
    • Destructible Structures: The game include woods and bricks that can be destroyed by the launched characters.
    • Enemies: The game include enemies within the structures that players must defeat to progress.
  • Levels and Progression:
    • Level Design: The game include multiple levels with increasing difficulty.
    • Scoring System: Players can earn scores by destroying characters and obstacles.

The process

Built with

  • Flutter and Dart

Lesson learnt

Developing the Angry Bird mobile game app provided several valuable insights and lessons, both technical and non-technical, these lessons are summarized in the following bullet point:

  • The value of team work and collaboration. Developers were paired in a team of five to work together to bring this project idea to live.

  • Understanding game engine of flutter The development provided insight to flutter game engine using flame and forge2D.

  • Effective UI/UX Design Creating a user-friendly interface involved using various Flutter widgets to provide a smooth and responsive experience. The pull-to-refresh feature and shimmer loading effect were particularly effective in improving the user experience by providing visual feedback during data loading.

Installation

Prerequisites

  • Flutter SDK: Install Flutter
  • Android Studio or Visual Studio Code: Recommended for development and testing
  • A device or emulator to run the app

Setup Instructions

1.Clone the repository

git clone https://github.com/yourusername/angry_bird.git

2.Navigate to the project directory

  cd angry_bird

3.Get the required dependencies

flutter pub get

4.Run the app

 flutter run

Useful resources

For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

Also check out these links to start your first flutter project:

Flame and Forged2D

Flutter Flame is an open-source, community-built game engine for Flutter that helps developers build games that require collision, maps, and a game loop. It's a minimalist engine that combines the simplicity of its component system with Flutter's power.

Forge2D is a 2D physics engine for Dart that's based on the open-source Box2D physics engine. It's designed for games and can be used independently in Dart or in a Flame project.

UI/UX

Angry Bird provides an Intuitive and user-friendly interface:

  • Splash Screen: Displays an icon and app name while initializing.
  • Level Screen: Players can select the levle they want to play in the game.
  • Home Screen: The home screen provides player option to leader board for scores of other users and option for going to game settings.
  • Game Screen: The game screen provide an Intuitive and amazing gaming experience for players as they can interact with the bird to destroy bricks .
  • Sound and Visual Effect: The game provides background sound and effect sound when the bird collides with obstacles or enemies.

Future Improvements

  • Enhanced Error Handling: Improving error handling mechanisms to provide more informative feedback to the users.
  • Testing: Incorporating unit and integration tests to ensure the app's reliability and catch potential issues early.
  • Performance Optimization: Optimizing the app's performance, particularly in handling more levels and user interaction, to ensure a smooth user experience.
  • User Feedback: Gathering user feedback and iterating on the app's features and design based on real-world usage.
  • Scalability: Preparing the app for scalability to handle more users, and potential new features in the future.

APK Download

Download the latest version of the app from the link below:

Download APK or Download here

Live Demo Link

Try the game: Appetize Link

Authors

View Linear Ticket

Click here to view linear tickets

Contributing

Contributions are welcome! If you'd like to contribute, please follow these steps:

  1. Fork the repository
  2. Create a new branch: git checkout -b feature/your-feature-name
  3. Make your changes
  4. Commit your changes: git commit -m 'Add some feature'
  5. Push to the branch: git push origin feature/your-feature-name
  6. Submit a pull request

Please ensure your code adheres to the existing code style and includes appropriate tests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 68.1%
  • C++ 15.1%
  • CMake 12.1%
  • Ruby 1.7%
  • Swift 1.2%
  • C 0.9%
  • Other 0.9%