Create an RPG or MMORPG effortlessly in the 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 v18
npm run dev # and go to localhost:3000

Star

Map Creation

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

  • Put in as many tilesets as you like
  • Create several layers, group them together
  • Put animated water tiles for example, and give life to the maps
  • Group the maps with worlds, the player will be able to switch from one map to another
  • Put shapes on the map. When the person enters or leaves the training, put actions!
  • Put text or image in one place on the map
  • RPGJS uses Pixi.js. Rendering uses WebGL for better performance

A thought for RPG

Use several methods, without complexity, to manage the player, maps, etc.

  • Code with Typescript. You know which properties are usable and take advantage of decorators to create classes with a sugar-syntax
  • 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: 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 calculations for a combat system have already been introduced, but you can customize them!

Create your own scenario

Complete framework to create your gameplay!

  • Display a dialogue, move a character, display an animation, change the gold, set one or more appearances, etc.
  • 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
  • Display animations on the map or player
  • Add sound effects and background music to set the mood
  • Save the position and parameters of the character, and save them in the database of your choice (FileSystem, Memory, SQL, NoSQL, etc.)

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
  • Collision search algorithm
  • Cached map (optimized!)
  • Horizontal scaling: With Kubernetes and Agones, make horizontal scaling to have thousands of players on your game!

Create Graphical User Interfaces (GUI)

Put in menus, windows, etc.

  • Using VueJS for user interfaces
  • Prebuilt GUI: dialog box, main menu, shop menu, etc.
  • Create GUI over the map
  • GUI attached to a sprite
  • And more: Chat GUI, Title Screen, Notification GUI

Accessibility

Play on multiple platforms!

  • Works on smartphone
  • Playable with a gamepad
  • Create a Progressive Web App

Ready for production

Build and deploy!

  • Write your unit tests (with Vitest) to make your game stable
  • With same code: MMORPG or RPG
  • 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