2020-04-04 16:05:31 +02:00
![](https://github.com/thecodingmachine/workadventure/workflows/Continuous%20Integration/badge.svg)
2020-04-03 14:59:24 +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).
2020-04-03 18:31:11 +02:00
## 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
```
2020-04-15 23:10:12 +02:00
## Designing a map
If you want to design your own map, you can use [Tiled ](https://www.mapeditor.org/ ).
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.
2020-04-15 23:31:39 +02:00
- 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+)
2020-04-15 23:10:12 +02:00
![](doc/images/tiled_screenshot_1.png)
2020-05-10 14:49:49 +02:00
If you have exit scene
- You must create layer "exit". The layer have cases where the gamer can switch to the next scene.
- In layer properties, you must add "exitSceneKey" property. It represent a key map of the next scene. Be careful, if you want that the next map will be correctly loaded, you must check that the map exists in the list of the maps application. The variable that represents maps in the application is "ROOMS" constant variable.
![](doc/images/exit_layer_map.png)
2020-04-04 13:18:45 +02:00
### 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 ](https://medium.com/better-programming/vagrant-to-increase-docker-performance-with-macos-25b354b0c65c ).
#### Prerequisites
2020-04-04 11:36:18 +02:00
- VirtualBox* 5.x Latest version https://www.virtualbox.org/wiki/Downloads
- Vagrant 2.2.7 Latest version https://www.vagrantup.com/downloads.html
2020-04-04 13:18:45 +02:00
#### First steps
Create a config file `Vagrantfile` from `Vagrantfile.template`
```bash
2020-04-04 11:36:18 +02:00
cp Vagrantfile.template Vagrantfile
2020-04-04 13:18:45 +02:00
```
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:
```bash
2020-04-04 11:36:18 +02:00
Vagrant up
2020-04-04 13:18:45 +02:00
```
To connect to your VM, run:
```bash
2020-04-04 11:36:18 +02:00
Vagrant ssh
2020-04-04 13:18:45 +02:00
```
To start project environment, run
```bash
2020-04-04 11:36:18 +02:00
docker-compose up
2020-04-04 13:18:45 +02:00
```
You environment runs in you VM Vagrant. When you want stop your VM, you can run:
2020-04-04 11:36:18 +02:00
````bash
Vagrant halt
````
2020-04-04 13:18:45 +02:00
2020-04-04 11:36:18 +02:00
If you want to destroy, you can run
2020-04-04 13:18:45 +02:00
2020-04-04 11:36:18 +02:00
````bash
Vagrant destroy
````
2020-04-04 13:18:45 +02:00
#### Available commands
2020-04-04 11:36:18 +02:00
* `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.
2020-04-04 22:43:07 +02:00
## Features developed
2020-04-15 23:10:12 +02:00
You have more details of features developed in back [README.md ](./back/README.md ).