{"_id":"@brulogaz/lance-gg","_rev":"4-fb9325ae7cb3dcd3307edda1162803ea","name":"@brulogaz/lance-gg","dist-tags":{"latest":"3.0.1"},"versions":{"2.0.6":{"name":"@brulogaz/lance-gg","version":"2.0.6","description":"A Node.js based real-time multiplayer game server","keywords":["pixijs","pixi","socket","canvas","WebGL","HTML5","AFrame","physics","engine","game","realtime","multiplayer"],"dependencies":{"babel-cli":"^6.26.0","cannon":"^0.6.2","eventemitter3":"^1.2.0","jsdoc":"^3.5.5","mkdirp":"^0.5.1","request":"^2.81.0","request-promise-native":"^1.0.3","socket.io":"^1.4.6","socket.io-client":"^1.4.6"},"files":["src","es5"],"author":{"name":"Opher Vishnia"},"contributors":[{"name":"Opher Vishnia"},{"name":"Gary Weiss"}],"license":"Apache-2.0","bugs":{"url":"https://github.com/lance-gg/lance/issues"},"homepage":"https://github.com/lance-gg/lance#readme","scripts":{"docs":"jsdoc -c jsdoc.conf.json","build":"babel src --out-dir es5","test-all":"mocha test/EndToEnd/","test-serializer":"mocha ./test/serializer/","test":"mocha ./test/serializer/ --compilers js:babel-core/register"},"devDependencies":{"babel-core":"^6.25.0","babel-preset-es2015":"^6.22.0","chai":"^3.5.0","docmeta":"github:OpherV/docmeta","eslint":"^3.10.1","eslint-config-google":"^0.6.0","express":"^4.14.0","ink-docstrap":"^1.3.0","lance-docs-template":"github:lance-gg/lance-docs-template","mocha":"^3.0.2","query-string":"^4.3.1","should":"^11.0.0"},"gitHead":"a80ab8210e9f9f8db0d81b6ca190d2d0f4510539","_id":"@brulogaz/lance-gg@2.0.6","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"brulogaz","email":"brulopropane@gmail.com"},"dist":{"integrity":"sha512-mYvNFsVo0wfJ3DngTwzIGDLVKuVEOiyG539el1aiiu6sotBmbn3TwNufyELWbbNpi9QPf8DwsTbj6ZD7TPWGnw==","shasum":"1b53dc1145089e44109399cab44e7877ee98b04a","tarball":"https://registry.npmjs.org/@brulogaz/lance-gg/-/lance-gg-2.0.6.tgz","fileCount":85,"unpackedSize":526027,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBZ3gmGvom+taG7G+aPkcCtz/kA7Qr59IBdbCb5auKnaAiEAnzN6yw8MOPZRjDEUmDRSCAomCXyzX5dEJxg4KVGm0Qw="}]},"maintainers":[{"name":"brulogaz","email":"brulopropane@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lance-gg_2.0.6_1522600114172_0.025219810303103607"},"_hasShrinkwrap":false},"2.0.7":{"name":"@brulogaz/lance-gg","version":"2.0.7","description":"A Node.js based real-time multiplayer game server","keywords":["pixijs","pixi","socket","canvas","WebGL","HTML5","AFrame","physics","engine","game","realtime","multiplayer"],"dependencies":{"babel-cli":"^6.26.0","cannon":"^0.6.2","eventemitter3":"^1.2.0","jsdoc":"^3.5.5","mkdirp":"^0.5.1","request":"^2.81.0","request-promise-native":"^1.0.3","socket.io":"^1.4.6","socket.io-client":"^1.4.6"},"files":["src","es5"],"author":{"name":"Opher Vishnia"},"contributors":[{"name":"Opher Vishnia"},{"name":"Gary Weiss"}],"license":"Apache-2.0","bugs":{"url":"https://github.com/lance-gg/lance/issues"},"homepage":"https://github.com/lance-gg/lance#readme","scripts":{"docs":"jsdoc -c jsdoc.conf.json","build":"babel src --out-dir es5","test-all":"mocha test/EndToEnd/","test-serializer":"mocha ./test/serializer/","test":"mocha ./test/serializer/ --compilers js:babel-core/register"},"devDependencies":{"babel-core":"^6.25.0","babel-preset-es2015":"^6.22.0","chai":"^3.5.0","docmeta":"github:OpherV/docmeta","eslint":"^3.10.1","eslint-config-google":"^0.6.0","express":"^4.14.0","ink-docstrap":"^1.3.0","lance-docs-template":"github:lance-gg/lance-docs-template","mocha":"^3.0.2","query-string":"^4.3.1","should":"^11.0.0"},"gitHead":"b730a9cba3f8d2db292af0de06ec9e52807f73f3","_id":"@brulogaz/lance-gg@2.0.7","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"brulogaz","email":"brulopropane@gmail.com"},"dist":{"integrity":"sha512-coSAuCx3iCj5Tvbogv+XuOYVuMpZXJanWdoRzOY+gY/6SBsLshlo7ubAK6HpmMlhxzRaLXstpP3rCAjucidw8w==","shasum":"f7d11d56f431c0a79f2655af0dd8b48033ab2a2b","tarball":"https://registry.npmjs.org/@brulogaz/lance-gg/-/lance-gg-2.0.7.tgz","fileCount":85,"unpackedSize":526125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2295CRA9TVsSAnZWagAA5T8P/RkrfT19CxN1xmi4W3V0\nqsx7TqXF7fhg4BxzKIdcEmWOt8o7pT9sIYzGjXOh6R8xfy0eoLetbetwVYih\nABaLzgA4ouq35ndArbjMtZ4AHh1lQhOimq0h8SHmcWSd604Mgh02TO9Fghza\ncosB53DAtS5rlqUV/IGMGJ7+UUXv2zGHTjpQsWTZeWskQSsknjrrKsxH1O76\nGDsI221h6k4Ou3+i3oFVqqONCuoN5vcg3Hs6lwI1XzkrgJdHSyPsmd4CGuh+\nOdKdA/4z4H2GR5bB0x6LeHeCYAtEvksTgABGpC5CUi6eqWfEhhOMPDKG5aHD\nBzYsiXDiTNOyDIwcbzSK7E4mM1XkbWZ4qVbNFGR8Ocyx0xvFAiPjnB29yWYl\nP+9ZzkK2iJ5hCOmmwNr6kv0ZFf49VGyYVF46AwefoALfRuJQqOcL+bZ+GRyN\n4qCA6ne9y5NK1EN2RIsndLcToHPdfA9/4lVbtI0mQVORZW0DTVsiaoslNO2+\nq5cMRqBIdxFhBJcnBtPoQUpgFuxtGbTRjsyv0FUz2nxl5mBQEhLznjq0uRlU\nyXR483+k4+NyBgY/5c2ikqkKbdwxSyxRhnKwdb++UnSF6EE7GWiOr9m8R0gq\nzVpMzrsrVUOfP9PwU2oPd3DZir545gkZB0j1Jc+mX+Vsmrdab4XlOXdBGbrD\n/Zzt\r\n=rGXD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG2Jfktvkh4VL8J6znIYAQJwqH2vlPFD+dEM/ZyZSCgZAiEA0VLa9TAP1r3qDkResGgzt/T798sEmoW/Ll2mHPdaHEM="}]},"maintainers":[{"name":"brulogaz","email":"brulopropane@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lance-gg_2.0.7_1524330360231_0.6687928986150093"},"_hasShrinkwrap":false},"3.0.1":{"name":"@brulogaz/lance-gg","version":"3.0.1","description":"A Node.js based real-time multiplayer game server","keywords":["pixijs","pixi","socket","canvas","WebGL","HTML5","AFrame","physics","engine","game","realtime","multiplayer"],"dependencies":{"babel-cli":"^6.26.0","cannon":"^0.6.2","eventemitter3":"^1.2.0","jsdoc":"^3.5.5","mkdirp":"^0.5.1","p2":"^0.7.1","request":"^2.81.0","request-promise-native":"^1.0.3","socket.io":"^1.4.6","socket.io-client":"^1.4.6"},"author":{"name":"Opher Vishnia"},"contributors":[{"name":"Opher Vishnia"},{"name":"Gary Weiss"}],"license":"Apache-2.0","bugs":{"url":"https://github.com/lance-gg/lance/issues"},"homepage":"https://github.com/lance-gg/lance#readme","scripts":{"docs":"jsdoc -c jsdoc.conf.json","build":"babel src --out-dir es5","test-all":"mocha test/EndToEnd/","test-serializer":"mocha ./test/serializer/","test":"mocha ./test/serializer/ --compilers js:babel-core/register"},"devDependencies":{"babel-core":"^6.25.0","babel-preset-es2015":"^6.22.0","chai":"^3.5.0","docmeta":"github:OpherV/docmeta","eslint":"^3.10.1","eslint-config-google":"^0.6.0","express":"^4.14.0","ink-docstrap":"^1.3.0","lance-docs-template":"github:lance-gg/lance-docs-template","mocha":"^3.0.2","query-string":"^4.3.1","should":"^11.0.0"},"gitHead":"38020d173976670e2bbb297a7a805ebd02cf3193","_id":"@brulogaz/lance-gg@3.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"brulogaz","email":"brulopropane@gmail.com"},"dist":{"integrity":"sha512-DXvsUpBA84tx0qnMMowP9jlITzBlfcZqPdTwawJE7Gn+qzfwVI75I4gVpoL7zlr1EQPA7TpH8Vg/ywWr37rKpg==","shasum":"435531da534b0ed0c3b8b1bf790b028e4868c8b3","tarball":"https://registry.npmjs.org/@brulogaz/lance-gg/-/lance-gg-3.0.1.tgz","fileCount":91,"unpackedSize":567029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbigKWCRA9TVsSAnZWagAAbc0P/jL2hsx+jq64cZ58en3d\n2K/ET6TqslhlTFiTqI01ziMNzWSDEmkWiRtHAwKXQ1C0VdSrM0FstzKtdk8E\n+osfvU+QW+b4qZ4qkRZZ5jIkdtcXl/c7bn4zM/VY3/UlGPDM03yNNQLrjdSq\nMGC91tPeQrOmA3iKICrznCey3BE9te/3anHm0FwNhK/qGvyRBLYo8HbVLdts\nbxewesCMDLGGijeRvqhekMgz9u/rIA2wRl/90Q3gqT92QDOCfxygm1vYfK7i\nazAYGmpHFiUw2yscXcFdtTd/ISiub2gJYp4ZIwwfj7qFE9gosQkMxAIgwBN/\ncDSkPF18shza5gmelRg/z06U1IR259VKPt5sf0fCJVV7iF5UbHoNWkJTgZu5\nV5zqsKK5Ba9/zBcXQCBSgSKSkR8fqFy6s/AH08VtbP9SqHZ8ehYmGV5vXWOM\nymSZBnWheQgs1M94I4R8Fqc9T9XY9cRQmf94+8vy+xT4Qjjb+1BHyQz6uQmP\niKwzZgxNHshJMOv/k/t5xpmSgJBIJ5m1NGhwna3/pjcGR12uTFD1078UgX0f\nrFN3+Uzd6oof2RUrLdfC1Yo1n+wDrd1bB9B3T/s154jRcLyuNQZ8UnqYQakH\n008TwVDbMuUZZlfW9KtFP1E7CN8FYuVfHPT4i6qJWntej8TSMEzkzZljdBJr\nZk/7\r\n=SPxK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRcdrRme2/241yMGT8AhmVxSRH7TbN1zs815dIfL5m5AIgc8W61oriwsDPcFpyuE+wpmGxXLC2aTysEpHFeoCxEjU="}]},"maintainers":[{"name":"brulogaz","email":"brulopropane@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lance-gg_3.0.1_1535771285795_0.7181237173736528"},"_hasShrinkwrap":false}},"time":{"created":"2018-04-01T16:28:34.123Z","2.0.6":"2018-04-01T16:28:34.274Z","modified":"2022-04-04T20:49:14.846Z","2.0.7":"2018-04-21T17:06:00.294Z","3.0.1":"2018-09-01T03:08:05.934Z"},"maintainers":[{"name":"brulogaz","email":"brulopropane@gmail.com"}],"description":"A Node.js based real-time multiplayer game server","homepage":"https://github.com/lance-gg/lance#readme","keywords":["pixijs","pixi","socket","canvas","WebGL","HTML5","AFrame","physics","engine","game","realtime","multiplayer"],"contributors":[{"name":"Opher Vishnia"},{"name":"Gary Weiss"}],"author":{"name":"Opher Vishnia"},"bugs":{"url":"https://github.com/lance-gg/lance/issues"},"license":"Apache-2.0","readme":"[![Build Status](https://travis-ci.org/lance-gg/lance.svg?branch=master)](https://travis-ci.org/lance-gg/lance) [![Inline docs](http://inch-ci.org/github/lance-gg/lance.svg?branch=develop)](http://inch-ci.org/github/lance-gg/lance)\r\n[![Slack](http://slack.lance.gg/badge.svg)](http://slack.lance.gg)\r\n\r\n<img src=\"https://cloud.githubusercontent.com/assets/3951311/24590344/0b7748b8-17f4-11e7-84fc-d24c44c7a27a.jpg\" style=\"width: 100%\" alt=\"Lance logo\">\r\n\r\n# [Lance](http://lance.gg) is a real-time multiplayer game server\r\n\r\nIt provides an extendible Node.JS based server, on which game logic runs, as well as a client-side library\r\nwhich synchronizes the client's game state with the server game state.  In order\r\nto provide a smooth visual experience for each connected client, Lance implements\r\nefficient networking methods, position interpolation and extrapolation, user input\r\ncoordination, shadow objects, physics and pseudo-physical movement, automatic\r\nhandling of network spikes.\r\n\r\nLance aims to optimize the player's visual experience, while providing\r\na simple development model which is highly configurable and easy to analyze\r\nand debug.\r\n\r\n## See it in action\r\nCheck out the official demo: [Spaaace](http://spaaace.herokuapp.com)\r\n\r\n## Features:\r\n\r\n* Focus on writing your game. Lance takes care of the netcode\r\n* Can support any type of game or genre  \r\n* Optimized networking\r\n    * TCP via websockets\r\n    * Communication is packed and serialized into binary\r\n    * Automatic handling of network spikes with step correction\r\n* Intelligent sync strategies for lag handling\r\n    * Extrapolation (client side prediction) with step re-enactment or:\r\n    * Interpolation for optimal object motion\r\n* Tools for debugging and tracing\r\n\r\nMore features in the pipeline:\r\n\r\n* UDP via WebRTC\r\n* Full-stack testing suite\r\n* Replay saving\r\n* More physics engines\r\n\r\n## That's so neat! Where do I start?\r\n\r\nThe official [Lance documentation](http://docs.lance.gg) contains articles on theory and rational, as well as the structure and architecture of the project.\r\n\r\nIf you feel like learning by doing you can start with first tutorial, [My first game: Pong]{@tutorial MyFirstGame} which contains step-by-step on implementation of a networked version of this classic game.\r\n\r\n## Something went wrong! I need help!\r\n\r\nIf you're not exactly sure how to do something, [Stack Overflow](http://stackoverflow.com/questions/tagged/lance) is your friend.\r\n\r\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.\r\n\r\n## I'd like to join in\r\n\r\nFor discussing Lance, multiplayer games or just hanging out you're invited to join us on [slack](http://slack.lance.gg).\r\n\r\n## Built something cool with Lance?\r\n\r\nPlease [Let us know](http://www.twitter.com/opherv)! We'd love to play it, and feature it on the [Lance homepage](http://lance.gg).\r\n","readmeFilename":"README.md"}