solaris-games / solaris

A HTML5 game of strategy, intrigue and galactic conquest.
https://solaris.games
GNU General Public License v3.0
183 stars 65 forks source link
4x 4x-strategy-game games hacktoberfest strategy

Solaris

Solaris is a slow-burn browser game heavily inspired by Neptune's Pride and Subterfuge.

Visit solaris.games to play now!

Server

The server uses the following tech:

Client

The client uses the following tech:

Development Environment Setup

  1. Install the prerequisites.
  2. Clone the repository.
  3. Checkout master.
  4. npm install in both client/ and server/ directories.
  5. Create a .env file in server/ (See .env.example).
  6. Create a .env file in client/ (See .env.example).
  7. npm run start-jobs:dev in server/ to start the automated jobs and setup new games.
  8. npm run start-api:dev in server/ to start the API.
  9. npm run serve in client/ to start the client application.
  10. Browse to the site locally (default http://localhost:8080).

Note: Development work is to be based on the dev branch, for a new feature or bug fix, create a branch from dev.

Database Migrations

To keep up to date with the latest changes, you must run the database migations to ensure that your database is compatible.

  1. npm run start-db-migrate:dev in server/ to update your local database to the latest schema.

Note: This script assumes that you have a solaris database on your system. If not, perform the Development Environment Setup above first.

Development Environment Automation (Optional)

To automate the development environment, it is recommended to use PM2.

  1. Install pm2.
  2. pm2 start pm2.config.js to register pm2 apps.

The above script will create the server jobs, API and client applications, watch for changes and restart those applications when necessary.

You can make use of debugger attach for VS Code defined in the .vscode/launch.json configuration file to easily attach the debugger to running apps.

Once configured, you can browse to the site locally (default http://localhost:8080) as using the normal way detailed in the section above and any changes you make will automatically restart the applications.

Run with docker

  1. Install Docker.
  2. Create a .env file in server/ (See .env.example).
  3. Create a .env file in client/ (See .env.example).
  4. Run docker compose up in the project folder
  5. Browse to the site locally (default http://localhost:8080).

Contributing

See here.

License

See here.