😮 Discover RPGJS Studio: creating an RPG with artificial intelligence: it generates maps and gameplay
Learn More →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
![](/_astro/hero.587a1d57_ZkrP60.webp)
![](/_astro/tiled.8e53624a_Z2qPGfg.webp)
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
![](/_astro/ts.2b800cbe_Adgxs.webp)
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!
![](/_astro/event.b07bae6f_2oz7aN.webp)
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.)
![](/_astro/rocket.20b07e76_6kcor.webp)
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!
![](/_astro/menu.4ad3cae2_13sMqJ.webp)
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
![](/_astro/smartphone.f97520fe_1CUgfP.webp)
Accessibility
Play on multiple platforms!
- Works on smartphone
- Playable with a gamepad
- Create a Progressive Web App
![](/_astro/build.a9cff6ea_Z1jrs8O.webp)
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