Домой Новости Софт и сервисы Секретные игры в Excel: как запустить проект Space Defenders

Секретные игры в Excel: как запустить проект Space Defenders

Два десятилетия назад Microsoft перестала добавлять «пасхалки» в Excel, но энтузиасты продолжают создавать игры на базе VBA. Разбираемся, как запустить проект Space Defenders.

3
0

В течение многих лет Microsoft тайно встраивала полноценные видеоигры в версии Excel. Пользователи могли обнаружить 3D-лабиринт «Hall of Tortured Souls» в Excel 95, авиасимулятор в Excel 97 или гоночную игру Dev Hunter в Excel 2000. Однако традиция прервалась в 2002 году, когда Билл Гейтс объявил безопасность и надежность продуктов компании главными приоритетами. С тех пор подобные «пасхалки» исчезли, но интерес сообщества к превращению табличного процессора в игровую платформу сохранился.

игровой процесс в проекте Space Defenders внутри Microsoft Excel
В старых версиях Excel, таких как Excel 97, Microsoft прятала полноценные игры вроде авиасимулятора

Возвращение классики в формате VBA

Сегодня сторонние разработчики используют возможности VBA (Visual Basic for Applications), чтобы создавать игры, работающие непосредственно внутри таблиц. Ярким примером стал проект Space Defenders, созданный пользователем Evanml2030 и доступный на GitHub. Эта игра в жанре Space Invaders реализована через макросы и позволяет превратить рабочую книгу Excel в игровое пространство.

Игровой процесс привычен для жанра: вы управляете кораблем, перемещаясь влево и вправо, и стреляете по врагам с помощью клавиши пробела. Игра проходит непосредственно в окне Excel. При столкновении с противником появляется системное уведомление «Uh oh, collision detected», после чего можно перезапустить уровень через кнопку Launch. Несмотря на возможные мелкие графические баги, проект работает как полноценная аркада.

Техническая реализация и управление макросами

Интерес представляет не только сам факт игры, но и способ ее реализации. VBA управляет состоянием игры, движением врагов, стрельбой и коллизиями. Чтобы приложение не зависало при постоянных обновлениях экрана, автор использует команду DoEvents, позволяющую Excel параллельно обрабатывать другие события. Для высокоточного отслеживания времени задействованы функции Windows API QueryPerformanceCounter и QueryPerformanceFrequency из kernel32.dll, а ввод данных с клавиатуры считывается через GetAsyncKeyState из user32.dll.

Графика реализована необычно: вместо стандартных систем рендеринга игра динамически создает элементы управления Microsoft Forms Image.1 ActiveX, которые выступают в роли игровых спрайтов. По сути, разработчик создал миниатюрную аркадную структуру внутри офисного приложения.

игры в Excel — иллюстрация 2 к материалу

Инструкция по установке и вопросы безопасности

Поскольку файлы Excel с поддержкой макросов могут быть потенциально опасны, перед запуском следует соблюдать меры предосторожности. Рекомендуется открывать такие файлы в безопасном режиме (удерживая Ctrl при запуске Excel) или проверять код макросов через редактор VBA (сочетание Alt+F11).

игры в Excel — иллюстрация 3 к материалу

Для корректной работы игры необходимо выполнить следующие действия:

  • Скачать файл в формате XLSM с GitHub-страницы проекта.
  • В «Проводнике» Windows нажать правой кнопкой мыши на файл, выбрать «Свойства» и на вкладке «Общие» в разделе «Безопасность» поставить галочку «Разблокировать» (Unblock).
  • Настроить ActiveX в Excel: перейти в «Файл» > «Параметры» > «Центр управления безопасностью» > «Параметры центра управления безопасностью» > «Параметры ActiveX» и выбрать нужные настройки.
  • Открыть файл с игрой и подтвердить выполнение макросов и ActiveX.

После завершения игры рекомендуется вернуть исходные настройки ActiveX, так как они применяются ко всем файлам в приложении. Стоит учитывать, что Microsoft 365 и Office 2024 по умолчанию отключают ActiveX, что может привести к появлению дополнительных предупреждений безопасности.

игры в Excel — иллюстрация 4 к материалу
Игровой экран Space Defenders с кораблем и планетой

Анализ кода проекта Space Defenders показал, что он не запускает внешние программы, не модифицирует реестр Windows и не выполняет сетевые запросы, используя API исключительно для обработки игрового процесса. Это подтверждает, что при грамотном подходе табличный редактор может быть инструментом для творчества — будь то создание пиксель-арта, анимации, настольных игр или программирование полноценных игровых механик.

игры в Excel — иллюстрация 5 к материалу
Корабль выпускает снаряд по вражескому НЛО

Исторический контекст и другие примеры

Интересно отметить, что Microsoft не была единственной компанией, превращавшей таблицу в игровое поле. В начале 2000-х годов, в эпоху расцвета офисных пакетов, в OpenOffice Calc также присутствовала скрытая «пасхалка»: пользователи могли запустить клон классической игры Space Invaders прямо внутри листа. Сегодня, спустя два десятилетия, благодаря энтузиастам и возможностям VBA, мы наблюдаем возрождение этой традиции в Excel, что позволяет взглянуть на привычный инструмент под совершенно иным углом.

Нюансы игрового процесса

Хотя проект Space Defenders является фанатской разработкой, он поражает своей верностью канонам аркадных игр. Игрок берет на себя управление кораблем, который перемещается по горизонтали, отражая атаки волн врагов. Цель проста и классична — очистить игровое поле от противников до того, как они достигнут нижней границы экрана. Управление интуитивно понятно: клавиши «Стрелка влево» и «Стрелка вправо» отвечают за маневрирование, а клавиша «Пробел» — за стрельбу. Рабочая область Excel в данном случае эффективно трансформируется в экран игрового автомата, где ячейки и графические объекты превращаются в активную зону действий.

игры в Excel — иллюстрация 6 к материалу
Сражение с двумя противниками в Excel

Во время тестирования игры был замечен один технический нюанс: в редких случаях случается сбой, при котором «падающий объект» может внезапно появиться вплотную к ракете игрока, что приводит к мгновенному завершению сессии. Тем не менее, во всех остальных аспектах механика работает стабильно, создавая ощущение игры на настоящем аркадном аппарате.

игры в Excel — иллюстрация 7 к материалу
Системное уведомление о столкновении в игре

Почему важна осмотрительность при работе с макросами

Важно понимать, что проверка кода — это не просто формальность. Загружаемые из сети файлы с поддержкой макросов (XLSM) потенциально могут скрывать вредоносное содержимое. Анализ проекта Space Defenders, проведенный автором, подтвердил отсутствие скрытых угроз: в книге не были найдены команды для запуска стороннего ПО, сетевых запросов, удаления файлов или внесения правок в реестр Windows. Также отсутствуют автоматические процедуры, срабатывающие при открытии файла (например, Workbook_Open() или Auto_Open()), что является хорошим признаком безопасности. Однако отсутствие угроз в данном конкретном файле не означает, что следует доверять всем макросам из интернета без разбора.

Excel как пространство для творчества

Суть идеи заключается в том, что потенциал Excel выходит далеко за рамки расчетов и создания отчетов. Табличный процессор может стать своеобразной «песочницей» для творчества, даже если вы не являетесь экспертом в программировании на языке VBA. Энтузиасты используют простую сетку Excel для самых неожиданных целей: от создания детального пиксель-арта и проектирования планировки комнат до разработки настольных игр, подготовки схем для вязания крючком и даже создания стоп-моушн анимации. Главное, что стоит усвоить пользователям — это необходимость перестать воспринимать Excel исключительно как приложение для хранения цифр и ведения бюджета.

Источник: https://www.howtogeek.com