Games

Install and Run CodeCombat Multiplayer Game on Ubuntu 16.04

CodeCombat is a multiplayer programming game for learning how to code. It’s a platform for students to learn computer science while playing through a real game.

It’s both a startup and a community project, completely open source under the MIT and Creative Commons licenses. Furthermore, it’s the largest open source CoffeeScript project by lines of code, and since it’s a game, it’s really fun to hack on.

To install CodeCombat, we need to first setup our database. The database used will be MongoDB

CodeCombat

Install MongoDB

  • Import public key, create source list file and install database
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update && sudo apt-get install -y mongodb-org
  • Create the service file for mongodb
cd /lib/systemd/system/
vim mongod.service
  • Paste below into the file
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target
  • Reload systemd service with following command
systemctl daemon-reload
  • Start mongodb service and add as a service on startup
systemctl start mongod
systemctl enable mongod

Install and run CodeCombat Multiplayer Game on Ubuntu 16.04

  • Install some needed packages
sudo apt-get install build-essential python2.7 git curl npm nodejs-legacy
  • If your default Python version is 3, then run this also
npm config set python `which python2.7`
  • Next let’s setup Git
git config --global user.name "YOUR_NAME"
git config --global user.email "YOUR_EMAIL_ADDRESS"
  • Next we start cloning the game from the repository
git clone https://github.com/codecombat/codecombat.git
cd codecombat
git remote add -f upstream https://github.com/codecombat/codecombat.git
  • Install Dependencies
npm install
  • Let’s import the latest development database and overwrite the current development database
(cd $(mktemp -d /tmp/coco.XXXXXXXX) && curl http://analytics.codecombat.com:8080/dump.tar.gz | tar xzf - && mongorestore --drop --host 127.0.0.1)
  • Run following command to startup brunch and nodemon
npm run dev
  • Open your browser and enter following URL
http://127.0.0.1:3000

Now we have our game environment running on Ubuntu 16.04

CodeCombat

About the author

Admin

A passionate Linux user for personal and professional reasons, always exploring what is new in the world of Linux and sharing with my readers.

5 Comments

  • HI, i have a problem when run npm run dev

    root@SRV-INGEMPCC:/lib/systemd/system/codecombat# npm run dev

    > codecombat@ dev /lib/systemd/system/codecombat
    > brunch watch –server –env fast

    Loaded brunch static stuff
    Got 560 coffee files and 266 jade files (bundled 126 of them together).
    06 Mar 09:58:11 – error: { [Error: Component must have “/lib/systemd/system/codecombat/bower_components/jquery/bower.json”] code: ‘NO_ BOWER_JSON’ }
    06 Mar 09:58:11 – info: custom server started, initializing watcher
    6 Mar 09:58:12 – [nodemon] v1.6.1
    6 Mar 09:58:12 – [nodemon] reading config /lib/systemd/system/codecombat/nodemon.json
    6 Mar 09:58:12 – [nodemon] to restart at any time, enter `rs`
    6 Mar 09:58:12 – [nodemon] ignoring: /lib/systemd/system/codecombat/.git/**/* /lib/systemd/system/codecombat/node_modules/**/* bower_c omponents .sass-cache
    6 Mar 09:58:12 – [nodemon] watching: server_config.js server_setup.coffee /lib/systemd/system/codecombat/app/schemas/**/* /lib/systemd /system/codecombat/server/**/* app/assets/main.html
    6 Mar 09:58:12 – [nodemon] watching extensions: js,coffee
    6 Mar 09:58:12 – [nodemon] starting `node .`
    6 Mar 09:58:12 – [nodemon] child pid: 7514
    WARNING: You are using Node v4. Please upgrade to Node v5. Your version: 4.2.6
    6 Mar 09:58:12 – [nodemon] watching 311 files
    module.js:328
    throw err;
    ^

    6 Mar 09:58:15 – [nodemon] app crashed – waiting for file changes before starting…
    06 Mar 09:58:30 – info: compiled 5 files into 2 files, copied 7 in 19610ms
    I feel the need, the need… for speed.
    Compile app/templates/static/about.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/about.html [ ‘static-mock.coffee’, undefined ]
    Compile app/templates/static/home.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/home.html [ ‘static-mock.coffee’, undefined ]
    Compile app/templates/static/legal.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/legal.html [ ‘static-mock.coffee’, undefined ]
    Compile app/templates/static/layout.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/layout.html [ ‘static-mock.coffee’ ]
    Compile app/templates/static/mock.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/mock.html [ ‘static-mock.coffee’,
    ‘app/templates/static/layout.static.pug’ ]
    Compile app/templates/static/overworld.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/overworld.html [ ‘static-mock.coffee’, undefined ]
    Compile app/templates/static/main.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/main.html [ ‘static-mock.coffee’,
    ‘app/templates/static/layout.static.pug’ ]
    Compile app/templates/static/privacy.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/privacy.html [ ‘static-mock.coffee’, undefined ]
    Compile app/templates/static/premium-features.static.pug /lib/systemd/system/codecombat/app
    Wrote to app/templates/static/premium-features.html [ ‘static-mock.coffee’, undefined ]

    please help me

Leave a Comment