Skip to content

Alezrik/game_services_umbrella

Repository files navigation

CircleCI

Coverage Status

GameServicesUmbrella

A collection of Services (better project name pending) to manage Multi Player Games. Services will enable games to create a persistent multi player world. Unreal Engine 4 will be used as the Game Client / Game Server(s) in a Multi Player RPG.

Getting Started

Setting Up your Machine for Development / Test and Local Deployment

Documentation

Generate Documentation

mix doc && open doc/index.html

Game Clients

Installing / Local Deployment Game Services

Install Docker - Docker containers for local deployment build/release

Install Minikube - local Kubernetes - local deployment environment

Install kubectl - Kubernetes cli

Clone project

git clone https://github.com/Alezrik/game_services_umbrella.git

Install NPM packages

cd apps/game_services_web/assets
npm install

Startup minikube

mix kubernetes start_minikube

Verify Minikube services are up and running

mix kubernetes status

Switch to Minikube docker service

eval $(minikube docker-env)

NOTE Windows requires you to copy and paste the result of

E:\game_services_umbrella>minikube docker-env
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\ex_ra\.minikube\certs
SET DOCKER_API_VERSION=1.35
REM Run this command to configure your shell:
REM @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i

Build Services Umbrella

mix docker build_umbrella

Create Release

mix docker build_release

Create Service User for Kubernetes

mix kubernetes create_auth_user

Create Secrets for Services

mix kubernetes create_secrets

Create a Headless Service for Internal Cluster

mix kubernetes create_headless

Create an External Service for external http access

mix kubernetes create_service

Create GameServicesUmbrella cluster

mix kubernetes deploy

Verify Cluster / Kubernetes Deployment

minikube dashboard

Running in Development Environment

NOTE: When running in development locally you will see some unintended messages from swarm (Issue)[#15]

mix phx.server

Executing Unit tests

NOTE: When running unit tests locally you will see some unintended messages from swarm (Issue)[#15]

mix test

Elixir OTP Apps

Changelog

Project Changelog

Helpfuck Docker / Kubernetes Commands

Reset Docker to Normal Docker Service

eval $(docker-machine env -u)

Connect to a Running Pod

kubectl get pods
kubectl exec -it POD_NAME -c SERVICENAME -- /bin/bash
./bin/SERVICENAME remote_console