...

суббота, 7 марта 2015 г.

[Из песочницы] Сто строчек кода для любимой

Я бы мог читать ей поэзию. Я бы мог забронировать столик в ресторане, устроить ужин при свечах: хорошее вино, услужливый официант, приличные люди вокруг. Нежно касаюсь её руки и шепчу:


— Любимая…








Но когда ко мне подошел коллега и сказал:


— Смотри, что я закодил для своей женщины.…



Я понял, что это — любовь. Это — навеки.

Я тоже хочу так.



Клон




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


Расчёт был прост:

  • Девушки любят вспоминать счастливые моменты вместе;

  • Девушки любят, когда мы помним все даты;

  • Девушки любят сюрпризы.




Игра точно попадала в целевую аудиторию, и мне, как профессиональному геймдизайнеру, было очевидно — эту идею необходимо склонировать. Но прежде стоило оценить риски.






















Мой вопросЕго ответМои мысли
Сколько времени ушло?Часов пять ночью.Отлично! Одну ночку посидеть.
На чем кодил?Unity3D.У меня за плечами — 12 лет в Game Maker.

С ним управлюсь и того быстрее!
Ей понравилось?Ты что, она была в восторге!

Не думала, что такое возможно.

Она со своим Андройдом на «Вы».

В игры не играет.

Только смски пишет и ВКонтакте сидит.
F*ck Yeah!



Последний ответ развеял все сомнения: игра стоила свеч, ещё как стоила! Остались технические нюансы.

Тэп по фотографии выводил текст прямо поверх неё. Если выбрано правильное фото, похвала и воспоминания. Если девушка не угадала, текст в духе: «Солнышко, неужели ты не помнишь?» И, опять же, приятные воспоминания. Никакого негатива. Реиграбельность (интересно ведь, что сказано о других снимках). Интуитивно понятный интерфейс.

Всего двадцать фотографий. По две на экране. Нажал — выбранное фото масштабируется и улетает вниз. Второе фото тут же исчезает. Появляются ещё два. И так далее.

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






— Стоп, а как ты сделал переворот?

— Просто меняю скейл карточки по иксу.

— Фуф… Отлегло.





Первая кровь




Я принялся за подарок в первую мрачную ночь. Притворился, что есть срочная работа.

Меня ждала адская прорва анимации. Но раз коллега смог, и я смогу. Помнится, он подключал библиотеку LeanTween для Unity3D. Я решил ответить на это TweenGMS в GameMaker: Studio.

Тут меня, жалкого эпигона, ждал первый подвох: раньше я никогда не анимировал через эту библиотеку. Она подключилась легко, но на изучение нюансов ушло какое-то время. Этой же ночью мне почему-то вспомнилось, что приложение коллеги автоматически адаптировалось под любые размеры экранов.


У моей девушки есть iPhone и iPad mini, а значит, нужно во что бы то ни стало подогнать игру под все разрешения вообще. Вы спросите, где логика? Три ночи. Я ухожу в дебри скейлинга, сажусь на крючок анкоров, привязываюсь к DPI. Впору заревновать. Светает… Первая ошибка Тони Вендиса.


Настоящий детектив




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

Следующей ночью было уже не до шуток: девушка заподозрила что-то неладное. Близились выходные, а я отчаянно не успевал. Оказалось, что подобрать двадцать фотографии за три года нашей совместной жизни не так-то просто: они разбросаны не только по папкам, но и по устройствам. Ещё сложнее узнать, какая была снята раньше. EXIF-данные отчаянно свистят. «И лампа не горит, и врут календари…» Приходится восстанавливать ход событий по её Инстаграму: нахожу посты в тех же локациях, выписываю даты, сверяюсь. Готово. Я МакКонахи, блин, я — True Detective.



Выходные. Скрывать сюрприз всё опаснее. Девушка поглядывает на меня, негодуя. Нужно срочно что-то решать. Я решаю, что нельзя просто так взять и добавить фотографии, нужно делать дизайн, чтобы каждый снимок под полароид. Ищу шаблоны Polaroid для Фотошопа, качаю плагин для чтения PSD в Paint.NET, обновляю Paint.NET. Спокойной ночи, любимая!


В белых домашних тапочках, шаркающей кавалерийской походкой мешая любимой спать, поздней ночью третьего дня разработки я вышел на кухню с ноутом: впопыхах делать подписи к фотографиям. Хочется добавить, что «закат догорал на галёрке китайским веером», но догорали нервы, а сроки сгорели дотла, когда я дописал, наконец, последнюю строчку кода, запустил приложение на своём андройде FNF iFive mini с экраном iPad mini и… 10 из 10, Господи! 10 из 10!





Доброй ночи и удачи




Осталась малость: незаметно установить приложение на её айпад. VMware, настало твоё время. Виртуальный мак ругается на сертификаты. iPad лежит в её сумке, сумка — рядом с кроватью. Ночь. Тьма. Я пытаюсь достать его, пальцы дрожат, сердце вот-вот выскочит из груди, она вздрогнула, я замер, она повернулась на другой бок. iPad у меня в руках! Я собираю приложение и валюсь с ног.

С утра, когда она собирается на работу, я передаю ей iPad и с гордостью сообщаю, что вот он — её сюрприз. Чтобы хоть как-то оправдаться, добавляю, что именно над ним я корпел последние два дня и три ночи. Милая иконка с сердечком:





Приложение запускается. Звучит наша песня. Сейчас вылетят карточки, такие красивые, совсем как мы. Сейчас… Сейчас… Можно, я покажу на своём планшете?

Перед рассветом























Его вопросМой ответМои мысли
Сколько времени ушло?Два дня и три ночи.Больше никогда!
На чем кодил?Game Maker: Studio.Никогда.
Ей понравилось?Она посмотрела и поблагодарила.Никогда…

Через два дня я услышу, как она говорит сестре:

— Куда ходили? Никуда… Он все выходные просидел за компом, со мной не общался. Что подарил? Ну, он сделал мне игру…





Наши отношения становятся напряженнее. Я не хочу больше думать об этом подарке.

Через неделю, переписав часть кода, я найду, почему игра работала на Android и не работала на iOS (TweenGMS не успевал инициализироваться).

И открою главную причину провала клона: оригинал создавался, исходя из возможностей. Мой коллега правильно оценил сроки, потому что видел в голове не результат и реакцию, но процесс от и до. Все фотографии были в телефоне и легко сортировались по дате. Он использовал LeanTween много раз. Unity UI автоматически адаптирует картинку под любое разрешение. У девушки телефон на Android. Он помнил, что времени мало, и не зацикливался на дизайне. Она знала, что он — программист, но не знала, что он ТАК может. Он не тратил их совместное время на разработку. Они часто выбираются вместе куда-то, а этот подарок был чем-то принципиально новым. Уникальность, момент, маркетинг, аудитория. Всего этого я, конечно, не учёл.


И тут меня осенило! Это и есть разработка игр, совсем как в индустрии. Ты играешь в Clash of Clans, читаешь о трёх месяцах на прототип, считаешь чужую выручку, и кажется, что клон — это лучшая идея. Спустя год разработки, когда момент выхода упущен, ты понимаешь, что потратил кучу времени и денег, и всё должно было быть по-другому.


Когда я, в конце концов, закинул рабочую версию на iPad девушки, она окинула меня, уставшего, понимающим, ласковым взглядом:



— Мне понравилось… Правда. Так приятно, что ты всё помнишь!





Завтра 8 марта. Я больше не буду учитывать. Стихотворение написано. Столик забронирован. Я ещё не знаю, что подарю ей, но знаю точно: мы заснём этой ночью вдвоём, друг у друга в руках, там, где раньше были планшеты.

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий