Продолжаем анализировать перечень софта, который имеется в дистрибутивах Linux и который можно использовать в определенных сценариях. Если вы еще не читали предыдущий материал по этой теме, то рекомендую это сделать.
Джентльменский набор дзен-автора на Linux
Сегодня речь пойдет про разработку игр, к которой я имею некое отношение, так как до прихода в системное администрирование, планировал всерьез заниматься геймдевом. Получается, что все описанное дальше я проверил на себе, а опытом хочу поделиться с подписчиками и читателями.
Небольшая предыстория
Разработка игр одно время меня сильно заинтересовала и я стал активно пытаться что-то делать. Первым серьезном проектом, увидевшем свет, стала игра для смартфона под названием Color Chips Remake. Идея, дизайн уровней, графика разрабатывались теми руками, которые сейчас пишут это заметку, музыку, по причине отсутствия чувства такта, брал с бесплатных хранилищ. Игра не провалилась, собрала определенные положительные оценки и комментарии, потому я принялся за проект для ПК.
Назывался он Gedel Escape и представлял из себя выживание в космическом сеттинге с элементами менеджера ресурсов. Страница в сервисе Steam доступна по ссылке, там же можно скачать демоверсию. В ранний доступ игра вышла для Windows, но при использовании PortProton, ее без проблем можно запустить на любом Linux-дистрибутиве. О других способах запуска игр я рассказывал в отдельной статье по ссылке ниже.
Гейминг на Linux: три простых способа запуска любой игры
Именно про опыт разработки Gedel Escape под Linux я и расскажу дальше. Перечислю софт, который использовал и свое впечатление от процесса использования.
Игровой движок
Я использовал во всех проектах Unity, который имеет нативную поддержку Linux-систем. С официального сайта разработчика скачиваете установочный файл и после запуска в системном трее появляется иконка Unity Hub, через который осуществляется управление версиями и проектами. Сразу хочу сказать, что лучше всего в Unity под Linux разрабатывать либо мобильные игры, либо игры, предназначенные для Linux-дистрибутивов. Разработка Windows-приложений поддерживается, но чтобы нормально ее осуществлять, необходимо будет проделать огромное количество телодвижений.
Кроме того, в Linux-среду можно установить другой популярный движок Unreal Engine (про него ничего сказать не могу, так как не использовал), среди Opensource-проектов лидером является Godot Engine, но серьезных и коммерчески успешных проектов у него нет.
Трехмерная графика и анимация
Тут несомненно первое место занимает редактор Blender. Он не просто является основным редактором в Linux-дистрибутивах, но и вытесняет гигантов вроде 3D Studio Max с Windows-платформы. Он бесплатный, имеет поддержку плагинов, развитое сообщество и огромное количество обучающих материалов. Если вы желаете войти в мир трехмерной графики и моделирования, то Blender будет вам самым надежным инструментом.
Работа с двухмерной графикой и изображениями
Лидер не меняется и это, естественно, Krita. В ней я редактировал графику для постов в социальных сетях, обложки для страницы игры в Steam. Попробовал было GIMP, но его примитивный и запутанный интерфейс отпугнул. Для векторной графики, в редактировании которой не возникало частой необходимости, использовал редактор Inkscape.
Музыка и аудио
Для моей игры звуки окружения, фоновую музыку и пр. делал отдельный человек, причем бесплатно, за что ему огромное спасибо. Временные аудио и музыкальные записи делал в редакторе Audacity. В основном это была обработка записи голоса и редактирование скачанных из открытых хранилищ звуков.
Программирование
Unity Engine использует в качестве базы язык C# («шарпы»), Unreal Engine поддерживает разработку на C++ («плюсы»), Godot Engine использует собственный скриптовый язык GDScript, похожий в чем-то на Python. Со всеми перечисленными языками прекрасно работает Visual Studio Code, разработанная Microsoft. Устанавливается нужный плагин с поддержкой языка и уже без проблем можно создавать скрипты, описывать игровую логику и механику.
Итоговый список
Чтобы разрабатывать игры под Linux-дистрибутивами вам понадобится следующий перечень софта
- Unity/Unreal Engine/Godot (каждый выберет сам)
- Blender
- Krita/Inkscape (растр/вектор)
- Audacity
- Visual Studio Code
И еще раз хочу отметить, что лучше на дистрибутивах будет чувствовать себя мобильный разработчик или разработчик проекта для платформы Linux.
Что же с моей игрой?
После практически года разработки решил, что игра выйдет в ранний доступ и пока идут продажи, буду делать улучшения и завершать разработку. Выход в ранний доступ состоялся 22 февраля 2022 года (мне тогда эта дата казалась знаковой 22.02.2022). Как понимаете, через 2 дня случились события, которые в результате привели к тому, что Steam заблокировал для покупателей из России возможность покупки игр и мой проект остался выброшенным на свалку инди-игр.
На данный момент игра заработала 36 долларов (чистая прибыль), но вывести средства я не могу, так как вывод осуществляется от 100 долларов и еще нужно найти тот банк, реквизиты которого Steam примет для перевода.
Разработка игр в одиночку занятие сложно и отнимающее ресурсы. Лучше быть в команде, чтобы конкретно распределить обязанности и фронт предстоящих работ. Иначе может выйти так, что потратите время, деньги и силы, но до релиза не дойдете, просто-напросто выгорев. Это сугубо мое мнение, основанное на том, что пережил сам и что слышал от других разработчиков игр.
Надеюсь, что пост окажется кому-то полезным. Также жду обратной связи в комментариях, лайки и подписки на канал!