Лого vc.ru

Кроссплатформенная разработка — советы компании Flowplay

Кроссплатформенная разработка — советы компании Flowplay

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

В рубрике «Рынок игр» — перевод интервью с Пирсоном.

Поделиться

На что разработчикам стоит обратить особое внимание при планировании разработки кроссплатформенной игры? Какие особенности каждой платформы они должны учитывать? 

Еще несколько лет назад кроссплатформенная разработка подразумевала создание контента для персональных компьютеров (ПК), игровых приставок и, может быть, для Mac. Теперь кроссплатформенность, в первую очередь, означает доступность приложения не только на ПК, но и на мобильных устройствах с разными операционными системами. На сегодняшний день, главное направление развития — это игры для смартфонов, планшетов и веб-игры, которые доступны для скачивания в магазинах приложений и в браузерах. 

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

Что разработчики должны знать о потребителях каждой платформы?

Первое, на что следует обратить внимание — это платежеспособность пользователей каждой платформы.

Некоторые студии ограничивают себя созданием продуктов (игры, приложения) только для определенной мобильной операционной системы, например, для iOS. Мы считаем, что разработка только для мобильных платформ очень рискованна, потому что привлечение клиентов к вашему приложению для гаджетов, примерно в пять раз дороже, по сравнению с другими платформами. Поэтому программа должна заработать, как минимум, в пять раз больше денег, чтобы считаться успешным продуктом компании.

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

Каким должно быть управление в игре?

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

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

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

Управление должно быть доступно либо одной рукой, либо большими пальцами обеих рук. И обязательно при разработке интерфейса управления нужно учитывать размах пальцев. 

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

Для начала стоит определиться — для каких платформ вы будете разрабатывать. Если веб не входит в этот список, то при разработке для ПК, консолей и мобильных устройств можете смело использовать C++. С Android могут возникнуть небольшие проблемы, потому что приложения для нее должны быть написаны на языке Java, однако, вы всё равно можете писать код на C++ с использованием JNI (Java Native). 

Хорошим выбором, если вы не акцентируетесь на вебе, будет Unity. Разработка происходит на C# и нацелена на ПК, консоли и мобильные устройства. Unity также позволяет разрабатывать для веба, но это не самый хороший выбор. Пользователю необходимо установить специальный плагин Unity — на сегодняшний день такая технология сильно устарела и потихоньку исчезает, а ей на замену пришли OpenGL и различные JavaScript-решения.  

Если вы разрабатываете для веба, то используйте HTML5 или Flash. Оба из них достаточно популярны, хотя, кажется, HTML5 разработчики используют чаще. HTML5 обычно используется для разработки веб-интерфейсов на ПК и Mac, но с его помощью можно создавать и приложения для мобильных устройств, посредством приложения PhoneGap. Игры, написанные на HTML5, получаются менее проработанными в графике и менее отзывчивыми, поэтому конкурировать таким продуктам достаточно сложно.  

Другой технологией программирования в вебе является Flash, который, на удивление, до сих пор используется разработчиками. Многие разработчики ошибочно полагают, что Flash не имеет будущего, потому что его не поддерживает техника Apple. Однако работа Flash на iOS затруднена только в браузере, а, например, посредством приложения Air все прекрасно работает. Таким образом Flash совместно с приложением Air являются хорошей платформой для кроссплатформенной разработки. 

Для тех, кому не нравится использовать Flash в своих продуктах, могут использовать язык программирования Haxe совмещенный с инструментарием OpenFL. Такой вариант позволяет экспортировать код из Haxe в HTML5 и в приложения для iOS и Android. Таким образом HTML5 позволяет создавать замечательные вещи для веба, но проигрывает в разработке продуктов для мобильных систем.

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

Если нет проблем с финансированием, то C++ — это лучший выбор. Так вы получаете максимальную производительность на всех платформах, включая мобильные системы. Однако, стоимость такой разработки будет значительно выше, потому что работать с C++ сложнее, чем с многими из современных языков, которые так же способны работать с обработкой памяти. 

Кроме того, если вы разрабатываете индивидуальный продукт для каждой платформы, то вам, очевидно, потребуется больше индивидуального (собственного) кода, а это кардинально отличается от подхода, когда разработчик просто переносит код от одной платформы в другую. 

Если же бюджет ограничен, то можете использовать C# (посредством Unity) или ActionScript (с помощью Flash или Air): оба из этих вариантов будут отличным выходом из ситуации — они являются первоклассными языками программирования и поддерживаются большим количеством компаний. Встроенная память делает разработку легче, но проблемы с этим все еще имеются, особенно на мобильных платформах. 

Чего следует избегать?

HTML5 потребует от вас знания JavaScript, а это достаточно проблемный язык. Конечно, на JavaScript можно написать хороший чистый код, но гораздо легче написать что-то ужасное, а из-за этого придется заниматься обзором кода и дополнительным тестированием. 

Какие основные преимущества создания кроссплатформенных игр? 

Если у вас есть хорошие кроссплатформенные решения, то такой подход позволит вам выйти на более широкую аудиторию, потратив на это примерно столько же средств, сколько обычно тратится на разработку продуктов для одной платформы. К тому же, если вдруг кто-то посоветует вашу игру своим друзьям и они смогу поиграть в нее на любой платформе, то вероятность прироста вирусной аудитории повысится. Кроссплатформенность позволяет пользователям собираться в сообщества независимо от используемого устройства

Что является самой серьезной проблемой и как ее избежать?

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

Другая серьезная проблема — это разрешение Apple. Процесс очень медленный — примерно около недели. Для тех, кто регулярно, например, раз в две недели, выпускает обновления это особенно важно. Необходимо поддерживать возможность игрокам с разных платформ играть вместе. 

Популярные статьи
Показать еще
Комментарии отсортированы
как обычно по времени по популярности

Какая же каша у него в голове.

>Пользователю необходимо установить специальный плагин Unity — на сегодняшний день такая технология сильно устарела и потихоньку исчезает, а ей на замену пришли OpenGL и различные JavaScript решения.

Мне кажется таких людей лучше не отвлекать от медитации на MRR.

Ах, пффф, это технический директор...

0

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

Да ты немного не понял мой посыл, дружище, но это ничего страшного. Суть в том, что он сравнивает движок, апи графической подсистемы и язык программирования.

0

Ох черт, ну зачем он рекомендует AIR и Haxe?
Одно "лучше" другого. Море боли и слез для программистов, куча костылей в коде и никакая производительность на более-менее серьезных проектах.
Да можно подтянуть оптимизацию, да теоретически все может работать правильно, да кто-то когда-то что-то на них делал, но не надо тратить время впустую, используйте тот же Unity.

Могу вам доказать что вы категорически не правы!

заявки на доказательство еще принимаются? Что именно доказываете, что Unity-плохо или что что AIR - огонь?

0

Что Unity ведет себя достаточно хорошо на кроссплатформе за исключение разве что Веба - мы итак уже все давно знаем.
Однако и AIR ведет себя вполне не плохо на мобильных платформах тоже - в частности в двухмерных играх с использованием Starling.

0

а какие успешные релизы на нем, я просто не обращал внимания на заставку AIR

0

Написал на два комментария ниже - парочку проектов/студий, потом еще вспомнил что мобильный вормикс тоже сделан на Starling AIR.

0

если рассматривать AIR в мобилах - то проекты на нем не поддерживают Windows Phone, Windows Store. Можно конечно сказать, что и бог с ними, но бог с одной платформой, бог со второй - вот вам и ничерта не приносящий проект...удобный - это когда поддерживается ВСЕ, а уже я решаю - что мне надо, а что нет, а не технология.

0

Честно, рад буду услышать контрпримеры успешных "больших" игровых мобильных проектов на этих технологиях)
Замечу, что считаю обе эти технологии достаточно хорошими для определенного типа задач. Но мультиплатформенные игры все же обрастают рядом костылей, зачастую требуют написания своих аналитических или социальных плагинов(вместо работы с готовыми решениями) + часть наших мобильных пользователей сталкиваются с проблемами стабильности.

0

Мнение субъективное, основано на 2хлетнем опыте работы с этими технологиями.
Мы в результате пришли к Unity и пока довольны решением)

0

И да, позвольте спросить "Вы" - какие крупные и кроссплатформенные проекты залончили на Unity, чтобы быть довольными таким решением?

0

Да пожалуйста:
- Все игры от Nika Entertainment (это кстати ваш жанр)
- VIADEN Media с WildSpinCasino - тоже работает на AIR
При желании - можно найти десяток студий.

0

Хех, переходить на личности не стану)
Как мне кажется, эти проекты изначально разрабатывались без оглядки на кроссплатформенность и/или разработчики приняли решение работать с более знакомыми технологиями(все-таки у них был хороший опыт Flash).
В любом случае, это наши догадки, было бы интересно послушать эти компании по данному вопросу.
Понял, что задел больную тему, предлагаю холивары прекратить - все равно разойдемся каждый при своем мнении)

0

Глупости. Написал на хексе не одно приложение, все работает как часы. На тех платформах, в которые хекс собирает через с++ производительность на уровне с нативом. На остальных (хтмл5, к примеру) все тоже вполне себе

0

Для мобилок неплохо работают libgdx/cocos2d-x, бесплатно, хотя приходится иногда костыли свои писать. Советую обратить внимание еще на cocos2d+spritebuilder, скоро можно будет писать на android/ios на swift

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

Я не геймдев, поэтому особенно поржал с:
"внутренний мир нашего казино"

−1

А что, Java сегодня вообще не востребована, да? :С

0

Для игр, пожалуй, да.
А вот корпоративные кроссплатформенные решения на Java прекрасно себя чувствуют

0

Java востребована в играх как серверный язык. Но только в мощных конторах. В России в большинстве случаев обычный PHP.

Возможность комментирования статьи доступна только в первые две недели после публикации.

Сейчас обсуждают
Антон Адамов

безвкусица и низкосортные этикетки. арт-директору бы доучиться дальше,чем такой креатив выдавливать из пальца

Компания «Альянс» показала на бутылках своего сидра героев знаменитых картин в состоянии опьянения
0
Yus Teryukalov

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

«В кризис банк никто не купил, пришлось развивать самому»
0
Philip Salnikov

Суммы инвестиций и заработков тоже удивляют. Кому нужны любительские фото в таких количествах?

«Я потратил $10 млн и два года на то, что мог выяснить за 4 недели»: основатель Twenty20 об ошибках проекта
0
Sakari Sauso

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

«Азбука вкуса» и бывшая «Афиша-Еда» запустили сервис для доставки ингредиентов по рецептам журнала
0
Sakari Sauso

но драйв этот сомнительный, в идеале, ты сам должен выбирать продукты с одной стороны, а с другой, это для тех кто не совсем готовить умеет, т.к. речь о конкретном рецепте, а если у меня в холодильнике половина продуктов для блюда есть? Сразу вспоминается Никита Лихачёв))) Хотя вот пишу это и сам понимаю, что лишний раз мотивировать людей готовить дома для себя и семьи всё таки благое дело)))

«Азбука вкуса» и бывшая «Афиша-Еда» запустили сервис для доставки ингредиентов по рецептам журнала
0
Показать еще