0.1.0 • Published 6 years ago

idlerpg v0.1.0

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

IdleRPG

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. node examples/simple.js

Examples

The simplest way to see IdleRPG in action is to join #idlerpg:verse.im, 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';

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

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

  game.on('ready', function () {
    game.fabric.emit('service', { name: 'local' });
    game.fabric.emit('join', {
      user: name,
      channel: 'idlerpg'
    });
  });

  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!