Home

Awesome

Warp (previously GM-Online-Framework)

A feature-rich framework for multiplayer games, written in GameMaker and Node.js

Maintained by @evolutionleo

If you have any questions, please join my Discord

Features

Examples (use old versions)

Installing

Client + Server (recommended) (temporarily broken, sorry)

Client and Server separately

Client-side

Server-side

Database (Optional)

If you don't need MongoDB - please disable it in the server's config file (it's under common_config.db_enabled), otherwise you will get an error!

Usage/Workflow

Congratulations on completing the Installation step!

Starting with netcode might be a bit overwhelming at first (even to experienced devs), which is why I tried to make implementing basic client/server interaction as simple and straightforward as possible:

Sending a packet (JS/TS and GML)

Sending a message to the server might be as easy as:

send({ cmd: "hello", str: "Hello, Server!" })

or even (if you create a wrapper function):

sendHello()

Receiving a packet

GML:

addHandler("hello", function(data) {
    show_debug_message(data.str)
})

JS/TS:

addHandler("hello", (client, data) => {
    console.log(`${client.name} says: ${data.str}`)
})

Using lobbies and maps:

Using entities and rooms:

Using accounts and saving:

Running

Configuration

Deploying

Contributing

Rules for submitting a PR:

Feature requests/typos/bug reports:

Credits