{"id":15491770,"url":"https://github.com/tristanpenman/asteroids","last_synced_at":"2026-02-24T00:04:33.095Z","repository":{"id":45086196,"uuid":"318366418","full_name":"tristanpenman/asteroids","owner":"tristanpenman","description":"Asteroids clone written in C, and ported to the web using Emscripten","archived":false,"fork":false,"pushed_at":"2025-01-02T00:01:18.000Z","size":4984,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-21T04:20:40.195Z","etag":null,"topics":["asteroids","c","emscripten","n64","opengl","sdl"],"latest_commit_sha":null,"homepage":"","language":"C","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/tristanpenman.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":"2020-12-04T01:20:30.000Z","updated_at":"2025-05-15T07:01:58.000Z","dependencies_parsed_at":"2024-07-27T07:47:57.033Z","dependency_job_id":"9347d711-d6e6-4eaa-9403-836f3d405992","html_url":"https://github.com/tristanpenman/asteroids","commit_stats":{"total_commits":135,"total_committers":2,"mean_commits":67.5,"dds":0.007407407407407418,"last_synced_commit":"be20d1a92cfe561d38d348c14b01d678aa51a640"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tristanpenman/asteroids","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tristanpenman","download_url":"https://codeload.github.com/tristanpenman/asteroids/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanpenman%2Fasteroids/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29761963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T21:02:23.375Z","status":"ssl_error","status_checked_at":"2026-02-23T20:58:31.539Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["asteroids","c","emscripten","n64","opengl","sdl"],"created_at":"2024-10-02T07:56:17.117Z","updated_at":"2026-02-24T00:04:33.079Z","avatar_url":"https://github.com/tristanpenman.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Asteroids\n\nBe thrilled by this high fidelity reproduction of Atari's 1979 classic, Asteroids!\n\nThis is a tidied up version of an Asteroids clone that I wrote over the course of several weekends, as a way to procrastinate while studying for exams. The aim was to get the game running quickly, taking a 'less-is-more' approach. Graphics were implemented using legacy OpenGL, while window management, audio and input were all handled by SDL.\n\n![Asteroids Title Screen](./doc/titlescreen.png)\n\n## Ports\n\nThis project has also been ported to the web using Emscripten, which I wrote about in [this blog post](https://tristanpenman.com/blog/posts/2018/01/08/porting-an-asteroids-clone-to-javascript/), and later to the venerable Nintendo 64. The code for the N64 port can be found [here](https://github.com/tristanpenman/asteroids64).\n\n## Demo\n\nA playable demo can be found [here](https://tristanpenman.com/demos/asteroids).\n\nIf you want to try the N64 version (using either an emulator or a flash-cast such as the Everdrive 64) you can download the ROM [here](https://tristanpenman.com/demos/asteroids/asteroids.n64).\n\n## Dependencies\n\n* SDL2\n* SDL_Mixer2\n* CMake\n* Emscripten (for web builds)\n\n## Build\n\n### macOS and Linux\n\nThe project currently depends on SDL2 and SDL2_mixer, and builds are handled by CMake. Once those dependencies are installed (e.g. using Homebrew or apt), native macOS and Linux builds are relatively simple:\n\n    mkdir build\n    cd build\n    cmake ..\n    make\n\n### Windows\n\nThe project's CMake configuration can also be used to generate Visual Studio project files. However, you will need to extract the archives in [thirdparty](./thirdparty) before you can do this.\n\nOnce those archives have been extracted, CMake GUI should be able to generate a VS solution using the default configuration.\n\n### Emscripten\n\nThe project can also be compiled to Javascript using Emscripten.\n\n    mkdir embuild\n    cd embuild\n    emcmake cmake ..\n    emmake make\n    emrun asteroids.html\n\nEmscripten builds are only supported on Linux and macOS systems.\n\n## License\n\nThis code has been released under the MIT License. See the [LICENSE](LICENSE) file for more information.\n\n### Assets\n\nGame assets are under copyright by Atari.\n\nThe graphics and audio that have been reproduced here are all used in good faith. The clone is intentionally incomplete, so as to not detract from the value of any Atari releases of the game.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftristanpenman%2Fasteroids","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftristanpenman%2Fasteroids","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftristanpenman%2Fasteroids/lists"}