---
slug: "paddle-battle"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/johanruttens/paddle-battle@master/README.md"
repo: "https://github.com/johanruttens/paddle-battle"
source_file: "README.md"
branch: "master"
---
# Paddle Battle

Paddle Battle is a classic arcade-style paddle and ball game built with React Native and Expo. Challenge yourself against an AI opponent, progress through various levels, and aim for the highest score!

## Features

*   **Engaging Gameplay:** Classic paddle and ball mechanics with a modern touch.
*   **AI Opponent:** Test your skills against a challenging artificial intelligence.
*   **Multiple Levels:** Progress through increasingly difficult levels.
*   **Haptic Feedback:** Immersive tactile feedback during gameplay.
*   **Sound Effects:** Dynamic sound design to enhance the gaming experience.
*   **Local High Scores:** Track your best performances directly on your device.
*   **Customizable Settings:** Adjust game preferences to your liking.

## Technologies Used

*   **React Native:** For building native mobile applications using JavaScript and React.
*   **Expo:** A framework and platform for universal React applications, providing tools and services for building, deploying, and quickly iterating on native apps.
*   **Zustand:** A fast, small, and scalable bearbones state-management solution.
*   **React Native Reanimated & Gesture Handler:** For fluid animations and responsive touch interactions.
*   **Expo AV & Haptics:** For multimedia playback and haptic feedback.
*   **TypeScript:** For type-safe development.

## Installation

To get a local copy up and running, follow these simple steps.

### Prerequisites

*   Node.js (LTS version recommended)
*   npm or Yarn
*   Expo CLI (`npm install -g expo-cli`)
*   Xcode (for iOS development)

### Steps

1.  **Clone the repository:**
    ```bash
    git clone https://github.com/your-username/PaddleBattle.git
    cd PaddleBattle
    ```
2.  **Install dependencies:**
    ```bash
    npm install
    # or
    yarn install
    ```
3.  **Install CocoaPods (for iOS):**
    ```bash
    cd ios
    pod install
    cd ..
    ```
4.  **Run the app on iOS simulator:**
    ```bash
    npx expo run:ios
    ```
    This will build the app and launch it on an iOS simulator. If you encounter issues, ensure your Xcode is properly set up and you have a simulator available.

## Usage

*   **Main Menu:** Start a new game, select levels, adjust settings, or view your stats.
*   **Gameplay:** Control your paddle to hit the ball and defeat your AI opponent.
*   **Settings:** Customize sound, haptics, and other game preferences.

## Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

1.  Fork the Project
2.  Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3.  Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4.  Push to the Branch (`git push origin feature/AmazingFeature`)
5.  Open a Pull Request

## License

Distributed under the MIT License. See `LICENSE` for more information.

## Contact

Johan Ruttens - [your-email@example.com](mailto:your-email@example.com)
Project Link: [https://github.com/your-username/PaddleBattle](https://github.com/your-username/PaddleBattle)
