О запуске игры Clustertruck, первых успехах и троллинге: колонка основателя tinyBuild

27 сентября состоялся релиз инди-проекта Clustertruck для ПК и Playstation 4, который уже принёс студии Landfall Games миллион долларов, и готовится к выходу на Xbox One.

Основатель компании TinyBuild Алекс Ничипорчик написал колонку о том, как игра продвигалась с помощью Твиттера и форума Reddit, рассказал, почему нельзя выкачать бензин из американского грузовика и поведал историю троллинга стримеров на выставке TwichCon.

В закладки

Предыстория

Clustertruck родился на «геймджеме», также как и Party Hard и Punch Club. Я постоянно твержу разработчикам — участвуйте в конференциях, постоянно. Это полезно и для коллективного духа, и для развития навыков, и вы можете выиграть в лотерее, придумав следующий миллионный проект.

Все эти игры заработали миллионы, и сегодня хочу поговорить конкретно о Clustertruck. Забавно, что мы его подписали в день запуска Punch Club. Я помню разговор с командой и их шведским юристом, который был советчиком. Он начинал запугивать команду всякими примерами, как мы их можем кинуть. Послал его прямой дорогой на три буквы, объяснил команде, что репутация в этой индустрии важней чего либо другого, и мы подписались в тот же день.

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

● поддерживать ажиотаж игры (на форуме Reddit была куча гифок)

● построить сообщество

● сделать взрывную историю

● портировать игру на консоли

● сделать взрывной запуск

● успеть всё до четвертого квартала года

Поддержка

Геймдизайн работал с маркетингом один в один. Мы плотно сотрудничали с дизайнером и пробовали различные «шоукейсные» механики — чтобы было интересно видеть в анимации. Он постоянно кидал разные видео в наш общий чат, я нарезал на гифки и смотрели, что работает в Твиттере и Reddit.

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

Сообщество

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

Видеоблоггер PewDiePie играет в Clustertruck:

Взрывная история

Самым большим толчком для маркетинга стала наша первоапрельская шутка. В этот день мы запустили Super Track — это была реальная игра, которую мы выпустили бесплатно для всех. Все сошли с ума, узнав что это реальная играбельная демоверсия. Для участия нужно было оставить электронную почту — так мы набрали ещё 100 тысяч ящиков.

Выход на консолях

Про это можно говорить целый час — что я и буду делать в своем докладе на конференции DevGAMM Minsk. Основной проблемой с играми, родившимися на «джемах» — это качество кода. Часто начинаешь быстро экспериментировать, придумывать фишки, и забываешь о консолях. Консоли нынешнего поколения — это игровые компьютеры пятилетней давности. Современные ноутбуки имеют более мощные процессоры.

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

Поэтому когда мы экспортировали Clustertruck под консоли, средняя частота кадров была в районе 10 на PS4, и пяти на Xbox One. На оптимизацию ушло больше двух месяцев, и переписать пришлось почти весь проект. Нам было очень важно иметь 60 кадров в секунду при разрешении 1920х1080. Пришлось отключить сглаживание для производительности, а значит, запускать в разрешении 1280х720 было исключено.

За неделю до сертификации мы смогли дотянуть частоту до 50, но нужно было иметь стабильный 60. Пять дней, по 12 часов каждый день оптимизировали множество мелочей. Пару кадров тут, пару кадров там. Последним шагом было переписывание триггеров звука. Во всей сцене играла музыка, и мы сильно читерили с этим — не проигрывали звуки вдали. То же самое с физикой — она отрубается на грузовиках, что позади тебя, что слишком далеко, и мы просто убираем лишние грузовики из сцены.

Оптимизировать игры под консоли — это как изобретать волшебные трюки — дым и зеркала, и надеяться, что никто не заметит

Запуск и дата релиза

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

Мы знали, что у нас большой ажиотаж — из-за всего описанного выше — но мы также знали, что ни в коем случае нельзя выпускать в четвертом квартале (октябрь-декабрь). Тогда неважно насколько у тебя крутая игра, ибо 50 миллионов бюджета на маркетинг Battlefield 1, Watch Dogs 2, Titanfall 2, и всех других ААА-проектов, в любом случае не дадут нашему запуску пропихнуться в топы.

Последней надеждой была выставка TwitchCon в Сан Диего, в последние выходные Сентября. Наметили 27 число как дату релиза, и двигались вперед полным ходом.

Благодаря ажиотажу и предыдущей репутации, мы представили план Valve по предзаказам — и получили трехнедельный предзаказ.

Как мы заехали на грузовике на TwitchCon

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

Оказывается, в выставочные холлы нельзя ввозить транспорт с больше четверти бака бензина. Пожарная безопасность. Также нельзя снять напрокат грузовик без полного бака бензина. Думали — легко: сольем бензин и ввезем в холл.

Нужно было въехать в холл во вторник рано утром, до начала застройки. Иначе невозможно проехать — везде коробки будут. Сняли грузовик в понедельник днем. К ужину купили всё для сливания бензина.

Поужинали, стемнело — думаем, сейчас легко все сольем. Но нет. Из американских грузовиков невозможно слить бензин через шланг — там бак сделан с извилистым клапаном для безопасности. Семь часов вечера. Полный бак бензина. Через 12 часов надо въезжать в холл.

We just parked a truck in the middle of #TwitchCon2016 #clustertruck https://t.co/YxahEKZI4z

Что делать? Наметили маршрут и катались 300 километров вокруг Сан Диего. Больше 90 километров в час он не ехал. Было весело. Я удивлен экономией бензина. Заехали в IKEA, накупили кучу всякого в оранжевом цвете — коврики, столы, стулья.

Утром въехали в холл, застроили наш стенд, сделали уютный пресс-рум в грузовике.

Запуск и троллинг

А, еще в этот же день запустили игру. На тот момент у нас было пол миллиона долларов в предзаказах.

В день запуска была назначена интеграция с сервисом Twich. Она работала как в Party Hard — зрители могут голосовать за определенные модификаторы внутри игры. С одним маленьким исключением. Мы встроили в игру хак, дающий нашим аккаунтам возможность брать контроль над игрой.

Мы заходили в стримы и начинали троллить ведущих. Внезапно на экране появлялось сообщение в стиле «вас взломали». Потом игра спрашивает любимый цвет стримера, и все думают, что это какой-то бот пытается что-то сделать. Но стример говорит, например, розовый — и все грузовики становятся розовыми. И чат, и стримеры сходили с ума.

В неделю запуска мы ходили постоянно с телефонами и «хакали» популярные стримы. Это было на главной Reddit и пошло по всему TwitchCon.

Во время одного из сегментов на сцене, мы сидели в толпе и троллили популярного стримера — это было божественно

Публично я говорить о закулисных историях не буду, это мы обсудим в кулуарах DevGAMM’a. Но скажу, что на данный момент игрушка заработала больше миллиона долларов, и мы специально поставили цену в 15 долларов — что дороже, чем должно быть. Это часть плана по захвату мира.

#инди #индидев

{ "author_name": "Николай Чумаков", "author_type": "editor", "tags": ["\u0438\u043d\u0434\u0438\u0434\u0435\u0432","\u0438\u043d\u0434\u0438"], "comments": 91, "likes": 13, "favorites": 0, "is_advertisement": false, "subsite_label": "gamedev", "id": 1355, "is_wide": false }
{ "id": 1355, "author_id": 773, "diff_limit": 1000, "urls": {"diff":"\/comments\/1355\/get","add":"\/comments\/1355\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/1355"}, "attach_limit": 2, "max_comment_text_length": 5000 }

91 комментарий 91 комм.

Популярные

По порядку

Написать комментарий...

Sergey Babaev

8

Кстати, TinyBuild выделил нам ключи - готовы поделиться с теми кто предоставит ВК или ФБ для отправки в ЛС.

Ответить

Дмитрий Васин

Sergey
0

И мне, если можно. https://vk.com/dimmerg

Ответить

Oclas Grieger

Sergey
0

https://vk.com/id223461663 пожалуйста.

Ответить

Петр Плавников

Sergey
0

был бы жутко рад получить ключ-с
https://www.facebook.com/noob.lol.zomg

Ответить

Виталик Барканов

Sergey
0

От ключа не откажусь, заранее спасибо
Http://vk.com/whitesoula

Ответить

Kirill Karpov

Sergey
0

Буду очень благодарен! https://vk.com/kirill.s.karpov

Ответить

Марат Гараев

Sergey
0

Актуально ли еще? vk.com/mar_nk

Ответить

Артур Максимов

Sergey
0

http://vk.com/koorraz

Очень очень хочу игрушку

Ответить

Сергей Никитенко

Sergey
0

vk.com/n1ffz
Заранее спасибо :3

Ответить

Huanito Bykschov

Sergey
0

Я бы тоже не отказался от ключика) https://vk.com/huanitobyk

Ответить

Dmitriy Kibalnik

Sergey
0

https://vk.com/kelnmaari было б неплохо)

Ответить

Дмитрiй Маяковскiй

Sergey
0

https://vk.com/id38960484
Если ещё остались, был бы благодарен

Ответить

Иван Сосницкий

Sergey
0

Интересная статья. Из-за нее узнал об этом сайте. Хотел бы поиграть в эту игру. https://www.facebook.com/ivansosnitsky306

Ответить

Gleb Vodyanik

Sergey
0

буду благодарен :) https://vk.com/glebanych

Ответить

Даниил Ерошин

Sergey
0

https://vk.com/eroshin_dunil буду благодарен

Ответить

Алексей Петров

5

Кейс с троллингом стримером - огонь огней! :)
Ну и история про попытку слива бензина на грузовике - это пять)

Ответить

Eugene Dev

1

PewDiePew и новый подход к виральности дали свои результаты ) не удивительно , что уже 70 000+ копий продано

От ключа не откажусь
https://www.facebook.com/EugeneCells

Ответить

Андрей Ланнистер

0

Прошел половину игры, идея и реализация божественные, рад за успех разработчиков.

Но такие истории меня как одиночку разочаровывают. Хочется спросить, нельзя ли просто сделать норм игру, и чтобы без всей этой катавасии с стримами и выставками ее купили.

Ответить

Филипп Карманов

Андрей
1

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

Ответить

Evgeny Eliseev

0

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

автор не техспец, ему можно так писать)

Движок не является виртуальной машиной.
Физический движок PhysX, который используется в Unity, написан на C++ и не под какими виртуальными машинами не исполняется.

Ответить

Николай Чумаков

Evgeny
0

автор техспец, просто написал очень запутанно для обычного читателя, и это уже правка редактора

Ответить

Konstantin Boronenkov

Николай
1

Unity преобразует сборку в исходный код на C++, а потом уже компилятор C++ собирает под нужную платформу. Никаких виртуальных машин на целевом устройстве не крутится.

Алекс действительно больше продажник, а не техспец.

Ответить

Олег Железцов

Konstantin
0

С каких пор? Насколько знаю IL2CPP бекэнд поддерживается только на iOS и WebGL, для стенделон все еще .net mono, не?

Ответить

Konstantin Boronenkov

Олег
0

Introduced with Unity 5.0 and initially implemented for use with WebGL, today IL2CPP is also fully supported on iOS, PS4, and PS Vita, with experimental support available for Windows Store/UWP and Xbox One.

Отсюда: https://blogs.unity3d.com/ru/2016/07/28/unity-5-4-is-out-heres-whats-in-it/

Ответить

Олег Железцов

Konstantin
0

Т.е. для обычные десктопные билды, которые не UWP не поддерживаются?

Ответить

Олег Железцов

Олег
0

Причем это 5.4 версия, которая вот-вот, а игру небось делали на более ранних

Ответить

Konstantin Boronenkov

Олег
0

На PC mono, но для PC не принципиально, там есть запас.

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

Ответить

Александр Коротеев

Николай
0

Было запутанно для обычных читателей, стало запутанно для всех

Ответить

Sergey Babaev

0

Первая партия ключей разошлась

Ответить

Mcmike Creations

Sergey
0

Как будет вторая https://vk.com/mcmikes

Ответить

Евгений Голубев

Sergey
0

Так же для второй партии, если она будет, конечно: Vk.com/blackring

Ответить

Andrew Karpliuk

0

буду благодарен за ключ :) https://www.facebook.com/andrew.karpliuk

Ответить

Mikhail Chuprakov

0

Хорошая статья, Алекс как обычно рассказал самое интересное коротко и ясно :) Всякие кулстори типа как с баком для грузовика — вообще отлично)

Ответить

Евгений Николаевич

0

Очень интересная идея игры, динамика просто чудо =))

Ответить

Айрат Аюпов

0

ключики ещё остались? ))
vk.com/AiratBear

Ответить

Alex Kuznetsov

0

Буду рад ключу =)
https://www.facebook.com/alex.kuznetsov.39

Ответить

Даня Зиневич

0

большое спасибо
https://vk.com/d.zinevich98

Ответить

Mihail Medvedeff

0

Не откажусь от ключика
https://www.facebook.com/soslooow

По поводу игр компании - весьма забавный подход у ребят)

Ответить

Sergey Babaev

Mihail
0

ушло в личку на FB

Ответить

Mihail Medvedeff

Sergey
0

Личка пуста О_о

Кстати, на правах оффтопа, если регистрировался ещё на старом dtf - есть шанс восстановить аккаунт?

Ответить

Mihail Medvedeff

Sergey
0

извиняюсь, нашёл)
ох уж этот фейсбук... даже нотификейшнов на входящие не делает(

Ответить

Пётр Фадин

0

Был бы очень рад ключу!
https://vk.com/colour_your_mind

Ответить

Станислав Дашкевич

0

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

Ответить

Victor Vorobiev

0

https://vk.com/ptahptic
если еще есть)

Ответить

Олег Железцов

0

Кооператив есть?

Ответить

Daniil Hoff

0

https://vk.com/mnt1st
Если остался ключик

Ответить

Sergey Babaev

0

Оставшиеся ключи разошлём сегодня)

Ответить

Водный файл

0

<removed>

Ответить

Anton Riot

0

Что означает "представили план Valve по предзаказам"? Какой план? Как это происходит?

Ответить

Sergey Babaev

0

Ключи розданы, всем приятной игры.

Ответить

Arty Rey

0

Nooooooooooes! Не успел! (>‘o’)>

Ответить
0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]