Клиент-серверная игра.
- Красная шкала со здоровьем
- Cool down шкала скорости атак
- Небольшое синее окно с классом персонажа, оружием и уроном
- Справа информационные сообщения (убийства, присоединения/отсоединения других игроков)
- Снизу координаты и FPS
- Зелёное поле - поле битвы
- Игровой персонаж обведён белой обводкой.
- Синие персонажи - маги, красные - воины, зелёные - лучники, серые - мёртвые игроки.
- Маги и лучники стреляют фаерболами (маленькие красные кружки) и стрелами (черные точки), соответственно.
- Воины подходят и наносят урон вблизи.
- У воинов и магов оружие наносит урон по радиусу. Лучники - только в одну цель.
- В игру добавлено несколько ботов.
-
Установить кодогенератор для proto файлов:
# Linux sudo apt install protobuf-compiler protoc-gen-go# MacOS brew install protobuf protoc-gen-go -
Установить утилиту make для сборки:
# Linux sudo apt-get install make# MacOS brew install install make -
Установить C компилятор для Mac или для Linux и зависимости для Linux, чтобы собрать клиентское приложение.
make buildБинарные файлы будут помещены в /bin.
-
Сгенерировать пароль для Postgres:
printf $(head -c 32 /dev/random | base64) > ./server/config/pg_password
-
Сгенерировать приватный ключ для взаимодействия netcode с клиентами:
openssl rand -base64 32 > ./server/config/nc_private_key -
Сгенерировать конфиг для миграций:
printf '[database] host = postgres port = 5432 database = mincer user = mincer password = '$(cat ./server/config/pg_password)' [data] ' > ./server/config/migrations.conf
-
Запустить базу данных в докере:
docker-compose up --build -d postgres
-
Провести миграции в БД:
docker-compose up --build migrations
-
Запустить сервер:
POSTGRES_PASSWORD_FILE=server/config/pg_password \ NC_PRIVATE_KEY_FILE=server/config/nc_private_key \ LOG_LEVEL=info ./bin/server
-
Запустить клиент (или несколько клиентов):
./bin/client -a http://localhost:8080/token
localhost или локальный IP сервера
- Ctrl+C для изящного выключения
- переменные среды (см. env.go)
- WASD или стрелки для движения персонажа
- Space для удара или запуска фаербола/стрелы
- R для возрождения
- Esc для выхода из игры
