Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions Docs/Modules/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Master Server Toolkit - Модули

## Обзор

Модули в Master Server Toolkit - это функциональные компоненты, которые предоставляют готовую логику для конкретных аспектов многопользовательной игры. Каждый модуль реализует часть функциональности, необходимой для создания многопользовательной игры, и может использоваться независимо или в сочетании с другими модулями.

## Категории модулей

### Основные модули

Фундаментальные компоненты для большинства многопользовательских игр:

- [Authentication](Authentication.md) - Регистрация, вход, управление учетными записями
- [Profiles](Profiles.md) - Хранение и управление профилями игроков
- [Rooms](Rooms.md) - Создание и управление игровыми комнатами

### Игровые модули

Компоненты для расширения геймплейных возможностей:

- [Achievements](Achievements.md) - Система достижений и наград
- [Censor](Censor.md) - Фильтрация нежелательного контента
- [Chat](Chat.md) - Система чата и обмена сообщениями
- [Lobbies](Lobbies.md) - Лобби для подготовки к игре
- [Matchmaker](Matchmaker.md) - Подбор игроков и матчей
- [Notification](Notification.md) - Пуш-уведомления и оповещения
- [Ping](Ping.md) - Проверка соединения и замер задержки
- [QuestsModule](QuestsModule.md) - Система квестов и заданий
- [WorldRooms](WorldRooms.md) - Постоянные игровые миры

### Инфраструктурные модули

Модули для развертывания и поддержки игровой инфраструктуры:

- [Spawner](Spawner.md) - Динамический запуск игровых серверов
- [WebServer](WebServer.md) - Встроенный HTTP сервер для API и админ-панели

### Аналитика и мониторинг

Модули для сбора и анализа данных:

- [AnalyticsModule](AnalyticsModule.md) - Сбор и анализ игровых событий

## Архитектура модуля

Каждый модуль обычно включает:

1. **Серверная часть**
- Модуль (`*Module.cs`) - Основная логика модуля
- Реализация API (`*ModuleServer.cs`) - Серверная реализация

2. **Клиентская часть**
- Клиентское API (`*ModuleClient.cs`) - Интерфейс для клиента
- Обработчики событий - Компоненты для реакции на события модуля

3. **Общие компоненты**
- Пакеты данных (`Packets/*.cs`) - Структуры для обмена между клиентом и сервером
- Модели данных - Классы, описывающие данные модуля
- Интерфейсы - Контракты для расширения функциональности

4. **Расширения**
- Интеграции с другими модулями
- Интеграции с внешними сервисами

## Использование модулей

Для использования модуля требуется:

1. **Подключение на сервере**:
```csharp
// Добавление модуля на сервер
var module = server.AddModule<ModuleName>();

// Настройка модуля
module.someProperty = value;

// Подписка на события
module.someEvent += HandleEvent;
```

2. **Использование на клиенте**:
```csharp
// Доступ к клиентскому API
var moduleClient = Mst.Client.GetModule<ModuleNameClient>();

// Вызов методов
moduleClient.SomeMethod(args, (successful, response) => {
// Обработка ответа
});
```

## Взаимодействие модулей

Модули могут взаимодействовать между собой через:

1. **Прямые зависимости** - Явные ссылки на другие модули
2. **Систему событий** - Слабосвязанное взаимодействие через события
3. **Общий контекст** - Доступ к общим данным через MasterServer

## Расширение функциональности

Для расширения модуля можно:

1. **Наследоваться от базовых классов модуля**:
```csharp
public class CustomAuth : AuthModule
{
// Расширенная функциональность
}
```

2. **Реализовать требуемые интерфейсы**:
```csharp
public class CustomDatabase : IAccountsDatabaseAccessor
{
// Пользовательская реализация доступа к данным
}
```

3. **Подписаться на события модуля**:
```csharp
module.OnSomeEvent += (data) => {
// Дополнительная логика при событии
};
```

## Лучшие практики

1. **Минимализм** - Используйте только необходимые модули
2. **Абстракция** - Работайте с модулями через интерфейсы
3. **Расширяемость** - Создавайте наследников для кастомизации
4. **Слабая связь** - Используйте события вместо прямых зависимостей
5. **Безопасность** - Проверяйте все данные на стороне сервера
91 changes: 63 additions & 28 deletions Docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,32 @@
## Описание
Master Server Toolkit - это фреймворк для создания многопользовательских игр с архитектурой клиент-сервер. Он предоставляет готовые модули для аутентификации, профилей, комнат, лобби, чата и многих других аспектов многопользовательской игры.

## Основные модули

### Ядро системы
## Структура системы

### [Ядро системы](Core/README.md)
Базовые компоненты и инфраструктура фреймворка:
- [MasterServer](Core/MasterServer.md) - Центральный компонент системы
- [Client](Core/Client.md) - Клиентская часть системы
- [Server](Core/Server.md) - Серверная часть системы
- [Database](Core/Database.md) - Абстракция базы данных
- [Events](Core/Events.md) - Система событий
- [Keys](Core/Keys.md) - Система констант и ключей
- [Localization](Core/Localization.md) - Система локализации
- [Logger](Core/Logger.md) - Система логирования
- [Mail](Core/Mail.md) - Система отправки email

### [Networking](Networking.md)
Документация по сетевому взаимодействию в системе.

### [Модули](Modules/README.md)
Функциональные компоненты для создания многопользовательских игр:

#### Основные модули
- [Authentication](Modules/Authentication.md) - Аутентификация и управление пользователями
- [Profiles](Modules/Profiles.md) - Профили пользователей и управление данными
- [Rooms](Modules/Rooms.md) - Система комнат и игровых сессий

### Игровые модули
#### Игровые модули
- [Achievements](Modules/Achievements.md) - Система достижений
- [Censor](Modules/Censor.md) - Фильтрация нежелательного контента
- [Chat](Modules/Chat.md) - Система чата и обмена сообщениями
Expand All @@ -21,29 +39,46 @@ Master Server Toolkit - это фреймворк для создания мно
- [QuestsModule](Modules/QuestsModule.md) - Система квестов и заданий
- [WorldRooms](Modules/WorldRooms.md) - Система постоянных игровых зон

### Инфраструктура
#### Инфраструктурные модули
- [Spawner](Modules/Spawner.md) - Запуск игровых серверов
- [WebServer](Modules/WebServer.md) - Встроенный веб-сервер для API и админ-панели

### Аналитика и Мониторинг
#### Аналитика и мониторинг
- [AnalyticsModule](Modules/AnalyticsModule.md) - Сбор и анализ игровых событий

### Инструменты
- [Tools](Tools/README.md) - Набор вспомогательных инструментов для разработки
- [UI Framework](Tools/UI/README.md) - Система пользовательского интерфейса
- [Attributes](Tools/Attributes.md) - Расширения для инспектора Unity
- [Terminal](Tools/Terminal.md) - Отладочный терминал
- [Tweener](Tools/Tweener.md) - Инструменты анимации
- [Utilities](Tools/Utilities.md) - Вспомогательные утилиты

## Структура модулей

Каждый модуль обычно состоит из следующих компонентов:
1. **Серверный модуль** (`*Module.cs`) - серверная логика модуля
2. **Серверная реализация** (`*ModuleServer.cs`) - реализация API сервера
3. **Клиентская часть** (`*ModuleClient.cs`) - клиентское API для взаимодействия с сервером
4. **Пакеты** (`Packets/*.cs`) - структуры данных для обмена между клиентом и сервером
5. **Интерфейсы и модели** - определение контрактов и объектов данных
### [Инструменты](Tools/README.md)
Набор вспомогательных инструментов для разработки:
- [UI Framework](Tools/UI/README.md) - Система пользовательского интерфейса
- [Views System](Tools/UI/Views.md) - Управление UI экранами
- [UI Components](Tools/UI/Components.md) - Готовые компоненты UI
- [Validation System](Tools/UI/Validation.md) - Валидация форм ввода
- [Attributes](Tools/Attributes.md) - Расширения для инспектора Unity
- [Terminal](Tools/Terminal.md) - Отладочный терминал
- [Tweener](Tools/Tweener.md) - Инструменты анимации
- [Utilities](Tools/Utilities.md) - Вспомогательные утилиты
- [DebounceThrottle](Tools/DebounceThrottle.md) - Ограничение частоты вызовов
- [WebGL](Tools/WebGL.md) - Инструменты для WebGL платформы

## Структура проекта

Базовая структура проекта Master Server Toolkit:

```
Assets/
└── MasterServerToolkit/
├── Core/ - Ядро системы
├── Modules/ - Модули
│ ├── Authentication/ - Модуль аутентификации
│ ├── Profiles/ - Модуль профилей
│ ├── Rooms/ - Модуль комнат
│ └── ... - Другие модули
├── Tools/ - Инструменты
│ ├── UI/ - UI фреймворк
│ ├── Terminal/ - Терминал
│ └── ... - Другие инструменты
├── Examples/ - Примеры использования
└── ThirdParty/ - Сторонние библиотеки
```

## Начало работы

Expand Down Expand Up @@ -75,12 +110,12 @@ Master Server Toolkit - это фреймворк для создания мно

## Лучшие практики

1. **Модульная архитектура** - добавляйте только те модули, которые вам нужны
2. **Использование интерфейсов** - создавайте собственные реализации для интеграции с вашей системой
3. **Безопасность** - всегда проверяйте права доступа на стороне сервера
4. **Масштабирование** - используйте систему спаунеров для балансировки нагрузки
5. **Планирование** - продумайте взаимодействие модулей заранее
1. **Модульная архитектура** - Добавляйте только те модули, которые вам нужны
2. **Использование интерфейсов** - Создавайте собственные реализации для интеграции с вашей системой
3. **Безопасность** - Всегда проверяйте права доступа на стороне сервера
4. **Масштабирование** - Используйте систему спаунеров для балансировки нагрузки
5. **Планирование** - Продумайте взаимодействие модулей заранее

## Дополнительная информация

Для более подробной информации обратитесь к документации соответствующих модулей.
Для более подробной информации обратитесь к документации соответствующих разделов.