Архитектура игры - 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 для музыки и эффектов).
  • Реакция: изменение уровня громкости фоновой музыки и звуковых эффектов в реальном времени.