Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serverless Game Backend

Serverless-бэкенд для Unity-игры на Laravel 13, Bref и AWS. Основное хранилище проекта — DynamoDB; локальная разработка полностью изолирована в Docker.

Архитектура

Архитектура Serverless Game Backend

Быстрый старт

make init

Команда создаст .env, соберёт образы, установит Composer/npm-зависимости в Docker volumes, сгенерирует APP_KEY, запустит сервисы и подготовит локальные DynamoDB-таблицы.

После запуска доступны:

Порты можно изменить через APP_PORT, VITE_PORT, DYNAMODB_PORT и DYNAMODB_ADMIN_PORT в .env.

Сервисы

Сервис Назначение
app PHP 8.4, Composer, Laravel HTTP server и Artisan
node Node.js, npm и Vite с HMR
dynamodb DynamoDB Local с постоянным именованным volume
dynamodb-admin Веб-интерфейс для просмотра и редактирования локальной DynamoDB

Локальная работа

make init уже создаёт таблицы DynamoDB. Посмотреть данные можно через DynamoDB Admin.

Создать тестового игрока:

make artisan ARGS="player:setup-local demo-player v1 demo-seed 1000"

Проверить его состояние:

make artisan ARGS="player:show-local demo-player"

Postman

В Postman Collection собран полный сценарий: расчистка препятствия, постройка и перемещение грядки, производство, сбор урожая и удаление здания.

Для запуска создайте отдельного игрока:

make artisan ARGS="player:setup-local postman-demo-player v1 postman-demo-seed 1000"

Импортируйте коллекцию и запустите её через Collection Runner. Для повторного прогона укажите новый playerId и создайте игрока с таким же ID.

AWS

Инфраструктура описана в infrastructure/cdk. В AWS используются Cognito, Lambda, API Gateway, DynamoDB, EventBridge, SQS и CloudWatch. Локально работают Laravel API и DynamoDB; остальные AWS-сервисы покрыты тестами инфраструктуры.

make cdk-test
make cdk-synth ENVIRONMENT=dev

Команды

make help       # все команды
make up         # запустить контейнеры
make down       # остановить контейнеры
make logs       # смотреть логи
make shell      # открыть shell контейнера app
make test       # запустить PHPUnit
make quality    # выполнить все проверки

make down сохраняет данные. make destroy удаляет контейнеры и volumes проекта.

About

Infrastructure and backend for a 100x100 tilemap Unity farm game. Includes AWS serverless architecture described in aws-sdk, Laravel using Bref, Lambda, Cognito and DynamoDB

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages