SkillAgentSearch skills...

Gamemaker

Easy Matchmaking nodejs module

Install / Use

/learn @cestef/Gamemaker
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<h1>gamemaker</h3> <div>

Status GitHub Issues GitHub Pull Requests License

</div>

📝 Table of Contents

🧐 About <a name = "about"></a>

gamemaker is an easy-to-use matchmaking nodejs module. You can easily modify the module by adding your own matching/sorting functions to the constructor parameters

🏁 Getting Started <a name = "getting_started"></a>

Install the package with npm

npm install --save gamemaker

🎈 Usage <a name="usage"></a>

//require the module
const Matchmaker = require("gamemaker");

function startMatch(players) {
    //"player" parameter structure: {player: the player object, addedAt: timestamp when the player was added to the queue}
    console.log(`Match started with players: ${players.map(e => e.player.name)}`); //fired when a match starts, passing all the players as arguments
};

function getPlayerID(player) {
    return player.id; //Return the player property that includes its id
};

function matchPlayers(players) {
    ///... do something to check if the players match together
    return true;
    //return true or false
};

function sortQueue(a, b) {
    //sort with the a and b player object
    return a - b
};
const defaultQueue = []; // default matchmaker queue (array)
const matcher = new Matchmaker(startMatch, getPlayerID, {
    checkInterval: 2000, // interval in ms to check the queue
    minMatchSize: 2, //minimal party size to launch the match
    maxMatchSize: 5, //max party size
    matchPlayersFunction: matchPlayers, //the function used to tell if the player match together or not (default returns true)
    sortQueueFunction: sortQueue, //the function used to sort the queue (default sort by add time)
    queue: defaultQueue, //the default queue for the matchMaker (default [])
});
matcher.init(); //init the matchmaker interval
matcher.addPlayer({name:"Bob", id:0}); //Add a player named "Bob"
matcher.addPlayer({name:"John", id:1, someRandomProperty:[123]}) //You can also add other properties to the player object
matcher.removePlayerByID(0); //will remove "Bob" from the queue
matcher.addPlayer({name:"Alice", id:2}) //Add a player named "Alice"
matcher.getPlayerByID(1) //will return the "John" player object

//Output: Match started with players: John,Alice

⛏️ Built Using <a name = "built_using"></a>

✍️ Authors <a name = "authors"></a>

See also the list of contributors who participated in this project.

🎉 Acknowledgements <a name = "acknowledgement"></a>

Inspired by the package matchmaking

View on GitHub
GitHub Stars10
CategoryDevelopment
Updated7mo ago
Forks1

Languages

JavaScript

Security Score

67/100

Audited on Aug 16, 2025

No findings