Somewhere in the seventh millenia, long after Humans have become extinct, only a select few plants appear to have survived Solar Radiation.
A new breed of seemingly sentient beings has emerged due to centuries of mutations from radiation exposure. They call themselves "Ents", live in "The Garden" and follow the teachings of their oldest member, the "Tree of Knowledge".
Status: Player and Region interaction is in progress.
- Harvest line-of-sight by pressing
h
- Investigate line-of-sight by pressing
i
- Toggle notifications console by pressing
ESC
- Left by pressing
Left Arrow
ora
orNUM 4
- Right by pressing
Right Arrow
ord
orNUM 6
- Up by pressing
Up Arrow
orw
orNUM 8
- Down by pressing
Down Arrow
ors
orNUM 5
- Upleft by pressing
q
orNUM 7
- Upright by pressing
e
orNUM 9
- Downleft by pressing
z
orNUM 1
- Downright by pressing
c
orNUM 3
npm install
redis-server --port 6379
npm run dev
runs the development environment using webpack-dev-server + hot reload
- Change cycle
PUBLISH cycling '{"cycle":"morning|afternoon|evening|night"}'
- Get all players data
HGETALL player
- Get all player ids
HKEYS player
- Get one player
HGET player <id>
- Delete one player
HDEL player <id>
- Delete all players
DEL player'
- Get all region ids
HKEYS region
- Get one region
HGET region <id>
- Delete one region
HDEL region <id>
- Delete all region
DEL region'
- Both a
npm run start
script andProcfile
are included for Heroku or custom deployment. npm run dist
builds the production distribution package for JS, CSS and other assets
socket.emit('query', data)
data = {
"type": "player"
}
socket.on('query', callback)
{
"type": "player",
"data": {
"name": "Nyan",
"icon": "default",
"region": {
"id": "CG",
"x": 1,
"y": 1
},
"inventory": {}
}
}
socket.emit('query', data)
data = {
"type": "region",
"id" : "CG"
}
socket.on('query', callback)
{
"type": "region",
"data": {
"id": "CG",
"name": "The Garden",
"description": "The World's Last Safe Haven.",
"tiles": [],
"nodes": [],
"items": []
}
}
socket.emit('cycling', data)
data = {}
socket.on('query', callback)
{
"type": "cycling",
"data": {
"cycle": "evening"
}
}
socket.emit('enter', data)
data = {
"id": "CG"
}
socket.on('query', data)
socket.emit('leave', data)
data: {
"id": "CG"
}
socket.on('query', data)
socket.emit('move', data)
{
"id": "CG",
"x" : 1,
"y" : 2
}
socket.on('query', data)
socket.emit('investigate', data)
data = {
"id": "RegionID",
"x" : 1,
"y" : 2
}
socket.on('query', data)
socket.emit('say', data)
data = {
"id": "CG",
"message" : "Hello World!"
}
socket.on('say', data)
socket.emit('harvest', data)
data = {
"id": "CG",
"x" : 1,
"y" : 2
}
socket.on('query', data)
socket.emit('build', data)
data = {
"id" : "CG",
"x" : 1,
"y" : 2,
"type": 100
}
socket.on('query', data)
Credits and relevant licenses for game art, music and sounds included in the credits
directory. Thank you! :3