Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

в 7:39, , рубрики: game development, браузерные игры, Веб-разработка, разработка, метки:

Итак, в мае 2013 года на хабре появилась статья «Сколько стоит сделать браузерную игру», где господин viacheslavnu пробовал посчитать — какая сумма средств потребуется на создание и продвижение, казалось бы, простецкой игры для офисного потребителя. Если кто не помнит – сумма получилась в районе 25 миллионов рублей. На тот момент я сам несколько скептически отнесся к указанной сумме, но чем ближе подходила дата нашего старта, тем больше я убеждался, что даже для таких проектов нужны «особенные» вложения капитала, которые не всегда по карману разработчикам без инвестора со стороны.

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

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

Стоит сперва-наперво уточнить: реализуемый нами проект — очередная «браузерка», коих на рынке в настоящий момент предостаточное количество. Но, с попыткой угнаться за «модой» и ритмом жизни, разработчики «браузерок» напрочь забывают цель подобных игр – коротать время между повседневными делами, выстраивать общение и азартное противостояние, а не погружаться в них с головою. Для подобной цели есть те же Танки.

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

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

Вы вообще кто, уважаемый?

Начнем с самого начала, дабы пояснить причины такого проекта. Я – PHP-разработчик, пытающийся работать с Yii framework, знакомство с которым произошло благодаря моей первой официальной работе в вебстудии «местного разлива». Я далеко не гений своего дела, не знаю досконально всех тонкостей языка и фреймворка, но, как оказалось на практике, моих знаний достаточно, чтобы более-менее спокойно себя чувствовать при появлении нестандартных задач.

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

Стоит еще разок уточнить, что на момент начала разработки мои знания Yii ограничивались опытом работы, над более-менее крупными проектами, насчитывающим шесть месяцев. Поэтому о цели получения опыта (конкретно для меня) я ни разу не соврал.

Где взять людей?

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

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

Как же заинтересовать участника команды при полном отсутствии бюджета (то есть, отсутствия текущей материальной заинтересованности)? Решение в нашей команде было следующим: необходимо каждому потенциальному участнику сказать ровно столько, сколько ему необходимо и достаточно знать для начала работы.

Я, честно говоря, не могу сказать за всех, но для разработчика нужна конкретика – цифры, объем работ, описание действий других участников, в общем счете – план. И для меня он был предоставлен: есть идейные генераторы, есть примеры раскрутки проектов, есть ряд первичных задач, с которыми даже при текущих знаниях я смогу полноценно работать над проектом. Больше мне знать ничего не нужно, помимо того, что проект будет развиваться всесторонне, и я не должен делать за всех абсолютно всю работу.

Лапы, крылья и печеньки

Собравшиеся в команде люди имели достаточное представление о «браузерках», знали их сильные и слабые стороны. Понимали, что кардинально новое сделать вряд ли получится – мы ограничены в графике (всего один художник), один программист (ограниченный в знаниях и возможностях), у нас нет flash-программиста. По этим причинам мы остановились на статичной графике и старой доброй механике, которая живее всех живых еще со времен «Бойцовского клуба».

Выделяющиеся из толпы конкуренты были определены сразу. Помимо вышеупомянутого «Бойцовского клуба», в некий топ вошли: «Ботва онлайн», «Bad Pets» и «Мосвар». При этом последние трое уже давно отхватили каждый по своей доле игроков и спокойно развиваются в своем направлении, не мешая друг другу. У одних «свинтусы» и «барантусы», у других «пингвины», «кошки» и «белки», а у третьих — своя атмосфера.

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

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

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

Поток мыслей

Сейчас, оглядываясь на два года назад, понимаю, что работы проделано несказанно много. И не только в виде кода, но и в виде скомпонованных идей, составивших мир игры.

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

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

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

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

В каждом начале проекта есть свои ошибки

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

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

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

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

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

Чуточку позднее этот хаос был упрощен:
Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

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

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

Со временем угасание интереса участников команды к проекту только прогрессировало. Былой пыл и уверенность, наверное, остались лишь у двух человек: меня и координатора проекта. Периодически наплывы случались и у художника, однако, большую часть времени все равно ему требовались «нагоняи».

Пока непосредственная разработка шла ударными темпами, на несколько месяцев пропал из виду один из концептщиков. Второй, как оказалось, был попросту не в состоянии выразить свои мысли в письменном виде – я как более-менее грамотный человек, не мог прочитать абзац текста, в котором не содержалось знаков препинания, и который вместо смысла был наполнен одними эмоциями.

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

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

Используйте аутсорс там, где это необходимо, даже если у вас нет бюджета

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

Я в принципе не люблю верстать. На время верстки я превращаюсь в ребенка-истеричку, стучу ногами по полу, бью кулаками по столу, вою всеми доступными вариантами и иногда бьюсь головой об стол. Нет, я могу какие-то элементы исправить в верстке, могу отдельному куску сайта придать нужный вид, но делать это с нуля со спокойными нервами – это не мое.

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

Проект начал тормозиться, код на полу-готовой верстке рисовался неуклюже, в проекте наступила пора стагнации. За неимением вариантов, координатор проекта какими-то неведомыми силами и без участия художника набросал в photoshop «облачный» вариант дизайна:
Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

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

Увидев эффект от избавления меня от верстки, координатор проекта полностью принял на себя функции верстальщика и в дальнейшем не раз переверстывал макет целиком. Следом за скоростью разработки повысилась и скорость отрисовки иллюстраций. Многие из них так и не вошли в финальную версию игры, но результат был достигнут – работа над проектом сдвинулась с места. Пока я занимался своим делом, координатор проекта заказал у знакомой девушки иллюстрацию дуба для воплощения идеи нового дизайна.

Да, в итоге дизайн переделывался многократно, эволюционировал и ждал того момента, когда мы смогли бы сказать: «Стоп, сейчас мы довольны и нас все устраивает». Так появился дуб.
Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

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

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

Очередная волна

Получив первые отзывы, началась новая волна ускорения разработки, и я был несколько горд за проделанную работу: каждый кусок сайта делался с той мыслью, что мы будем рвать на себе волосы от того, что загрузка сервера будет на пределе и нам срочно придется заниматься оптимизацией. Даже если проект не принесет ни копейки прибыли, я уже получил свою выгоду.

На то время я лишь в общих чертах понимал принципы построения систем под высокие нагрузки. Где-то пришлось экспериментировать, периодически переписывать, улучшать, пытаться спрашивать у знакомых. Проблема состояла только в том, что я был ограничен рамками PHP – у меня не было времени изучить что-то другое и, тем более, возможности переписать значимую часть проекта под более совершенные технологии.

Куда же деть лень?

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

Так, после очередного создания таблички, вынесения в админку CRUD, привязки сверстанного дизайна к простому функционалу — абсолютно не хочется заниматься очередной такой задачей. И тут помогает режим параноика: «А что делать, если случится некий кабздец?» Для каждого придуманного «кабздеца» придумывается легкое решение, которое сведет «кабздец» к минимуму, либо предотвратит его. И зачастую такие задачи больше всего запоминаются в проекте, и ими хочется с кем-то поделиться, однако подчас решения таких задач достаточно просты и интуитивно понятны (если о них задумываться), поэтому не полноценные «гайды» или сборники интересных моментов не хватит материала.

Возьмем хотя бы такую ситуацию, когда сервер упал и не поднимается. Благо мы разумные люди и делаем бэкапы, но объем данных таков, что быстро поднять его на любой другой машине не удастся – минимально это займет от 20 минут до часа. Но ведь если разделить данные на «важные» и «не очень», то достаточно развернуть бэкап с основными данными, чтобы восстановить работоспособность системы, а остальное уже пускай подтягивается через час-другой. Эту задачу можно решить средствами программиста, если не хватает знаний администрирования. Данные, которые можно было ненадолго потерять (в нашем случае — логи боев, письма, тикеты техподдержки, клановые письма и пр.) можно перенести в отдельную базу данных, которая может восстанавливаться из архивов дольше основной, и при этом система вполне может работать после быстрой развертки минимально необходимого для работы архива основной базы. По предварительным расчетам на нашей системе, соотношение дополнительной базы данных к основной составило: 70 к 1 – существенная разница при больших объемах данных.

Другие приемы, которые действительно помогли в разработке, оказались еще проще. Например, для каждого действия в системе необходимы расчеты с коэффициентами: скажем, количество призовых монет равно уровень * 5 * какой-то шанс. И чтобы для поддержания корректного баланса игры не приходилось лазить по всему коду в поисках формул, эти непосредственно расчетные механизмы вынесены в статические функции в класс Formula. Отныне достаточно зайти в один класс и исправить нужные параметры, добавить новые, убрать ненужные.

Аналогичным образом, во избежание поисков текстовых описаний непосредственно в классах проекта, повсеместно используется Yii::t(). На самом деле, данный функционал обычно используется для поддержки мультиязычности, но чем плохо его использование для отделения кода от литературного описания ошибок пользователей?

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

Рубленый дуб на зубочистки

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

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

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

Промо-страница просуществовала два месяца без какой-либо раскрутки – всего лишь созданы пустые группы в социальных сетях и приглашены друзья. За два месяца, без какого-либо подогревания интереса к игре, свои адреса почтовых ящиков для записи на бета-тестирование оставили около 100 человек. Не то, чтобы сумасшедшие цифры, но ведь для этого результата мы не прилагали никаких усилий.

Очередные изменения в команде

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

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

С действующим же художником состоялся очередной разговор «по-взрослому», цель которого заключалась в том, чтобы дать ему последний шанс, но на условиях ежедневной отчетности о проделанной работе. На вопрос о сроках отрисовки оформления поступил ответ: 2 дня. Нервно похихикав, мы махнули рукой и дали добро на столь оптимистичный план, при этом я предлагал одновременно с этим подстраховаться и заказать дизайн у нашей новой художницы – в худшем случае у нас был бы один дизайн, с которым можно было бы работать. Координатор проекта слегка схитрил и не стал этого делать – оставим это на его совести, тем более что работа над оформлением все же сдвинулась с мертвой точки.
Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

Конечно же, срок в 2 дня был далек от реальности, но это уже не настолько было важно. В июле 2013 года от проекта окончательно отказались концептщики, без объяснения причин. Учитывая тот факт, что их трудовая деятельность закончилась еще на ранней стадии проекта, сюрпризом это не стало. В итоге, в команде осталось 4 человека – два художника, координатор-мастер-на-все-руки и программист.

К середине июля появился ночной вариант оформления дизайна, меняющийся на дневной в зависимости от игрового времени суток:
Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

А выдержит ли?

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

На тот момент у нас на руках имелись две виртуальные машины в Hetzner – vq7 и vq12, на которых мы тестировали всю работоспособность сайта и поддержку репликации. На vq12 находилась, в том числе, и dev-версия, куда попадали обновления доступные только для разработчиков.

Осознав, что можно консольной командой сгенерировать сколь угодно пользователей и выполнить сколь угодно функций, я за пару часов набросал несколько скриптов. Скрипты создавали пользователей в нужном количестве и проводили между ними сражения с заданной частотой (проведение сражения требует наибольшее количество ресурсов для расчета, поэтому эту функцию можно было взять за показатель).

Виртуальная машина с легкостью выдержала наличие 10 тысяч пользователей (включая расчеты по поиску пользователей, пополнению здоровья и прочие функции, которые касаются массовых выборок), а потом и 20 тысяч пользователей. С максимально доступной частотой был запущен механизм проведения боев между случайными противниками – в среднем бой рассчитывался за 2-3 секунды. Не шибко хороший показатель, но это же была виртуальная машина, что казалось вполне приемлемым результатом.

Любопытство несколько захлестнуло меня: показатели использования процессорного времени и оперативной памяти были далеки от 100% загрузки. Во время некоторых разбирательств MySQL начал рассказывать страшные истории про запись tmp-данных на диск, которые не хотели вмещаться в память. А на самом деле, проблема заключалась в шальном ORDER BY RAND(), который неожиданным образом закрался в поиск противника для боя. Перенос выбора случайного противника в PHP-код решил проблему узкого места, и скорость работы расчета боя увеличилась в 30 раз – до 10 запусков в секунду. Учитывая, что мы рассчитывали на проведение 2-3 боев в секунду в реальных условиях, что выдержала бы и имеющаяся виртуальная машина, мы были очень довольны результатом.

Сроки установлены

Ближе к августу 2013 года мы окончательно определились с датами запуска проекта. 30 августа должен был состояться запуск официального альфа-тестирования, куда были приглашены чуть более десятка тестировщиков. Первичный старт, называемый закрытым бета-тестированием, был назначен на 2 декабря. Старт игры получил дату – 3 марта 2014 года. Насколько долго можно делать браузерную игру, не имея огромного бюджета в кармане

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

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

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

И тут до нас стало доходить, что качество разработки – как кода, так и продуманности игрового мира, идеи, общего дизайна и иллюстраций – вышло на тот уровень, что после запуска можно спокойно ощущать себя среди аналогичных конкурентных «матерых» проектов. Был лишь один момент, с которым мы откровенно проигрывали – у нас не было бюджета на рекламу, единственное, что мы могли себе позволить — это неким мифическим способом набирать себе статус через социальные сети. Для этой цели была придумана история, разделенная на небольшие главы, – эта история с 19 сентября публикуется раз в два дня вместе с одной из иллюстраций игры в социальных сетях. Тем самым мы рассчитывали поддерживать интерес и набирать базу подписчиков, готовых начать игру в момент запуска. К концу первой декады октября ситуация по количеству заинтересованных оказалась не шибко радужной – порядка 130 человек записавшихся на бета-тестирование.

Преддверие старта

В начале ноября количество запросов на участие в бета-тестировании перевалило за 150 – совершенно «копеечное» число, и в голове поселились смешанные чувства.

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

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

И вот, наступает назначенное 2 декабря – дата, которая должна была ознаменовать старт «закрытого бета-тестирования» игры. В назначенный час мы разослали приглашения всем, кто оставлял свои заявки на промо-странице, коих оказалось почти 200 человек, и буквально через минуту после отправки пошли первые регистрации.

Прошла неделя, зарегистрировано чуть больше ста шестидесяти человек, из которых большая часть периодически возвращается в игру, а одномоментный онлайн составляет от 15 до 50 человек из зарегистрированных. Механизм привлечения посетителей, на который мы очень сильно надеемся (приглашение друзей в игру), потихоньку начинает действовать – более пятидесяти человек пришли к нам именно по зову друзей. Цифры, конечно же, смешные, я не говорю, что это уже «success story», но не имея многомиллионного бюджета на рекламу, мы не можем похвастаться другими результатами.

Сколько человек нужно, чтобы завершить проект?

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

С учетом всех, кто принимал участие, но вышел из проекта, 99% реализовали четыре человека за два года. Сухие цифры — на проект потрачено около 80 000 рублей. Из которых на разработку ушло 35 000. Остальное – на тестовые сервера и оформление «ООО». Это может сказать о том, что вся работа, которая могла быть выполнена командой — выполнена силами команды, и ни о каких-либо астрономических суммах речи не идет.

На текущий момент в проекте насчитывается более 8000 коммитов в более чем 1500 файлах, которые в общей сумме занимают около 15 Mb, без учета графики. База данных состоит из 130 таблиц, а в списке CRON-задач на сервере числится около 40 записей. На проект потрачено ориентировочно 10000 человеко-часов, которые ушли на решение более 2000 задач. Дизайн менялся 4 раза, двигаясь к ожидаемому идеалу, отрисовано более 300 иллюстраций, не включая различные степени детализации при изменении масштаба изображений.

Разработать игру, даже, казалось бы, простую, стандартную, коих полно, — ни разу не оказалось простым занятием, тем более что мы сами себе усложняли проект вводом дополнительных интересных задач, но – это ни в коем случае не пустая трата времени.

Автор: brntsrs

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js