Фреймворк Starling. Интервью с разработчиком Дениелем Сперлом

от автора

На недавно прошедшей конференции DevGamm 2014 мне удалось пообщаться с замечательными людьми — командой разработчиков Gamua. Дениел Сперл и Хольгер Вайсбёк – эти ребята создатели фреймворков Starling и Flox, весьма полезных продуктов для сообщества Flash разработчиков.
На конференции Дениел рассказывал про разработку мобильных игр при помощи Starling, a Хольгер про создание полноценного облачного бекенда при помощи Flox.

Наше общение вылилось в небольшое интервью с Дениелем о том как появился Starling, как он развивался и не только.

Starling – это фреймворк для разработчиков игр, которые хотят публиковать игры на нескольких платформах. Он основывается на AIR, кроссплатформенном рантайме от Adobe который работает как на десктопе, так и на мобильных платформах. Поскольку Starling использует GPU для отрисовки двумерной графики, с его помощью можно делать динамичные игры с высоким FPS и большим количеством спец-эффектов.

Такие компании как Rovio, Zinga и Ubisoft используют Starling. Самая известная игра на движке Starling – это “Angry Birds Friends”; а также несколько игр для Disney!

В Starling 1.5 появился ряд нововведений, узнать о которых можно на офицальном блоге. В двух словах эта версия стала быстрее и лучше предыдущей =). Теперь стало возможным использование огромных текстурных атласов, размером до 4096×4096. А также хранить саб-текстуры в повернутом виде, что позволяет эффективнее использовать площадь текстурных атласов. Эта версия фреймворка создавалась с прицелом на большое число мобильных устройств, так что учитвывались индивудуальные особенности (и недостатки) этих гаджетов. Программисту теперь можно сосредоточится на разработке, а не на отладке приложения.
Другие новые фичи:
— Снято ограничения на размеры текстур для iPad1 (Стало возможно использовать прямоугольные, а не квадратные текстуры).
— Теперь АssetManager может работать фоновом режиме (когда приложение свернуто).
— Добавлены дополнительные проверки потери 3д-контекста, что делает поведение приложения более стабильным.
Общее резюме, как говорят разработчики It just works™ и я с ними полность согласен.

А теперь Q&A.

Как появилась идея Starling?
В далёком 2009, мы работали над несколькими играми для iOS и не было фреймворков, которые бы нам действительно нравились. Я довольно долго занимался разработкой на Flash и подумал, что было бы замечательно иметь Flash API для iPhone! Таким образом появился Sparrow – фреймворк, приходящийся сестрёнкой Starling для Objective-C. Внезапно после этого, в 2011, Тибо Имберт (Thibault Imbert) из Adobe связался со мной и сказал что хорошо бы сделать такой же фреймворк как Sparrow, но только для Flash с поддержкой библиотеки Stage3D. На тот момент библиотека только находилась в разработке. Я был полностью завлечен этой задачей, и увлечен по сей день! Вот так всё началось.

Почему решили делать движок, а не игры?
Вообще то, я всегда планировал разрабатывать и игры тоже! Но оказалось, что поддержка такой библиотеки – это сам по себе очень большой проект. Я постоянно общаюсь с сообществом, просматриваю баг репорты и пожелания по улучшению. Почти ни на что другое не остаётся времени. Однако, я уверен, у меня будет возможность вернуться к разработке игр!

Получается что сообщество так-же активно участвует в разработке, например расширение Starling Particles включено в Adobe Gaming SDK. Какие ещё интересные расширения добавили пользователи? И как часто сообщество добавляет новую функциональность, исправляет ошибки и т.д.?
Я всегда поражаюсь тому, сколько времени проводят пользователи на форуме Starling. Если у тебя есть вопрос и ты его опубликуешь на форуме, есть большие шансы получить ответ в течении нескольких часов! И появляется много интересных расширений от сторонних разработчиков; например расширение “PixelMask” обеспечивает возможность наложения маски на пиксели объектов Starling. Или “Graphics”, которое обеспечивает базовые возможности векторного рисования (аналог API flash.display.Graphics). Люди постоянно присылают новый код! Я этому очень рад, однако мне приходится разбирать этот код и комментировать его.

Какое ПО используете при разработке. Любимое IDE?
Я использую Flash Builder, так как это лучшее средство интеграции с Adobe AIR и работает сразу из коробки. Однако, большое число разработчиков использует InteliJ IDEA и хорошо отзывается об этой системе! Я как нибудь её попробую. К тому же, последняя версия Flash Builder довольно “бажная” и хорошо иметь в запасе альтернативный вариант.
Если вы разрабатываете под Windows, то FlashDevelop хорошая альтернатива. Я веду разработку на Mac’е, так что он мне к сожалению не подходит.

Работаете ли вы дома или в офисе, как вообще происходит координация работы?
Фотку офиса в студию.

Я арендую небольшой офис на северо-западе Австрии с моим коллегой Хольгером. Первое время, на этапе становления Gamua, я пробовал работать из дома, но закончилось тем, что я практически заперся дома не видя белого света! В общем ничего хорошего из такого подхода не вышло. 😉

В то время как я работаю над проектами Starling и Sparrow, Хольгер полностью ответственен за наш новый проект “Flox”. Мы оба перфекционисты, так что нам очень важно было разделить зоны ответственности.

Расскажи немного про Sparrow ведь аудитория разработчиков objC приложений шире, чем Flash разработчиков. Сколько внимания сейчас уделяется разработке Sparrow?
Последние месяцы у Sparrow не самые лучшие времена, так как Apple выпустил “Sprite Kit”, который очень похож на Sparrow. Поначалу для нас это было тяжело! Однако, я всё ещё думаю что у Sparrow есть своя аудитория. В конце концов это Open Source: вы можете поковыряться внутри и починить любую проблему самостоятельно. Если же нашлась проблема в Sprite Kit, тогда желаю удачи, пишите баг в Apple! Возможно вам не ответят; а если решаться починить, то нужно будет ждать следующего обновления iOS.
Новая версия Sparrow готовится к выпуску в ближайшие две недели! Обновление включает большие улучшения, например увеличение производительности в три раза! Более того, набор фич схож с теми которые есть у Starling, и это делает Sparrow мощным средством для разработки игр.

Мигрируют ли нововведения из Starling в Sparrow и наоборот?
Нет способа мигрировать от AS3 к Objective-C. Однако, Sparrow использует такие же форматы файлов для битмап шрифтов и текстурных атласов. И так как классы тоже похожи (даже имена классов и методов иногда совпадают), можно легко портировать игру. Objective-C, вообще-то, очень хороший язык и в некоторых областях он проще чем AS3! Например, не нужно беспокоиться о сборщике мусора; т.к. последние версии стали очень умными в области управления памятью.

Расскажи немного о новом режиме в AIR для фонового выполнения задач, как это вообще работает? В фичах Starling 1.5 он часто упоминается.
Фоновый режим выполнения задач не связан с воркерами (которые до сих пор работают только на десктопе). Этот режим означает что вы может выполнять некоторый код, когда приложение находится в фоне. Много сделать не получится, iOS ограничивает задачи с целью сохранения заряда батареи, но в некоторых случаях фоновый режим полезен, например можно закончить загрузку.

Как встретил коллегу по работе?
Вообще то я знаю Хольгера с детского сада! Он всегда был одним из самых близких моих друзей; мы даже учились в одной и той же школе! После университета мы некоторое время работали в разных компаниях. А потом вместе основали Gamua.

Планируете ли вы расширять команду? Например, дополнительно писать игры.
Не сейчас. Во-первых, мы хотим сохранить команду маленькой и внутри-командные процессы простыми. Обычно, по мере роста компании, больше времени уходит на проведение встреч и согласование планов. Я же хочу программировать, ан е быть директором. Хотя конечно возможности компании из 2 человек сильно ограничены. По этому, например если мы захотим начать другой проект, нам придется расширится, т.к. мы полностью загружены текущей работой.

Пишете ли тесты на свой код?
Ты нашел мою слабую точку! У Starling есть юнит тесты, но они не покрывают весь фреймворк. Не так просто писать тесты для кода связанного с Stage3D, нужно подготавливать специальное окружение, и мне никак не хватает времени на это.

Как работает спонсирование Adobe, если я вот хочу создать супер пупер тулзу?
Как я уже говорил, Adobe сами обратились ко мне, а не наоборот. Так что я не знаю как договориться с ними о спонсорстве! Предполагаю что нужно работать над чем-то очень хорошо совпадающим с инструментам и стратегией Adobe, а также немного удачи!
Для нас спонсорство работает замечательно, лучше я не могу и придумать. Adobe предоставляет достаточно свободы для развития Starling. Они просто хотят, чтобы у разработчиков игр был качественный инструмент.

Какие у вас планы на дальнейшие релизы Starling?
У меня много идей для новых фич, но запросы от сообщества разработчиков всегда имеют наибольший приоритет. Я хочу, чтобы Starling был как можно более стабильным и надёжным! Поэтому я добавляю новые фичи, когда текущий функционал работает безупречно.

Сколько тебе лет? Когда первый раз сел за комп, как вошел в IT?
Мне 33 года и я интересуюсь компьютерами с тех времён, как у нас появился первый Commodore 64 в 80х. Я начал изучать программирование в ещё в школе и познал азы играясь с BASIC. Мне всегда казалось захватывающим то, что ты можешь некоторым образом сказать маленькой серой коробке что тебе нужно и она будет выполнять твои приказания!

Где учился?
Я учился по специальности “Медиа технологии и Дизайн” в Университете Прикладных Наук Верхней Австрии, что дало мне знания как в области дизайна так и программирования. Именно по этому я всегда любил разработку игр: в этой области нужны оба таланта.

Семья, дети?
Вообще то, я женился через пару дней после первого релиза Starling в 2011! Я хочу тебе сказать что это было напряженное время… организация свадьбы и подготовка к релизу одновременно (при этом я ещё работал на основной работе днём), что потребовало немалых усилий. Но не напрасно, ведь теперь я могу работать над Starling в качестве моей основной работы, ну и конечно у меня остаётся гораздо больше времени для жены. 😉

Отдых куда? как часто?
Вообще-то, я люблю проводить свободное время с хорошей книгой на диване или на солнце. Или играю в игрушки серии Zelda или Super Mario, вообще не пропускал ни одной из них! Ещё, я люблю ездить на велосипеде по австрийской глубинке. И иногда путешествовать за рубеж. Мне не нравится лежать на пляже, гораздо интереснее объехать страну на машине и увидеть как можно больше. Я бы хотел когда-нибудь попутешествовать по России! Если бы еще знать язык…! 😉

Велосипед, классно! Какой велосипед? У нас много разработчиков ездят на велосипедах.
Хаха, большинство из вас улыбнётся, если увидит что я использую для передвижения! Не знаю почему, но я фанат всего маленького и портативного. В детстве у меня не было NES, но был Game Boy! А теперь у меня есть Smart и складной велосипед! Они отлично подходят, и я могу легко разместить свой велосипед в багажнике. 😉
Тут пара фоток для понимания идеи. (Это не настоящие фото моих транспортных средств, но они очень похожи)

Первый ли раз в России? Понравилось? Что запомнилось?
Да, я первый раз в этой красивой стране! К своему стыду я успел посмотреть только небольшой кусочек Москвы. Но я познакомился со многими действительно хорошими людьми и очень хочу как нибудь приехать ещё раз, что-бы было побольше на знакомство со страной и её людьми!

В заключение стоит добавить, что команда разработчиков Gamua, хоть и состоит всего из двух человек, но делает очень качественный и сложный продукт. Как это у них получается я не знаю. Возможно это личные качества (оба разработчика тотальные перфекционисты «энерджайзеры»), может быть европейский менталитет, или спонсирование Adobe (с большой степенью свободы в разработке). Но пример показательный, тот же Sprite Kit в Apple (да и многие другие фреймворки), скорее всего, разрабатывает некоторая группа-толпа разработчиков (как это принято в «энтерпрайз» разработке).
Интервью на английском языке можно найти по ссыке: Talks about Starling. Daniel Sperl Q&A session, замечания по переводу и тексту пишите в личку оперативно поправлю. Если есть что спросить у разработчиков, пишите в комментарии спрошу и отпишу.

ссылка на оригинал статьи http://habrahabr.ru/post/224347/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *