{"id":15103948,"url":"https://github.com/jusqua/bytepath","last_synced_at":"2026-01-19T12:33:02.820Z","repository":{"id":245373987,"uuid":"817494730","full_name":"jusqua/bytepath","owner":"jusqua","description":"A WIP BYTEPATH implementation","archived":false,"fork":false,"pushed_at":"2025-01-09T20:22:55.000Z","size":163,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T12:30:16.188Z","etag":null,"topics":["bytepath","game","game-development","gd50","love2d","lua"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jusqua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-06-19T20:50:53.000Z","updated_at":"2025-01-09T20:23:01.000Z","dependencies_parsed_at":"2025-02-10T23:51:11.210Z","dependency_job_id":"a02f6699-e823-4a13-94b7-5182e97fe68b","html_url":"https://github.com/jusqua/bytepath","commit_stats":{"total_commits":129,"total_committers":1,"mean_commits":129.0,"dds":0.0,"last_synced_commit":"78255b3b7fd98daec11678db435fc74bd674b359"},"previous_names":["jusqua/bytepath"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jusqua/bytepath","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jusqua%2Fbytepath","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jusqua%2Fbytepath/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jusqua%2Fbytepath/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jusqua%2Fbytepath/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jusqua","download_url":"https://codeload.github.com/jusqua/bytepath/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jusqua%2Fbytepath/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28567896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T08:53:44.001Z","status":"ssl_error","status_checked_at":"2026-01-19T08:52:40.245Z","response_time":67,"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":["bytepath","game","game-development","gd50","love2d","lua"],"created_at":"2024-09-25T19:43:52.213Z","updated_at":"2026-01-19T12:33:02.804Z","avatar_url":"https://github.com/jusqua.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jusqua's BYTEPATH\n\nA naive [BYTEPATH](https://store.steampowered.com/app/760330/BYTEPATH/) implementation as a final project for\nCS50’s Introduction to Game Development based on [BYTEPATH Tutorial](https://github.com/a327ex/blog/issues/30).\n\n## Description\n\nThis game it's a small, replayable, arcade score-chaser where the only goal is beat every enemy and survive.\n\nThe `Stage` state is responsible for managing the entire game and controlling the `Director` and `Area` game objects.\n\nThe `Director` is responsible for spawning enemies and resources, and count the game round to increase the difficulty by spawning more enemies.\n\nThe `Area` controls, renders and check collisions in the game world like enemies, resources and the `Player`.\n\nThe `Player` controls a ship that navigate in the `Stage` where enemies and resources appears, enemies can be beaten and resources can be collected.\n\nThe resources can be:\n- `Boost`: increase boost gauge, `Player` uses boost to make ship faster or slower;\n- `Health`: increase health gauge, `Player` uses health to keep alive and enemies and enemy project reduce this gauge;\n- `Ammo`: increase ammo gauge, `Player` uses ammo to shoot special attacks;\n- `Attack`: change attack type, `Player` use different types of attacks:\n  - `Back`: shoot front and back;\n  - `Double`: double shoot;\n  - `Rapid`: shoot faster;\n  - `Side`: shoot front and from both sides;\n  - `Spread`: shoot faster and randomly;\n  - `Triple`: triple shoot.\n\nThe enemies can be:\n- `Rock`: common rock, just float around;\n- `Shooter`: ship that spawns projectiles.\n\nThe game scenes are:\n- `Console`: manage game start by showing a console where player can type commands:\n  - `start`: attach `Stage` scene to start game;\n  - `resolution`: change game resolution;\n  - `exit`: exit game;\n- `Stage`: formelly game loop where `Player` plays around, provides some sub-states:\n  - `pause`: pause the game;\n  - `game over`: show game over screen while game still running in background.\n\n`Console` inputs:\n- The own keyabord to execute console commands;\n- [Enter] to run command.\n\n`Scene` inputs:\n- in-game sub-state:\n  - [Arrow Up] to accelarate ship;\n  - [Arrow Down] to deaccelarate ship;\n  - [Arrow Left] to turn ship left;\n  - [Arrow Right] to turn ship right;\n  - [Escape] toggles pause menu;\n- pause or game over sub-state:\n  - [Q] return to `Console`;\n  - [R] restart `Stage`;\n\n## Missing features\n\nFrom the tutorial, those features are not implemented for lack of time:\n- Player passives to provide in-game features and make the game more enjoyable;\n- Skill tree to provide passive structures;\n- Playable different ships;\n- Shaders and visual effects;\n- Achivements; and\n- Save states.\n\n## Submodules\n\nBuilt with [LÖVE2D 11.5](https://love2d.org/) and Lua\n\n- [Sheepolution/classic](https://github.com/Sheepolution/classic) for objects\n- [xiejiangzhi/input](https://github.com/xiejiangzhi/input) for input handling\n- [vrld/hump](https://github.com/vrld/hump) for timer, vector creation and camera handling\n- [Yonaba/Moses](https://github.com/Yonaba/Moses) for table utils\n- [Ulydev/push](https://github.com/Ulydev/push) for resolution management\n- [idbrii/love-windfield](https://github.com/idbrii/love-windfield) for advanced box2D utils\n- [utf8](https://gist.github.com/9d1f7463c207b7b6c7d28aefec7f5c2d) for utf8 string handling in LuaJIT\n\n## Usage\n\n```shell\ngit clone --recursive https://github.com/jusqua/bytepath\nlove .\n```\n\n## Credits\n\nThanks to [a327ex](https://github.com/a327ex) for the incredible source of learning.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjusqua%2Fbytepath","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjusqua%2Fbytepath","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjusqua%2Fbytepath/lists"}