{"id":22208319,"url":"https://github.com/steenhansen/electric-snakes","last_synced_at":"2026-05-06T06:36:42.640Z","repository":{"id":39673626,"uuid":"116213486","full_name":"steenhansen/electric-snakes","owner":"steenhansen","description":"A multi-computer snake game using Redux, Immutable.js, WebSockets and Typescript","archived":false,"fork":false,"pushed_at":"2024-05-20T20:00:37.000Z","size":1085,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T04:42:40.919Z","etag":null,"topics":["game","immutablejs","redux","typescript","webpack","websockets"],"latest_commit_sha":null,"homepage":"https://electric-snakes.onrender.com/create-game","language":"TypeScript","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/steenhansen.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":"2018-01-04T04:12:46.000Z","updated_at":"2024-05-20T20:00:40.000Z","dependencies_parsed_at":"2024-12-02T19:27:47.591Z","dependency_job_id":null,"html_url":"https://github.com/steenhansen/electric-snakes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steenhansen%2Felectric-snakes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steenhansen%2Felectric-snakes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steenhansen%2Felectric-snakes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steenhansen%2Felectric-snakes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/steenhansen","download_url":"https://codeload.github.com/steenhansen/electric-snakes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245401372,"owners_count":20609163,"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","immutablejs","redux","typescript","webpack","websockets"],"created_at":"2024-12-02T19:17:36.295Z","updated_at":"2025-10-28T00:36:08.377Z","avatar_url":"https://github.com/steenhansen.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ca name='s'\u003e\u003c/a\u003e\n\n## Multiplayer Game of Snakes\n\n\u003cimg src=\"./images/tall-typescript.gif\" height=\"534\"\u003e\n\n\nElectric-Snakes, [https://electric-snakes.onrender.com](https://electric-snakes.onrender.com/create-game) a slow to start free site, is a multi-computer snake game server, written in Typescript, using Redux and Immutable.js to hold state.\nInteractions are synchronized via WebSockets between the single coordinating Node.js server and possibly several Javascript browsers.\nThe server is a free Render.com dyno, so it can take a few seconds to wake up. 150 seconds to be exact.\n\nA single player game against seven computer players\n\n![one person](images/electric-snakes.png)\n\nA two player game, called \"Battle of Troy\" [started](https://electric-snakes.onrender.com/create-game) by \"Hector\" with \"Achilles\" [joining](https://electric-snakes.onrender.com/join-game).\nOne person \"creates\" and names the game. While others can join in.\n\n![two people](images/two-browsers.png)\n\n### Prepare Environment\n\n- nvm install 18.2.0\n\n- nvm use 18.2.0\n\n### Compile all and run from scratch:\n\n    $ npm install\n    $ npx tsc\n    $ npx webpack-cli\n    $ npm start  or  npm test\n\n\n### Run program\n\n    $ npm start\n    \n## Free Hosting on render.com\n\tWeb Service\n\t\n\tSettings\n\t\tBuild Command\t$ yarn\n\t\tStart Command\t$ npm start\n\t\t\n\t\t\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteenhansen%2Felectric-snakes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteenhansen%2Felectric-snakes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteenhansen%2Felectric-snakes/lists"}