{"_id":"voxel-server","_rev":"32-0acabd0bb625f54ff2b2660467474b96","name":"voxel-server","description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","dist-tags":{"latest":"2.1.1"},"versions":{"1.0.0":{"name":"voxel-server","subdomain":"voxel","version":"1.0.0","dependencies":{"toolbar":"0.0.5","voxel-engine":"~0.16.0","voxel-crunch":"0.1.1","hat":"0.0.3","painterly-textures":"0.0.3","voxel":"0.3.1","extend":"~1.2.1","eventemitter2":"~0.4.13"},"engines":{"node":"0.10.20"},"readme":"# voxel-server\n\nmultiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)\n\nUse with [voxel-client](https://github.com/maxogden/voxel-client)\n\nIf the client sends an object with a settings property, it will use those settings when creating its game instance and will send those instances to other clients that connect.\n\nIf the client settings have the property \"resetSettings\", the server will switch to those. It deletes any game instance and clears the chunkCache.\n\n## Get it running on your machine\n\n```\nnpm install\n```\n\nRun the start script:\n\n```\nnpm start\n```\nThis gets the server running on port 8080.\n\n## Using as a module\nThe returned server object implements [EventEmitter2](https://github.com/hij1nx/EventEmitter2)\n\n```javascript\nvar createServer = require('voxel-server')\n\nvar settings = {\n  generateChunks: false,\n  chunkDistance: 2,\n  materials: [\n    ['grass', 'dirt', 'grass_dirt'],\n    'dirt',\n    'plank',\n    'cobblestone',\n    'brick',\n  ],\n  avatarInitialPosition: [2, 20, 2],\n}\n\nvar server = createServer(settings)\n\nserver.on('missingChunk', function(chunk){ ... })\nserver.on('client.join', function(client){\n  server.on(['client', client.id, 'leave'], function(client){ ... })\n  server.on(['client', client.id, 'state'], function(state){ ... })\n})\nserver.on('message', function(message, authorClient){ ... })\nserver.on('set', function(pos, val, client){ ... })\nserver.on('error', function(error){ ... })\n```\n\n## explanation\n\nbackground research:\n\n- http://buildnewgames.com/real-time-multiplayer/\n- https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking\n- http://www.gabrielgambetta.com/?p=63 (all three parts)\n- http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/\n- http://gafferongames.com/game-physics/networked-physics/\n- http://udn.epicgames.com/Three/NetworkingOverview.html\n\n## license\n\nBSD\n","readmeFilename":"readme.md","description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","_id":"voxel-server@1.0.0","dist":{"shasum":"b0601f8985ad8a69eb86d26effef215802fca538","tarball":"https://registry.npmjs.org/voxel-server/-/voxel-server-1.0.0.tgz","integrity":"sha512-pCUESQQuN3+netm6YjR8dqwQfzncDRoQZT4FrIQ2ynW7PxSTU8k55p6I787weyCzRdQqqNZuH3N9yF83ncG7wQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBJN0YuWqqGrjSM9kmtGLLWJTHe94HqQ5Iaz0wulAR36AiBgqvrC8X+NCHKnLt0n0z+GhdA8A1vuNNLYwQ20/21k6w=="}]},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"kumavis","email":"aaron@kumavis.me"},"maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"directories":{}},"1.0.1":{"name":"voxel-server","subdomain":"voxel","version":"1.0.1","dependencies":{"toolbar":"0.0.5","voxel-engine":"~0.16.0","voxel-crunch":"0.1.1","hat":"0.0.3","painterly-textures":"0.0.3","voxel":"0.3.1","extend":"~1.2.1","eventemitter2":"~0.4.13"},"engines":{"node":"0.10.20"},"readme":"# voxel-server\n\nmultiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)\n\nUse with [voxel-client](https://github.com/maxogden/voxel-client)\n\nIf the client sends an object with a settings property, it will use those settings when creating its game instance and will send those instances to other clients that connect.\n\nIf the client settings have the property \"resetSettings\", the server will switch to those. It deletes any game instance and clears the chunkCache.\n\n## Get it running on your machine\n\n```\nnpm install\n```\n\nRun the start script:\n\n```\nnpm start\n```\nThis gets the server running on port 8080.\n\n## Using as a module\nThe returned server object implements [EventEmitter2](https://github.com/hij1nx/EventEmitter2)\n\n```javascript\nvar createServer = require('voxel-server')\n\nvar settings = {\n  generateChunks: false,\n  chunkDistance: 2,\n  materials: [\n    ['grass', 'dirt', 'grass_dirt'],\n    'dirt',\n    'plank',\n    'cobblestone',\n    'brick',\n  ],\n  avatarInitialPosition: [2, 20, 2],\n}\n\nvar server = createServer(settings)\n\nserver.on('missingChunk', function(chunk){ ... })\nserver.on('client.join', function(client){\n  server.on(['client', client.id, 'leave'], function(client){ ... })\n  server.on(['client', client.id, 'state'], function(state){ ... })\n})\nserver.on('message', function(message, authorClient){ ... })\nserver.on('set', function(pos, val, client){ ... })\nserver.on('error', function(error){ ... })\n```\n\n## explanation\n\nbackground research:\n\n- http://buildnewgames.com/real-time-multiplayer/\n- https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking\n- http://www.gabrielgambetta.com/?p=63 (all three parts)\n- http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/\n- http://gafferongames.com/game-physics/networked-physics/\n- http://udn.epicgames.com/Three/NetworkingOverview.html\n\n## license\n\nBSD\n","readmeFilename":"readme.md","description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","_id":"voxel-server@1.0.1","dist":{"shasum":"aed9fe1513b4415872875f61a2c973a1f37a55f0","tarball":"https://registry.npmjs.org/voxel-server/-/voxel-server-1.0.1.tgz","integrity":"sha512-YNmbOUtkDXY36P3nz0eXC5dnuCV3pzFRsmgm5e75eflEukqJsb3Jn+yR70ReNoBApQ+u5EDmToNImJXu5tHcQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZpWaOOl7QU00zdoWw47z6qyQPNn+oxcBnBGRFB897AAiEAzvK442J3qSgAuGLIjEKN2PbCvrV5Iy6TS+x6fWW8WUQ="}]},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"kumavis","email":"aaron@kumavis.me"},"maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"directories":{}},"1.0.2":{"name":"voxel-server","subdomain":"voxel","version":"1.0.2","dependencies":{"toolbar":"0.0.5","voxel-engine":"~0.16.0","voxel-crunch":"0.1.1","hat":"0.0.3","painterly-textures":"0.0.3","voxel":"0.3.1","extend":"~1.2.1","eventemitter2":"~0.4.13"},"engines":{"node":"0.10.20"},"readme":"# voxel-server\n\nmultiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)\n\nUse with [voxel-client](https://github.com/maxogden/voxel-client)\n\nIf the client sends an object with a settings property, it will use those settings when creating its game instance and will send those instances to other clients that connect.\n\nIf the client settings have the property \"resetSettings\", the server will switch to those. It deletes any game instance and clears the chunkCache.\n\n## Get it running on your machine\n\n```\nnpm install\n```\n\nRun the start script:\n\n```\nnpm start\n```\nThis gets the server running on port 8080.\n\n## Using as a module\nThe returned server object implements [EventEmitter2](https://github.com/hij1nx/EventEmitter2)\n\n```javascript\nvar createServer = require('voxel-server')\n\nvar settings = {\n  generateChunks: false,\n  chunkDistance: 2,\n  materials: [\n    ['grass', 'dirt', 'grass_dirt'],\n    'dirt',\n    'plank',\n    'cobblestone',\n    'brick',\n  ],\n  avatarInitialPosition: [2, 20, 2],\n}\n\nvar server = createServer(settings)\n\nserver.on('missingChunk', function(chunk){ ... })\nserver.on('client.join', function(client){\n  server.on(['client', client.id, 'leave'], function(client){ ... })\n  server.on(['client', client.id, 'state'], function(state){ ... })\n})\nserver.on('message', function(message, authorClient){ ... })\nserver.on('set', function(pos, val, client){ ... })\nserver.on('error', function(error){ ... })\n```\n\n## explanation\n\nbackground research:\n\n- http://buildnewgames.com/real-time-multiplayer/\n- https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking\n- http://www.gabrielgambetta.com/?p=63 (all three parts)\n- http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/\n- http://gafferongames.com/game-physics/networked-physics/\n- http://udn.epicgames.com/Three/NetworkingOverview.html\n\n## license\n\nBSD\n","readmeFilename":"readme.md","description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","_id":"voxel-server@1.0.2","dist":{"shasum":"f9f223ad697743297db30b736afcfb838092b457","tarball":"https://registry.npmjs.org/voxel-server/-/voxel-server-1.0.2.tgz","integrity":"sha512-j542Y1Q/CR0/enAlQHCAJYigwguSoEzhG5tu6GoPh1Mnfjp41o36dOmJkT8JIrgRcvN94/iCIikH11edeIq7Vg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBfyWnqvC0zkIMRcv89VdF1n9Fy/SsroEqwbltFVnO9uAiBQcg89hhkowrq7ivXBnHqrgR5+Gw9s9N7dv07JQT7sTQ=="}]},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"kumavis","email":"aaron@kumavis.me"},"maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"directories":{}},"1.0.3":{"name":"voxel-server","subdomain":"voxel","version":"1.0.3","dependencies":{"toolbar":"0.0.5","voxel-engine":"git://github.com/kumavis/voxel-engine.git#1cbb81dc714fd9320e0c15805a07deaf9fd9cd16","voxel-crunch":"0.1.1","hat":"0.0.3","painterly-textures":"0.0.3","voxel":"0.3.1","extend":"~1.2.1","eventemitter2":"~0.4.13"},"engines":{"node":"0.10.20"},"readme":"# voxel-server\n\nmultiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)\n\nUse with [voxel-client](https://github.com/maxogden/voxel-client)\n\nIf the client sends an object with a settings property, it will use those settings when creating its game instance and will send those instances to other clients that connect.\n\nIf the client settings have the property \"resetSettings\", the server will switch to those. It deletes any game instance and clears the chunkCache.\n\n## Get it running on your machine\n\n```\nnpm install\n```\n\nRun the start script:\n\n```\nnpm start\n```\nThis gets the server running on port 8080.\n\n## Using as a module\nThe returned server object implements [EventEmitter2](https://github.com/hij1nx/EventEmitter2)\n\n```javascript\nvar createServer = require('voxel-server')\n\nvar settings = {\n  generateChunks: false,\n  chunkDistance: 2,\n  materials: [\n    ['grass', 'dirt', 'grass_dirt'],\n    'dirt',\n    'plank',\n    'cobblestone',\n    'brick',\n  ],\n  avatarInitialPosition: [2, 20, 2],\n}\n\nvar server = createServer(settings)\n\nserver.on('missingChunk', function(chunk){ ... })\nserver.on('client.join', function(client){\n  server.on(['client', client.id, 'leave'], function(client){ ... })\n  server.on(['client', client.id, 'state'], function(state){ ... })\n})\nserver.on('message', function(message, authorClient){ ... })\nserver.on('set', function(pos, val, client){ ... })\nserver.on('error', function(error){ ... })\n```\n\n## explanation\n\nbackground research:\n\n- http://buildnewgames.com/real-time-multiplayer/\n- https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking\n- http://www.gabrielgambetta.com/?p=63 (all three parts)\n- http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/\n- http://gafferongames.com/game-physics/networked-physics/\n- http://udn.epicgames.com/Three/NetworkingOverview.html\n\n## license\n\nBSD\n","readmeFilename":"readme.md","description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","_id":"voxel-server@1.0.3","dist":{"shasum":"b4b448d00125e24a348c7ec065e7b7cfe433dd05","tarball":"https://registry.npmjs.org/voxel-server/-/voxel-server-1.0.3.tgz","integrity":"sha512-LdluDfc5vZJNcmZJSmK0srCwoXKG5/1zWM8Oqs4Z+2EibFLljnQm2lGXvEbOMELT82b5ZZW3meTnchcTQxjviA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2jUNdvQ3HwIOFH5gdsAuDGJXtfcQo53CSv/3pRLpyEAIhAJCX3FQETH5L2Z7coCeslGMuBwaHaFIltc6nkQDppBi0"}]},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"kumavis","email":"aaron@kumavis.me"},"maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"directories":{}},"1.0.4":{"name":"voxel-server","subdomain":"voxel","version":"1.0.4","dependencies":{"toolbar":"0.0.5","voxel-engine":"git://github.com/kumavis/voxel-engine.git#1cbb81dc714fd9320e0c15805a07deaf9fd9cd16","voxel-crunch":"0.1.1","hat":"0.0.3","painterly-textures":"0.0.3","voxel":"0.3.1","extend":"~1.2.1","eventemitter2":"~0.4.13"},"engines":{"node":"0.10.20"},"readme":"# voxel-server\n\nmultiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)\n\nUse with [voxel-client](https://github.com/maxogden/voxel-client)\n\nIf the client sends an object with a settings property, it will use those settings when creating its game instance and will send those instances to other clients that connect.\n\nIf the client settings have the property \"resetSettings\", the server will switch to those. It deletes any game instance and clears the chunkCache.\n\n## Get it running on your machine\n\n```\nnpm install\n```\n\nRun the start script:\n\n```\nnpm start\n```\nThis gets the server running on port 8080.\n\n## Using as a module\nThe returned server object implements [EventEmitter2](https://github.com/hij1nx/EventEmitter2)\n\n```javascript\nvar createServer = require('voxel-server')\n\nvar settings = {\n  generateChunks: false,\n  chunkDistance: 2,\n  materials: [\n    ['grass', 'dirt', 'grass_dirt'],\n    'dirt',\n    'plank',\n    'cobblestone',\n    'brick',\n  ],\n  avatarInitialPosition: [2, 20, 2],\n}\n\nvar server = createServer(settings)\n\nserver.on('missingChunk', function(chunk){ ... })\nserver.on('client.join', function(client){\n  server.on(['client', client.id, 'leave'], function(client){ ... })\n  server.on(['client', client.id, 'state'], function(state){ ... })\n})\nserver.on('message', function(message, authorClient){ ... })\nserver.on('set', function(pos, val, client){ ... })\nserver.on('error', function(error){ ... })\n```\n\n## explanation\n\nbackground research:\n\n- http://buildnewgames.com/real-time-multiplayer/\n- https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking\n- http://www.gabrielgambetta.com/?p=63 (all three parts)\n- http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/\n- http://gafferongames.com/game-physics/networked-physics/\n- http://udn.epicgames.com/Three/NetworkingOverview.html\n\n## license\n\nBSD\n","readmeFilename":"readme.md","description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","_id":"voxel-server@1.0.4","dist":{"shasum":"1a94e8bb84e72a6c8af264f3cd15ec272194f3da","tarball":"https://registry.npmjs.org/voxel-server/-/voxel-server-1.0.4.tgz","integrity":"sha512-rmTKB/MB3zz1n3tCPSLgosRZUT7aseClS2hq9GbPMm3IaPmbuXRAimb+q7oUJT7I1uSMAQ3iyW+0RnAUKkl21Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDFv/t1qg9TK/fvVdenC3Mj6ZrSamNG2J3OAZ8uiKqJNAiB2sg8YUswZeh/Mpf6IEZOzDg9Y1jpTT/m/X+j0nCPVOA=="}]},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"kumavis","email":"aaron@kumavis.me"},"maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"directories":{}},"2.0.0":{"name":"voxel-server","subdomain":"voxel","version":"2.0.0","repository":{"type":"git","url":"git@github.com:kumavis/voxel-server.git"},"dependencies":{"voxel-engine":"0.20.0","voxel-crunch":"0.1.1","duplex-emitter":"0.1.10","hat":"0.0.3","voxel":"0.3.1","extend":"1.2.1"},"engines":{"node":"0.10.20"},"readme":"# voxel-server\n\nmultiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)\n\nUse with [voxel-client](https://github.com/kumavis/voxel-client)\n\n\n## Using as a module\nThe returned server object implements EventEmitter\n\n```javascript\nvar Server = require('voxel-server')\n\nvar settings = {\n  avatarInitialPosition: [2, 20, 2],\n}\n\n// create server\nvar server = Server(settings)\n\n// bind events\nserver.on('missingChunk', function(chunk){ ... })\nserver.on('client.join', function(client){ ... })\nserver.on('client.leave', function(client){ ... })\nserver.on('client.state', function(state){ ... })\nserver.on('chat', function(message){ ... })\nserver.on('set', function(pos, val, client){ ... })\nserver.on('error', function(error){ ... })\n\n// connect a client\nvar duplexStream = SomeTransportSteam()\nserver.connectClient(duplexStream)\n```\n\n#### transport streams\n\nwebsockets: [websocket-stream](https://github.com/maxogden/websocket-stream)\n\nwebRTC: [rtc-data-stream](https://github.com/kumavis/rtc-data-stream)\n\n\n\n## further reading:\n\n- http://buildnewgames.com/real-time-multiplayer/\n- https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking\n- http://www.gabrielgambetta.com/?p=63 (all three parts)\n- http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/\n- http://gafferongames.com/game-physics/networked-physics/\n- http://udn.epicgames.com/Three/NetworkingOverview.html\n\n## license\n\nBSD\n","readmeFilename":"readme.md","description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","bugs":{"url":"https://github.com/kumavis/voxel-server/issues"},"_id":"voxel-server@2.0.0","dist":{"shasum":"420fdf83ff70546c2606e828762ee56a41526500","tarball":"https://registry.npmjs.org/voxel-server/-/voxel-server-2.0.0.tgz","integrity":"sha512-9xECSeUlTN9u4rqPedNpJhyMNaO7IwxFGH4eDOKrTAC4Sdayd7cx0OsTz1eLSxZr4xWcG7EvLq7zCNNVi2xhLw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBLYgEDP9KgJvCypcDmE1Jfe9VEsY4VWnrCCjtQ0RH0BAiEAqOQZYwr0LcwDOP4gyqeoGRtOzCuFOKN687BfsIWyGnQ="}]},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"kumavis","email":"aaron@kumavis.me"},"maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"directories":{}},"2.1.0":{"name":"voxel-server","subdomain":"voxel","version":"2.1.0","repository":{"type":"git","url":"git@github.com:kumavis/voxel-server.git"},"dependencies":{"voxel-engine":"0.20.0","voxel-crunch":"0.1.1","duplex-emitter":"0.1.10","hat":"0.0.3","voxel":"0.3.1","extend":"1.2.1"},"engines":{"node":"0.10.20"},"readme":"# voxel-server\n\nmultiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)\n\nUse with [voxel-client](https://github.com/kumavis/voxel-client)\n\n\n## Using as a module\nThe returned server object implements EventEmitter\n\n```javascript\nvar Server = require('voxel-server')\n\nvar settings = {\n  // various [voxel-engine]() settings to be sent to the clients\n  avatarInitialPosition: [2, 20, 2],\n  // list of incomming custom events to forward to all clients\n  forwardEvents: ['attack','voiceChat']\n}\n\n// create server\nvar server = Server(settings)\n\n// bind events\nserver.on('missingChunk', function(chunk){ ... })\nserver.on('client.join', function(client){ ... })\nserver.on('client.leave', function(client){ ... })\nserver.on('client.state', function(state){ ... })\nserver.on('chat', function(message){ ... })\nserver.on('set', function(pos, val, client){ ... })\nserver.on('error', function(error){ ... })\n\n// connect a client\nvar duplexStream = SomeTransportSteam()\nserver.connectClient(duplexStream)\n```\n\n#### transport streams\n\nwebsockets: [websocket-stream](https://github.com/maxogden/websocket-stream)\n\nwebRTC: [rtc-data-stream](https://github.com/kumavis/rtc-data-stream)\n\n\n\n## further reading:\n\n- http://buildnewgames.com/real-time-multiplayer/\n- https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking\n- http://www.gabrielgambetta.com/?p=63 (all three parts)\n- http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/\n- http://gafferongames.com/game-physics/networked-physics/\n- http://udn.epicgames.com/Three/NetworkingOverview.html\n\n## license\n\nBSD\n","readmeFilename":"readme.md","description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","bugs":{"url":"https://github.com/kumavis/voxel-server/issues"},"_id":"voxel-server@2.1.0","dist":{"shasum":"72e6c26d03c41eaddcf8f052334a23b013c0c97a","tarball":"https://registry.npmjs.org/voxel-server/-/voxel-server-2.1.0.tgz","integrity":"sha512-SyxZJdfm9sbj19VPSFoGlI30WVSLjv+oiRdl+0nWgRnriKi0YuY4BbxK+0kXyfjb51orY8qwNY7hUrfumSip0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWfzGNAAhb3WJN7PyFFRjaJHeaDnFqjclAGKKOJay2gQIhAMXWm015fZtpiAcVZJ/3tTm7ohLcc0uChW98XezEMbus"}]},"_from":".","_npmVersion":"1.3.7","_npmUser":{"name":"kumavis","email":"aaron@kumavis.me"},"maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"directories":{}},"2.1.1":{"name":"voxel-server","subdomain":"voxel","version":"2.1.1","repository":{"type":"git","url":"git@github.com:kumavis/voxel-server.git"},"dependencies":{"voxel-engine":"0.20.0","voxel-crunch":"0.2.1","duplex-emitter":"2.1.2","hat":"0.0.3","voxel":"0.3.1","extend":"1.2.1"},"description":"multiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)","license":"BSD*","_id":"voxel-server@2.1.1","dist":{"shasum":"29684ebc5aee5024d055f8a497b615acafbb808e","integrity":"sha512-IHtKxONBoQlrYOZ0ni//DD2J60OVDgjUf1S4qOYObiUPOqDVAzFtKDySPBst+ABoVCEvSsrNUGQ3MLN5UxWrHg==","tarball":"https://registry.npmjs.org/voxel-server/-/voxel-server-2.1.1.tgz","fileCount":4,"unpackedSize":8469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgASTCCRA9TVsSAnZWagAA8lYP/iuYjfs7/gwNlLF0x2BZ\n0WbpHHhx1h5YBf4V/s/H12I4B3l4+FkAzoBbdW9Cpk/+RleoAp71+iqyaXh0\n/oFV6l/cMa7oLooUOqBj1PMg3r67RKgPYH33Tt4v72JqxVGV1XK6PnFRpe/+\n7H+OZsg2K821DXyxjlcxao50YwBJW+ThPxcncYD5lKPvQi+6E5AmpJgIYmmm\nhplBBalgZArazpM5u0qJ2Fp9WmgdGX4bVegy9nIzUC6pnQf6LA8HGLcfLjuL\n3YDIl+2S6h3RTV9YR1HCTJ12G57/I3Opt8AFSwVtxP6ZoNXtSQo3jQz9IxFh\ngwP15l/mX8e6Px+SDPIxO9kqbIKUTHJiB06jtPY5obLO72F0S0y4I6jk6DwQ\nEw9fvVHgj2lQRvMDTn+ql1DX0sZIMTyhYxjbMXjcRrtvwZjzEbTXRHAXVaN/\n0CU/Ry7pd/MxZCSD1PJhX64S+lZMLC31/dX4yQ/V2o9lrCK6fTczkSzMWfQm\nTaz82dkORCNjBlTFJ1MoLWQsJOKwM0Y8w+XjEvh/y+DVh/Kt2Wpxh+nd/q5e\nA4V59uJJuUnUNoVVHEytW09hlv7Dj3ofjwRMxkx1+H4BJAia3m2VrI7VpjkI\nqa9Lpd5dh2TMEKQWjA+QIag7kGFeWdudftxzfo37SOT8xj6hUnsOuVyKCPPi\nGU6q\r\n=OHID\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8klzmQG1FJ0pd1lGcUmKKJlLjtVDGNPw/6C1jpgAdBAIgYl+t0iWpygEW/ATmFYq9+gTFyogYL+b1VvlGKdQr9iE="}]},"_npmUser":{"name":"kumavis","email":"aaron@kumavis.me"},"directories":{},"maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/voxel-server_2.1.1_1610687681864_0.9633979979625078"},"_hasShrinkwrap":false}},"readme":"# voxel-server\n\nmultiplayer server for [voxel-engine](http://github.com/maxogden/voxel-engine)\n\nUse with [voxel-client](https://github.com/kumavis/voxel-client)\n\n\n## Using as a module\nThe returned server object implements EventEmitter\n\n```javascript\nvar Server = require('voxel-server')\n\nvar settings = {\n  // various [voxel-engine]() settings to be sent to the clients\n  avatarInitialPosition: [2, 20, 2],\n  // list of incomming custom events to forward to all clients\n  forwardEvents: ['attack','voiceChat']\n}\n\n// create server\nvar server = Server(settings)\n\n// bind events\nserver.on('missingChunk', function(chunk){ ... })\nserver.on('client.join', function(client){ ... })\nserver.on('client.leave', function(client){ ... })\nserver.on('client.state', function(state){ ... })\nserver.on('chat', function(message){ ... })\nserver.on('set', function(pos, val, client){ ... })\nserver.on('error', function(error){ ... })\n\n// connect a client\nvar duplexStream = SomeTransportSteam()\nserver.connectClient(duplexStream)\n```\n\n#### transport streams\n\nwebsockets: [websocket-stream](https://github.com/maxogden/websocket-stream)\n\nwebRTC: [rtc-data-stream](https://github.com/kumavis/rtc-data-stream)\n\n\n\n## further reading:\n\n- http://buildnewgames.com/real-time-multiplayer/\n- https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking\n- http://www.gabrielgambetta.com/?p=63 (all three parts)\n- http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/\n- http://gafferongames.com/game-physics/networked-physics/\n- http://udn.epicgames.com/Three/NetworkingOverview.html\n\n## license\n\nBSD\n","maintainers":[{"name":"kumavis","email":"aaron@kumavis.me"}],"time":{"modified":"2022-06-28T18:32:33.103Z","created":"2013-10-08T07:02:01.641Z","1.0.0":"2013-10-08T07:02:02.314Z","1.0.1":"2013-11-08T04:07:56.322Z","1.0.2":"2013-11-10T02:36:07.101Z","1.0.3":"2013-12-01T07:26:32.132Z","1.0.4":"2014-01-02T07:26:35.711Z","2.0.0":"2014-01-05T06:37:01.876Z","2.1.0":"2014-01-05T07:55:04.016Z","2.1.1":"2021-01-15T05:14:41.992Z"},"repository":{"type":"git","url":"git@github.com:kumavis/voxel-server.git"},"users":{"mikeumus":true},"license":"BSD*","readmeFilename":"readme.md"}