Как стать автором
Обновить

Комментарии 15

Спасибо. И не слушайте тех, кто говорит, что подобные материалы на русском не нужны, мол хватает мануала. Пусть читают, раз хватает. Многим приятнее читать на русском, даже если могут это делать и на других языках.
Спасибо за замечательную статью!

Правда, полный исходный код лучше разместить на github — в статье уже есть всё необходимое. А вот возможность скачать сразу весь код (да ещё и с проектом) и поиграть с ним очень полезно было бы.
Это, конечно, хорошо, что появляются новые технологии и языки, но мне кажется не совсем правильным привязываться к непортируемым функциям конкретных ОС, ещё и используемым лишь в новейшей версии. Это выгодно компаниям, но не выгодно пользователям и, в конечном счёте, программистам. В последнее время я замечаю, что в связи с увеличившимся парком платформ основные компоненты пишут на C++ (лично я его не люблю, но считаю меньшим злом, чем поддержку параллельных веток), а системнозависимые на чём Бог послал. Так и Swift — я не понял, в чём его смысл — похож на Objective C, но лишён элегантного синтаксиса и напоминает Java Script. Нас что, считают такими глупыми, что мы уже отличный от Явы язык освоить не сможем? Что касается GameKit — мы в своё время от него отказались из-за ограниченности его возможностей и опять же жёсткой привязки в версии iOS, так как геймер не обязан покупвть последний iphone и загружать новейшую версию лишь затем, что пограть в простейшую игру. PS: у Вас очень хороший русский язык.
Ну видимо, swift для тех, кто не считает, что синтаксис objective c элегантен. И таких людей очень много. Эппл хочет получить в своих рядах тех разработчиков, которые не против писать под iOS но смущаются именно синтаксиса ObjC.

А касательно функции конкретных ОС, то уровень поддержки spritekit очень даже высок на данный момент (проникновение iOS 7 позволяет). Не работает только на совсем старых девайсах, но на них разработчики и так особо не ориентируются.

Непортируемость это, конечно, минус. Но с другой стороны, это нативное средство для инди разработчиков, которые хотят разрабатывать и тестировать только под iOS, не сталкиваясь с проблемами фрагментации, других маркетов и т. д. Для крутого проекта лучше, конечно, выбрать что-то кроссплатформенное, но для небольших игрушек SpriteKit отлично справляется. Хотя, есть в нем, конечно, непонятные ограничения. Надеюсь, его обновят и оставят совместимым с ios 7.
Самая-самая большая проблема SpriteKit в невозможности «дешево» портировать код на Android. Откинем WP, W8, Tizen и прочие мелкие рынки, но буквально выбрав кросс-платформенный движок мы удвоим или даже утроим доход, по сравнению с «чистой» iOS и Obj-C/Swift. Конечно, если продукт станет успешным на iOS, можно портировать и на другие платформы, хоть с нуля написать, но по критичности аудитории и ее привередливости правильно бы выходить на iOS с идеально отлаженным и на 100% готовым проектом, перед этим погоняв его хорошенько на Android, а лучше еще и на чем-то не прибыльном, но показательном, вроде BlackBerry. Особенно важно, что на Android апдейт доходит до пользователей в течение пары часов, а на iOS — через неделю с гаком после его создания.
А есть хорошие кроссплатформенные движки, которые имеют приличную документацию, комьюнити и поддержку и при этом позволяют публиковать игры в маркетах сравнительно недорого? Платить тысячи баксов за Юнити, например, будет накладненько тем, кто делает всякие Солитеры, 3 в ряд и подобное.
Cocos2d, Corona, частично MonoGame, а вообще по большому счету даже если писать на чистом OpenGL ES и едином языке (C++, C#, JS), то работать будет на куче платформ с не очень большой головной болью. Вроде как и на дешевых лицензиях Unity можно многое. Конечно, на iOS все очень красиво и удачно реализовано, после нее тот же WP с недо-XNA будет казаться адом, но все же кросс-платформенность того стоит.
Глянул на сайте Unity, iOS + android будет стоить 4500 (про версия + 1500 за каждую платформу). Да, бонусом идут все остальные платформы, но для простеньких игрушек не подойдет точно, разве что вагонами их клепать.

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

Естественно, это путь для IOS / Mac разработчика. Если до этого был опыт разработки на С++ или C# или чем-то еще, то стоит поискать инструмент на привычном ЯП.
Даже если говорить не об игрушках, то при разговоре о кроссплатформе всегда надо перезакладывать и времени и бюджета и вообще. Если ты инди и представления не имеешь о том даже — взлетит твоя идея или нет, то если честно «запустили через 3 месяца и не взлетела» выглядит значительно предпочтительнее, чем «запустили через полгода-год и провалилась».
Если у тебя в мыслях изначально есть кроссплатформа, то я бы рекомендовал просто писать код максимально разделенным на «модули»-«слои», так чтобы замена рендера с UIKit на SpriteKit или Cocos2d решалась за короткий промежуток времени. Так же как и замена физического движка.
Благо, Objective-C дает нам категории и тайпалиасы — соответственно можно делать вид, что разработчик работает с чем-то вообще непривязанным к реализации.

P.S. Восхитительная статья по спрайткиту. Некоторые мои знакомые интересовались стартовыми материалами, теперь я знаю, какую ссылку им скинуть. Спасибо за труд!
* У вас на видео ошибка в слове Checking (на видео Cheking) *
Спасибо за статью!
Спасибо за статью.
После прочтения возник вопрос. Можно ли сделать из спрайта кнопку? Или только отслеживать через -touchesBegan?
А вы таки выложили исходники игры на гитхаб или нет?
НЛО прилетело и опубликовало эту надпись здесь
Статья очень помогла.
Кстати, недавно наткнулся на инфу, которая вдруг раскрыла, что же за элемент проекта SpriteKit под таинственным именем «GameScene.sks»
Оказывается это что-то вроде аналога сториборда, но для спрайткита — визуальный редактор сцены!
Для заинтригованных ссылка тут
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории