Simple, self-playing game intended for chat servers.
It is recommended to use idlerpg-bot
to run IdleRPG as a useful service, which
can be accomplished as follows:
- Fork
idlerpg-bot
» git clone git@github.com:YOUR_USERNAME/idlerpg-bot.git
cd idlerpg-bot
npm install
cp config.json.sample config.json
then open in editor and configurenpm start
Running IdleRPG on its own:
- Fork
idlerpg
» git clone git@github.com:YOUR_USERNAME/idlerpg.git
cd idlerpg
npm install
npm start
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.
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
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.
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!
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!