{"id":24437584,"url":"https://github.com/pjtunstall/mad","last_synced_at":"2025-03-13T23:09:59.458Z","repository":{"id":249368669,"uuid":"828634095","full_name":"pjtunstall/mad","owner":"pjtunstall","description":"The Mad Bomber's Tea Party: 01Founders project to make a multi-player browser game using web sockets, and no WebGL or any framework except one we made in an earlier project. Based on a single-player version by fellow students; see in-game credits.","archived":false,"fork":false,"pushed_at":"2025-02-25T10:25:02.000Z","size":18418,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T11:29:13.756Z","etag":null,"topics":["game","javascript","multiplayer-game","node-js","websocket"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/pjtunstall.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-07-14T18:22:15.000Z","updated_at":"2025-02-25T10:25:05.000Z","dependencies_parsed_at":"2025-02-25T11:36:01.166Z","dependency_job_id":null,"html_url":"https://github.com/pjtunstall/mad","commit_stats":null,"previous_names":["pjtunstall/bomberman-dom"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjtunstall%2Fmad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjtunstall%2Fmad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjtunstall%2Fmad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjtunstall%2Fmad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pjtunstall","download_url":"https://codeload.github.com/pjtunstall/mad/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243495497,"owners_count":20299922,"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":["game","javascript","multiplayer-game","node-js","websocket"],"created_at":"2025-01-20T18:17:08.046Z","updated_at":"2025-03-13T23:09:59.449Z","avatar_url":"https://github.com/pjtunstall.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Mad Bomber's Tea Party\n\n![red](images/red.jpg)\n\n1. [Background](#background)\n2. [Setup](#setup)\n3. [Progress](#progress)\n4. [Framework](#framework)\n\n## 1. Background\n\nThis is our take on the final project of the JavaScript section of the [01Founders course](https://01edu.notion.site/Global-01-Curriculum-50b7d94ac56a429fb3aee19a32248732), a branch of the [01Edu](https://01-edu.org/pedagogy) coding bootcamp system. The [brief](https://github.com/01-edu/public/tree/master/subjects/bomberman-dom) asks us to make a browser game for two to four players, based on the classic 1983 [Bomberman](https://en.wikipedia.org/wiki/Bomberman), using web sockets, but no WebGL or any framework apart from the [home-made one](https://github.com/pjtunstall/mini-framework) we built for our previous project.\n\nThis game was adapted from a single-player original by some of our fellow students: Peter Coles, Michael Adeleke, and Mohammed Rashidur Rahman.\n\n[Other features](docs/further.md) may be added eventually.\n\n## 2. Setup\n\nClone the repo and navigate into the backend folder:\n\n```zsh\ngit clone https://github.com/pjtunstall/mad\ncd mad/backend\n```\n\nInstall Node dependencies with `npm install`. Then run `node server.js` to start the server on port 3000.\n\nThe server will log its IP address in the terminal. To connect over a mobile hotspot, players can enter that address into their browser. As yet it only supports a single instance of the game.\n\nNote: the instructions ask us to have a lobby with a 20s countdown, followed by a 10s countdown for whoever has joined during the first countdown. Instead, we chose to implement a 10s countdown only. The two countdowns didn't make dramatic sense, especially in the context of our more elaborate intro. Also, 20s is not long to chat! (The instructions don't make it clear whether they expect the chat to continue during the game. We assumed not.)\n\n## 3. Progress\n\nThis multiplayer version can be played in Chrome, Brave, Firefox, Edge, and Safari. As in its single-player precursor, all bonus powerups are implemented except bomb-push (throw). Intermittent [bugs](docs/bugs.md) remain. To tackle these, more play testing would be needed under various conditions and on different devices. It's still too sensitive to screen dimensions. Size, proportions, and alignment could be fixed better, leaving less to chance, especially on the intro. See [Further](docs/further.md) (in particular, DESIGN) for more detail.\n\n## 4. Framework\n\nWe're using it in a minimal way, just to construct the game grid, so as to meet the requirements for the 01Founders exercise. For more detail, see this [discussion](docs/framework.md), which includes the original plan and thoughts on how it might be developed it further. But I don't see any good in that. I think it would complicate the code, impinge on performance, and be--from the players' perspective--at best unnoticeble.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjtunstall%2Fmad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpjtunstall%2Fmad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjtunstall%2Fmad/lists"}