понедельник, 19 августа 2024 г.

README

Юрий «yurembo» Язев

 

Намедни я прочитал книгу «README. Суровые реалии разработчиков» издательского дома «Питер». В ней идет речь о дополнительных навыках необходимых каждому программисту. Этим навыкам не учат в учебных заведениях и не раскрывают на курсах. В книге говорится о правильной работе с кодом, тестировании, ревью, доставке ПО и прочем.

 

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

 

Читаю я это и диву даюсь. Оказывается, когда человека нанимают на работу программистом или другим айтишником, к нему должны поставить человека, который берет шествие над новым сотрудником, выдает все логины и пароли от внутренних сервисов компании. Оказывается новому сотруднику не надо искать эти сведения, как хакеру в мусорных бачках и поломанных дискетах. Возможно я немного преувеличиваю, но в начале работы в IT-компании на территории РФ тебя никто не вводит в курс дела, приходится собирать всю картину буквально по крупицам.

 

Можно задать вопросы сотрудникам? Обычно всем некогда или, внезапно, никто не в курсе происходящего.

 

Ладно, предположим, ты вкатился в офис, получил все учетные данные и готов приступать к работе. Допустим, ты даже получил доступ к репозиторию с кодом проекта. А дальше сам! Никакой документации. Считай, повезло, если есть дорожная карта разрабатываемой системы, в подавляющем большинстве случаев о направлении развития проекта знает только проектировщик.

 

Описанное выше касается более или менее крупных компаний. Как обстоят дела в малых студиях? Все еще хуже! Даже между сидящими рядом в одной комнате сотрудниками чувствуется конкуренция. В масштабе такой команды конкуренция – дурное дело, разрушающее команду и проект. Если к команде присоединяется удаленный сотрудник, на него падает весь груз описанный в прошлых разделах, умноженный на два, потому что спросить не у кого, если тебя не хочет поставить в курс дела единственный имеющийся контакт.

понедельник, 10 июня 2024 г.

Подсказка по Blender

Юрий "yurembo" Язев

Поскольку я инди-разработчик видеоигр, многие вещи приходится делать самому, в том числе, программировать, писать скрипты, моделить, рисовать текстуры и прочее. Я использую не самую последнюю версию 3D-редактора Blender. Предпочитаю графикой заниматься на маке с чипом M1. При работе с Blender обнаружил следующую проблему. После отключения экрана, например, произошедшее после окончания временного промежутка бездействия, и включения его вновь, в рабочей области редактора начинают появляться артефакты: разноцветные блики. 

Чтобы избавиться от описанных выше дефектов, надо переключить средство вывода с Metal на OpenGL. Для этого, надо открыть окно «Preferences» – Edit –> Preferences, отобразить содержимое секции «System», и в ниспадающем списке «GPU Backend» выбрать «OpenGL».

Blender: окно Preferences

Определенно в более новых версиях Blender эта проблема будет исправлена, так как OpenGL в macOS отмечен, как «не рекомендуемый» (deprecated).

четверг, 6 июня 2024 г.

Senua’s Saga: Hellblade II

Юрий "yurembo" Язев
независимый игродел

Неспешно прошел Hellblade II. Впечатления остались самые положительные, мое предвосхищение вначале нисколько не было снижено. Hellblade II – прекрасна. За что многие ругают игру, я нахожу преимуществами. По порядку. 

1) Темп игры. Мне нравятся такие неспешные медитативные игры, где есть возможность обойти все и рассмотреть. Благо качество графики запредельное, все очень красиво, каждый кадр – художественный шедевр. Правда, далеко с намеченной тропы не уйдешь – уровни коридорные. 

2) Боевая система почти не претерпела изменений по сравнению с первой частью. Она и раньше была почти идеальна, а здесь стала еще более кинематографична.

3) Разнообразие локаций. Разнообразие для Исландии довольно широкое, даже по сравнению с первой частью.

4) Головоломки, в целом, остались прежними. Ну, не скажи. Из первой части перекачивали задачки со сравнением предметов. Еще бы, в первой части они были относительно новой механикой. Также были добавлены новые, например, изменение восприятия мира после сосредоточения на водяном шаре.

5) Понизилась сложность. И это хорошо. Я играю ради удовольствия, а не соревнования.

6) Игра относительно коротка. И это тоже хорошо. Некоторые современные игры настолько длинные, что пропадает желание в них играть еще до начала прохождения. Или в скором времени их прохождение наскучивает.

7) Никто не ругает качество графики и звуковой дизайн. Так как они на высоте.

8) Понравилось разнообразие противников.

9) Еще глубже рассматривается психоз героини, это не имеет аналогов и это интересно.

По-моему, кандидат на игру года. 



















суббота, 15 июля 2023 г.

Сборка UnrealEng для мака с процессором Apple Silicon


Юрий «yurembo» Язев

Unreal Engine пятой версии и выше компилируется в macOS на процессоре Apple Silicon прямо «из коробки», потому что изначально имеет их поддержку. В то же время версия 4.х движка специально под них не затачивалась и, следовательно, не обязана собираться в таком случае без танцев с бубном.

На новом проекте мне надо было скомпилировать UE 4.27.2 на маке с процессором M1, являющимся участником линейки Apple Silicon. Я скачал исходники движка из нужной ветки GitHub’а — UE 4.27-plus. Следуя описанию установки из официальной документации, я скачал дополнительный бинарный контент путем выполнения скрипта Setup.command. После этого с помощью скрипта GenerateProjectFiles.command создал файлы решения для компиляции компонентов движка.

Затем посредством созданного файла решения UE4.xcworkspace я запустил Xcode и загрузил в него компоненты движка. Следуя все той же документации, в первую очередь компилирую проект ShaderCompileWorker. Через небольшой промежуток времени сталкиваюсь с ошибками линковки. Из чего следует, что товарищ ShaderCompileWorker не построился, а без него движок работать не будет.

рис. 1. Ошибки построения проекта ShaderCompileWorker в Xcode

На самом деле для компиляции ShaderCompileWorker есть специальный скрипт. В терминале переходим в каталог /UnrealEngine-4.27-plus/Engine/Build/BatchFiles/Mac и выполняем скрипт build.sh сначала с параметром -clean, чтобы очистить папку от результатов прошлой компиляции. Дополнительно между именем скрипта и параметром надо добавить целевую платформу компиляции, в нашем случае: Mac Development. В итоге, с учетом всех нюансов, получаем следующую команду:

./Build.sh ShaderCompileWorker Mac Development -clean
рис. 2. Терминал: очистка каталога

После этого для построения компонента ShaderCompileWorker надо выполнить эту же команду только без параметра -clean. В результате, построение завершается успешно и в выводе отсутствуют записи об ошибках (показан только хвост вывода):

рис. 3. Терминал: результат компиляции

Теперь можно снова открыть Xcode, выбрать проект UE4 и построить движок. У меня компиляция движка длилась 5,5 часов. UnrealEng на любой платформе долго строится — слишком большой проект. После этого движок будет готов к работе. 

среда, 28 июня 2023 г.

Bookwalker


Юрий «yurembo» Язев


Как песок сквозь пальцы уходят последние минуты моей полугодовой подписки Xbox Game Pass. Я листаю страницы подписочного сервиса в поисках игры, на которую мне еще хватит времени. Чтобы только посмотреть, поскольку для глубокого знакомства его точно не хватит.

Мой выбор падает на только что вышедшую игру от инди-издателя tinyBuild — «The Bookwalker: Thief of Tales». Быстро скачиваю ее на консоль, размер игры не превышает четырех гигабайт. Разработкой игры занимается московская инди-студия Do My Best.
 
По сюжету мы играем за писателя, способного путешествовать по литературным произведениям, извлекать из них фантастические сущности в реальность. Также наш писатель может взять из реального мира вещь, и использовать ее в процессе повествования. Этот процесс по извлечению фантастических вещей из книг поставлен на поток, и у писателя есть заказчики. Задумка классная! Свежая идея. Давненько ничего такого не придумывалось, не изобреталось.

После запуска игра предоставляет нам для управления героя с видом от первого лица:


Но это не основной игровой режим. Это как бы прокси-мир. В нем мы будем получать задания, брать предметы для использования в квестах. Может быть в будущем откроются дополнительные возможности. Я выполнил только одно задание.

После того, как наш персонаж получает задание — чемодан с книгой и запиской, где указано, что надо добыть из данного литературного произведения, писатель ныряет в книгу. И начинается основная игра с изометрическим видом:


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

Было интересно ходить из комнаты в комнату, из помещения в помещение, собирать предметы… но вдруг появился враг, с которым предстояло вести бой. И оказалось, что бои пошаговые! Ненавижу пошаговые бои! Только реал-тайм! Лучше бы разработчики вообще не реализовали боевую систему, просто бродить по этому миру и то приятнее.

Между тем, я с интересом прошел задание книги — выполнил первый заказ: раздобыл оживляющий раствор. Но потом у меня закончился Game Pass.

суббота, 17 июня 2023 г.

Xbox Games Showcase 2023

Размышления о космической экспансии


Юрий «yurembo» Язев


В рамках Summer Game Fest 2023 было много игровых презентаций, где показали огромное количество самых разных видеоигр, ждущих своего выхода в ближайшие год-два. Как кульминацией среди всего этого стала презентация от Microsoft — Xbox Games Showcase. На мой взгляд, она получилась на голову выше всех предшественников, в том числе презентации от PlayStation. Причина этого в том, что игры, показанные на презентации Xbox, превосходят всё, что было показано ранее. Всего было показано 22 игры. Благодаря Xbox Game Pass, я с удовольствием поиграю в каждую из них. Однако из всего этого списка с большим энтузиазмом я ожидаю две игры: Starfield и Hellblade II. Первую, потому что она про космос, вторую, потому что первая её часть мне очень понравилась.

Из аппаратных средств была представлена обновленная Xbox Series S. В ней новые только два компонента — это цвет — на этот раз черный и увеличенный SSD — 1 TB. В остальном изменения не были объявлены, значит, их нет. С одной стороны это радует. Как владелец первой ревизии, теперь я могу быть уверенным, что в ближайшее время игроделы будут оптимизировать игры под младшую версию консоли, так как с легкой подачи Microsoft, она получила официальное продолжение своей жизни. С другой стороны это означает, что в графическом плане игры не будут совершенствоваться, тем самым в развитии они будут топтаться на месте.


Я обожаю фантастику про будущее, а, если это фантастика, в том числе, про космос, мой интерес возрастает двукратно. Любопытно, насколько разработчики углубились в современные исследования, чтобы правильно отобразить картину космоса и предложить сбалансированную фантастику, поскольку многие события, происходящие в космической фантастике, не могут иметь место в реальности. Тем не менее, я не требую предельной точности в тех случаях, где реальная физика влечет ухудшение опыта от игры. Например, я не настаиваю на том, чтобы убрать звуки от взрывов, которые в космосе отсутствуют, или огненные эффекты от тех же взрывов, которых тоже нет в космосе, в виду отсутствия кислорода. Без этих составляющих игры однозначно не станут лучше!

Но заезженные варианты стремительного перемещения в пространстве давно пора изменить. Скорость света – не такая уж быстрая в галактических масштабах. Но двигаясь на ее пределе, не трудно ненароком налететь на какой-нибудь космический объект. Этот эффект сполна рассматривается в книгах «Дюна» Френка Герберта и его последователях: Брайана Герберта (старший сын Френка) и Кевина Андерсена (соавтор). Или мгновенная остановка звездолета после светоскоростного ускорения. Ведь в космосе нет атмосферы, а значит, чтобы остановить корабль нужно приложить ровно такую же мощность, как для его ускорения. Сюда же можно отнести необоснованные варп-прыжки. Как это происходит, где находится звездолет во время варп-движения? Этот момент надо пояснить и сделать из него игровую механику.


Интересно будет посмотреть, как эти и многие другие события обыграны в Starfield

Большой интерес представляют флора и фауна других планет. По трейлеру выглядит разнообразно, но прорывных идей я не заметил. Все-таки в игре более тысячи планет, надеюсь, на них есть что-нибудь революционно фантастическое, не вошедшее в ролик. В презентации игры было упомянуто, что на разных планетах различается атмосферное давление. Ура! Как долго я этого ждал! Это действительно должно привнести в игру новые возможности, образы и механики. Но в презентации сделали акцент только на возможности высоких прыжков при низком давлении. Хотелось бы увидеть не только углеродную форму жизни, но и другие формы, подробно описанные в фантастической литературе.

Но перейдем к другой игре из моего списка ожидания — Hellblade II. Самая примечательная вещь первой части, на мой взгляд, — это боевка, действия персонажей во время боя. Бои в игре чаще всего сводятся к поединку между управляемым игроком персонажем и противником ИИ. Сами персонажи в игре очень колоритны, выглядят натурально, несмотря на свою потустороннюю природу. В моменты нанесения ударов во время схватки съемка замедляется, что позволяет ощутить их силу, увидеть проворность героев. 

Скриншот из первой части

Скриншот из первой части

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

Захват движений для первой части


Захват движений для первой части

Значительную роль сыграла Мелина Юргенс – видеомонтажер компании-разработчика Ninja Theory и по совместительству актер захвата движения для главного персонажа. Она успешно вжилась в роль средневековой воительницы, страдающей шизофренией.

Захват движений для второй части




пятница, 16 июня 2023 г.

Tunic

Юрий "yurembo" Язев

Странное дело. Я не в восторге от игр с изометрической графикой и не люблю метроидвании. Между тем меня внезапно затянула изометрическая метроидвания Tunic. Она посвящена похождению милого и отважного лисенка, который не просто лупит встречающихся на пути врагов, раз за разом возвращаясь в одни и те же локации (что подразумевает метроидвания), он вместе с тем разгадывает различные загадки, собирает информацию о мире, прокачивает свои умения и навыки, двигаясь таким образом вперед к разгадке главного вопроса о вселенной.


Игра затянула меня настолько, что незаметно для самого себя, я прошел её до конца, затратив более 18-ти часов. В итоге я не нашел только 8 страниц путеводителя по игровой вселенной. Да-да, игроку не дается полный путеводитель в начале игры, его надо собирать по мере прохождения, тем самым вникая в сюжет постепенно. Я не скажу, что оббежал все локации и открыл все секреты, потому что игра в прямом смысле кишит ими.


Поиграв в Tunic несколько часов после установки, я на некоторое время отложил игру, совершенно не вдупляя, что делать дальше и куда идти, так как игра целенаправленно не указывала мне на это, не вела меня за ручку. 


Снова взяв в руки геймпад и запустив Tunic, я стал играть по другому, заглядывая за каждый угол и тщательно поверяя каждую игровую зону. Такой стиль игры дал свои плоды, мой персонаж начал проходить все дальше и дальше, открывая новые локации и разгадывая новые тайны.


Сейчас, после прохождения Tunic, самое время сыграть в Death’s Door — другую изометрическую метроидванию похожую на Tunic. Кстати, Death’s Door вышла раньше, чем Tunic. Я даже купил первую в Steam до введения санкций, но играть в нее я буду на Xbox, потому что она есть в Game Pass, равно как и Tunic.