majodo
v1.1.5
Published
A template game server
Downloads
8
Readme
MaJoDo - Game Server
Easily set up a game server and focus solely on your client-side with MaJoDo. Choose from three different server types to suit your needs: UDP, WebSockets, or WebSockets with Protocol Buffers. Find example clients here
Features
Seamless Server Types: Select from three distinct server implementations:
UDP for fast, connectionless data transmission.
WS (Websockets) for a reliable, full-duplex communication channel.
WS_WITH_PROTOBUFS (WebSockets with Protocol Buffers) for efficient binary serialization.
Automated Room Management: After getting your JWT token from the HTTP server, simply send it to the server (via UDP or WS) and get placed in a room. All your subsequent data is then automatically routed to the correct room.
Built-in Authentication: Get a JWT token from the HTTP server to ensure secure and authenticated access.
Express Integration: A built-in HTTP and Express server, ensuring simplicity and extensibility.
Installation
npm install majodo
Basic Usage
/* If you watched the YouTube video, that is an old version without types.
Now, MaJoDo uses types so use the code below. 🦞 */
import { MaJoDo, ServerType } from "majodo";
// Create a new instance with desired server type, host, and ports
const majodo = new MaJoDo(ServerType.WS, "0.0.0.0", 3000);
// UDP:
// const majodo = new MaJoDo(ServerType.UDP, "0.0.0.0", 3000, UDP_PORT);
// Start the server
majodo.start();
Server Types
ServerType.UDP: Use the UDP protocol for data transmission.
ServerType. WS: Utilize WebSockets for communication.
ServerType.WS_WITH_PROTOBUFS: Use WebSockets paired with Protocol Buffers for efficient messaging.
Token-Based Authentication
- Send a request to the HTTP server.
- Retrieve a JWT token.
- Use the JWT token to send data to the server (UDP/WS).
- Enjoy automatic room routing and data forwarding.
Documentation & Tutorials
For a comprehensive tutorial on setting up and integrating MaJoDo in your game project check out this YouTube video: https://www.youtube.com/watch?v=47FUo0pDsHA
Disclaimer: The video is a bit outdated regarding the server implementation (you need to change the constructor and import statement), check out the section above on basic usage.