Дневник iPhone-разработчика: как разрабатывалась игра Glass Master

15 октября 2009 - 18:20

XcodeПочему так популярен iPhone? Потому что после одного взгляда на него, устройство хочется подержать в руках, а подержав — купить? И да, и нет. Это создает лишь первое впечатление, к счастью, не обманчивое. Во многом этот смартфон обязан своей популярностью магазину App Store, в котором содержится несчетное количество приложений. Не так давно с него было загруженно двухмиллиардное приложение. Это история одной игры Glass Master (скоро в App Store), в которой я расскажу о том, как создавалась игра, о трудностях и радостях iPhone-разработчика.

Начал я разработку, конечно же с того, что вдоволь наигрался в уже существующие «творения». И что я увидел? Значительная часть игр, которые обладают более или менее осмысленным геймплеем оказалась весьма слаба в графической части. Другая значительная часть была красиво выполнена, но хромала в части смысловой нагрузки.

И лишь крайне небольшое количество игровых приложений доставило мне то ощущение радости и азарта, которое я искал. Безусловно, за некоторые из них совершенно не жалко отдать $5, которые они обычно стоят.

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

Когда процесс тестирования чужих игр мне наскучил, я взялся за написание своей. Выделив основные ошибки предшественников, я составил список вещей, которые старался не повторять. Это:

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

Внимательный взгляд в этот список в течении получаса позволил сформулировать следующие постулаты:

  • ужас как нужен профессиональный дизайнер;
  • не следует надеяться, что понимание будующей игры прийдет в процессе разработки — нужно заранее все обстоятельно обдумать;
  • управление должно соответствовать духу iPhone — «пальцеориентированный» интерфейс и акселерометр;
  • очень желательно найти толкового композитора, который напишет хорошую музыку специально для игры.

Итак, озарение снизошло и я решил действовать. Признаюсь, нелегко было собрать толковую команду, но у меня получилось. Вобщем, этим сразу реализовались второе и четвертое требование. Однако, остальные были немаловажны и мы стали думать. Продумав не одну бутылку рабочую смену, концепт игры был готов. Было решено сделать игру, в которой человек будет своими руками создавать произведения искусства. Вопрос о том, как это сделать долго не стоял — решением было признано использование витража. Он разбивался на части, а игрок его собирал вновь. Концепт одобрили все, дополнив деталями и превратив в увлекательную и красивую игру:

  • все кусочки витража подчиняются законам физики, за счет чего достигается особая реалистичность и уникальность процесса игры;
  • управление кусочками производится двумя пальцами- одним пальцем необходимо перемещать кусочек слекла, а двигая второй вокруг первого, вращать удерживаемый кусочек. Это похоже на то, как пользователи MacBook’ов вращают картинки на экране двумя пальцами с использованием touch-pad’а

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

  • делать все самому, приходится решать сразу несколько сложных задачи программирования:
  • реализация алгоритмов графики (вплоть до плавного вращения и перемещения картинок) ;
  • программирование физики (решение дифференциальных уравлений и много других ужасных на слух вещей);
  • реализация самого игрового процесса.

Так как в нашей команде программист был всего один — я, пришлось думать снова — разработка грозила затянуться надолго.

Здесь решение не заставило себя долго ждать — это было использование открытых графических и физических движков. Для графики мы выбрали cocos2d, который полностью бесплатен (всегда поощряются добровольные пожертвования, долгом сделать которое обременяется каждый использовавший движок человек), для физики за основу был взят box2d (в пожертвованиях тоже не отказано). Изучение мегабайтов англоязычной, часто неполной (особенно с box2d), документации и примеров заняло почти неделю.

Разработка игры в Xcode
Мы снова были готовы пуститься в бой! Оказалось, что пока я боролся с пучиной своих программистских страстей, остальные члены команды тоже не дремали и я увидел первые заготовки витражей и музыки по возвращении в реальный мир. Надо сказать, что идея действительно оказалась шикарной. Витраж — это поистине красивая вещь, на которую человек смотрит с замиранием сердца и трепетом. А создать его своими руками. Нет, я однозначно хотел сделать эту программу!

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

Разработка игры в Xcode
Однако, не все коту масленница, и я понял это когда взялся за программирование управления. Оказалось, что реализовать описанное выше идеальное управление практически невозможно. Вы можете мне не поверить, но, если у вас есть айфон, попробуйте найти приложение (стандартное или нет), в котором что-то вращается с использованием двух пальцев — одним удерживается, а вторым вращается. Я и сам не верил что их нет (или я их так и не нашел), пока не столкнулся с проблемой в упор. Дело в том,что для айфона прикосновения неотличимы друг от друга, равно как и перемещение пальцев и отпускание их от экрана. Задача казалась неразрешимой, но мне слишком нравилась идея. И, промучившись неделю, решение было найдено.

Скриншоты Glass Master
Забивать читателю голову техническими подробностями я, разумеется, не стану, а лишь сделаю вывод — не всякая элементарная на первый взгляд вещь так проста на самом деле. И вот, наконец, все было завершено и мы получили ту игру, которую хотели. Эта игра получилась уникальной как по своему содержанию, так и по управлению и музыке.

App Store

Как известно, для того, чтобы пользователи iPhone смогли загрузить игру на свои устройства, она должна появиться в магазине Apple- App Store. Однако, прежде чем опубликовать там свое приложение, нужно купить специальную программу разработчиков- iPhone Developer Program. Без ее покупки даже сам разработчик не может загрузить свое приложение на телефон.

Glass MasterОценивает Apple эту Developer Program ни много ни мало в $99 и просит оплатить посредством кредитной карты. Однако, для россии эта програма не предназначена и приходится заполнять уйму документации для оплаты этих $99. После отправки данных в Apple, через три дня они сняли деньги и прислали активационный код.

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

Надеюсь, Вам понравится наша игра, спасибо за внимание!

Данная статья была написана специально и эксклюзивно для macpages.ru, под редакцией MacPages.