Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Jammer is a ready-to-use game server to speed up game creation in the context of game jams.
It is written in Javascript so it focuses on web based games.
It is designed for games with multiple players playing simultaneously on the same screen.
Install node.js, then:
npm install jammer -g
jammer
This will generate all the files you need in the current working directory and run npm install automatically:
public/game.html
public/player.html
public/js/gameClient.js
public/js/gameServer.js
server.js
package.json
node_modules/
Then:
node server.js
And you have a server listening on port 4321. To start the server listening on port 7890:
node server.js -p 7890
To generate the files at a specific path:
jammer /path/to/destination/
The generated files include an example showing the basics.
public/player.html
public/game.html
They include or the Javascript files:
public/js/gameClient.js
public/js/gameServer.js
There is a global depedency on socket.io, so make sure to include it (see example).
var gameServer = new GameServer();
var players = {};
gameServer.on('gameID', function (gameID) {
// display the game ID on screen for the players
});
gameServer.on('newPlayer', function (player) {
// player connected
var playerID = player.id;
players[playerID] = player; // save it for later use
player.x = Math.random() * 500;
player.y = Math.random() * 500;
player.size = 50;
// Player listeners
// Example of a player event: changeSize
player.on('changeSize', function (size) {
player.size = size || 50;
});
// Send command to the player
player.send('changeColor', '#FF0000');
player.on('disconnect', function () {
delete players[player.id];
});
});
var gameClient = new GameClient();
gameClient.join(12); // join the game 12
gameClient.on('joined', function () {
// player joined, do something with it, for example change the size
gameClient.send('changeSize', Math.random() * 100 + 100);
});
gameClient.on('changeColor', function (color) {
// change the color of the player
});
gameServer.on('gameID', function (gameID) {
// Do something here to display the game ID on the screen for the players
});
gameServer.on('newPlayer', function (player) {
// A new player just joined, do something with the player object, store it for later use
// Default events for the player
player.on('disconnect', function () {
// Player disconnected, do something with, remove it from the game for example
});
});
gameServer.on('disconnect', function (player) {
// The game disconnected, could be due to network problems, display something to the players or die silently
});
// join game number 2
gameClient.join(2);
gameClient.on('joined', function () {
// the player joined the game, display controller or anything else
});
A game jam is all about making a great game fast, so you shouldn't spend to much time in repetitive and time consuming tasks. If you want to go for a multi-player game, you are going to spend quite a lot of time on the network part, testing it, debugging it.
This idea popped up after using HappyFunTimes in a game jam. HappyFunTimes is great, but is limited to a local network. The missing part for us was to be able to put the game online to make it accessible by everyone. Jammer uses game sessions to make it work with multiple game running at the same time.
MIT
FAQs
Minimalist game server to speed up your game jam
We found that jammer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.