Play the game at: redis.io/cache-quest
This is the source code for Cache Quest, a browser rpg/rougelite game powered by Redis and built using KAPLAY.js.
This game uses Tiny Swords characters created by Pixel Frog. Characters sprites that can be downloaded free of charge are kept intact with permission of the artist. Character sprites that cannot be redistributed are replaced with whitespace placeholder art.
There are two ways to run this project once you've cloned the repo. You can run this project locally using Docker which pulls the latest alpine image of Redis. Alternatively, you can run this using Node with Redis Cloud.
cp .env.docker.example .env.dockerYour .env.docker should use the appropriate docker internal URLs.
REDIS_URL="redis://redis:6379"Your .env should use localhost for the REDIS_URL
REDIS_URL="redis://localhost:6379"
REDIS_SESSION_PREFIX = "sessions:"
REDIS_SESSION_SECRET = "diet Dr.Pepper"
PORT = 3000docker compose up -dcp .env.example .envInstead of a locally hosted Redis server, you can connect to a free Redis database on Redis Cloud.
If you don't yet have a database setup in Redis Cloud get started here for free.
To connect to a Redis Cloud database, log into the Redis Cloud console and find the following:
- The
public endpoint(looks likeredis-#####.####.us-region-2-#.ec2.redns.redis-cloud.com:#####) - Your
username(defaultis the default username, otherwise find the one you setup) - Your
password(either setup through Data Access Control, or available in theSecuritysection of the database page).
Combine the above values into a connection string and put it in your .env. It should
look something like the following:
REDIS_URL="redis://default:<password>@redis-#####.####.us-region-2-#.ec2.redns.redis-cloud.com:#####"
REDIS_SESSION_PREFIX = "sessions:"
REDIS_SESSION_SECRET = "diet Dr.Pepper"
PORT = 3000npm install
# then
npm run devcache-quest
├───public
│ ├───assets
│ │ ├───characters
│ │ ├───data
│ │ ├───dialog
│ │ ├───fx
│ │ ├───maps
│ │ ├───objects
│ │ └───ui
│ ├───lib
│ └───src
│ ├───entities
│ ├───scenes
│ ├───states
│ └───systems
│ └───skills
└───server
└───components
├───gamestate
├───leaderboard
└───playerstate
Producer: Rebekah Reddis
Developer: Chanh Tran
UI designer: Meghan Wittbrodt
Story Editor: Sylvia Ogweng
Character and environment art:
Pixel Frog
Szadi art.