{"id":20323679,"url":"https://github.com/erthium/spaceinvaders","last_synced_at":"2026-05-29T01:31:27.771Z","repository":{"id":163380607,"uuid":"239544827","full_name":"erthium/SpaceInvaders","owner":"erthium","description":"Good old Space Invaders game made in Python with Pygame.","archived":false,"fork":false,"pushed_at":"2023-11-22T21:41:52.000Z","size":407,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-04T10:16:32.523Z","etag":null,"topics":["2d-game","game","oop","pygame","python","space-invaders"],"latest_commit_sha":null,"homepage":"","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/erthium.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":"2020-02-10T15:28:14.000Z","updated_at":"2022-06-07T23:03:11.000Z","dependencies_parsed_at":"2023-11-22T22:45:11.829Z","dependency_job_id":null,"html_url":"https://github.com/erthium/SpaceInvaders","commit_stats":null,"previous_names":["erthium/spaceinvaders"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/erthium/SpaceInvaders","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erthium%2FSpaceInvaders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erthium%2FSpaceInvaders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erthium%2FSpaceInvaders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erthium%2FSpaceInvaders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erthium","download_url":"https://codeload.github.com/erthium/SpaceInvaders/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erthium%2FSpaceInvaders/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33633468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","game","oop","pygame","python","space-invaders"],"created_at":"2024-11-14T19:29:13.882Z","updated_at":"2026-05-29T01:31:27.750Z","avatar_url":"https://github.com/erthium.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Space Invaders\n\nA prototype version of the old arcade game Space Invaders from 1980s, made with Python's Pygame.\n\n## License\n\nThis project is [MIT](https://github.com/ErtyumPX/SpaceInvaders/blob/main/LICENSE) licensed.\n\n## Setup\n\nThe python script 'main.py' is the launcher of the game. After you clone or download the repository, you can run that file.\n\nBeware that used Python version of this project is [3.8.3](https://www.python.org/downloads/release/python-383) and the used Pygame version is [2.0.1](https://www.pygame.org/project/5409/7928).\n\n\u003cimg src=\"https://github.com/ErtyumPX/SpaceInvaders/blob/master/Assets/README/SpaceInvaders.JPG\" width=50% height=50%\u003e\n\n\u003chr\u003e\n\n## Mechanics \u0026 Algorithms\n\n### Enemy Fleet Movement\n\nInvaders always act coordinated with their fleet. Every time they loose a fellow ship, they get faster. When they reach the end of a side, they flip the movement to the other side.\n\n### Enemy Attack\n\nThe game starts with an 8x6 fleet. Only the ships on the front lines are allowed to attack, with a reasonable cooldown. Every time an invader in the front line is eliminated, the one on the back takes over.\n\nPlus, invaders does not shoot randomly but only if the user 'protector' are on their sight. If there is nobody in sight for some time, they start shooting randomly to limit user's movement.\n\n### User Interface Elements\n\nPygame's itself does not support enhanced UI elements. All the elemenets and widgets used in this game are from [PyGameEngine](https://github.com/ErtyumPX/PyGameEngine).\n\n\u003chr\u003e\n\n## Inefficiencies\n\nA one-dimensional array was used to hold the invaders. This causes many lines of code while determining which invader is on the front line and which can attack. Yet this was more efficient for the movement calculations.\n\nThere is a glitch with the sound effects at some certain scenerious; yet not easily reproducable. Does not cause much problem yet it was hard to fix because the sound system in Pygame is not the best.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferthium%2Fspaceinvaders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferthium%2Fspaceinvaders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferthium%2Fspaceinvaders/lists"}