Skip to content

ZANYANBU/Birdfy.com

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

29 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Birdfy โ€” From HTML Script to iOS App

Created by V Anbu Chelvan (ZANYANBU) A tribute to Flappy Bird that evolved from a single HTML file into a full-featured iOS native game. Built with love for Dong Nguyen, whose brilliantly simple game inspired a generation of developers.


๐Ÿ“ธ Screenshots

Gameplay Main Menu Custom Background
Gameplay Menu Custom BG

To add your own screenshots: place .png files in a screenshots/ folder at the root of the repo and they will appear here automatically.


๐ŸŒ Play It Now (Web)

๐Ÿ”— Live Demo: https://zanyanbu.github.io/Birdfy.com/

Open index.html directly in any browser โ€” no install needed.


๐Ÿš€ The Journey: HTML โ†’ iOS

Version Platform Technology What Was Added
v1 Browser HTML5 Canvas + vanilla JS Core flappy mechanics, physics
v2 Browser CSS3 + Web Audio API Sci-fi theme, particle effects, sound
v3 Browser JavaScript ES6+ Difficulty modes, AI chat sidebar, gravity slider
v4 iOS + Android React Native (Expo) Native 60fps engine, haptics, themes, wings
v5 iOS + Android Expo SDK 54 Gallery backgrounds, per-theme gravity, animated wings

โœจ Full Feature List

๐ŸŒ Web Version (index.html / app.js)

  • โšก Pure Vanilla JS โ€” zero frameworks or dependencies
  • ๐ŸŽ† Particle explosion on collision (25-particle system)
  • ๐ŸŒŒ Animated starfield background
  • ๐ŸŽจ Sci-Fi neon glassmorphism UI
  • ๐ŸŽš๏ธ Real-time gravity slider per difficulty
  • ๐Ÿ† Persistent high score via localStorage
  • ๐Ÿ”Š Procedural sound effects using Web Audio API
  • ๐Ÿค– Optional local AI chatbot (DeepSeek via Ollama / LM Studio)
  • ๐Ÿ“ฑ Responsive โ€” works on desktop and mobile browsers
  • 3 difficulty modes: Easy / Medium / Hard

๐Ÿ“ฑ iOS / Android App (BirdfyMobile/)

  • ๐ŸŽฎ 60 FPS physics engine โ€” requestAnimationFrame + Animated refs (no stale React state)
  • ๐Ÿ’ฅ Haptic feedback โ€” flap (medium thump), score (light tap), crash (error vibration)
  • ๐Ÿชฝ Animated flapping wing โ€” speed scales with difficulty
  • ๐ŸŒ Per-theme gravity control โ€” โˆ’ / + buttons, 0.3ร— (feather) to 2.5ร— (planet), saved permanently
  • ๐ŸŽจ 3 visual themes โ€” Night (dark sci-fi), Day (bright sky), Lava (fiery red)
  • ๐Ÿ“ท Custom background โ€” pick any photo from your gallery to play behind the game
  • ๐Ÿ… Persistent best score via AsyncStorage
  • โœฆ "NEW RECORD" banner on beating your best
  • ๐ŸŽฏ Tight hitbox with inner pixel margins (fair collision detection)
  • ๐Ÿ”„ Difficulty on Game Over screen โ€” switch without going back to menu
  • ๐ŸŒ‘ Status bar hidden โ€” full immersive screen

๐Ÿ—๏ธ Project Structure

Birdfy.com/
โ”‚
โ”œโ”€โ”€ index.html              # Web game โ€” main layout
โ”œโ”€โ”€ app.js                  # Web game โ€” all game logic, physics, AI
โ”œโ”€โ”€ styles.css              # Web game โ€” neon sci-fi styling
โ”œโ”€โ”€ version2.html           # Early prototype
โ”œโ”€โ”€ flappy.html             # Classic variant
โ”‚
โ”œโ”€โ”€ BirdfyMobile/           # React Native / Expo iOS+Android App
โ”‚   โ”œโ”€โ”€ App.js              # Full game: physics, rendering, UI, haptics
โ”‚   โ”œโ”€โ”€ app.json            # Expo config (bundle ID: com.zanya.birdfy)
โ”‚   โ”œโ”€โ”€ babel.config.js     # Babel with Reanimated plugin
โ”‚   โ”œโ”€โ”€ eas.json            # EAS Build config for App Store
โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ”œโ”€โ”€ icon.png
โ”‚   โ”‚   โ”œโ”€โ”€ splash-icon.png
โ”‚   โ”‚   โ””โ”€โ”€ adaptive-icon.png
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ screenshots/            # (Add your screenshots here for README)
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ LICENSE

๐ŸŒ Running the Web Version

Option 1 โ€” Open Directly (Fastest)

Double-click index.html

Option 2 โ€” Local Server (Recommended)

Python:

python -m http.server 8000
# Open http://localhost:8000

Node (npx):

npx serve .
# Open http://localhost:3000

๐ŸŒ Hosting the Web Version

GitHub Pages (Free, automatic)

  1. Push to GitHub (already done)
  2. Go to Repository โ†’ Settings โ†’ Pages
  3. Set Source: main branch, Folder: / (root)
  4. Click Save

Your game is live at:

https://zanyanbu.github.io/Birdfy.com/

Vercel / Netlify (Instant, free)

  1. Go to vercel.com or netlify.com
  2. Click "New Project" โ†’ Import from GitHub
  3. Select ZANYANBU/Birdfy.com
  4. Leave all settings default โ†’ Deploy

No configuration needed โ€” it's a static site.


๐Ÿ“ฑ Running the iOS / Android App

Prerequisites

Tool Install
Node.js 18+ nodejs.org
Expo CLI npm install -g expo-cli
Expo Go app App Store / Google Play

Steps

# 1. Clone the repo
git clone https://github.com/ZANYANBU/Birdfy.com.git
cd Birdfy.com/BirdfyMobile

# 2. Install dependencies
npm install

# 3. Start the development server
npx expo start --clear

# 4. Scan the QR code with:
#    iOS  โ†’ Camera app โ†’ tap "Open in Expo Go"
#    Android โ†’ Expo Go app โ†’ Scan QR

Same Wi-Fi required โ€” your phone and computer must be on the same network.

Build for App Store (Production)

# Install EAS CLI
npm install -g eas-cli

# Login to Expo account
eas login

# Build for iOS (creates .ipa for App Store)
eas build --platform ios

# Build for Android (creates .aab for Play Store)
eas build --platform android

๐ŸŽฎ Controls

Web

Key / Click Action
Space / Click Flap
Enter Restart after crash
Difficulty buttons Easy / Medium / Hard
Gravity slider Fine-tune physics

iOS / Android

Action Effect
Tap anywhere Flap
Tap RETRY Restart instantly
Menu โ†’ Gravity โˆ’/+ Adjust gravity per theme
Menu โ†’ Gallery Set custom background from photos
Menu โ†’ Theme Night / Day / Lava
Menu โ†’ Difficulty Easy / Medium / Hard

๐Ÿงช Tech Stack

Web

Technology Used For
HTML5 Canvas Real-time game rendering
Vanilla JavaScript (ES6+) Game loop, physics, AI calls
CSS3 Neon sci-fi UI, animations
Web Audio API Procedural sound generation
localStorage Score persistence
Fetch API Local AI chat (optional)

iOS / Android App

Package Used For
react-native Native UI components
expo SDK 54 Dev tooling, build system
expo-linear-gradient Background gradients
expo-blur Glassmorphism menus
expo-haptics Vibration feedback
expo-image-picker Gallery background photos
@react-native-async-storage Persistent scores & settings
Animated API 60fps game loop (via setValue)

๐Ÿค– Optional: Local AI Chat (Web Only)

The web version has a built-in AI chat sidebar. To enable it:

Using Ollama

ollama pull deepseek-r1:1.5b
ollama serve

Using LM Studio

  1. Download LM Studio
  2. Load deepseek-r1-distill-qwen-1.5b
  3. Start local server (default: http://localhost:1234)

Then in the game, open the Local DeepSeek panel and click Test Local Model.


๐Ÿ† Credits

Original Inspiration ๐ŸŽฎ Flappy Bird by Dong Nguyen โ€” a simple, brilliant game that changed mobile gaming. This project is a tribute and learning exercise, not a commercial product.

Developer ๐Ÿ‘จโ€๐Ÿ’ป V Anbu Chelvan (ZANYANBU)


๐Ÿ“œ License

MIT โ€” free to fork, learn from, and build upon.


โญ Star this repo if you enjoyed it. Every star means a lot to an indie dev!

Flappy Bird Pro โ€“ Sciโ€‘Fi Edition is a modernized browser game that preserves the core challenge and spirit of Flappy Bird, while enhancing it with:

  • Smooth physics
  • Neon sciโ€‘fi visuals
  • Particle effects
  • Difficulty modes
  • Persistent scoring
  • Optional local AI chatbot integration

This project demonstrates strong fundamentals in game physics, Canvas rendering, UI/UX design, and JavaScript architecture โ€” all without using frameworks.


โœจ Highlights

  • โšก Pure Vanilla JavaScript โ€“ no libraries, no engines
  • ๐Ÿง  Physicsโ€‘based gameplay with tunable gravity & lift
  • ๐ŸŽ† Custom particle engine for collision effects
  • ๐Ÿ’พ Persistent scores using localStorage
  • ๐ŸŽจ Sciโ€‘Fi neon UI with glassmorphism
  • ๐Ÿค– Optional local AI chat (DeepSeek via Ollama / LM Studio)
  • ๐Ÿ”Š Procedural sound effects using Web Audio API

๐Ÿ•น๏ธ Features

Game Mechanics

  • Three difficulty modes: Easy, Medium, Hard
  • Realโ€‘time gravity slider for fine control
  • Input buffering & cooldown for smooth flaps
  • Restart instantly after crash

Visuals & Effects

  • Animated starfield background
  • Glowing pipes & HUD
  • Rotating bird sprite with thrust particles
  • 25โ€‘particle explosion on collision

AI Chat Sidebar (Optional)

  • Gameplay tips
  • Random jokes during play
  • Strategy help
  • Fully offline local AI support

๐Ÿงช Tech Stack & Skills Used

Core Technologies

  • HTML5 Canvas โ€“ realโ€‘time rendering
  • JavaScript (ES6+) โ€“ game loop, physics, AI calls
  • CSS3 โ€“ neon sciโ€‘fi styling & animations
  • Web Audio API โ€“ sound synthesis

Advanced Concepts Demonstrated

  • Game loop & deltaโ€‘time physics
  • Collision detection
  • Particle systems
  • State management
  • Browser storage APIs
  • Local AI inference via HTTP

๐Ÿ“ Project Structure

flappy-pro/
โ”‚
โ”œโ”€โ”€ index.html      # Main game layout
โ”œโ”€โ”€ styles.css      # Sciโ€‘fi UI & responsive styling
โ”œโ”€โ”€ app.js          # Game logic, physics, particles, AI chat
โ”œโ”€โ”€ README.md       # Documentation
โ”œโ”€โ”€ LICENSE         # MIT License

๐Ÿš€ Installation & Running Locally

Option 1: No Install (Fastest)

Simply open the file in your browser:

index.html

Option 2: Local Server (Recommended)

Using Python:

python -m http.server 8000

Then open:

http://localhost:8000

๐ŸŒ Hosting & Deployment

GitHub Pages (Free Hosting)

  1. Push the project to GitHub

  2. Go to Repository โ†’ Settings โ†’ Pages

  3. Set:

    • Source: main branch
    • Folder: /root
  4. Save

Your game will be live at:

https://zanyanbu.github.io/Birdfy.com/

๐ŸŽฎ Controls

Key Action
Space Flap
Enter Restart after crash
Difficulty buttons Change difficulty
Gravity slider Adjust physics

๐Ÿค– Local AI Setup (Optional)

Using Ollama

ollama pull deepseek-r1:1.5b
ollama serve

Using LM Studio

  1. Download LM Studio
  2. Load deepseek-r1-distill-qwen-1.5b
  3. Start local server (default: http://localhost:1234)

Enable in Game

  1. Open Local DeepSeek panel
  2. Select Ollama or LM Studio
  3. Click Test Local Model
  4. Enable AI responses

๐ŸŽจ Customization

Difficulty Tuning (app.js)

const difficulties = {
  easy:   { gravity: 0.45, lift: -10.5, pipeGap: 230, pipeFreq: 125, pipeSpeed: 2.8 },
  medium: { gravity: 0.6,  lift: -11.5, pipeGap: 200, pipeFreq: 110, pipeSpeed: 3.2 },
  hard:   { gravity: 0.8,  lift: -12.5, pipeGap: 170, pipeFreq: 95,  pipeSpeed: 3.8 }
};

Theme Colors (styles.css)

:root {
  --accent: #45e6ff;
  --accent-2: #7e7bff;
  --danger: #ff5d9e;
}


๐Ÿ† Credits & Respect

Original Game Inspiration ๐ŸŽฎ Flappy Bird by Dong Nguyen This project exists purely as a technical tribute and learning project, honoring the simplicity and brilliance of the original game.

Developer ๐Ÿ‘จโ€๐Ÿ’ป V Anbu Chelvan (ANBU)


๐Ÿ“œ License

MIT License โ€” free to fork, learn from, and improve.


โญ If you like this project, consider starring the repo and sharing it with fellow developers.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors