Skip to content

Wafiismail27/gamemaker

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

gamemaker

Status GitHub Issues GitHub Pull Requests License


πŸ“ Table of Contents

🧐 About

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

Install the package with npm

npm install --save gamemaker

🎈 Usage

//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

✍️ Authors

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

πŸŽ‰ Acknowledgements

Inspired by the package matchmaking

About

Easy Matchmaking nodejs module

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%