Конференция Astra DevConf 2024 состоялась 24 сентября 2024 года в Сколково, объединив профессиональных и начинающих фронтенд-, бэкенд- и фуллстек-разработчиков, DevOps-инженеров, тестировщиков, специалистов по кибербезопасности, по внедрению ПО и других заинтересованных лиц. Программа мероприятия состояла из пленарной сессии и следующих за ней тематических сессий по четырем направлениям: «Разработка», «Экспертиза», «Сервис» и «Кибербезопасность». Конференция прошла в гибридном формате: очно ее посетили около 450 человек, и свыше 1200 зрителей посмотрели онлайн-трансляцию.
Одним из самых ожидаемых и интригующих выступлений сессии «Экспертиза» стал доклад представителей «Группы Астра» о технологии запуска классических и современных игр на Astra Linux.
Руководитель направления взаимодействия с общеобразовательными организациями, руководитель сервиса «Доверенные репозитории» «Группы Астра» Денис Давыдов рассказал, что вопрос совместимости компьютерных игр с Astra Linux интересует не только учащихся, осваивающих эту ОС, но и учителей, системных администраторов и представителей Департамента образования. Люди, которые задумываются над тем, как запустить на платформе ту или иную игру, в результате начинают принимать более активное участие в развитии операционной системы.
«Игры всегда были своеобразным двигателем прогресса, способствуя активному продвижению технологий. Если говорить о классическом гейминге, то классические игры во многих своих аспектах с точки зрения технологий устарели, но они могут быть полезны иначе. Помимо того, что мы запускаем эти игры, мы пытаемся вовлекать людей в этот процесс и учить их делать то же самое. Запуск игр и все, что с этим связано, может нести еще и тьюторскую задачу», – рассказал Денис Давыдов.
Руководитель направления взаимодействия с общеобразовательными
организациями «Группы Астра» Денис Давыдов.
Кадр из трансляции Astra DevConf
По словам спикера, многие из тех, кто пришел в образовательное сообщество «Группы Астра» без каких-то серьезных знаний, сейчас уже активно помогают обеспечивать совместимость продуктов, причем их работа не нуждается в контроле и проверках.
Денис Давыдов перечислил несколько популярных в девяностые игр. Для многих людей актуальна игровая ностальгия – интерес к играм периода примерно с 90-х годов до 2005 года. По наблюдениям специалистов «Группы Астра», она подразделяется на три вида: ретрогейминг – ностальгическое увлечение старыми играми преимущественно с пиксельной графикой; классический гейминг, включающий устаревшие игры и консоли, давно снятые с продажи; олдскульный гейминг – создание новых игр в стилистике старых или перевыпуск старых игр.
«Группа Астра» работает сразу по четырем игровым направлениям. Первое – Open Source игры и игровые движки. Сложность здесь заключалась в том, что даже когда проекты имели исходный код в каком-то удобном виде типа бинарных файлов, пользователи часто сталкивались с тем, что готовый бинарный файл не запускался на Astra Linux, и необходимо было пересобирать игру из исходного файла в deb-пакеты на имеющемся окружении. Поэтому разработчики Astra Linux взяли этот процесс под контроль. Среди таких готовых Open Source игр можно назвать OpenArena, Battle for Wesnoth, Freecol, OpenRA.
Второе направление - игры, не являющиеся открытыми продуктами, но у которых под систему Linux есть исходный движок, например, Quake 3 или первый Diablo. Имея этот движок, можно играть в игру, загрузив на ПК с Astra Linux файлы игры, например, с компакт-диска.
Open Source игровые движки, реализованные в Astra Linux.
Кадр из трансляции Astra DevConf
Третье – DOS-гейминг. DOSBox, эмулятор для PC, в репозиториях Astra Linux отсутствовал. Разработчикам удалось собрать DOSBox версии 0.74-3 из исходного кода и упаковать его в deb-пакет. На данный момент в разработке находится лаунчер, который позволит управлять эмулятором с максимальным удобством.
Четвертое направление – Windows игры с применением технологии Wine, а также эмуляция игровых ретро-консолей (эмуляторы RetroArch, GENS, Phoenix, Flycast). На ОС Astra Linux можно запускать любимые всеми игры Dendy (Sega). Компиляторы пересобираются из исходного кода. Несмотря на появление новой Astra Linux 1.8, разработчики стараются сделать единый пакет, который будет работать и на Astra Linux 1.7.
Ретро-гейминг – достаточно популярное сегодня увлечение. Поэтому для тех, кто увлекается им, платформа Astra Linux отлично подойдет. Кроме того, учитывая, что игры прекрасно стимулируют образовательные процессы, на портале поддержки образовательных учреждений EasyAstra.ru, из которого и выросло игровое сообщество, можно пройти базовый курс «Сборка ПО из исходного кода». Денис Давыдов выразил надежду, что в ближайшее время появятся и другие сподвижники, которые, научившись собирать игры из исходного кода, научатся разрабатывать и другой софт.
Инженер-программист «Группы Астра» Ярослав Киселев остановился на предпосылках к созданию сообщества GFL – Games for Linux. Поиск способов запуска новых игр на Linux привел к необходимости использовать средство запуска приложений Wine, однако для его корректной работы необходимо было выставлять дополнительные настройки, что вызывало затруднения.
Отсутствие подробных советов по настройке приложения породило сообщество в социальной сети «ВКонтакте», где пользователи размещали пошаговые инструкции, делились необходимыми префиксами (каталогами с файлами настроек), а также выкладывали новости игрового рынка.
Но, поскольку настройка все равно отнимала много сил и времени, было решено написать специальный скрипт, позволяющий настраивать префиксы Wine автоматически. Скрипт использует технологии Wine, Winetricks, Mangohud, OpenGL, Vulkan, DXVK, VKD3D, NVAPI, Gstreamer, Synk и Fsync, Fidelity FX Super Resolution, Gamemode.
«Это решение облегчило запуск Windows-игр на Linux. В настоящий момент скрипт представляет собой решение, которое позволяет выбрать директорию для установки, создать префикс Wine, автоматически установить Wine и при помощи Winetricks настроить дополнительные компоненты. Он также генерирует файлы настроек для модульности. Генерирует вспомогательные скрипты, такие как настройка префикса Wine и запуск утилиты Winetricks, а также возможность завершить работу Wine-сервера», – поделился Ярослав Киселев.
Инженер-программист «Группы Астра» Ярослав Киселев.
Кадр из трансляции Astra DevConf
В 2022 году в ходе тестирования в сообществе столкнулись с рядом проблем: устаревшие библиотеки Glibc и устаревшая Mesa, откуда вытекали проблемы с совместимостью из-за отсутствия 32-битных библиотек, а также с безопасностью по причине известных уязвимостей. Решением стало использование Pressure Vessel – контейнера, использующегося для изолированного запуска приложений и игр, имеющих собственные зависимости, при этом приложение не имеет возможности напрямую обращаться к системным ресурсам. Также помог Runtime – контейнер, не зависящий от использования операционной системы, ограничивающий доступ приложению к системным ресурсам, при этом обладающий всеми необходимыми драйверами и библиотеками.
Игры, успешно запущенные на ОС Astra Linux.
Скрин с сайта трансляции Astra Dev Conf
Большинство игр, порядка нескольких тысяч, благодаря этому решению успешно запускаются на Linux. Но, к сожалению, некоторые многопользовательские проекты, имеющие античит-системы, такие, как Easy Anti-cheat, Mrac, Frost, BattlEye (например, в играх Lineаge 2, Warface), не могут работать через Wine.
Подытоживая выступления обоих спикеров, можно отметить, что для существенного количества компьютерных игр уже найдены удачные решения для запуска, а привлечение в игровое сообщество новых участников ускорит адаптацию и других приложений под отечественную ОС.