Skip to content

dqso/mincer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mincer / мясорубка

Клиент-серверная игра.

Интерфейс

img.png

HUD

  • Красная шкала со здоровьем
  • Cool down шкала скорости атак
  • Небольшое синее окно с классом персонажа, оружием и уроном
  • Справа информационные сообщения (убийства, присоединения/отсоединения других игроков)
  • Снизу координаты и FPS

Динамика игры

  • Зелёное поле - поле битвы
  • Игровой персонаж обведён белой обводкой.
  • Синие персонажи - маги, красные - воины, зелёные - лучники, серые - мёртвые игроки.
  • Маги и лучники стреляют фаерболами (маленькие красные кружки) и стрелами (черные точки), соответственно.
  • Воины подходят и наносят урон вблизи.
  • У воинов и магов оружие наносит урон по радиусу. Лучники - только в одну цель.
  • В игру добавлено несколько ботов.

Сборка и запуск

Подготовка

  1. Установить кодогенератор для proto файлов:

    # Linux
    sudo apt install protobuf-compiler protoc-gen-go
    # MacOS
    brew install protobuf protoc-gen-go
  2. Установить утилиту make для сборки:

    # Linux
     sudo apt-get install make
    # MacOS
    brew install install make
  3. Установить C компилятор для Mac или для Linux и зависимости для Linux, чтобы собрать клиентское приложение.

Сборка серверной и клиентской части

make build

Бинарные файлы будут помещены в /bin.

Генерация конфигурационных файлов

  1. Сгенерировать пароль для Postgres:

    printf $(head -c 32 /dev/random | base64) > ./server/config/pg_password
  2. Сгенерировать приватный ключ для взаимодействия netcode с клиентами:

    openssl rand -base64 32 > ./server/config/nc_private_key
  3. Сгенерировать конфиг для миграций:

    printf '[database]
    host = postgres
    port = 5432
    database = mincer
    user = mincer
    password = '$(cat ./server/config/pg_password)'
    
    [data]
    ' > ./server/config/migrations.conf

Запуск

  1. Запустить базу данных в докере:

    docker-compose up --build -d postgres
  2. Провести миграции в БД:

    docker-compose up --build migrations
  3. Запустить сервер:

    POSTGRES_PASSWORD_FILE=server/config/pg_password \
    NC_PRIVATE_KEY_FILE=server/config/nc_private_key \
    LOG_LEVEL=info ./bin/server
  4. Запустить клиент (или несколько клиентов):

    ./bin/client -a http://localhost:8080/token

    localhost или локальный IP сервера

Управление

На сервере

  • Ctrl+C для изящного выключения
  • переменные среды (см. env.go)

На клиенте

  • WASD или стрелки для движения персонажа
  • Space для удара или запуска фаербола/стрелы
  • R для возрождения
  • Esc для выхода из игры

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors