Архитектура игры - Porosenok-Petr/THE-SHAKE-GAME GitHub Wiki
1. ПОЛЬЗОВАТЕЛИ
С информационной системой взаимодействуют два типа пользователей:
- Игрок — конечный пользователь, который запускает игру через исполняемый файл Windows, взаимодействует с игрой с помощью клавиатуры и мыши (или сенсорного ввода, если устройство поддерживает тачскрин), управляет игровым процессом.
- Администратор — специалист, который обеспечивает корректную работу игры, отслеживает ошибки и баги, может настраивать параметры через конфигурационные файлы или отдельное админ‑меню.
2. ПРОГРАММНО-АППАРАТНАЯ СРЕДА
Игра разрабатывается как оконное приложение для Windows (версии 10 и выше).
2.1. Минимальные требования:
- операционная система: Windows 10/11 (64‑bit);
- процессор: с тактовой частотой от 1 ГГц;
- оперативная память: 1 ГБ;
- видеокарта: с поддержкой DirectX 11 или выше (для работы Unity);
- свободное место на диске: 500 МБ;
- ввод: клавиатура, мышь; опционально — сенсорный экран.
2.2. Особенности среды выполнения:
- приложение запускается в стандартном пользовательском контексте Windows;
- использует изолированную область данных пользователя для сохранения настроек и рекордов;
- имеет доступ к GPU через DirectX (через API Unity);
- может работать в оконном режиме.
3. ВНЕШНИЕ СИСТЕМЫ И СЕРВИСЫ
- Игровой движок: Unity (с поддержкой Windows Standalone Build).
- Язык программирования: C# (код компилируется в исполняемый файл .exe и связанные библиотеки).
- Графика: рендеринг через DirectX (по умолчанию для Windows).
- Ввод: поддержка клавиатуры, мыши, сенсорного экрана (Unity Input System).
- Сохранение данных: PlayerPrefs (для простых настроек) или файловая система Windows (для сложных данных).
- Звуковая подсистема: Windows Audio (через Unity Audio Mixer).
4. ИНТЕРФЕЙСЫ ВЗАИМОДЕЙСТВИЯ
Пользователь взаимодействует с ИС через:
- клавиатуру (стрелки или WASD — движение змеи; Esc — вызов меню паузы; Enter — подтверждение);
- мышь (наведение и клик по кнопкам меню, паузы, выхода);
- сенсорный ввод (если устройство поддерживает: касания по виртуальным кнопкам или жесты);
- графическое меню (кнопки «Старт», «Пауза», «Настройки», «Выход» в интерфейсе игры).
5. ПОТОКИ ДАННЫХ
5.1. Поток управления (Ввод → Действие)
- Источник: игрок (нажатие клавиш, клик мыши, касание экрана).
- Приёмник: модуль обработки ввода (InputHandler в Unity).
- Данные: код нажатой клавиши (стрелка, WASD, Esc, Enter), координаты клика/касания.
- Реакция: преобразование ввода в команду для игровой логики (смена направления змеи, вызов меню паузы, выход из игры).
5.2. Поток состояния игры (Логика → Интерфейс)
-
Источник: игровой движок (GameLogic).
-
Приёмник: модуль отрисовки (Renderer / UI Canvas в Unity).
-
Данные:
- текущие координаты сегментов змеи (массив Vector2);
- координаты еды;
- текущий счёт (int Score);
- флаг состояния игры (меню, игра, пауза, Game Over);
-
Реакция: обновление изображения на экране (HUD, положение объектов, меню), адаптация интерфейса под размер окна.
5.3. Поток сохранения данных (Игра → Память)
-
Источник: модуль подсчёта очков (ScoreManager).
-
Приёмник: постоянная память Windows (PlayerPrefs или файл в %APPDATA%[НазваниеИгры]).
-
Данные: значение лучшего результата (int HighScore), настройки громкости, разрешение экрана.
-
Условие: поток активируется:
- когда текущий счёт превышает сохранённый рекорд;
- при выходе из игры (автосохранение);
- после изменения настроек в меню.
5.4. Поток звуковых параметров (Настройки → Аудио)
- Источник: модуль настроек (SettingsMenu).
- Приёмник: аудиомикшер (AudioMixer в Unity).
- Данные: значение громкости (float VolumeLevel для музыки и эффектов).
- Реакция: изменение уровня громкости фоновой музыки и звуковых эффектов в реальном времени.