BrowserQuest is a HTML5/JavaScript multiplayer game experiment.
It has three major parts:
Getting the server up and running is pretty easy. You need to have the following installed:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install g++ make memcached libncurses5 redis-server git -y
$ curl -sL https://deb.nodesource.com/setup | sudo bash -
$ sudo apt-get install nodejs
Clone the git repo:
$ git clone git://github.com/browserquest/BrowserQuest.git
$ cd BrowserQuest
Then install the Node.js dependencies by running:
$ npm config set registry http://registry.npmjs.org/
$ npm install -d
Before starting the BrowserQuest server, you must start Redis. In Windows, you can simply run redis-server.exe
in your redis\bin\release
directory.
Then start the server by running:
$ node server/js/main.js
The BrowserQuest server should start, showing output like this:
$ node server/js/main.js
This server can be customized by creating a configuration file named: ./server/config_local.json
[Thu Sep 13 2012 17:16:27 GMT-0400 (EDT)] INFO Starting BrowserQuest game server...
[Thu Sep 13 2012 17:16:27 GMT-0400 (EDT)] INFO world1 created (capacity: 200 players).
[Thu Sep 13 2012 17:16:27 GMT-0400 (EDT)] INFO world2 created (capacity: 200 players).
[Thu Sep 13 2012 17:16:27 GMT-0400 (EDT)] INFO world3 created (capacity: 200 players).
[Thu Sep 13 2012 17:16:27 GMT-0400 (EDT)] INFO world4 created (capacity: 200 players).
[Thu Sep 13 2012 17:16:27 GMT-0400 (EDT)] INFO world5 created (capacity: 200 players).
[Thu Sep 13 2012 17:16:27 GMT-0400 (EDT)] INFO Server (everything) is listening on port 8000
That means its working. There should not be any warnings or errors.
Using a browser, connect to port 8000 of the server entered above. The BrowserQuest start page should appear, and the game should work.
Node.js, Memcached, and Redis installed through Homebrew are known to work:
$ brew install node redis memcached
$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
$ git clone git://github.com/browserquest/BrowserQuest.git
$ cd BrowserQuest
$ npm install -d
$ node server/js/main.js
Or you can download the latest Redis source from http://redis.io/download
$ tar xzf redis-<version>.tar.gz
$ cd redis-<version>
$ make
To start Redis now, you can simply run:
$ src/redis-server
You can try interacting with it by starting another terminal and typing:
$ redis-<version>/src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
On Fedora 16+ and RHEL/CentOS/SL 6.x, you can install Redis (required) and Memcached (optional) using yum.
For just RHEL/CentOS/SL 6.x, you need to add the EPEL repo first. Not needed for Fedora:
$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Then install Node.js and everything else needed:
$ sudo yum install zlib-devel gcc gcc-c++ autoconf automake make redis nodejs npm memcached
$ sudo chkconfig redis on
$ sudo chkconfig memcached on
Start Redis and Memcached by running:
$ sudo service redis start
$ sudo service memcached start
Now continue on with the normal steps to clone the BrowserQuest git repo, and start up BrowserQuest:
$ git clone git://github.com/browserquest/BrowserQuest.git
$ cd BrowserQuest
$ npm install -d
$ node server/js/main.js
Windows 8 is known to work ok with just the base Node v0.8.18 installed, without Visual Studio, nor Python, nor the native extensions for npm modules installed.
You can download an experimental Win32/64 version of Redis from here: http://redis.io/download
You can download the latest version of Memcached for Win32/64 from here: http://blog.elijaa.org/index.php?post/2010/10/15/Memcached-for-Windows&similar
Currently, BrowserQuest can run on the following PAAS (Platform as a Service) providers:
Follow the instructions to get started with the OpenShift client tools here.
Create a new application by running this command:
$ rhc app create <app-name> nodejs-0.6
$ cd <app-name>
where \<app-name> is the name of your app, e.g. browserquest.
Add the Redis cartridge (necessary for BrowserQuest to be able to store data) with the following command:
$ rhc add-cartridge \
http://cartreflect-claytondev.rhcloud.com/reflect?github=smarterclayton/openshift-redis-cart \
--app <app-name>
Add the BrowserQuest repository, and pull its contents with the following commands:
$ git remote add github https://github.com/browserquest/BrowserQuest.git
$ git fetch github
$ git reset --hard github/master
Copy the BrowserQuest config file with the following command:
$ cp server/config.json server/config_local.json
Open server/config_local.json
in a text editor such as Gedit (Linux), TextEdit (OS X), or Vim.
On the line that reads "production": "heroku",
, change "heroku"
to "openshift"
.
Add this file to your repository by running the following commands:
$ git add server/config_local.json
$ git commit -m "Added config_local.json"
Now, deploy to OpenShift with one final command (this will take several minutes):
$ git push -f
Congratulations! You have now deployed BrowserQuest to Openshift! You can see the url of your instance by running
$ rhc app show <app-name>
Visit the url shown by the above command to see BrowserQuest running. You will need to add ":8000" to the end. Use the url below as a guide:
http://your_openshift_browserquest_url.rhcloud.com:8000/
Install the Heroku toolbelt from here.
Create a new application by running the following command:
$ heroku create [NAME]
Where [NAME] is an optional name for your application (Heroku will automatically create one otherwise).
Sign up for a Redis provider, such as Redis To Go, or host a Redis instance yourself.
Run the following commands to allow BrowserQuest to run on Heroku:
$ heroku config:add HEROKU=true
$ heroku config:add HEROKU_REDIS_HOST=[REDIS_HOST]
$ heroku config:add HEROKU_REDIS_PORT=[REDIS_PORT]
$ heroku config:add HEROKU_REDIS_PASSWORD=[REDIS_PASSWORD]
Where [REDIS_HOST], [REDIS_PORT], and [REDIS_PASSOWRD] are your Redis hostname, port, and password, respectively. If you Redis instance is configued without a password, omit the last command.
Note: If you use RedisToGo, you will be provided with a URL that looks something like this:
redis://redistogo:12345678901234567890@something.redistogo.com:9023/
In this case, your REDIS_HOST is something.redistogo.com
, your REDIS_PORT is 9023
, and your REDIS_PASSWORD is 12345678901234567890
.
Deploy to Heroku by running the following command:
$ git push heroku master
Enable the Heroku WebSockets lab (needed for communication between the browser and the BrowserQuest server) with the following command:
$ heroku labs:enable websockets
Congratulations! You have now deployed BrowserQuest to Heroku! To open BrowserQuest in your browser, run heroku open
.
Lots of useful info on the wiki.
The new mailing list for development is here. (archives)
The old mailing list on librelist.com is no longer used. Its archives are online here.
#browserquest on irc.mozilla.org
Code is licensed under MPL 2.0. Content is licensed under CC-BY-SA 3.0. See the LICENSE file for details.
Originally created by Little Workshop:
All of the music in BrowserQuest comes from Creative Commons Attribution 3.0 Unported (CC BY 3.0) sources.
Many other people are contributing through GitHub: