Астероиды

Описание

В данном задании предлагается реализовать клон популярной игры «Asteroids».

Цель оригинальной игры состоит в том, чтобы получить как можно больше очков, расстреливая астероиды и летающие тарелки, и избегая при этом столкновения с обломками. Игрок управляет космическим кораблём в форме стрелки, которая может крутиться влево и вправо, а также двигаться и стрелять, но только вперёд. При движении импульс не сохраняется: если не включать двигатель, то корабль постепенно остановится. Игрок также может использовать гиперпространственный двигатель — это приводит к тому, что корабль исчезает и затем появляется в случайном месте экрана, с риском уничтожения из-за появления на месте астероида.

../_images/asteroids.png

Оригинальная игра фирмы Atari.

../_images/asteroid-storm.png

Один из клонов.

Минимальные требования (базовая часть)

Базовая реализация проекта, в которой должны разбираться все участники, должна:

  • предоставлять возможность играть игру «Астероиды» (т.е. управлять кораблём, стрелять и уничтожать астероиды);
  • определять момент поражения.

Расширенный интерфейс (дополнительная часть)

Расширенный интерфейс должен добавлять хотя бы 2 различные возможности к базовому интерфейсу. Ниже перечислены возможные варианты расширения интерфейса, однако этим списком они не ограничены:

  • меню:
    • просмотр таблицы рекордов;
    • интерфейс сохранения/загрузки игр;
    • выбор режимов игры:
      • однопользовательская/многопользовательская;
      • уровни сложности;
  • расширения игры:
    • бонусы и специальные объекты, которые может подбирать корабль;
    • другие космические объекты (звёзды, чёрные дыры, НЛО и пр.);
    • щиты и маскировка;
    • другие типы орудий;
  • трехмерная реализация игры;
  • и т.д.

Искусственный интеллект (дополнительная часть)

Алгоритм поведения, никак не оценивающий ситуацию (например, случайное движение), не считается за реализацию искусственного интеллекта.

Искусственный интеллект в игре «Астероиды» управляет полётом НЛО или противника-компьютера (при многопользовательской игре). Реализация искусственного интеллекта должна предоставлять настройки сложности, чтобы сложность поведения НЛО увеличивалась с очередным появлением или повышением уровня.

Клиент-серверная архитектура (дополнительная часть)

Помимо возможности просто играть в игру «Астероиды» по сети (см. Минимальные требования), клиент-серверная архитектура должна предоставлять хотя бы 2 дополнительные возможности:

  • поддержка нескольких игровых сессий одновременно;
  • запуск ИИ на серверной стороне;
  • регистрация, аутентификация и авторизация (вход в систему и права на доступ);
  • доступ к таблице рекордов;
  • сохранение/загрузка игр;
  • и т.д.

Работа с базой данных (дополнительная часть)

Модуль для работы с базой данных должен предоставлять хотя бы 2 различных возможности:

  • таблица рекордов;
  • сохранения игровых сессий;
  • база пользователей;
  • и т.д.