Go to file
David Négrier 7e00d61f94 Fixing test
2020-05-15 23:17:58 +02:00
.github/workflows Fixing CD 2020-05-13 22:20:34 +02:00
back Fixing test 2020-05-15 23:17:58 +02:00
doc/images Fix error mapping refresh in back & the end of this feature development 2020-05-10 23:49:08 +02:00
e2e fixed the version mismatch of cypress between local and ci 2020-04-14 20:54:27 +02:00
front Sending player details (name + character selected) on connection 2020-05-15 22:49:50 +02:00
.env.template create an env variable for debug mode 2020-04-13 19:40:10 +02:00
.gitignore create an env variable for debug mode 2020-04-13 19:40:10 +02:00
deeployer.libsonnet Fixing domain name 2020-05-13 16:17:58 +02:00
docker-compose.ci.yml fixed the version mismatch of cypress between local and ci 2020-04-14 20:54:27 +02:00
docker-compose.yaml implemented basic e2e testing 2020-04-14 20:04:55 +02:00
README.md Refactoring "exit" to allow multiple maps 2020-05-11 18:49:20 +02:00
Vagrantfile.template Add Vagrantfile 2020-04-04 04:33:57 +02:00

Work Adventure

Work in progress

Work Adventure is a web-based collaborative workspace for small to medium teams (2-100 people) presented in the form of a 16-bit video game.

In Work Adventure, you can move around your office and talk to your colleagues (using a video-chat feature that is triggered when you move next to a colleague).

Getting started

Install Docker.

Run:

docker-compose up

The environment will start.

You should now be able to browse to http://workadventure.localhost/ and see the application.

Note: on some OSes, you will need to add this line to your /etc/hosts file:

/etc/hosts

workadventure.localhost 127.0.0.1

Designing a map

If you want to design your own map, you can use Tiled.

A few things to notice:

  • your map can have as many layers as your want
  • your map MUST contain a layer named "floorLayer" of type "objectgroup" that represents the layer on which characters will be drawn.
  • the tilesets in your map MUST be embedded. You can refer to an external typeset in a TSX file. Click the "embed tileset" button in the tileset tab to embed tileset data.
  • your map MUST be exported in JSON format. You need to use a recent version of Tiled to get JSON format export (1.3+)

In order to place an on your scene that leads to another scene:

  • You must create an specific layer. When a character reaches ANY tile of that layer, it will exit the scene.
  • In layer properties, you must add "exitSceneUrl" property. It represents the map URL of the next scene. For example : /<map folder>/<map>.json. Be careful, if you want the next map to be correctly loaded, you must check that the map files are in folder back/src/Assets/Maps/<your map folder>. The files will be accessible by url <HOST>/map/files/<your map folder>/....
  • If you want to have multiple exits, you can create many layers with name "exit". Each layer has a different key exitSceneUrl and have tiles that represent exits to another scene.

MacOS developers, your environment with Vagrant

If you are using MacOS, you can increase Docker performance using Vagrant. If you want more explanations, you can read this medium article.

Prerequisites

First steps

Create a config file Vagrantfile from Vagrantfile.template

cp Vagrantfile.template Vagrantfile

In Vagrantfile, update VM_HOST_PATH with the local project path of your machine.

#VM_HOST_PATH# => your local machine path to the project

(run pwd and copy the path in this variable)

To start your VM Vagrant, run:

Vagrant up

To connect to your VM, run:

Vagrant ssh

To start project environment, run

docker-compose up

You environment runs in you VM Vagrant. When you want stop your VM, you can run:

Vagrant halt

If you want to destroy, you can run

Vagrant destroy

Available commands

  • Vagrant up: start your VM Vagrant.
  • Vagrant reload: reload your VM Vagrant when you change Vagrantfile.
  • Vagrant ssh: connect on your VM Vagrant.
  • Vagrant halt: stop your VM Vagrant.
  • Vagrant destroy: delete your VM Vagrant.

Features developed

You have more details of features developed in back README.md.