GitHunt
KH

khaizinam/beatup_html_game

BeatUp is a web-based rhythm game where players must memorize and input arrow sequences in sync with the music. The game features multiple difficulty levels, various songs, and a progressive challenge system.

๐ŸŽฎ BeatUp - Audition Style Game

A rhythm-based music game inspired by Audition, built with HTML5 Canvas and JavaScript.

๐ŸŽฏ Demo

Play Now: https://beatup.khaizinam.io.vn

๐Ÿ“– About

BeatUp is a web-based rhythm game where players must memorize and input arrow sequences in sync with the music. The game features multiple difficulty levels, various songs, and a progressive challenge system.

โœจ Features

  • ๐ŸŽต Multiple Songs: Choose from different tracks with varying BPM and difficulty
  • ๐ŸŽฎ Game Modes: 4K and 8K modes for different skill levels
  • ๐Ÿ† Difficulty Levels: Easy, Normal, Hard, and Expert
  • ๐ŸŽจ Visual Feedback: Color-coded notes with smooth animations
  • ๐Ÿ’ฏ Scoring System: Combo multipliers and difficulty-based scoring
  • โŒจ๏ธ Responsive Controls: Smooth keyboard input handling
  • ๐ŸŽจ Modern UI: Beautiful gradient backgrounds and glowing effects

๐Ÿ“ธ Screenshots

Here are some screenshots of the game in action:

Gameplay Screenshot 1

Gameplay Screenshot 1

Gameplay Screenshot 2

Gameplay Screenshot 2

๐ŸŽฎ How to Play

Controls

  • Arrow Keys (โ†‘ โ†“ โ† โ†’): Input the displayed sequence
  • SPACE: Complete the sequence when all arrows are entered
  • ESC: Pause game / Return to menu

Gameplay

  1. Select your preferred mode (4K/8K), difficulty, and song
  2. Memorize the arrow sequence shown on screen
  3. Input the arrows in the correct order using arrow keys
  4. Press SPACE when the progress bar reaches the target zone
  5. Chain combos for higher scores!

Scoring

  • PERFECT: Hit exactly in the center zone (100 points)
  • GREAT: Hit close to the center (50 points)
  • COOL: Hit in the acceptable zone (10 points)
  • BAD/MISS: Outside the zone (0 points, combo reset)

Difficulty Multipliers

  • Easy: 0.6x speed, 0.8x score
  • Normal: 1.0x speed, 1.0x score
  • Hard: 1.2x speed, 1.2x score
  • Expert: 1.5x speed, 1.5x score

๐Ÿ› ๏ธ Technology Stack

  • HTML5 Canvas: Game rendering
  • Vanilla JavaScript: Game logic (ES6 modules)
  • CSS3: Styling and animations
  • Laravel Mix: Asset compilation
  • Web Audio API: Sound effects and music playback

๐Ÿ“ Project Structure

public_html/
โ”œโ”€โ”€ index.html              # Main HTML file
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ css/
โ”‚   โ”‚   โ””โ”€โ”€ style.css      # Game styles
โ”‚   โ”œโ”€โ”€ js/
โ”‚   โ”‚   โ””โ”€โ”€ app.js         # Compiled JavaScript
โ”‚   โ”œโ”€โ”€ audio/             # Sound effects
โ”‚   โ”œโ”€โ”€ music/             # Game music tracks
โ”‚   โ””โ”€โ”€ image/             # Game images
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ js/
โ”‚       โ”œโ”€โ”€ Game.js        # Main game class
โ”‚       โ”œโ”€โ”€ constants.js   # Game constants
โ”‚       โ”œโ”€โ”€ config/
โ”‚       โ”‚   โ””โ”€โ”€ data.js    # Song configurations
โ”‚       โ””โ”€โ”€ systems/
โ”‚           โ”œโ”€โ”€ AudioSystem.js    # Audio management
โ”‚           โ”œโ”€โ”€ BeatSystem.js     # Timing system
โ”‚           โ”œโ”€โ”€ NoteSystem.js     # Note generation
โ”‚           โ”œโ”€โ”€ InputSystem.js    # Input handling
โ”‚           โ””โ”€โ”€ UISystem.js       # UI updates
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ webpack.mix.js

๐Ÿš€ Installation & Development

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Setup

  1. Clone the repository:
git clone <repository-url>
cd public_html
  1. Install dependencies:
npm install
# or
yarn install
  1. Development mode (with file watching):
npm run dev
# or
yarn dev
  1. Production build:
npm run build
# or
yarn build
  1. Open index.html in your browser or serve with a local server

๐ŸŽต Adding New Songs

Edit src/js/config/data.js to add new songs:

{
    id: 'song_id',
    name: 'Song Name - Artist',
    file: 'public/music/song-file.mp3',
    duration: 240, // in seconds
    segments: [
        { start: 0, end: 30, mode: 1, bpm: 100, label: "Warm Up" },
        { start: 30, end: 120, mode: 2, bpm: 130, label: "Normal" },
        // ... more segments
    ]
}

๐ŸŽจ Customization

Difficulty Settings

Edit src/js/constants.js to modify difficulty parameters:

  • speedMultiplier: Visual speed of the game
  • noteCountBonus: Additional notes per sequence

Visual Themes

Modify public/css/style.css to change colors, backgrounds, and effects.

๐Ÿ“ License

This project is created by khaizinam for educational and entertainment purposes.

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

๐Ÿ“ง Contact

โค๏ธ Support Me

If you enjoy BeatUp and would like to support its development, you can make a donation here:

QR Code for Donation


Made with โค๏ธ by khaizinam