Интервью с Avreliy.dev (Lion's Shade)

2017/12/19

Avreliy.dev из компании Lion’s Shade.

Как называется ваша должность в компании?

Разве в инди есть должности? =)

Какими из игр, в создании которых вы участвовали, вы особо гордитесь?

Думаю, такие еще в будущем.

Участвовали ли Вы в проектах «на энтузиазме» или сразу начали заниматься разработкой игр профессионально?

За столько лет уже не припомню. Было что нескольким людям помогал по части графики.

Расскажите немного о вашем первом проекте. Что это было, насколько успешным был проект?

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

Что бы Вы порекомендовали тем, кто пока только хотел бы создавать игры? Лучше собирать команду, присоединяться к open source проекту, делать все самостоятельно, сразу пытаться устроиться на работу?

Мой жизненный опыт не позволяет давать советы такого плана. Но по человеческому рассуждению - нужно копить практику любым способом…  Знание всей теории не делает человека профессионалом =), но большой практический опыт позволяет писать книги о теории.

От каких ошибок вы можете предостеречь тех, кто ещё только в самом начале пути?

Геймдев битком набит, можно смотреть в более полезные передовые области. Сейчас набирает оборот 3-Д печать и зеленая энергетика, и пока ИИ не отобрал у людей работу, надо быть весьма гибким.

Что полезнее, пытаться создать свой игровой движок или освоить какой-то из существующих?

Свой движок после 5 лет полировки и разработки я за пару минут выбросил в урну, когда перешел на Unity… вот уже минимум 6 лет на нем работаю и весьма доволен.

Лучше очень хорошо знать только один движок/инструмент/язык, или просто хорошо но несколько разных?

В те пару минут, когда был переход со своего движка (c++) на Unity (c#), о языках и не думалось, за пару дней освоился синтаксис, за первый год утряслись нюансы работы с языком. Не могу сказать, что я в совершенстве владею тонкостями и возможностями c#, но тому что мне нужно было, не составило труда научится… Думаю, важнее всего умение быстро адаптироваться, а это умение блокируется у людей страхом… Просто оглядываясь назад на изменчивость технологий и платформ, вижу, что бояться было нечего.

Какой язык программирования Вы бы посоветовали изучить тем, кто хочет делать игры?

Если бы я знал языки и мог их сравнить, то может и посоветовал бы какой лучше, но я знаю тот, с каким работаю. А старые знания, например тот же Pascal в Delphi, когда пришлось вернутся на недельку в ту среду - оказалось, что забыл всё. Пришлось пару часов почитать, повспоминать, что да как там надо делать.

Расскажите о Вашем отношении к ООП, функциональному и многим активно продвигаемым парадигмам программирования, реактивному, аспектно ориентированному, агентно ориентированному программированию.

Только что узнал о новых парадигмах =) Я даже не могу сказать, какой “парадигмой” пользуюсь сам, ведь надо в этом разбираться, читать… Для меня это будет только тратой времени. Пока есть движок и язык, с каким можно работать, и он не устарел - будем работать с ним, придет новое время, с чем-то более совершенным - адаптируемся и к тому…

Дизайн документ действительно полезен или это лишняя трата сил?

Он нужен в командной работе, но даже его наличие не ставит всё по полочкам, и приходится менять многое на лету. Когда работаешь один, он и вовсе не нужен. Есть картинка в голове - ну и отлично… для меня более важно составить план разработки и по нему двигаться к “картинке в голове”, а когда уже есть первые результаты - можно отталкиваться и от “картинки в голове”, и от “картинки на экране”. Думаю, так можно создать более крутой проект, нежели просто высосать из пальца диздок и создать уныние ровно по документу, без творческого подхода… Ведь многие вещи про реализации надо обкатать, почувствовать, поправить, переделать. В диздоке не пишут же “сделать что-то крутое, попробовать, как оно, и посмотреть, как можно переделать, или вообще отбросить это…” Получается очень размытый документ.

Что самое тяжелое для Вас в Вашей работе?

Отдых. Когда работа в разгаре, отрываться не хочется… Но без отдыха можно и загнутся.

Расскажите о самом смешном или неуловимом баге, с которым Вы сталкивались.

Думаю есть 3 случая… Первый баг - работал с шейдерами 8 лет назад… Что-то такое прописал в коде, что при сборке получил что-то вроде утечки в видеопамяти, из-за чего на экране с центра координат начали тянуться разноцветные полупрозрачные светящийся полосы, треугольники и т.д. Просто очень красивый баг, прилагаю видео:

Удивительно то, что не смог бы сделать такой красивый эффект, если бы сам захотел.

Второй баг: в одном проекте иногда сильно провисал фпс, я пару дней пробовал воспроизвести его и в итоге получил рецепт: если пробежаться к краю локации, выстрелить ракетами где-то в пространство, а потом подпрыгнуть и начать стрелять в стекло поблизости - тогда фпс падает до 5. Звучит как идиотизм, но еще более странно было то, что если любой из этих шагов не сделать, то баг не проявится. В итоге виновным оказался движок физики Newton. При какой-то волшебной комбинации прыжок что-то менял в информации о коллизиях, ракеты нужно было взорвать так, чтобы взрыв физики не зацепил ничего, а рей-каст пуль именно по стеклу его как бы добивал. Баг, вроде, и не пофиксился.

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

От создания игр веет романтикой, кажется, что разработчики целыми днями играют в игры. Действительно ли это так весело, или на самом деле это просто скучная и тяжелая работа?

Если бы разработчики играли весь день игры, то они бы ничего не разрабатывали, а стали киберспортстменами с ухудшенным зрением. Лично я играю редко, а в последнее время ограничиваюсь летсплеями, чтобы посмотреть, “что там другие делают”.

Расскажите хотя бы немного о том, над чем Вы сейчас работаете.

Из морозилки достал Aventarium (раньше Altoxium) и вплотную занялся им. Подумываю начать записывать ролики по нему. http://www.lionsshade.com/aventarium

Пробовали ли вы шлемы виртуальной реальности? Действительно ли укачивает? 

Являюсь счастливым обладателем GearVR, а до этого просто китайский пластиковый Cardboard покупал, а еще до этого в торговом центре за небольшую плату пробовал Oculus дев кит. Ну вообще да, укачивает. На Unity делал пару экспериментов… В основном меня интересовало перемещение в виртуальном пространстве. Первый эксперимент полагал в том что, если ходить или бегать, считывались данные колебания акселерометра, и симулировалась ходьба в виртуальном пространстве, также пробовал считывать приседание / вставание. В итоге остановился только на ходьбе… Тестирование такой штуки выглядит очень глупо обычно. Но в целом эксперимент удался впрочем. Другой эксперимент полагал в том, чтобы на стену вешать маркер, камерой с телефона считывать этот маркер и по нему определять положение шлема в пространстве… Это сейчас отлично получилось у Apple, но год назад этого еще не было, и я пытался сделать такой вот бюджетный вариант перемещения, без сторонних датчиков… В итоге, когда тестировал - задержки и пролаги моей чудо техники привели к тому, что начало жутко тошнить и пришлось час лежать на диване и приходить в себя… с того момента я забил болт на это дело =) ну а Apple свое дело сделали.

Будет ли поддержка шлемов Виртуальной реальности в Вашей следующей игре?

Нет, пока ограничиваюсь классическим подходом.


Обсуждение