{"id":28047190,"url":"https://github.com/michelbr84/arcade_survival","last_synced_at":"2026-04-29T14:07:24.877Z","repository":{"id":292053152,"uuid":"979662060","full_name":"michelbr84/arcade_survival","owner":"michelbr84","description":"Arcade Survival is a retro-inspired 2D top-down survival shooter built with Python and Pygame. Fight off endless waves of enemies, collect points, and see how long you can survive. Clean architecture, modular components, and elegant UI design make this project a great base for further development or learning game dev with Python.","archived":false,"fork":false,"pushed_at":"2025-12-17T02:28:32.000Z","size":8269,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-20T16:16:43.535Z","etag":null,"topics":["2d-game","arcade-game","enemy-waves","game-development","game-loop","indie-game","json","modular-architecture","open-source","pygame","pygame-tutorial","python-game","resolution-settings","retro-game","sound-effects","survival-shooter","topdown-game"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michelbr84.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,"zenodo":null}},"created_at":"2025-05-07T21:45:06.000Z","updated_at":"2025-12-17T02:28:35.000Z","dependencies_parsed_at":"2025-05-07T23:35:27.118Z","dependency_job_id":null,"html_url":"https://github.com/michelbr84/arcade_survival","commit_stats":null,"previous_names":["michelbr84/arcade_survival"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/michelbr84/arcade_survival","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelbr84%2Farcade_survival","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelbr84%2Farcade_survival/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelbr84%2Farcade_survival/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelbr84%2Farcade_survival/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michelbr84","download_url":"https://codeload.github.com/michelbr84/arcade_survival/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michelbr84%2Farcade_survival/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32428643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T13:34:34.882Z","status":"ssl_error","status_checked_at":"2026-04-29T13:34:29.830Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["2d-game","arcade-game","enemy-waves","game-development","game-loop","indie-game","json","modular-architecture","open-source","pygame","pygame-tutorial","python-game","resolution-settings","retro-game","sound-effects","survival-shooter","topdown-game"],"created_at":"2025-05-11T20:45:34.424Z","updated_at":"2026-04-29T14:07:24.858Z","avatar_url":"https://github.com/michelbr84.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e🎮 Arcade Survival\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/images/background.jpg\" alt=\"Arcade Survival Screenshot\" width=\"600\"/\u003e\n\u003c/p\u003e\n\n---\n\n## 📖 About the Game\n\n**Arcade Survival** is a top-down 2D survival shooter built with Python and Pygame. The player must survive waves of enemies by moving, dodging, and shooting in a dynamically scaling environment. The game features a retro-inspired interface, resolution switching, basic audio controls, and a responsive UI system.\n\n---\n\n## 📂 Project Structure\n\n```\n\narcade\\_survival/\n├── main.py\n├── config/\n│   ├── **init**.py\n│   ├── settings.py\n│   └── paths.py\n├── core/\n│   ├── **init**.py\n│   ├── game.py\n│   ├── menus.py\n│   └── utils.py\n├── entities/\n│   ├── **init**.py\n│   ├── player.py\n│   ├── bullet.py\n│   └── enemy.py\n├── assets/\n│   ├── images/\n│   │   ├── player.png\n│   │   ├── enemy.png\n│   │   └── background.jpg\n│   ├── sounds/\n│   │   ├── shoot.mp3\n│   │   ├── kill.mp3\n│   │   ├── gameover.mp3\n│   │   └── music.mp3\n│   └── fonts/\n│       └── arial.ttf\n├── data/\n│   ├── highscores.json\n│   └── settings.json\n├── requirements.txt\n├── README.md\n└── .gitignore\n\n````\n\n---\n\n## ✅ Features Implemented\n\n- ✅ Modular and scalable project structure\n- ✅ Functional main menu, pause menu, and options menu\n- ✅ Player movement (WASD) and mouse-aimed shooting\n- ✅ Bullet collision with enemies\n- ✅ Enemy wave generation with difficulty scaling\n- ✅ Health bar and player damage system\n- ✅ Sound effects: shoot, kill, game over (using safe loader)\n- ✅ Background music with volume control\n- ✅ Resolution switching and fullscreen toggle\n- ✅ JSON support for future persistent data\n- ✅ Graceful error handling for missing or failed audio assets\n\n---\n\n## 🛠️ To Do / Work in Progress\n\n- ☐ Add individual volume control for `general_volume`, `music_volume` and `effects_volume`\n- ☐ Save and load player score from `highscores.json`\n- ☐ Animated sprites for characters\n- ☐ Add new enemy types with behaviors\n- ☐ Implement power-ups (speed, double-shot, etc.)\n- ☐ Game over and retry screen\n- ☐ Difficulty selection (easy, normal, hard)\n- ☐ Gamepad/controller support\n- ☐ In-game settings with UI sliders\n- ☐ Local leaderboard system\n\n---\n\n## 🧩 Requirements\n\n- Python 3.12+\n- Pygame 2.6+\n\nTo install dependencies:\n\n```bash\npip install -r requirements.txt\n````\n\n---\n\n## 🚀 Running the Game\n\n```bash\npython main.py\n```\n\n---\n\n## 🧠 Credits\n\n* Developed using **Pygame** and **Python 3**\n* All visual and sound assets used here are placeholders — replace them before redistribution\n\n---\n\n## 📃 License\n\nThis project is licensed under the **MIT License** (see `LICENSE`).\n**Note:** Assets in the `assets/` folder are for educational use only and should be replaced for commercial or production use.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichelbr84%2Farcade_survival","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichelbr84%2Farcade_survival","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichelbr84%2Farcade_survival/lists"}