Codea. �?нструмент для создания игр на iPad
Сегодня я хочу рассказать об интересном, и в свою очередь уникальном инструменте для создания игр прямо на iPad. Так что если у вас есть iPad и $10 на кредитной карте, то вы сможете создавать мобильные игрушки, не выходя из туалета ;)
Ни для кого не секрет, что наиболее популярная мобильная платформа на текущий момент — это iOS. Впрочем есть и обратные точки зрения, которые утверждают, что Android круче, и что он наиболее распространен. Но суть не в этом. Как бы не был популярен Android, разработка под него намного сложнее и дороже из-за великой фрагментации устройств. Хотя возможность разрабатывать мобильные приложения для Android на Windows и без всяких лицензий разработчиков изначально подкупает. Но основная масса разработчиков, конечно же, первым делом отправляется покорять топы AppStore в iOS, и только потом задумывается о покорении Android. «Так почему же iOS так привлекателен для разработчиков» — спросите вы? Не смотря на дороговизну гаджетов и компьютеров от Apple, разработка для них наиболее комфортна и перспективна в том плане, что у Apple есть большая база пользователей, привыкших платить за приложения, к тому же у Apple нет такой сумасшедшей фрагментации устройств, как на Android, и чтобы купить все базовые модели от Apple для тестирования программ, денег надо намного меньше, чем, например, для покупки всех наиболее популярных моделей планшетов и телефонов на базе Android. Но вернемся все же к теме.
Предположим, что мы хотим отправиться путем всех умных разработчиков и начать разработку игр под iOS и под мобильные платформы в частности, только вот денег на девайсы особо нет, как и желания, потому что не понятно, что из этого может получиться, и получится ли вообще!? Вот как раз для таких сомневающихся и не только, в AppStore появилась интересная программа, которая позволяет создавать игры прямо на iPad. Программа называется Codea и стоит в AppStore всего $9.99 (300 руб). Но она того стоит ;)
Программа эта исключительно под iOS и у нее нет портов на другие платформы, даже под MacOS нет настольной версии. Но это не страшно.
Codea больше всего примечательна тем, что вход в разработку очень прост. В комплекте с программой идут интересные примеры, которые позволяют быстро разобраться с принципом программирования. Так же есть примеры и с 3D графикой и физикой. Да-да, в Codea встроен Box2D, что может позволить быстро прототипировать физические игры прямо на устройстве. Код для Codea пишется на простом скриптовом языке Lua. В программу так же встроены наборы текстур, но можно подгружать и свои текстуры через DropBox.
Но больше всего мне понравилось то, что по ходу создания игры или прототипа я могу тут же видеть готовый результат на устройстве. Достаточно нажать кнопку Play и можно тут же поиграть в свою поделку. То есть тут можно с уверенностью сказать, что программа не очень годится для разработки полноценных игр из-за некоторых ограничений, но вот прототипы можно делать — это однозначно! :)
Слева от игрового экрана отладочная панель на которой можно видеть окно output и ползунки для активации читов. Ползунки добавляются пользователем. Отладочная панель отключается через код.
Впрочем полноценные игры на Codea — это тоже реально! Первая такая игра от самих авторов Codea уже доступна в AppStore бесплатно: Cargo Bot. Чтобы создать полноценную игру на базе Codea достаточно лишь выгрузить из программы свой проект (текстовые файлы с кодом), скачать Codea Runtime Libary — шаблон проекта для xCode, разместить в нем свои скрипты и ресурсы, и собрать финальный билд игры для AppStore! Только вот чтобы собрать полноценную игру для AppStore — вам уже понадобится Mac и лицензия разработчика в AppStore.
Codea не имеет стандартных средств для выгрузки и сохранения вашего проекта из программы. Авторы программы пишут, что все эти возможности пришлось удалить из-за требований Apple. Но выгрузить или загрузить свои исходные коды можно, например при помощи программы iExplorer (или другой аналогичной программы), которая позволяет просматривать файловую систему iOS.
В общем, рассказывать еще можно долго, поэтому лучше один раз увидеть :)
Недостатки Codea
Программу в целом я уже расхвалил, но в этой бочке меда оказалось и ведро дегтя. Сейчас я немного расскажу об основных недостатках, с которыми я уже успешно столкнулся.
Первый самый существенный недостаток заключается в том, что Codea не имеет стандартных классов для работы с анимациями. То есть вы можете подгружать туда отдельные спрайты, но чтобы создать из них полноценную анимацию, прийдется полноценно покодить. Тут же вылезает и вторая проблема, программа не имеет поддержки Sprite Sheets, то есть быструю анимацию на коленке вы сможете сделать только если будете менять постоянно текстуры. А с отсутствием Sprite Sheets возникает сразу и третья проблема — при отрисовке текстур по отдельности производительность такого приложения падает (кто знаком с 3D и имеет представление о том, как нужно отправлять картинки на рендер, должны понимать, о чем идет речь), так как в идеале с аппаратным рендером, все одинаковые объекты должны отрисовываться за один проход, а не по отдельности и т.п. Впрочем, это все плохо только на первый взгляд, так как на самом деле можно самостоятельно сделать поддержку Sprite Sheet's и анимации, написав для работы с ними свои классы.
Sprite Sheets — это когда разные спрайты или наборы анимаций собираются в одну большую картинку (атлас/текстуру), делается это не столько ради удобства или еще чего, сколько ради того чтобы оптимально работать с видеокартами.
Возможно это не последние недостатки Codea, но это основные недостатки, которые существенно подпортили мне общее впечатление от Codea.
На личном опыте
Почти ровно год назад, когда я закончил работу над Zombotron 1 и отдохнул, я решил поковырять мобильную разработку под iOS. Я набрал кучу всякой литературы с примерами, где-то купил, где-то одолжил, в общем начал активно изучать xCode в связке с Cocos2D. �? вот тогда, когда спустя несколько дней после активного изучения всего и всея — у меня что-то ожило и начало двигаться в эмуляторе — я очень обрадовался, но радость была не долгой, так как очень хотелось пощупать результат сразу на устройстве и понять как оно в жизни будет работать. Но как-то лишних 100 баксов не оказалось, как и не было желания связываться со всей этой бюрократией для получения сертификата разработчика у Apple Inc. Все это, конечно, делается достаточно легко и быстро, но серьезных планов не было тогда, было только желание попробовать что-то новое и сделать пару прототипов. В общем на эмуляторе мой пыл спал и я начал работу над новой флеш игрой.
Потом я узнал о Codea и меня эта программа побудила к новым попыткам что-то сделать на iOS — эти попытки не столь успешны и перспективны, конечно. Но примеры, которые мне удалось сделать, буквально на коленке по вечерам (и в туалете!) и увидеть результат прямо на устройстве — очень мотивируют к более серьезным подвигам, тем более что затраты для этого минимальны :) Первая примитивная стрелялка у меня получилась уже через пару часов после того, как я скачал Codea на iPad.
В данный момент, как бы громко это не звучало, но я пробую сделать прототип Zombotron'а в Codea. Речи о порте Зомботрона на Codea конечно не идет, прототип зомботрона в Codea делаю для того, чтобы понять какие шансы игра типа Зомботрона имеет вообще на успех :)
Вердикт
Codea — в первую очередь отличный продукт для тех, кто мечтает начать писать игры, но не знает с какой стороны подступится к разработке и программированию :) Так же Codea отлично годится для прототипирования игр, в особенности мобильных с тач интерфейсом, так как тут можно за пару вечеров оценить насколько годится или не годится ваша игровая идея. А вот для создания полноценных игр — Codea — это конечно не самое подходящее решение. Но если нет сил и желания изучать xCode с игровыми движками, или какие-то иные мультиплатформенные решения, то Codea может стать отличным инструментом на первое время с последующим переходом на более полноценные решения.