... уже писали о
, игровом движке с ... Deer, созданная с
.
... nbsp;- автором движка
, переносящего методы ... для использования движком
. Конечно можно ...
Друзья, представляем вашему вниманию интервью с Денисом Радиным - автором движка FlashJS, переносящего методы разработки из Flash в HTML5 и JavaScript. Мы уже писали об этом проекте в статье "FlashJS – игровой движок на Javascript и HTML5 для флэшеров, open source".
В этом интервью мы узнаем, как Денис пришел к идее переноса Flash в Javascript, есть ли альтенативы его решению, чем FlashJS лучше и что из этого может получиться.
Интервью берет Ростислав Сирык, на вопросы отвечает Денис Радин.
- Денис, твой проект впечатляет - уже первые отзывы свидетельствуют о том, что люди оценили идею, да и реализация неплоха. Как ты пришел к тому, чтобы сделать такой движок?
- С 2001 года наблюдаю за развитием игровых и графических движков. Разрабатывал еще на GLScene, DelphiX вел разработку векторного движка для CAD систем под .Net и потом познакомился с Flash...
Он оказался логичней всего увиденного ранее, а структура прекрасна и как нельзя лучше подходит для своего круга задач.
HTML5 сейчас извергается сотнями хитрых поделок от геймдева: какие-то получше, какие-то - использовать просто невозможно, но абсолютно всем далеко до того изящества и универсальности, которые флэш получил за свою многолетнюю историю.
К тому же, моя основная работа - разработка большой базы кода на AS3 и сейчас нам необходим iOS-фоллбек. Большой проект - много работы по переносу. FlashJS все упрощает, экономит время и за это нравится руководству компании, где я работаю.
- А ты смотрел на то, что делает в этом направлении Adobe?
- Да, я тестировал инструмент Adobe Edge, и мне не показались удачными подход и реализация. Во-первых, Эдж не поддерживает знакомую флэшовую парадигму разработки - например, нет все тех же фреймов. Разработчики почему-то решили отказаться от правильных наработок и начали изобретать что-то свое.
Во-вторых, чисто с технологической точки зрения - анимации в Эдже почему-то реализованы не как высокопроизводительные CSS-трансформации, а программно, с помощью jQuery. Конечно, jQuery - это мощно, он до сих пор непревзойден в своем роде, но - анимировать с его помощью не является оптимальным решением.
- Планируешь ли ты создать визуальный редактор для своего движка?
- Я думал над этим. Задача не простая, и здесь есть смысл воспользоваться другой адобовской разработкой, Wallaby - он конвертирует из Flash прямо в HTML 5, по ходу позволяя получить результат в формате SVG.
Таким образом, как вариант - можно делать анимацию персонажей во флэше и перегонять их через Валлабай. Получаешь на выходе код SVG готовый для использования движком FlashJS. Конечно можно использовать другие SVG редакторы, но флеш все же несколько их превосходит.
- Так ты в своем движке используешь SVG для векторной анимации?
- Еще нет. Но есть некоторые перспективы с привлечением уже упомянутых Адобовских разработок. В SVG есть команды для анимации, так что никаких препятствий к его использованию сейчас не вижу.
Кстати, если говорить об Adobe Edge - то заметь, он не векторный, и мне это непонятно, почему он оперирует только спрайтами.
В движке FlashJS все объекты - это DIV'ы, в которые можно вставить хоть растровые гифы, хоть векторную SVG-графику.
- Есть ли у тебя планы по выпуску других демок или игр?
- Да, хочу сделать игру a-la вормс с применением векторов.
- А тебя не смущает долгая и сложная судьба SVG? Насколько я помню, попытки сделать его стандартом векторной графики в сети предпринимаются уже давно, но не очень успешно, и многие просто махнули на него рукой.
- Не смущает. Это мощный формат, там есть все возможности, есть встроенный твининг, анимации. Практически все современные браузеры его поддерживают.
- Но у меня есть ощущение, что SVG все еще не очень популярен среди разработчиков. Так ли это?
- Не думаю, что это так. Android 4 его уже поддерживает, и SVG пригодится везде, где нужен вектор в браузере, а вебу нужен вектор, и гугл, я думаю, протянет его. Действительно не простая судьба SVG решается на наших глазах, думаю его время наконец пришло.
- В чем основные преимущества такого подхода?
- Самое главное - мы переносим все трансформации на CSS, а это встроенные в браузер, написанные на C функции. Мы заранее перекладываем заботу об оптимальном рендеринге на коллективы таких компаний, как Google, Mozilla и ... нельзя не упомянуть Microsoft. Это может показаться опрометчивым, но только при переходе от 6 к 7 версии мозиллы быстродействие FlashJS увеличилось на 20% !
Второе - мы остаемся в пределах DOM структуры, это важно, ведь у нас много больше возможностей по интеграции.
- А недостатки ?
- В отличие от Starling или WebGL мы не используем OpenGL и 3d ускоритель. Не могу назвать это большой проблемой - Flash отлично работает в миллионах проектов без Starling, а WebGL все еще экзотика.
- Используешь ли ты в своем движке Canvas?
- Canvas планируется использовать для дублирования функционала BitmapData и Bitmap, но это не первоочередная задача. Мой опыт работы в прагматичном онлайн-игрострое подсказывает - онлайн играм не нужны попиксельные операции, им нужны эффективные и высокоуровневые подходы, позволяющие разрабатывать быстро, безболезненно и кроссплатформенно.
Канвас, как основа для движка - это гибко, но медленно и пахнет, как новый и блестящий велосипед =)
Да что много говорить, просто запустите тесты, Canvas если и выигрывает в нескольких то на 20%, но в большинстве случаев проигрывает в быстродействии до 4х раз.
Если говорить об альтернативах DOM движкам - я ставлю на WebGL, он принципиально решает вопрос производительности, но имеет свои недостатки, прежде всего - не поддерживается даже в новейших браузерах Android 4 и iOS5. В направлении WebGL веду разработки на далекую перспективу.
- Чем можно помочь проекту сейчас?
- Составьте свой список классов Flash, которые бы вы хотели видеть в библиотеке, отсортируйте по приоритетности и вышлите мне - denis.radin@gmail.com . В roadmap проекта FlashJS находятся первоочередные доработки, они очень нужны движку. Приоритетнейшая из них - перенос гоночного демо на Box 2D, разыскивается человек разбирающийся в Box2D, конечный результат нашей работы не останется незамеченным. Хотите помочь или вам требуется какая то информация - пишите на почту или в скайп lp_funky.
- Кстати, как насчет твоих других проектов? Получила ли свое развитие та трехмерная фишка с глазом, которую ты делал на Alternativa3D?
- Пока проект не закончен. Заминка возникла конкретно на этапе физической реализации, я никак не могу достать большой белый шар, легкий и прочный, он нужен для того, чтобы проецировать глаз на него. Поэтому я до сих пор ищу подходящий белый мячик. Однажды почти удалось достать - увидел такой, как нужно, в витрине бутика Tommy Hilfiger, но мне наотрез отказали продать его, сказав, что после инсталляции все шары возвращаются в Голландию через Киев.
- Спасибо за интервью и - что еще ты хотел бы сказать читателям?
- Не переживайте за будущее. Держитесь тех вещей, которые приносят вам счастье и удовлетворение. Творите, посещайте интересные тусовки, общайтесь с другими творческими людьми, меняйтесь к лучшему и меняйте этот мир.
Попутного ветра вам и семь футов под килем!
- Успехов твоему замечательному проекту!
Демо-приложение для движка FlashJS:
... развивает библиотеку
для ... AAAAAAAAEEw/_WVLjsZecjA/s800/
-racing-demo. ...