Thanks to visit codestin.com
Credit goes to github.com

Skip to content

nevil06/Custom-Flappy-Bird

 
 

Repository files navigation

🐦 Custom Flappy Bird - Enhanced Edition

React Native Expo Skia License

A modern, feature-rich Flappy Bird clone with premium UI, customizable characters, multiple themes, and a dedicated development team showcase.

FeaturesInstallationGameplayTech StackTeam


✨ Features

🎮 Core Gameplay

  • Classic Flappy Bird Mechanics - Tap to fly, avoid pipes
  • Dynamic Difficulty Scaling - Pipe speed increases with score progression
  • Real-time Score Tracking - Live score updates with persistent high scores
  • Physics-Based Movement - Realistic gravity (1000) and jump force (-500)
  • Smooth 60 FPS Animations - Powered by React Native Reanimated 4.1.1
  • Collision Detection - Precise hit detection with visual feedback

🎨 Customization System

Character Selection

  • Manas Bird (Default) - Premium circular profile picture character
  • Classic Birds - Yellow, Blue, and Red bird options
  • Custom Characters - Upload your own images (up to 10 custom birds)
  • Circular Clipping - All custom characters rendered as circular profiles
  • Live Preview - See your character in action before playing

Theme Options

  • Day Theme - Classic bright daytime background
  • Night Theme - Dark atmospheric nighttime scene
  • City Theme - Modern urban skyline background
  • Real-time Switching - Change themes on the fly

🎨 Premium UI Design

  • Development Team Screen - Showcase of 5 team members with premium cards
  • Color-Coded Cards - Gold (Team Lead), Blue, Red, Green, Purple themes
  • Profile Integration - Direct Instagram links for each team member
  • Glassmorphic Effects - Modern blur and gradient overlays
  • Responsive Design - Optimized for all screen sizes
  • Touch Feedback - Haptic responses on all interactions

🔊 Audio & Feedback

  • Sound Effects System - Jump, score, collision, and game over sounds
  • Haptic Feedback - Vibration on tap, collision, and menu interactions
  • Visual Feedback - Smooth animations and color transitions
  • Audio Controls - Toggle sound on/off (coming soon)

👥 Development Team Features

  • Team Showcase - Dedicated screen for development team
  • Premium Cards - Each developer has a unique themed card
    • Mithun Gowda B - Team Lead (Gold)
    • Harsha N - Developer (Red)
    • Manas Habbu - Developer (Blue)
    • Naren V - Developer (Green)
    • Nevil D'Souza - Developer (Purple)
  • Social Integration - Direct Instagram profile links
  • Role Badges - PRO/DEV badges with glow effects
  • Status Indicators - Active status with green indicators
  • Skill Tags - DESIGN, LOGIC specialization badges

💾 Data Persistence

  • AsyncStorage Integration - Save custom birds and preferences
  • Theme Persistence - Remember user's selected theme
  • Character Persistence - Auto-load last selected character
  • High Score Tracking - Local storage for best scores

🚀 Installation

Prerequisites

Node.js >= 16.x
npm >= 8.x or yarn >= 1.22
Expo CLI >= 6.x

Quick Start

  1. Clone the repository
git clone https://github.com/mithun50/Custom-Flappy-Bird.git
cd Custom-Flappy-Bird
  1. Install dependencies
npm install
# or
yarn install
  1. Start development server
npm start
# or
expo start
  1. Run on platform
# iOS Simulator
npm run ios

# Android Emulator
npm run android

# Web Browser
npm run web

# Physical Device
# Scan QR code with Expo Go app

Building for Production

Android APK

# Generate APK
expo build:android -t apk

# Or with EAS Build
eas build --platform android

iOS App

# Generate IPA
expo build:ios

# Or with EAS Build
eas build --platform ios

🎮 How to Play

Main Menu

  1. Start Screen - Tap anywhere to begin
  2. Customize Button - Access customization options
  3. Development Team Button - View team showcase

Customization Screen

  1. Select Character - Choose from 4 default birds or add custom
  2. Select Theme - Choose Day, Night, or City background
  3. Upload Custom - Add your own character images (tap + icon)
  4. Save Changes - Save button to persist selections

Gameplay

  1. Tap to Jump - Single tap makes your character fly
  2. Avoid Obstacles - Navigate through pipes
  3. Score Points - +1 for each pipe passed
  4. Game Over - Collision ends the game
  5. Restart - Tap restart button to play again

Development Team

  1. View Profiles - Tap Development Team button
  2. Browse Cards - Scroll through team member cards
  3. Visit Instagram - Tap any card to open Instagram profile
  4. Back Button - Return to main menu

🛠️ Tech Stack

Core Technologies

  • React Native 0.81.5 - Cross-platform mobile framework
  • React 19.1.0 - Latest React features and optimizations
  • Expo 54.0.0 - Development and build platform

Graphics & Animation

  • @shopify/react-native-skia 2.2.12 - High-performance 2D graphics
  • react-native-reanimated 4.1.1 - 60 FPS animations on UI thread
  • react-native-gesture-handler 2.28.0 - Native touch gestures

Features & Utilities

  • expo-haptics 15.0.7 - Haptic feedback system
  • expo-image-picker 17.0.8 - Image selection and upload
  • expo-file-system 19.0.17 - File system access
  • @react-native-async-storage/async-storage 2.2.0 - Data persistence

Performance

  • react-native-worklets-core 1.6.2 - High-performance worklets
  • react-native-worklets 0.5.1 - JavaScript worklet support

📂 Project Structure

FlappyBird/
├── assets/
│   ├── sprites/
│   │   ├── developers/           # Team profile pictures
│   │   │   ├── harsha.png
│   │   │   ├── manas.png
│   │   │   ├── mithun.png
│   │   │   ├── naren.png
│   │   │   └── nevil.png
│   │   ├── background-day.png
│   │   ├── background-night.png
│   │   ├── nightcity.jpg
│   │   ├── yellowbird-upflap.png
│   │   ├── bluebird-upflap.png
│   │   ├── redbird-upflap.png
│   │   ├── pipe-green.png
│   │   ├── pipe-green-top.png
│   │   ├── base.png
│   │   ├── customize_button.png
│   │   ├── development_team_button.png
│   │   ├── restart_button.png
│   │   ├── save_button.png
│   │   └── back_button.png
│   ├── icon.png                 # App icon
│   └── splash.png               # Splash screen
├── .github/
│   ├── ISSUE_TEMPLATE/
│   └── PULL_REQUEST_TEMPLATE.md
├── App.js                       # Main game logic (1700+ lines)
├── package.json                 # Dependencies
├── babel.config.js              # Babel configuration
├── app.json                     # Expo configuration
└── README.md                    # This file

🎨 Advanced Customization

Physics Configuration

// Gravity and jump force
const GRAVITY = 1000;           // Pixels/second²
const JUMP_FORCE = -500;        // Initial jump velocity

// Pipe settings
const pipeWidth = 104;          // Pipe width in pixels
const pipeHeight = 640;         // Pipe height in pixels
const pipeGap = 200;            // Gap between top and bottom pipes

Adding Custom Birds

// 1. Add image to assets/sprites/
// 2. Import in App.js
const customBird = useImage(require('./assets/sprites/custom-bird.png'));

// 3. Add to bird selection UI (line ~1186)
{/* Custom Bird */}
<Group>
  {customBird && (
    <Group clip={rrect(rect(x, y, 70, 70), 35, 35)}>
      <Image image={customBird} x={x} y={y} width={70} height={70} fit="cover" />
    </Group>
  )}
</Group>

Theme Customization

// Add new theme background
const bgCustom = useImage(require('./assets/sprites/custom-bg.png'));

// Update theme selection
const bg = theme === 'custom' ? bgCustom :
           theme === 'night' ? bgNight :
           theme === 'city' ? bgCity : bgDay;

Difficulty Tuning

// Adjust pipe speed progression
const pipesSpeed = useDerivedValue(() => {
  return interpolate(
    score.value,
    [0, 10, 20, 30],           // Score milestones
    [1, 1.5, 2, 2.5]           // Speed multipliers
  );
});

🎯 Features Roadmap

✅ Completed

  • Multiple bird characters with custom upload
  • Theme selection (Day, Night, City)
  • Development team showcase screen
  • Instagram social integration
  • Premium UI with glassmorphic cards
  • AsyncStorage data persistence
  • Haptic feedback system
  • Sound effects
  • Manas as default bird character

🚧 In Progress

  • High score leaderboard
  • Sound toggle controls
  • Additional character animations
  • More theme variations

📋 Planned

  • Multiplayer mode
  • Power-ups and bonuses
  • Achievement system
  • Daily challenges
  • Cloud save synchronization
  • Social sharing features
  • Replay system
  • Custom pipe themes

👥 Development Team

Meet the talented developers behind Custom Flappy Bird - a passionate team of React Native enthusiasts who brought this project to life with modern UI design, premium features, and meticulous attention to detail.

Team Members

Mithun Gowda B
Mithun Gowda B
🏆 Team Lead & Core Developer

Project architect and team lead responsible for overall system design, game logic implementation, and team coordination. Specialized in React Native development and high-performance animations.


Harsha N
Harsha N
🎨 UI/UX Designer & Frontend Developer

Lead designer responsible for the premium UI cards, glassmorphic effects, and visual aesthetics. Created the beautiful development team showcase and customization interface.


Manas Habbu
Manas Habbu
🎨 Design Developer & Graphics Specialist

Graphics and design specialist who crafted the default bird character system, circular profile implementations, and visual effects. Focused on creating a cohesive design language throughout the app.


Naren V
Naren V
⚙️ Logic Developer & Backend Specialist

Core logic developer who implemented game physics, collision detection, and scoring systems. Specialized in performance optimization and worklet-based animations for smooth 60 FPS gameplay.


Nevil D'Souza
Nevil D'Souza
⚙️ Logic Developer & Features Engineer

Features engineer who developed the customization system, AsyncStorage integration, and custom character upload functionality. Implemented data persistence and state management solutions.


Join Our Team!
🚀 We're always looking for passionate developers

Interested in contributing to Custom Flappy Bird? Check out our Contributing Guidelines and open a pull request!

Team Contributions

Developer Specialization Key Contributions
Mithun Gowda B Team Lead, Architecture Game engine, physics system, team coordination
Harsha N UI/UX Design Premium cards, glassmorphic effects, visual design
Manas Habbu Graphics & Design Default character system, circular profiles, design language
Naren V Game Logic Collision detection, scoring system, performance optimization
Nevil D'Souza Features Engineering Customization system, data persistence, state management

Collaboration Tools

  • Version Control: Git & GitHub
  • Communication: Instagram, GitHub Discussions
  • Project Management: GitHub Issues & Projects
  • Code Review: Pull Request workflow
  • Development: React Native, Expo, VS Code

🐛 Known Issues & Limitations

Current Limitations

  • Custom images are automatically clipped to circular shape for visual consistency
  • Maximum 10 custom birds can be uploaded
  • Sound effects use Web Audio API (may have platform-specific behavior)
  • iOS requires additional permissions for image picker

Browser Compatibility

  • Best performance on Chrome/Safari mobile browsers
  • Firefox mobile may have reduced performance
  • Desktop browsers supported but optimized for mobile

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

Development Guidelines

  • Follow existing code style
  • Add comments for complex logic
  • Test on both iOS and Android
  • Update README for new features
  • Keep commits atomic and descriptive

📝 License

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

MIT License Summary

  • ✅ Commercial use
  • ✅ Modification
  • ✅ Distribution
  • ✅ Private use
  • ❌ Liability
  • ❌ Warranty

🙏 Acknowledgments

  • Graphics Assets - Classic sprite assets and visual elements
  • React Native Community - For amazing libraries and support
  • Expo Team - For the excellent development platform
  • Shopify Skia Team - For high-performance graphics library

📧 Contact & Support

Project Maintainer: Mithun Gowda B

Project Links:

📊 Project Stats

GitHub stars GitHub forks GitHub issues GitHub pull requests

🌟 Show Your Support

If you find this project helpful or interesting, please consider:

  • ⭐ Starring the repository
  • 🐛 Reporting bugs
  • 💡 Suggesting new features
  • 🔀 Contributing code
  • 📢 Sharing with others

Built with ❤️ using React Native & Expo

Made by the Custom Flappy Bird Team

License: MIT

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%