mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-04-18 02:06:43 +00:00
Change the package manager from pacman to yay which installs mongodb. Beginning with January 2019 mongodb package is not available in the official Arch repositories and can't be installed using pacman. Instead of pacman you can use yay to compile mongodb or install prebuilt mongodb-bin. To compile mongodb you should have 260 GB available on your hard disk, so mongodb-bin is easier to install. As a result, guide is now correct for Arch Linux users.
177 lines
5.2 KiB
Markdown
177 lines
5.2 KiB
Markdown
### [Official website](https://muchassemblyrequired.com)
|
|
|
|
[](https://www.codefactor.io/repository/github/simon987/much-assembly-required)
|
|
[](https://ci.simon987.net/job/Much-Assembly-Required/)
|
|
|
|
**Much Assembly Required** allows you to program the 8086-like microprocessor of a robot in a grid-based multiplayer world. The game is web based so no installation is required. In its current state, players can walk around the game universe and collect Biomass blobs and Iron/copper ore using the online code editor.
|
|
|
|

|
|
|
|
Wiki: [GitHub](https://github.com/simon987/Much-Assembly-Required/wiki)
|
|
Chat: [Slack](https://join.slack.com/t/muchassemblyrequired/shared_invite/enQtMjY3Mjc1OTUwNjEwLWRjMjRkZTg2N2EyNWRjN2YyMDc0YzIyMTUyYzFiNTBmMTU3OGQ1ZjA0MWY0M2IyYjUxZTA4NjRkMWVkNDk2NzY)
|
|
|
|
# Deploying the server
|
|
|
|
## Linux
|
|
|
|
**Installing tools**
|
|
|
|
On Ubuntu 16.04:
|
|
```bash
|
|
sudo apt install git maven openjdk-8-jdk mongodb
|
|
```
|
|
|
|
On Arch:
|
|
``` bash
|
|
sudo pacman -S git maven jdk8-opendjk
|
|
yay -S mongodb-bin
|
|
|
|
# Don't forget to start mongodb
|
|
sudo systemctl start mongodb.service
|
|
```
|
|
|
|
*If needed, visit [yay installation](https://github.com/Jguer/yay#installation) and [troubleshooting mongodb](https://wiki.archlinux.org/index.php/MongoDB#Troubleshooting).*
|
|
|
|
**Deploying server**
|
|
|
|
``` bash
|
|
# Obtain source files
|
|
git clone https://github.com/simon987/Much-Assembly-Required.git
|
|
|
|
# Build
|
|
cd Much-Assembly-Required
|
|
mvn package
|
|
|
|
# Run
|
|
cd target
|
|
java -jar server-1.4a.jar
|
|
```
|
|
|
|
## Windows (tested on Windows 10)
|
|
|
|
Installation instructions:
|
|
1. Download the JDK from [here](http://www.oracle.com/technetwork/java/javase/downloads/index.html).
|
|
Install the JDK and update your PATH and JAVA_HOME environment variables.
|
|
2. Download Maven from [here](https://maven.apache.org/).
|
|
Install Maven (following the README) and update your PATH environment variable.
|
|
3. Download Mongo DB Community from [here](https://www.mongodb.com/download-center#community).
|
|
Install Mongo DB following the instructions [here](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/).
|
|
Update your PATH environment variable.
|
|
|
|
Building instructions:
|
|
```batch
|
|
:: Builds the server
|
|
cd Much-Assembly-Required
|
|
mvn package
|
|
```
|
|
|
|
Running instructions:
|
|
1. In one Command Prompt window, run Mongo DB:
|
|
```batch
|
|
:: Runs Mongo DB
|
|
mongod
|
|
```
|
|
2. In a second Command Prompt window, run the MAR server:
|
|
```batch
|
|
:: Runs the MAR server
|
|
cd Much-Assembly-Required\target
|
|
java -jar server-1.4a.jar
|
|
```
|
|
|
|
## macOS (tested on Sierra 10.12.6)
|
|
|
|
**Installation**
|
|
|
|
1. Install [Maven3](https://maven.apache.org/)
|
|
-Add Maven bin to your path
|
|
```bash
|
|
export PATH=/path/to/maven/bin.:$PATH
|
|
```
|
|
2. Install [MongoDB](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/?_ga=2.201359831.774868398.1539369140-197602459.1539369140).
|
|
-Via Brew:
|
|
```bash
|
|
#Update brew
|
|
brew update
|
|
|
|
#Install mongodb
|
|
brew install mongodb
|
|
|
|
#Install latest development release
|
|
brew install mongodb --devel
|
|
```
|
|
-Via .tar.gz
|
|
```bash
|
|
#Extract files:
|
|
tar -zxvf mongodb-osx-ssl-x86_64-4.0.3.tgz
|
|
|
|
#Ensure binaries are in your path
|
|
export PATH=<mongodb-install-directory>/bin:$PATH
|
|
```
|
|
If you do not wish to use the default data directory (/data/db), follow the steps for running MongoDB in the install doc.
|
|
|
|
**Deploying Server**
|
|
|
|
1. Begin MongoDB service
|
|
```bash
|
|
#If brew:
|
|
#Launch on login
|
|
brew services start mongodb
|
|
#Or, if you don't want/need a background service you can just run:
|
|
mongod --config /usr/local/etc/mongod.conf
|
|
|
|
#If binary:
|
|
mongod
|
|
#Optional, set data directory path:
|
|
mongod --dbpath <path to data directory>
|
|
```
|
|
|
|
2. Deploy server:
|
|
```bash
|
|
# Obtain source files
|
|
git clone https://github.com/simon987/Much-Assembly-Required.git
|
|
|
|
# Build
|
|
cd Much-Assembly-Required
|
|
mvn package
|
|
|
|
# Run
|
|
cd target
|
|
java -jar server-1.4a.jar
|
|
```
|
|
|
|
## Docker
|
|
### Requirements
|
|
|
|
1. [Docker Compose](https://docs.docker.com/compose/install/#install-compose) (and dependencies)
|
|
|
|
### Installation
|
|
|
|
Once Docker and Docker Compose are installed, you can build and start
|
|
this application by running the following command inside this
|
|
application's directory:
|
|
|
|
`docker-compose up`
|
|
|
|
Make sure to change `mongo_address` in `config.properties` to `mongodb`.
|
|
|
|
|
|
## Vagrant
|
|
### Requirements
|
|
1. [Vagrant](https://www.vagrantup.com/downloads.html)
|
|
2. [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
|
|
|
|
### Installation
|
|
|
|
When vagrant is installed, you can build and start this application by running the following
|
|
command inside this application's directory:
|
|
|
|
`vagrant up`
|
|
|
|
# Running
|
|
|
|
Once the server is running, you should be able to connect to `http://localhost:4567` with your browser
|
|
|
|
## VS Code Extensions
|
|
- [Much Assembly Required (Upload on Save)](https://marketplace.visualstudio.com/items?itemName=tomhodder.much-assembly-required-upload-on-save) by tomhodder
|
|
- [Much Assembly Required Language Support](https://marketplace.visualstudio.com/items?itemName=PJB3005.much-assembly-required-language-support) by PJB3005
|