Create your RPG or MMORPG in your browser

RPGJS allows you to create a game with TypeScript, designed for the browser and optimized for real-time multiplayer! MIT License. Free. Opensource

npx degit rpgjs/starter my-rpg-game
cd my-rpg-game
npm install # NodeJS v14 only
npm run dev # and go to localhost:3000

Star

Map Creation

Use the power of the Tiled Map Editor software to create maps

🛡

Multi-Tileset

Put in as many tilesets as you like

🛡

Mutli-Layer

Create several layers, group them together

🛡

Create animated tiles

Put animated water tiles for example, and give life to the maps

🛡

Use worlds

Group the maps with worlds, the player will be able to switch from one map to another

🛡

Shapes

Put shapes on the map. When the person enters or leaves the training, put actions!

🛡

Event

Place events on the map (as a non-player character)

🛡

Text and Image

Put text or image in one place on the map

🛡

WebGL Rendering

RPGJS uses Pixi.js. Rendering uses WebGL for better performance

GamePlay

Complete framework to create your gameplay!

🛡

Many commands for actions

Display a dialogue, move a character, display an animation, change the gold, set one or more appearances, etc.

🛡

Scenario

Make sure that an event is shared or not with all players. For example, a monster will be visible to everyone but you can create a chest that can be opened by each player to establish a scenario in the game

🛡

Animation

Display animations on the map or player

🛡

Music

Add sound effects and background music to set the mood

🛡

Vision area

Create visions, and trigger actions!

🛡

Save point

Save the position and parameters of the character, and save them in the database of your choice (FileSystem, Memory, SQL, NoSQL, etc.)

Create GUI

Put in menus, windows, etc.

🛡

Using VueJS for user interfaces

VueJS allows to create rich interfaces with a component-oriented structure. Create your menus with VueJS or use existing modules to display pre-built menus.

🛡

Prebuilt GUI

dialog box, main menu, shop menu, etc.

🛡

Create GUI over the map

For example, create a HUD

🛡

Emotion Bubble

Display a bubble with an emotion

🛡

Chat GUI

Talking with other players

🛡

Title Screen

In MMORPG, put a window to encourage the user to log in to their account

🛡

Notification GUI

Display notifications (e.g., to indicate rewards earned, or goals unlocked)

🛡

GUI attached to a sprite

This is very useful to make more advanced interactions on a sprite. For example, display a tooltip or additional interactive displays.

Performance

Each line has been designed to optimise CPU and RAM

🛡

Low Bandwidth

packet size is reduced with msg-pack to ensure minimum bandwidth

🛡

Client-Side Prediction

In order to have a fluidity, the player positions are first realized on the client side. With the reconciliation server technique, the positions are checked and corrected if there is a difference between the client and the server

🛡

Collision search algorithm

When moving, collision searches are not performed on the entire map, but only in certain areas in order to reduce the CPU load

🛡

Cached map (optimized!)

Maps are stored in memory for faster loading. For large maps, optimizations have been made to take only a few MB of memory

🛡

Horizontal scaling

With Kubernetes and Agones, make horizontal scaling to have thousands of players on your game!

API

Thought for the RPG

🛡

Code with Typescript

Put a control in your code. You know which properties are usable and take advantage of decorators to create classes with a sugar-syntax

🛡

Unlimited creativity

Modify sprites, server, etc.

🛡

Items API

Add or remove items from the player's inventory

🛡

States & Elements API

Apply states (poison, paralysis, etc.) to the player or elements (fire, ice, etc.)

🛡

Parameters API (hp, sp, etc.)

Change, just with a property, the player's HP, SP, Level, etc.

🛡

Effects API

Put effects like "He can't use skills anymore" or "He has a super defense", which will influence the damage of the fight

🛡

Classes API

Put a class like Warrior, Fighter, etc. This will apply states or skill learning according to the level automatically

🛡

Skills API

Make people learn or forget skills

🛡

Gold API

Changing the game currency

🛡

Damage calculation

Damage calculations for a combat system have already been introduced, but you can customize them!

Accessibility

Play on multiple platforms!

🛡

Works on smartphone

The game adapts to the screen and the player can play on a smartphone

🛡

Playable with a gamepad

Use a gamepad to play

🛡

Create a PWA

Install the game on a smartphone so that the player can play offline (for an RPG)

Ready for production

Build and deploy!

🛡

Unit Tests

Write your unit tests (with Jest) to make your game stable

🛡

With same code: MMORPG or RPG

Don't learn two different styles. Write a code and render it, either offline for an RPG or online for an MMORPG.

🛡

Put on a server quickly!

After the build, put the files on a server and run with NodeJS. For an RPG, read the Javascript directly in the browser