{"id":25019664,"url":"https://github.com/djeada/3d-pong","last_synced_at":"2026-01-16T17:48:41.845Z","repository":{"id":175638710,"uuid":"654258690","full_name":"djeada/3D-Pong","owner":"djeada","description":"This project is a 3D implementation of the classic game Pong using the Visualization Toolkit (VTK). It is a two-player game where each player controls a paddle to hit the ball and prevent it from reaching their goal. The score is updated in real-time.","archived":false,"fork":false,"pushed_at":"2024-06-01T20:17:54.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-05T11:51:51.554Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djeada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-15T18:17:13.000Z","updated_at":"2024-06-01T20:16:02.000Z","dependencies_parsed_at":"2024-06-01T22:10:18.878Z","dependency_job_id":"ac7dea9c-ed71-48fb-b71e-e0812e32aada","html_url":"https://github.com/djeada/3D-Pong","commit_stats":null,"previous_names":["djeada/3d-pong"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2F3D-Pong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2F3D-Pong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2F3D-Pong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2F3D-Pong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djeada","download_url":"https://codeload.github.com/djeada/3D-Pong/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246301997,"owners_count":20755514,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-05T11:51:22.638Z","updated_at":"2026-01-16T17:48:41.825Z","avatar_url":"https://github.com/djeada.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3D Pong Game\n\nThis project is a 3D implementation of the classic game Pong using the Visualization Toolkit (VTK). It features both single-player mode with AI opponent and two-player local multiplayer. The score is updated in real-time with visual feedback.\n\n![Game Screenshot](https://github.com/user-attachments/assets/ed8aab6b-e0cd-4ad2-b9fe-bbe0ef640ca6)\n\n## Features\n\n### Gameplay\n- **3D Real-Time Rendering**: Utilizes VTK to create an immersive 3D game environment.\n- **Single Player Mode**: Play against an AI opponent with three difficulty levels.\n- **Two-Player Mode**: Local multiplayer with keyboard controls.\n- **Win Condition**: First player to reach 11 points wins the match.\n- **Dynamic Ball Physics**: Ball angle changes based on where it hits the paddle.\n- **Progressive Difficulty**: Ball speed increases over time for more challenging gameplay.\n\n### Visual Effects\n- **Ball Trail**: Colorful trail effect following the ball (toggle with T key).\n- **Speed-Based Colors**: Ball color changes based on its current speed.\n- **Collision Effects**: Visual feedback when ball hits paddles.\n- **Score Flash**: Background flash effect when scoring.\n- **Dark Theme**: Modern dark background for better visibility.\n\n### AI Opponent\n- **Three Difficulty Levels**:\n  - **Easy**: Slower reactions, less accurate predictions\n  - **Medium**: Balanced gameplay (default)\n  - **Hard**: Fast reactions, highly accurate\n\n## Controls\n\n### Paddle Movement\n- **Player 1 (Left)**: `W` to move up, `S` to move down\n- **Player 2 (Right)**: `↑` Arrow to move up, `↓` Arrow to move down\n\n### Game Controls\n| Key | Action |\n|-----|--------|\n| `Space` | Pause/Resume game |\n| `R` | Reset game |\n| `A` | Toggle AI opponent on/off |\n| `D` | Cycle difficulty (Easy → Medium → Hard) |\n| `T` | Toggle ball trail effect |\n\n## Installation\n\n### For Developers\n\nTo work with the source code and manage dependencies, follow these steps:\n\n1. **Clone the Repository**: First, clone the repository to your local machine.\n\n    ```bash\n    $ git clone https://github.com/djeada/3D-Pong.git\n    $ cd 3D-Pong\n    ```\n\n2. **Set Up a Virtual Environment**: It's a good practice to use a virtual environment to manage dependencies.\n\n    ```bash\n    $ virtualenv env\n    $ source env/bin/activate\n    ```\n\n3. **Install Dependencies**: Install the required Python packages listed in the `requirements.txt` file.\n\n    ```bash\n    $ pip install -r requirements.txt\n    ```\n\n4. **Verify VTK Installation**: Ensure that VTK is installed correctly by running a simple VTK script or checking the installation.\n\n    ```bash\n    $ python -c \"import vtk; print(vtk.VTK_VERSION)\"\n    ```\n\n5. **Run the Game**: After setting up everything, you can run the game using the following command:\n\n    ```bash\n    $ python src/main.py\n    ```\n\n### For Normal Users\n\nFor users who just want to play the game without diving into the source code, follow these steps:\n\n1. **Download the Executable**: Go to the [Releases](https://github.com/yourusername/3D-Pong/releases) page of the GitHub repository.\n\n2. **Select the Latest Release**: Find the latest release and download the executable file appropriate for your operating system (e.g., Windows, macOS, Linux).\n\n3. **Run the Executable**:\n    - **Windows**: Double-click the `.exe` file to start the game.\n    - **macOS/Linux**: Open a terminal, navigate to the directory containing the downloaded file, and run the following command:\n\n      ```bash\n      $ chmod +x 3D-Pong\n      $ ./3D-Pong\n      ```\n      \n## Contributing\nWe welcome contributions to this guide! If you would like to contribute, please create a pull request. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n[MIT](https://choosealicense.com/licenses/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjeada%2F3d-pong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjeada%2F3d-pong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjeada%2F3d-pong/lists"}