diff --git a/Docs/Modules/README.md b/Docs/Modules/README.md new file mode 100644 index 0000000..77340eb --- /dev/null +++ b/Docs/Modules/README.md @@ -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(); + + // Настройка модуля + module.someProperty = value; + + // Подписка на события + module.someEvent += HandleEvent; + ``` + +2. **Использование на клиенте**: + ```csharp + // Доступ к клиентскому API + var moduleClient = Mst.Client.GetModule(); + + // Вызов методов + 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. **Безопасность** - Проверяйте все данные на стороне сервера \ No newline at end of file diff --git a/Docs/README.md b/Docs/README.md index c2a435c..a15f0e3 100644 --- a/Docs/README.md +++ b/Docs/README.md @@ -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) - Система чата и обмена сообщениями @@ -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/ - Сторонние библиотеки +``` ## Начало работы @@ -75,12 +110,12 @@ Master Server Toolkit - это фреймворк для создания мно ## Лучшие практики -1. **Модульная архитектура** - добавляйте только те модули, которые вам нужны -2. **Использование интерфейсов** - создавайте собственные реализации для интеграции с вашей системой -3. **Безопасность** - всегда проверяйте права доступа на стороне сервера -4. **Масштабирование** - используйте систему спаунеров для балансировки нагрузки -5. **Планирование** - продумайте взаимодействие модулей заранее +1. **Модульная архитектура** - Добавляйте только те модули, которые вам нужны +2. **Использование интерфейсов** - Создавайте собственные реализации для интеграции с вашей системой +3. **Безопасность** - Всегда проверяйте права доступа на стороне сервера +4. **Масштабирование** - Используйте систему спаунеров для балансировки нагрузки +5. **Планирование** - Продумайте взаимодействие модулей заранее ## Дополнительная информация -Для более подробной информации обратитесь к документации соответствующих модулей. +Для более подробной информации обратитесь к документации соответствующих разделов. \ No newline at end of file