docker compose up
to init databases- Set up .env like:
POSTGRES_USER=...
POSTGRES_PASSWORD=...
POSTGRES_DB=twirl
POSTGRES_PORT=8500
REDIS_PORT=8501
PRISMA_DATABASE_URL="postgresql://...:...@localhost:8500/twirl?schema=public"
npx prisma migrate dev
to perform migrationsnpm run dev
from ./http to start the auth server- Through a DB manager (either
docker exec
or something like DBeaver) set up songs and locations. Use utils/get_bpm.py to determine BPM and onset npm run dev
from ./udp to start the game state server
Цей репозиторій містить серверну частину. Код клієнта буде опублікований окремо.
- Unity і Unity UI
- Node.js з NestJS
- PostgreSQL
У ході розробки буде визначено допоміжні бібліотеки.
-
Користувач може зареєструватися і створити персонажа, обравши нікнейм і стать
-
Користувач може обрати одну з локацій, на якій зможе пересуватись і бачитиме інших присутніх персонажів.
-
Користувач може створити танцювальну кімнату й запросити у неї присутніх на сервері персонажів. У ній він може обирати режим гри й музику.
-
Танець може бути одиночним чи груповим. Кожен гравець, який танцює, бачить повзунок і стрілочки.
Аби виконати рух, потрібно натиснути всі стрілочки в наведеному порядку й space у правильний момент. Залежно від моменту натискання, гравець отримує оцінку руху (пропуск, погано, добре, ідеально).
Гравцям начисляються бали за виконані рухи. Вони оновляються у інтерфейсі у реальному часі. -
Під час групового танцю видно пропуски й ідеальні виконання інших гравців, а також їх бали.
-
Під час танцю виводяться анімації, що підігнані під BPM пісні. Відображаються поточні анімації усіх гравців у локації.
-
Окремим модулем імплементований аналізатор BPM у аудіо, який дозволяє додавання будь-якої пісні адміністратором.
- Різні режими танців, у тому числі якийсь, що базується на 2D фізиці
- Додавання користувачів у список друзів
- “Жарти” над користувачами (перетворення у свинку, бій з переможцем, хто найбільше разів натисне клавішу)
- Отримання нагороди за танці й магазин одягу/скінів/жартів.
- Система ачівок за максимально пройдений біт/режим, яка надає ауру
- Простий чат