jamROGUE is a fully realtime multiplayer roguelike for ComputerCraft, originally made for CCJam 2016. It features a large dungeon which players can explore solo or together in a shared world, fighting mobs and collecting items. jamROGUE is currently in Alpha.
You can download the client installer by running pastebin run 38V4mw7Q
.
jamROGUE is developed and tested in CCEmuRedux. It has been claimed to run perfectly in-game too, though ComputerCraft 1.76 or above is required due to the use of the new font. CCLite does not work.
Warning: the game may not run on some multiplayer servers. Do not bother reporting this to me or the server admin, just stop playing it on multiplayer servers. If it works, great!
- WASD / Arrow Keys - Move the player
- Left Click - Inspect an item, player or mob, controls GUIs
- Right Click - Interact with an item, player or mob, also quick-equips items in the inventory
This is the room every player spawns in when the dungeon is created, and returns to after death. Mobs never spawn in this room - it is a safe room.
These nameless rooms simply serve as a connection between rooms. Mobs never spawn in hallways.
Also referred to as Monster Camps or just Camps, these rooms often contain a few monsters - usually one or two Goblins.
Also referred to as Abandoned Rooms, these rooms are usually empty and filled with Pebbles and Rocks. They additionally have a 65% chance of containing Chest Keys.
Seen as Monsters, Sewers, Mobs, Dungeons or Cells - these small rooms usually contain one to four bats or rats as well as one to three chests, with a 20% chance of any of those chests being locked chests.
Loot rooms, seen as Treasuries, Storage Rooms, Armouries or Abandoned Camps; these big rooms contain a large amount of chests.
These large camps contain two to six Goblins or Dwarves - be ready for these!
These large Boss rooms contain two or three Lizards or Serpents, as well as one to three locked chests. They are tough.
Health: 2.0
Damage: 1.0
Damage Ticks: 15
Critical Hit Chance: 0%
Critical Hit Multiplier: 1.0x
Drops: Poop, throwables, projectiles
Health: 2.0
Damage: 1.0
Damage Ticks: 12
Critical Hit Chance: 0%
Critical Hit Multiplier: 1.0x
Drops: throwables, projectiles
Health: 5.0
Damage: 1.0
Damage Ticks: 15
Critical Hit Chance: 25%
Critical Hit Multiplier: 2.0x
Drops: melee, throwables, projectiles
Health: 5.0
Damage: 2.0
Damage Ticks: 20
Critical Hit Chance: 20%
Critical Hit Multiplier: 2.0x
Drops: shooters, projectiles
Health: 8.0
Damage: 2.0
Damage Ticks: 30
Critical Hit Chance: 20%
Critical Hit Multiplier: 2.0x
Drops: consumables
Health: 7.0
Damage: 3.0
Damage Ticks: 30
Critical Hit Chance: 10%
Critical Hit Multiplier: 2.0x
Drops: consumables
Minimum Level: Level 1
Damage Multiplier: 1.0x
Minimum Level: Level 2
Damage Multiplier: 1.2x
Minimum Level: Level 4
Damage Multiplier: 1.5x
Minimum Level: Level 6
Damage Multiplier: 2.0x
Minimum Level: Level 8
Damage Multiplier: 3.0x
Minimum Level: Level 10
Damage Multiplier: 4.0x
Minimum Level: Level 15
Damage Multiplier: 5.0x
It's a Rusty Sword, looks pretty old.
Minimum Level: Level 1
Damage: 1
Some sort of Club from somewhere.
Minimum Level: Level 1
Damage: 1
It's a Stick but do we even have trees down here?
Minimum Level: Level 1
Damage: 1
It's a Branch - is this really any better than a stick?
Minimum Level: Level 2
Damage: 2
Equally useful in the kitchen and the dungeon.
Minimum Level: Level 5
Damage: 3
It's a Sword, looks sturdy.
Minimum Level: Level 5
Damage: 3
It's a Shortsword, short and swift.
Minimum Level: Level 10
Damage: 4
It's a Longsword.
Minimum Level: Level 13
Damage: 5
Just a rock.
Minimum Level: Level 1
Damage: 1
Range: 6
Maximum Stack: 8
Just a brick.
Minimum Level: Level 1
Damage: 1
Range: 5
Maximum Stack: 10
Just a can.
Minimum Level: Level 1
Damage: 1.0
Range: 0
Maximum Stack: 20
How do you carry this?.
Minimum Level: Level 1
Damage: 5.0
Range: 6
Maximum Stack: 3
It's a Slingshot - looks like it requires pebbles.
Minimum Level: Level 1
Range: 8
Projectiles: Pebble
It's a Flimsy Bow.
Minimum Level: Level 2
Range: 12
Projectiles: Arrow
It's a Bow.
Minimum Level: Level 5
Range: 15
Projectiles: Arrow
It's a Strong Bow.
Minimum Level: Level 10
Range: 18
Projectiles: Arrow
It's a Strong Bow.
Minimum Level: Level 12
Range: 20
Projectiles: Arrow
Might be useful for a slingshot or something.
Minimum Level: Level 1
Damage: 1
Maximum Stack: 30
Sharp and pointy.
Minimum Level: Level 2
Damage: 2.0
Maximum Stack: 30
Sharp, pointy and venomous.
Minimum Level: Level 6
Damage: 4.0
Maximum Stack: 30
An apple a day keeps the doctor away.
Minimum Level: Level 1
Heals: 2.0
Maximum Stack: 6
It's healthier than soda.
Minimum Level: Level 1
Heals: 1.0
You really don't want to eat this.
Minimum Level: Level 1
Heals: 1.0
Maximum Stack: 15
A pineapple a day keeps the monsters away.
Minimum Level: Level 2
Heals: 3.0
Maximum Stack: 4
Looks suspicious, but it says health on it!
Minimum Level: Level 4
Heals: 5.0
Looks suspicious, but it says health on it!
Minimum Level: Level 6
Heals: 8.0
Lucky find.
Minimum Level: Level 8
Heals: 10.0
A flimsy key that probably only works once.
Minimum Level: Level 1
Please suggest features and submit bug reports to the Issues page. As well as this, there are sometimes Votes and Suggestion Requests open that you can contribute to to help the development of jamROGUE.
There may also be open issues asking for help, be sure to check those out too.
The server-side of jamROGUE is written in Node.js. It uses ES2015, and is compiled with Babel. It requires MongoDB for the database, and uses Express.js for the webserver.
jamROGUE depends on MongoDB, Node.js and optionally nginx as a reverse proxy. You can look up the installation of these for your distro of choice.
jamROGUE uses Gulp for building. Install gulp globally through npm if you haven't already, and then simply run gulp babel
to build the files into the dist
directory.
To configure the server, create a config.json
file in the dist
directory (or wherever you compiled the code to). It needs to contain the fields mongodbURI
(the URI to connect to MongoDB) and listen
(the port or sock file to listen to).
Example:
{
"mongodbURI": "mongodb://localhost/jamrogue",
"listen": "/var/socks/jamrogue.sock"
}
When you have built and configured the server, you can run it with node main
in the dist
directory (or wherever you compiled the code to). You can run this in a screen, or run it as a forever
process, or anything else.
Important: Whenever the server starts, it will generate the world. This is a very CPU intensive process that can take several minutes. If you wish to use a smaller world, change the roomCount
, hubRatio
, ellipseWidth
and ellipseHeight
variables in src/dungeon.js
then re-compile the code with gulp babel
.
The client and server code are licensed under GPLv3. For more information see the LICENSE file.