Skip to content

martindale/idlerpg

 
 

Repository files navigation

IdleRPG

Build Status Coverage Status Total Contributors

Simple, self-playing game intended for chat servers.

Getting Started

It is recommended to use idlerpg-bot to run IdleRPG as a useful service, which can be accomplished as follows:

  1. Fork idlerpg-bot »
  2. git clone git@github.com:YOUR_USERNAME/idlerpg-bot.git
  3. cd idlerpg-bot
  4. npm install
  5. cp config.json.sample config.json then open in editor and configure
  6. npm start

Running IdleRPG on its own:

  1. Fork idlerpg »
  2. git clone git@github.com:YOUR_USERNAME/idlerpg.git
  3. cd idlerpg
  4. npm install
  5. npm start

Examples

The simplest way to see IdleRPG in action is to join #idlerpg:roleplaygateway.com, which will automatically join you into the official public game session. This channel is powered by idlerpg-bot, a pre-configured bot for Discord, Matrix, and Slack.

Simple Example

In the examples directory, you can find the following sample program:

'use strict';

const IdleRPG = require('idlerpg');
const game = new IdleRPG({ interval: 1000 });
const name = 'Yorick';
const friend = 'Friend';

async function main () {
  game.on('patches', function (patches) {
    game.fabric.applyPatches(patches);
  });

  game.on('message', function (msg) {
    console.log('[MESSAGE]', msg);
  });

  game.on('ready', function () {
    game.fabric.trust(game);
    game.fabric.replay('log.json');
  });

  return game.start();
}

module.exports = main();

This minimal program demonstrates the full IdleRPG loop using a "local" service, including composing a local copy of the in-game state (stored in game.fabric).

idlerpg-bot

idlerpg-bot is a [doorman]- powered chatbot with good examples of how the underlying messaging layer operates, as well as how to integrate IdleRPG into your own applications.

API

IdleRPG uses an event-driven API to send messages between entities tracked by the game state.

For example, registrations use the join event:

game.fabric.emit('join', {
  user: name,
  channel: 'idlerpg'
});

For detailed documentation, see the docs folder. Happy hacking!

Next Steps

IdleRPG is an experiment in swarm computing, as part of an effort by the Verse team to create a serverless web. Game engines are complex programs, but we're starting with our own ("verse") as a demonstration of how a distributed computer & accompanying operating system might replace the need for servers altogether.

If this is an idea you're interested in, come join the Fabric community!

About

generic IdleRPG implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%