Per aspera ad astra или RoadMap по вашей будущей игре. Godot 4 C# Часть 4 "Игровой цикл и структура".

«Я не могу создать то, чего не понимаю!»

После всех проделанных работ вы получите необходимую базу для старта разработки.

Что такое игра?

Игра – это программа. Любая программа нацелена на работу с данными. Работа с данными обычно сводится к нескольким этапам: хранение; получение; обработка; отображение; запись.

«Чтобы продать что-то ненужное, нужно купить что-то ненужное».

В нашем случае, чтобы работать с данными, нам нужно их сначала откуда-то получить. Данные для вашего приложения могут храниться в разных источниках: базы данных, файлы, облако, внешние сервисы (API).

Для офлайн-игр обычно это два варианта: базы данных в составе игры (SQLite) или локальные файлы (Resources). Обработка данных осуществляется вашим кодом и функциями движка. Отображение данных происходит посредством Node и Scene ( об этом позже ).

Вот и вырисовывается более-менее чёткое разделение на архитектурные слои. Подробнее обо всём позже, сейчас же важно понимание общих концепций.

Для обработки данных применяется игровой цикл. Упрощённо его можно представить как бесконечный цикл while(true).

Per aspera ad astra или RoadMap по вашей будущей игре. Godot 4 C# Часть 4 "Игровой цикл и структура".

В рамках одной итерации цикла обрабатывается один кадр. По факту: итерация = кадр. Движок постоянно проходит по этому циклу и проводит расчёты, в том числе выполняет ваш код.

Внутри цикла находятся методы (хуки жизненного цикла), которые позволяют вам «цепляться» к ним и вызывать ваш код на каждой итерации или в определённые моменты. Эти методы доступны вам из любой сущности, к которой привязан ваш скрипт.

Если представить стандартный проект игры, можно выделить функциональность, реализовав которую можно считать ваш проект полноценным:

  1. Стартовый экран и главное меню.
  2. Интерфейс управления графикой.
  3. Интерфейс управления звуком.
  4. Система сохранения
  5. Локализация (опционально)
  6. Экран основного геймплея
  7. Фоновая музыка
  8. Звуковые эффекты
  9. Экран окончания игры (опционально, можно показать результаты игры)

Итоги

Игровые данные хранятся в Resources. Данные из ресурсов можно получить ( система сохранения ) и обработать внутри игрового цикла, вызвав необходимый хук. Так как мы имеем определённый набор модулей, который необходимо реализовать, многие из этих модулей в дальнейшем можно будет переиспользовать для других проектов.

Спасибо за внимание!

2
Начать дискуссию