{"id":24731228,"url":"https://github.com/randomsearch18/mid-knight-snacks","last_synced_at":"2025-10-27T09:03:18.745Z","repository":{"id":264322920,"uuid":"893044827","full_name":"RandomSearch18/mid-knight-snacks","owner":"RandomSearch18","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-02T13:14:29.000Z","size":9832,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-27T16:11:48.029Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RandomSearch18.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-11-23T11:45:23.000Z","updated_at":"2024-12-02T13:14:33.000Z","dependencies_parsed_at":"2024-11-23T17:01:25.972Z","dependency_job_id":null,"html_url":"https://github.com/RandomSearch18/mid-knight-snacks","commit_stats":null,"previous_names":["randomsearch18/midnight-snacks","randomsearch18/mid-knight-snacks"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomSearch18%2Fmid-knight-snacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomSearch18%2Fmid-knight-snacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomSearch18%2Fmid-knight-snacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomSearch18%2Fmid-knight-snacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RandomSearch18","download_url":"https://codeload.github.com/RandomSearch18/mid-knight-snacks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244981159,"owners_count":20542287,"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-01-27T16:12:07.352Z","updated_at":"2025-10-27T09:03:18.740Z","avatar_url":"https://github.com/RandomSearch18.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mid-Knight Snacks\n\n\u003cp align=\"center\"\u003e\n  \u003cimg hspace=\"4\" src=\"https://img.shields.io/badge/a%20counterspell%20game-FEC2FB%3F?style=for-the-badge\u0026logo=undertale\u0026logoColor=ffffff\u0026color=FF4186\" alt=\"A Counterspell Game\"\u003e\n  \u003cimg hspace=\"4\" src=\"https://img.shields.io/badge/made%20for%20high%20seas-FEC2FB?style=for-the-badge\u0026logo=hackclub\u0026logoColor=1C4188\" alt=\"Made for High Seas\"\u003e\n\u003c/p\u003e\n\nA castle- and beef-themed game, made during the [Counterspell](https://counterspell.hackclub.com/) game jam in Autumn 2024.\n\n## How to run the game\n\n### Play it online\n\nVisit **[https://randomsearch18.github.io/mid-knight-snacks](https://randomsearch18.github.io/mid-knight-snacks/)** to play the game in your browser! Keyboard required.\n\nAn alternative domain is available: \u003chttps://knight.mish.drinks-tea.uk\u003e\n\n### Run it locally\n\n1. Clone the repository\n2. Create a venv if you want (`python3 -m venv .venv` and `source .venv/bin/activate`)\n3. Install Pygame with `python3 -m pip install -r requirements.txt`\n4. `python3 main.py`\n\n## Instructions and lore\n\nMove with \u003ckbd\u003eA\u003c/kbd\u003e and \u003ckbd\u003eD\u003c/kbd\u003e and use \u003ckbd\u003eSpace\u003c/kbd\u003e to jump.\n\nYou are a very hungry knight in a castle, and you've got to navigate the castle to find the beef that you crave. You know you've won when you become nice and... chubby.\n\nThe original idea behind the game was that by completing levels, the player would get larger and more unwieldy, thus making the player their own enemy.\n\n## Improvements made after Counterspell\n\nI focused on improving how the game functioned rather than adding any new gameplay, because my experience with making these changes will be more broadly useful in future games or projects. The important things I did to improve the game were to:\n\n- Fix the _incredibly_ botched Physics logic\n  - Turns out that creating something that actually works wasn't too hard, now that I've done it once\n- Make the game playable on the web\n- Slightly improve how the knight looks (even if he's still a solid-color rectangle)\n- Properly handle exiting the game area\n  - Including respawning with an animation\n  - Previously, the game would softlock if you jumped to far up, and crash if you walked too far right\n- Make the game window resizable, and make the level best fit the available space\n  - This included rewriting the game to use tiles as a coordinate system (rather than pixels)\n\n## Screenshots\n\n![Screenshot of the game running on Linux](./demos/mid-knight-snacks.png)\n![Screenshot of the game in a smaller window, showing how it can automatically resize](./demos/auto-resizing.png)\n\n### Epic fails\n\n![Graphics glitching out while working on resizable windows](./demos/graphics-fail.png)\n\n## Demo video\n\nYou can [download or view the demo video (1.5 MB, mp4)](./demos/Mid-Knight%20Snacks.mp4). It shows the game in the state it was in at the end the Counterspell game jam.\n\n\u003cvideo controls src=\"demos/Mid-Knight Snacks.mp4\" title=\"Mid-Knight Snacks demo video\"\u003e\u003c/video\u003e\n\n## System requirements\n\nThese are the requirements for running the game locally:\n\n- A screen.\n- Windows, Linux, or MacOS\n  - Fun fact: during the game jam, we used Windows and MacOS, and further development was done with Linux\n- You need a keyboard! Or something that can provide inputs for \u003ckbd\u003eA\u003c/kbd\u003e, \u003ckbd\u003eD\u003c/kbd\u003e, and \u003ckbd\u003eSpace\u003c/kbd\u003e\n- A modern version of Python. You can probably go down to something like v3.8, but that hasn't been specifically tested\n\n## Building for the web\n\nFollowing the [Pygbag documentation](https://pygame-web.github.io/wiki/pygbag/#running-your-project-in-your-own-browser):\n\n1. Install Pygbag: `python3 -m pip install pygbag`\n2. Build and serve the game: `python3 -m pygbag .`\n3. Visit \u003chttp://localhost:8000\u003e in your browser and wait for the game to load\n\nTo just build the files without serving them, run `python -m pygbag --build .`\n\n## Credits\n\nDeveloped by the dream team of Andrew, Mish and Morgan during Counterspell. Enhanced by Mish after the game jam.\n\nMade using [Pygame](https://www.pygame.org/), with [Pygbag](https://pygame-web.github.io/wiki/pygbag/) for the web distribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomsearch18%2Fmid-knight-snacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frandomsearch18%2Fmid-knight-snacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomsearch18%2Fmid-knight-snacks/lists"}