Pull to refresh

-Радар-. Не cовсем обычный пазл под iPhone

Reading time3 min
Views728
Что на радаре, %username%?



Под катом небольшая история о создании простенькой казуалки под iPhone.


Предыстория

Когда-то давно наткнулся в интернете на интересную flash игру Z-Rox.

Идея игры проста до безобразия, но в то же время удивительно хороша.
Это своего рода одномерный пазл, неизвестный вам символ сканируется сверху вниз и все что вы видите — тонкая горизонтальная полоска то и дело меняющая свою ширину. Кстати, это объясняет и название игры, созвучное со всем известным словом Xerox.
По этим мечущимся черточкам нужно отгадать, что же это за символ.
Надеюсь объяснил доступно, хотя легче просто попробовать самому.


Игра англоязычная, содержит 100 уровней, ну да не в этом суть, это только предисловие.

Теперь к делу

Есть у меня хобби — программировать под iPhone, точнее iPhone OS.
Идей множество, свободного времени ноль, все хочется попробовать, все хочется сделать. Конечно же, довести до ума удается совсем немногое, засиживаться за одним проектом долго не удается, становится скучно и все труднее самого себя мотивировать.
Поэтому меня особо привлекают идеи, которые очень интересны и, на первый взгляд, просты в реализации.

Вот почему у меня загорелись глаза, когда я наткнулся на эту игрушку в очередной раз. Я понял, что тут практически нечего имплементировать.
Один png с прозрачной полоской посередине, за ним сверху вниз прогоняется UILabel с буквами алфавита, цифрами и юникодными символами. Алфавит большой, юникод тоже, 100 уровней наберется враз.

Одно смущало, некрасиво как-то.
Идея замечательная, но придумал ее не я, и тупо воровать не хотелось.
Но руки-то чешутся!
В конце концов я решил написать разработчику оригинальной игры и спросил его в лоб: «что если я позаимствую идею?». Ну нет, конечно же не так в лоб и не такими словами, но спросил.
Ответил он быстро. В кратце он сказал мне спасибо за уважение к чужому труду и добавил, что сам работает над портом игрушки под iPhone и другие платформы.

Ну что ж, не судьба, руки чесаться перестали… на пару дней.
Ведь буквально в то же время, коллега на работе предложил вместо сканирования полоской гонять по кругу сектор, как на радаре.
Я сначала не брался за реализацию, тогда казалось, что изначальная идея с полоской самая оригинальная и любые попытки от нее отойти уже делают игру не такой интересной.
Но я решил попробовать.

Несколько недель кодирования вечерами, прогон по фокус группам «коллега» и «семья», неумелое ковыряние в фотошопе чтобы придать программе хоть какой-то внешний вид, 3 версии завернутые назад Apple (использовал картинки защищенные копирайтом) и в финале игра попадает в апстор.


Линк на игру в AppStore

Я до сих пор уверен, что в приложении все очень просто.
Тем не менее, некоторые люди застревают на 2-м уровне, а один уникум умудрился застрять на первом да еще и написать об этом в своем отзыве.

Немного фактов

  • Игра полностью бесплатна, содержит встроенную iAd рекламу, достаточно ненавязчивую.
  • Для работы нужна прошивка девайса не младше версии 4.0.
  • Игра локализована на 2 языка: английский и русский, причем это не просто перевод, а во многом различный набор уровней. Помимо использованого алфавита, только в русской версии можно встретить некоторых мультперсонажей и интернет мемов, не знакомых западному обывателю.
  • На радаре могут быть не только ASCII или UNICODE символы, но и произвольные картинки.
  • Поддерживается OpenFeint, а именно их Leaderboards и ачивки.


UPD:
Огромное спасибо за коменты и советы по поводу поддержки прошивки 3.1.
Действительно, настройка Target Platform, Weak linking для iAd и conditional coding с использованием NSClassFromString решили проблему.

Отдельное спасибо за отзыв в AppStore с указанием огрех в поддержке многозадачности.

Только что собрал и отослал на рассмотрение версию, которая:
  1. Работает на прошивках начиная с 3.1
  2. Грамотно поддерживает многозадачность (сохраняется прогресс и перезапускается анимация)
  3. Дает гораздо больше чем раньше OpenFeint очков за ачивки
Tags:
Hubs:
Total votes 28: ↑19 and ↓9+10
Comments49

Articles