IT Academy
Справочник курса

Разработка игр

Все объяснения, задачи и лабораторная в одном месте.

Можно сохранить страницу в PDF через печать браузера. Для печати разборы ответов раскрываются автоматически.

1. Game loop, input и time

Объяснение

Game loop получает ввод, обновляет мир и рисует кадр. Фиксированный шаг физики отделяет симуляцию от частоты экрана. Variable delta требует осторожности для устойчивости и воспроизводимости.

Задача для самостоятельного решения

Почему движение «+1 за кадр» зависит от компьютера?

Показать разбор ответа

При 120 FPS объект движется вдвое быстрее, чем при 60. Используйте скорость×время либо фиксированный simulation step.

2. Entities/components и gameplay architecture

Объяснение

Entity представляет объект, components — его свойства, systems — обработку. Композиция уменьшает жёсткую иерархию наследования. Архитектура должна соответствовать масштабу игры.

Задача для самостоятельного решения

Как добавить здоровье и врагам, и разрушаемым ящикам?

Показать разбор ответа

Общий компонент здоровья с поведением повреждения; не обязательно заставлять ящик наследовать класс врага.

3. Physics, collision и animation

Объяснение

Collision detection определяет пересечение, response — реакцию. Быстрый объект может пройти сквозь тонкую стену между кадрами. Animation и физика должны согласовывать источник движения.

Задача для самостоятельного решения

Почему пуля телепортируется за стену?

Показать разбор ответа

Дискретная проверка не видит путь между положениями. Используйте continuous collision или sweep и подходящий шаг.

4. AI behavior и navigation

Объяснение

FSM описывает состояния и переходы, behavior tree — композицию поведения. Navigation mesh задаёт проходимое пространство. Решение AI должно учитывать стоимость обновления для множества агентов.

Задача для самостоятельного решения

Какие состояния нужны простому охраннику?

Показать разбор ответа

Patrol, Chase, Search с условиями обнаружения и потери цели. Явные переходы предотвращают одновременное выполнение противоречащих действий.

5. Assets, audio, UI и save system

Объяснение

Asset pipeline преобразует исходники в runtime-ресурсы. Save format требует версии и миграций. UI должен работать при разных разрешениях и способах ввода.

Задача для самостоятельного решения

Почему нельзя сохранять сырые указатели объектов?

Показать разбор ответа

После перезапуска адреса изменятся. Сохраняйте стабильные id и значения, восстанавливая связи по идентификаторам.

6. Profiling, playtesting и release

Объяснение

Playtest проверяет понятность и удовольствие, profiler — стоимость исполнения. Release включает сохранения, настройки и восстановление после сбоя. Telemetry требует понятной цели и минимизации данных.

Задача для самостоятельного решения

Что включить в проверку вертикального среза?

Показать разбор ответа

Полный короткий игровой цикл, победу/поражение, перезапуск, сохранение и работу на целевом устройстве. Набор красивых сцен без цикла не подтверждает играбельность.

Практика

Лабораторная работа

Подготовка

Python 3, модель движения без игрового движка.

Учебный пример

speed=3.0
def simulate(fps):
    position=0.0
    for _ in range(fps): position += speed/fps
    return position
print(round(simulate(30),3),round(simulate(120),3))

Как работает пример и что ожидать

Оба результата 3: скорость умножается на прошедшее время. Если прибавлять фиксированное значение на кадр, более быстрый экран изменит игровую механику. Для физики дальше нужен фиксированный simulation step.

Итоговая работа

Сделайте вертикальный срез с одним игровым циклом, FSM врага, сохранением и UI. Проверьте разные FPS, длительный кадр и восстановление save. Проведите playtest и отделите проблемы понятности от технической производительности.

Проверка результата

1. Опишите исходные данные и условия запуска, чтобы другой человек мог повторить работу.
2. Приложите результат обычного сценария и сравните его с ожидаемым.
3. Проверьте неверный вход, граничный случай и отказ зависимости, если она есть.
4. Объясните выбранное решение и известное ограничение.
5. Сохраните исправления после самопроверки вместе с примером, который раньше не работал.

Как оценить работу

По каждому пункту поставьте 0 (не выполнено), 1 (выполнено с пробелами) или 2 (результат воспроизводим и объяснён). Если обязательный сценарий не работает, вернитесь к нему независимо от общей суммы. Это рубрика самопроверки: сайт не исполняет присланный код и не выдаёт автоматическую оценку проекта.