DeathRoom — это многопользовательская игра в жанре шутера от первого лица, реализованная с использованием Unity (клиент) и .NET 8 (сервер). Проект следует принципам Clean Architecture и Domain-Driven Design.
Документация организована согласно подходу C4 (Context, Containers, Components, Code) и разделена по уровням детализации:
docs/
├── README.md # Этот файл
├── context/ # Уровень 1: Контекст системы
│ ├── system-context.md # Контекстная диаграмма
│ └── system-overview.md # Обзор системы
├── containers/ # Уровень 2: Контейнеры
│ ├── containers-overview.md # Обзор контейнеров
│ ├── client-container.md # Unity клиент
│ └── server-container.md # .NET сервер
├── components/ # Уровень 3: Компоненты
│ ├── client-components.md # Компоненты клиента
│ ├── server-components.md # Компоненты сервера
│ └── shared-components.md # Общие компоненты
├── code/ # Уровень 4: Код
│ ├── api/ # API документация
│ ├── database/ # Схемы данных
│ └── deployment/ # Развертывание
├── architecture/ # Архитектурные решения
│ ├── decisions/ # ADR (Architecture Decision Records)
│ ├── patterns/ # Используемые паттерны
│ └── principles/ # Принципы архитектуры
├── development/ # Разработка
│ ├── setup.md # Настройка окружения
│ ├── coding-standards.md # Стандарты кодирования
│ └── testing.md # Тестирование
└── operations/ # Эксплуатация
├── deployment.md # Развертывание
├── monitoring.md # Мониторинг
└── troubleshooting.md # Устранение неполадок
- Цель: Показать систему в контексте пользователей и внешних систем
- Аудитория: Все заинтересованные стороны
- Содержание:
- Контекстная диаграмма системы
- Основные пользователи и их цели
- Внешние системы и интеграции
- Цель: Показать высокоуровневую техническую архитектуру
- Аудитория: Технические руководители и архитекторы
- Содержание:
- Unity клиент (C#)
- .NET сервер (C#)
- Сетевое взаимодействие
- Технологический стек
- Цель: Показать основные компоненты внутри каждого контейнера
- Аудитория: Разработчики и архитекторы
- Содержание:
- Компоненты клиента (UI, сеть, игровая логика)
- Компоненты сервера (Domain, Application, Infrastructure)
- Общие компоненты (DTO, сетевые пакеты)
- Цель: Детальная документация реализации
- Аудитория: Разработчики
- Содержание:
- API документация
- Схемы данных
- Диаграммы классов
- Примеры кода
- Unity 2022.3 LTS - игровой движок
- C# - язык программирования
- LiteNetLib - сетевая библиотека
- MessagePack - сериализация данных
- Universal Render Pipeline - графический пайплайн
- .NET 8 - платформа разработки
- C# - язык программирования
- LiteNetLib - сетевая библиотека
- MessagePack - сериализация данных
- Clean Architecture - архитектурный паттерн
- DDD - Domain-Driven Design
-
Клонирование репозитория:
git clone <repository-url> cd DeathRoom
-
Запуск сервера:
cd server dotnet run --project DeathRoom-Backend/DeathRoom-Backend.csproj
-
Запуск клиента:
- Открыть проект в Unity
- Настроить адрес сервера в
Client.cs
- Запустить сцену
DeathRoom/
├── client/ # Unity клиент
│ ├── Assets/
│ │ ├── Scripts/ # C# скрипты
│ │ ├── Scenes/ # Игровые сцены
│ │ └── Prefabs/ # Префабы
│ └── Packages/ # Unity пакеты
├── server/ # .NET сервер
│ ├── DeathRoom-Backend/ # Точка входа
│ ├── DeathRoom.Application/ # Бизнес-логика
│ ├── DeathRoom.Domain/ # Доменная модель
│ ├── DeathRoom.Common/ # Общие компоненты
│ └── DeathRoom.Infrastructure/ # Инфраструктура
└── docs/ # Документация (эта папка)
- Новичкам: Начните с context/system-overview.md
- Архитекторам: Изучите containers/containers-overview.md
- Разработчикам: Перейдите к components/
- DevOps: Смотрите operations/
Документация должна обновляться при:
- Изменении архитектуры
- Добавлении новых компонентов
- Изменении API
- Обновлении технологического стека
Для вопросов по документации обращайтесь к команде разработки.