Технический директор компании 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. Процесс очень медленный — примерно около недели. Для тех, кто регулярно, например, раз в две недели, выпускает обновления это особенно важно. Необходимо поддерживать возможность игрокам с разных платформ играть вместе.
About the author