{"id":17482204,"url":"https://github.com/isaacbernat/2pddl42ppl","last_synced_at":"2026-04-27T12:04:07.877Z","repository":{"id":258253606,"uuid":"865037114","full_name":"isaacbernat/2pddl42ppl","owner":"isaacbernat","description":"2 paddles for (up to) 2 people to play on a single handheld console","archived":false,"fork":false,"pushed_at":"2024-10-19T10:17:14.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-20T05:38:15.935Z","etag":null,"topics":["game","hacktoberfest","micropython","pong","pong-game","pong-python","python","thumby"],"latest_commit_sha":null,"homepage":"","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/isaacbernat.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-09-29T20:18:18.000Z","updated_at":"2024-10-17T19:39:04.000Z","dependencies_parsed_at":"2024-10-23T03:23:33.206Z","dependency_job_id":"558e5d16-1b3a-4083-972b-36d93fc8a5fb","html_url":"https://github.com/isaacbernat/2pddl42ppl","commit_stats":null,"previous_names":["isaacbernat/2pddl42ppl"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbernat%2F2pddl42ppl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbernat%2F2pddl42ppl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbernat%2F2pddl42ppl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaacbernat%2F2pddl42ppl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isaacbernat","download_url":"https://codeload.github.com/isaacbernat/2pddl42ppl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246035907,"owners_count":20713175,"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","hacktoberfest","micropython","pong","pong-game","pong-python","python","thumby"],"created_at":"2024-10-18T23:04:33.655Z","updated_at":"2026-04-27T12:04:07.870Z","avatar_url":"https://github.com/isaacbernat.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 2pddl42ppl\n2 paddles for (up to) 2 people to play on a single console.\n\nProof of concept implementation in [Thumby](https://thumby.us/) which uses familiar Pong mechanics. Has Versus, Coop and Solo modes. Physics, paddle, balls and up to 8 parameters are easily adjusted using the game settings menu. All this well under 0x100 (255) lines of code.\n\n## Footage\n[![Demo video](https://img.youtube.com/vi/K-yZ11NldGY/0.jpg)](https://www.youtube.com/watch?v=K-yZ11NldGY)\n\nDo you think [Thumby](https://thumby.us/) is too small to be played by an adult. Well, click the image above to see a video proof that it can be played by 2 at the same time with a single device! Notice that the ball gets smaller (and faster) on each bounce to keep it challenging (and one may configure this among other params).\n\n## How to play?\n- Player 1 controls the leftmost paddle using up and down arrows from D-pad (as expected).\n- Player 2 controls the other paddle using A and B buttons, the topmost to move the paddle up, the other down.\n- The goal is to keep the ball bouncing on the paddles for as long as possible.\n- You can try it on a [Thumby emulator here](https://code.thumby.us/)\n\n## Why?\nI wanted to show it's possible to have real-time multiplayer games under the restrictions of a simple handheld console.\n\nI remember as a kid I watched my older brother play on a GameBoy over his shoulder. We only had one console, but multiplayer games required two (plus a Game Link Cable). Consoles connected to a tv display usually have 2+ independent controllers. But computers with a single keyboard already allowed multiple players! They have many keys, but pressing more than 3 keys at once wasn't supported (a meta-strategy could be to press many keys at once to lock the keyboard and prevent your opponent from doing anything (e.g. moving away from a bomb in Bomberman)). Not as challenging as just having a D-pad and 2 buttons, but enough to push me in that direction.\n\n## See also\nFeel free to contact me if you'd like to push this proof of concept further, or if this inspired you (e.g. to build similar projects).\n\nAnother \"proof of concept\" game I created, soon after I got my Thumby from Kickstarter, is [tinymem](https://github.com/isaacbernat/tinymem). The goal here was to showcase a game programmed under 50 lines of (clean) Python code that used most of the console's capabilities.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaacbernat%2F2pddl42ppl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisaacbernat%2F2pddl42ppl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaacbernat%2F2pddl42ppl/lists"}