{"id":13622871,"url":"https://github.com/lance-gg/lance","last_synced_at":"2025-04-13T19:29:31.635Z","repository":{"id":40414890,"uuid":"60847761","full_name":"lance-gg/lance","owner":"lance-gg","description":"Multiplayer game server based on Node.JS","archived":false,"fork":false,"pushed_at":"2024-05-11T19:16:24.000Z","size":10160,"stargazers_count":1617,"open_issues_count":36,"forks_count":167,"subscribers_count":54,"default_branch":"master","last_synced_at":"2025-04-13T15:31:32.292Z","etag":null,"topics":["game-development","game-server","gamedev","multiplayer","multiplayer-game-server","networking","nodejs","websockets"],"latest_commit_sha":null,"homepage":"https://lance-gg.github.io/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lance-gg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-06-10T12:58:57.000Z","updated_at":"2025-04-13T10:47:32.000Z","dependencies_parsed_at":"2024-04-25T23:46:53.891Z","dependency_job_id":"2bf84093-169d-4345-8557-b64c5053b0df","html_url":"https://github.com/lance-gg/lance","commit_stats":{"total_commits":723,"total_committers":25,"mean_commits":28.92,"dds":0.6127247579529738,"last_synced_commit":"fd9bc5dce93f59684acc0c862a3a7849b993f65a"},"previous_names":["opherv/incheon"],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance-gg%2Flance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance-gg%2Flance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance-gg%2Flance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lance-gg%2Flance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lance-gg","download_url":"https://codeload.github.com/lance-gg/lance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248767581,"owners_count":21158487,"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-development","game-server","gamedev","multiplayer","multiplayer-game-server","networking","nodejs","websockets"],"created_at":"2024-08-01T21:01:25.166Z","updated_at":"2025-04-13T19:29:31.597Z","avatar_url":"https://github.com/lance-gg.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","game-development","nodejs"],"sub_categories":[],"readme":"\u003cimg src=\"https://cloud.githubusercontent.com/assets/3951311/24590344/0b7748b8-17f4-11e7-84fc-d24c44c7a27a.jpg\" style=\"width: 100%\" alt=\"Lance logo\"\u003e\n\n# [Lance](https://lance-gg.github.io/) is a real-time multiplayer game server\n\nIt provides an extendible Node.JS based server, on which game logic runs, as well as a client-side library\nwhich synchronizes the client's game state with the server game state.  In order\nto provide a smooth visual experience for each connected client, Lance implements\nefficient networking methods, position interpolation and extrapolation, user input\ncoordination, shadow objects, physics and pseudo-physical movement, automatic\nhandling of network spikes.\n\nLance aims to optimize the player's visual experience, while providing\na simple development model which is highly configurable and easy to analyze\nand debug.\n\n## Features:\n\n* Focus on writing your game. Lance takes care of the netcode\n* Can support any type of game or genre  \n* Optimized networking\n    * TCP via websockets\n    * Communication is packed and serialized into binary\n    * Automatic handling of network spikes with step correction\n* Intelligent sync strategies for lag handling\n    * Extrapolation (client side prediction) with step re-enactment or:\n    * Interpolation for optimal object motion\n* Tools for debugging and tracing\n\nMore features in the pipeline:\n\n* UDP via WebRTC\n* Full-stack testing suite\n* Replay saving\n* More physics engines\n\n## That's so neat! Where do I start?\n\nThe official [Lance documentation](https://lance-gg.github.io/docs_out/index.html) contains articles on theory and rationale, as well as the structure and architecture of the project.\n\n## Something went wrong! I need help!\n\nIf you're not exactly sure how to do something, [Stack Overflow](http://stackoverflow.com/questions/tagged/lance) is your friend.\n\nIf you've encountered a bug and it's not already in the [issues page](https://github.com/lance-gg/lance/issues), open a new issue.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flance-gg%2Flance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flance-gg%2Flance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flance-gg%2Flance/lists"}