{"id":19627608,"url":"https://github.com/twisterghost/patchwire","last_synced_at":"2025-04-28T06:30:45.863Z","repository":{"id":44207915,"uuid":"41893372","full_name":"twisterghost/patchwire","owner":"twisterghost","description":"Multiplayer game server framework for Node.js","archived":false,"fork":false,"pushed_at":"2022-12-30T17:16:34.000Z","size":163,"stargazers_count":28,"open_issues_count":5,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-11T12:08:17.886Z","etag":null,"topics":["gamemaker","multiplayer-game","server"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/twisterghost.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-04T02:06:23.000Z","updated_at":"2023-12-01T20:43:32.000Z","dependencies_parsed_at":"2023-01-31T12:15:58.364Z","dependency_job_id":null,"html_url":"https://github.com/twisterghost/patchwire","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twisterghost%2Fpatchwire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twisterghost%2Fpatchwire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twisterghost%2Fpatchwire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twisterghost%2Fpatchwire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twisterghost","download_url":"https://codeload.github.com/twisterghost/patchwire/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224099713,"owners_count":17255577,"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":["gamemaker","multiplayer-game","server"],"created_at":"2024-11-11T11:52:17.251Z","updated_at":"2024-11-11T11:52:18.320Z","avatar_url":"https://github.com/twisterghost.png","language":"JavaScript","readme":"# Patchwire\nMultiplayer game server framework for Node.js\n\n## Install\n`npm install patchwire`\n\n## Use\n```JavaScript\n// MyGameServer.js\nconst Server = require('patchwire').Server;\nconst ClientManager = require('patchwire').ClientManager;\n\nconst gameLobby = new ClientManager();\ngameLobby.on('clientAdded', function() {\n    gameLobby.broadcast('chat', {\n        message: 'A new player has joined the game.'\n    });\n});\n\nconst server = new Server(function(client) {\n  gameLobby.addClient(client);\n});\n\nserver.listen(3001);\n```\n\n## Documentation\n\nSee [the patchwire Github wiki](https://github.com/twisterghost/patchwire/wiki)\n\n## About\n\nPatchwire is a server framework designed for multiplayer games. Originally built to work with GameMaker: Studio's networking code, it has been standardized to be unassuming about the client end framework.\n\nPatchwire uses a paradigm of sending \"commands\" to clients, and in turn, listening for commands from the client. A command is nothing more than a string identifier, and some data. A command looks like this:\n\n```JavaScript\n{\n  command: 'updatePosition',\n  x: 200,\n  y: 120\n}\n```\n\n## Clients\n\nPatchwire is unassuming about the client side as it speaks primarily through JSON strings encoded over the wire. If you do not see your preferred client side below, creating your own client package is strongly encouraged, as Patchwire is built to be as easy as possible to implement. More client packages will come over time.\n\n### List of client packages:\n\n* [GameMaker: Studio](https://github.com/twisterghost/patchwire-gm)\n* [iOS](https://github.com/VictorBX/patchwire-ios)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwisterghost%2Fpatchwire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwisterghost%2Fpatchwire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwisterghost%2Fpatchwire/lists"}