1 August 2015

История одного клона

Development for iOSGame developmentDevelopment for AndroidDevelopment for Windows PhoneDevelopment for Windows

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


Однажды прохладным весенним вечером 2013 года захотелось мне сделать собственный аналог приятнейшей старой игры Scorched Earth, но с разными вытребеньками. Под хорошее настроение и заводную музыку я бросился кодить на первом попавшемся под руки IDE и фреймворке. По злой иронии это оказался WFP для Windows 8 Store. А вот для полета снаряда и реакции окружения я взял Farseer Engine — C# порт Box2D.
Сам уже не помню, как от идеи разрушаемой земли и баллистических ракет я перешел к катапультам, строениям из блоков и монолитному ландшафту. Так и началась двулетняя история моего клона Angry Birds.


Лето


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


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


Тогда я решился связаться с художником напрямую и заказать ему рисунки «задников» для локаций игры. То, что вышло в результате перевернуло все с ног на голову. Картинки локаций казались произведением искусства по сравнению с остальным моим контентом и модельками орудий, слепленными на скорую руку моим товарищем в 3dsmax.

Медленно пришло осознание, что проект выходит на другой качественный уровень, и понеслось: для соответствия фонам локаций я заказал другому художнику иллюстрации, сам доработал и дорисовал модельки орудий в 3d и 2d, чтобы подогнать по стилю, научился работать с форматом редактора Gleed 2D и начал рисовать уровни один за другим, заказал амбиент музыку для локаций, купил саундтрек для основной темы и многое-многое другое. Чтобы игра была не «просто клоном» я придумал киллер-фичу: противники стали огрызаться и атаковать игрока.
Лето заканчивалось.


Осень


Когда началась осень я уже видел, что задрал планку качества слишком высоко, а ресурсов слишком мало. Я уже умел неплохо рисовать стильные рамочки и кнопки в фотошопе, сумел сделать из трех разных магов все 7 с помощью фильтров и эффектов, редактировал звуки и музыку, подгонял цветовую гамму иллюстраций, вел переговоры с локальным офисом Microsoft о фичеринге и устройствах для тестов, придумал под сотню разных уровней, посадил зрение на 0.1 по таблице Сивцева. Жена всерьез посматривала на чемоданы — намекала, что пора на море; все работы по игре я делал сам, голова кипела. Неделя отпуска немного разгрузила мозг, но существенно ничего не изменила.

На фоне всего этого я редко задавался вопросом, почему акцент сместился с «трешнячка» с краденой графикой на масштабный проект с сотней уровней, а вместо движка я использую WPF Canvas, Rectangle и ImageBrush. Эту лютую связку я достаточно хорошо отладил, использовал сложные трансформации, имитировал параллакс эффект для фонов, пусть и тратил на каждую такую операцию непростительно много времени. Какое-то время я себя успокаивал, что это все даст мне покрытие сразу четырех платформ: десктопный Windows, мобильный Windows Phone 8 и планшетный Windows 8, а заодно и Silverlight версия для веба. А уже для Android и iOS я что-то придумаю. Благо, Visual Studio не доставлял особых проблем, а устройствами и лицензиями Microsoft меня обеспечил.
Тогда же я невероятным усилием сделал полуавтоматический порт с C# + WPF Canvas на JavaScript + HTML5 Canvas, чтобы поучаствовать в конкурсе на Tizen и просто выйти в веб, а может и на другие платформы без нативного кодинга.
Была выложена версия в Tizen Store, Windows Marketplace и Windows Store и готовы три локации из пяти, когда полетели белые мухи.


Зима


Холодный сезон я начал со сдержанным оптимизмом — купленные обзоры и фичеринг от Microsoft приносили много закачек, правда дохода игра принесла совсем мало — около $50 за полтора месяца, хотя на обзоры и рекламу было потрачено вчетверо больше. Я связывал это с кучей факторов, непопулярностью Windows Phone, ненавязчивой монетизацией через In-App покупки и т.д. Две последние локации все оставались закрытыми, но я пока не мог найти в себе силы сделать уровни для них и выпустить масштабный апдейт. Веб версия нещадно тормозила на Tizen эмуляторе и на мобильных устройствах Apple и дешевых Андроидо-фонах, потому была заброшена.
Тогда же пришла идея выложить десктопную версию на Desura и Steam. С первой проблем не было, а во втором оказалась сложная процедура аппрува сообществом через Steam Greenlight. Именно в Greenlight сообществе я впервые услышал мнение, что игра — говно.
Затем был день рождения кого-то из родственников и я подсунул планшет с игрой 12-летнему племяннику. Он честно прошел 17 почти одинаковых первых уровней, три раза попробовал пройти 18й и начал искать, что еще есть поиграть на планшетике.
К новогодним праздникам цифра дохода дошла до $100, что вместе с продажей призов от конкурсов хоть как-то смогло компенсировать треть расходов на графику и рекламу.


Весна


К апрелю месяцу скачивания на Windows Phone стабилизировались на уровне 0-3 загрузки в день и до 5 загрузок на Windows 8. Проект пора было закрывать, но все еще крутилась мысль доделать последние две локации, но уже как-то иначе. Я разместил объявление о поиске левел дизайнера на рисование 30-40 новых уровней и адаптации старых. Через какое-то время нашелся интересный исполнитель, мы разговорились, обсудили ситуацию и я в очередной раз услышал, что игра — говно. Парень оказался опытным гейм-дизайнером и вместо разработки уровней я у него заказал детальный план по переделке игры для максимальной привлекательности и играбельности. Левелы согласился делать другой исполнитель (не преминувший заявить, что все готовые уровни — говно) и все, казалось, может ожить и заиграть, особенно на iOS. И тут WPF нанес коварный удар — код портироваться на нативные CGLayer и пр. он отказался в принципе. По-сути, надо было переходить на нормальный движок, но сил и желания не было. Я поблагодарил левел и гейм дизайнера, оплатил их время и закрыл проект.

Год спустя


За год я успел отойти от тяжелого поражения, выпустил кучку мелких и два средних проекта, поработал на телеком гиганта в коммерческом проекте. Клон был успешно забыт, контент и код хранился в архиве, но вдруг осенью 2014 пришло сообщение, что игра получила аппрув в Steam и её можно выкладывать в продажу. Это было странно, это было дико, это вызвало море эмоций. Но делать я ничего не стал — выкладывать проект, чтобы услышать снова про, извиняюсь, говно, очень не хотелось.
Тем временем мой самописный OpenGL 2D движок для одного Point&Click квеста успел неожиданно заматереть и стать достаточно стабильным, а заодно и позволял писать бизнес логику одновременно для iOS/Android/WP/W8/XP/Mac. Такой себе, доморощенный велосипед, который пришелся больше по душе, чем Unity со товарищи. Под этот движок я придумал очередной мелкий проектик «на два месяца» и с началом лета 2015 вышел на прошлогоднего левел дизайнера дабы продумать уровни к новой игре. В ходе бесед с ним и новым партнером и родилась крамольная мысль возродить птице-клон на новом движке. Пара экспериментов показала, что это теперь в разы проще, чем прямой порт с WPF на нативную графику iOS.
Как результат, новый проект был поставлен на холд и два месяца мы потратили на воссоздание игры. Были выброшены 80% старых уровней, переделан геймплей по плану прошлогоднего геймдиза, уменьшено количество повторений, улучшена графика, реализованы все локации и т.д. Одним словом, игра пережила второе рождение, а заодно были сделаны ачивменты, трейд карты и баджи для Steam.


Релиз


На прошлой неделе я выложил игру сразу в три маркета — iOS, Android и Steam. Первые два бесплатно с покупками, в Steam платно, примерно за доллар. Естественно, не обошлось без патчей в последнюю минуту; были баги и краши, внезапно не проходимые уровни и т.д., но все получилось оперативно уладить. Сообщество Steam восприняло игру весьма позитивно, количество негативных отзывов составило всего около 20%, покупки идут и сейчас, несколько человек уже прошли игру и взяли все ачивки, идет торговля картами и выкладываются скриншоты.
Одним словом, это была бы история со счастливым концом, если бы не показатели iOS и Android версий — в результате стартового фичеринга и обзора на 4pda стало ясно, что у нас есть аж 50 игроков и ни одной покупки. И это как бы не удивительно, ведь на этой же неделе вышли Angry Birds 2, где, похоже, свиньи могут атаковать игрока…


Резюме


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

Tags:играклонистория не-успехатриллерsteam
Hubs: Development for iOS Game development Development for Android Development for Windows Phone Development for Windows
+38
23.6k 82
Comments 32
Popular right now
Business Development Manager
from 60,000 to 270,000 ₽EVEN LabМосква
Hyperscale - Performance Engineer
from 150,000 to 350,000 ₽Rubrain.comRemote job
Full-stack web developer
from 150,000 to 300,000 ₽Rubrain.comRemote job
Dart / Flutter Engineer (remote)
from 2,300 $Petrosoft LLCRemote job
Web Developer (Kotlin Sites)
from 150,000 ₽JetBrainsСанкт-Петербург