Pull to refresh

Comments 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?
А вы таки выложили исходники игры на гитхаб или нет?
UFO just landed and posted this here
Статья очень помогла.
Кстати, недавно наткнулся на инфу, которая вдруг раскрыла, что же за элемент проекта SpriteKit под таинственным именем «GameScene.sks»
Оказывается это что-то вроде аналога сториборда, но для спрайткита — визуальный редактор сцены!
Для заинтригованных ссылка тут
Sign up to leave a comment.

Articles