Велосипедостроитель
3,4
рейтинг
6 марта 2015 в 14:03

Разработка → Разработка «браузерки» — год жизни и три года мучений

Фактически прошел год с момента последней статьи — весь год молчание было связано больше с отсутствием масштабных интересных моментов, кои, по большей части, были освещены в первых статьях [1, 2, 3, 4]. Однако новый рассказ как минимум может осветить итоги годовой работы проекта с момента старта в публичный доступ.

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

Пернатск :: Лабиринт мрачного леса

Рабочий процесс и команда


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

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

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

Пернатск :: Канат власти

Общество и известность


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

Например, совсем недавно возникла проблема, делавшая практически невозможным проведение платежей через Робокассу по банковским картам, и мне пришлось несколько раз писать и звонить в «саппорт», дабы решить этот вопрос. В один из подобных звонков девушка-менеджер все-таки передала мой звонок с «первой линии обороны» до фактического отдела технической поддержки. Я сообщил номер транзакции, по которой были жалобы со стороны пользователей, после чего услышал примерно следующее: «Одну минуту, ищу транзакцию. Да-да, вижу, платеж по банковской карте, сто рублей, магазин Пернатск. Пернатск — это игра? Я про вас на Хабре читал». К слову сказать, решение проблемы началось именно с этого звонка, как и было обещано, нашу ситуацию решили в указанный срок и в нашу пользу — премного благодарны. Правда, проблема потом возникла снова, и снова, и снова, вплоть до ежедневных звонков на линию и начала разговора с другими банками на тему эквайринга.

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

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

Чужие деньги


Один из самых главных вопросов любого «стартапа», коим мы не считаем нашу команду и наш проект, выступает «Сделать – сделаем, но у кого взять денег?». Проблема финансирования, казалось бы, в наше время не является проблемой как таковой — при наличии стартап-тусовок, огромного количества инвесторов, кикстартера и прочих подобных проектов — уж выбрать всегда есть из чего. Однако кто-то думает о финансировании, останавливая проект для поисков, кто-то вместо этого пытается решить проект своими силами — и мы выбрали второй вариант.
Пернатск :: Орлы
Не скажу, что мы не искали инвестиции, даже наоборот, пребывали в неком пассивном поиске на протяжении нескольких месяцев: размещали предложения на инвестиционных площадках типа napartner.ru, разговаривали через знакомых с «большими дядями», которые потенциально могли бы вложить денег (а денег требовалось действительно много, иначе все финансирование не имело смысла). И скажу даже больше — несколько раз начинали закручиваться интересные разговоры на тему движения денежных средств. После размещения на napartner с нами связался один из инвесторов, с которым мы достаточно долго общались в течение нескольких дней, но все закончилось потерей интереса со стороны инвестора после получения полного расклада по нашим текущим на тот момент доходам (пресловутые APRU\ARPPU и тому подобные показатели, которые нас фактически не сильно интересуют, но очень интересуют людей с деньгами). Мучить человека дальнейшими вопросами мы не стали: не интересно — так не интересно.

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

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

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

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

Пернатск :: Тотем

Свое дело, свои ресурсы и своя прибыль


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

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

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

Реклама


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

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

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

Пернатск :: Бобер ЗомбычИ наконец, с увеличением рекламного бюджета стал доступен вариант рекламы через CPA-сети. Повезло наткнуться на одну из сетей, которая предоставила более-менее адекватный сервис, где менеджеры понимали, что они делают — провели тестирование трафиком, определили целевые достижения, сконвертировали стоимость регистрации в уровневые цели. По мере того как иссякал рекламный бюджет, мы смотрели на прибыль от подобной рекламы, которая примерно равнялась вложенным средствам, что было вполне достаточно для постепенного развития проекта. Я понимаю, что люди, которые работают через CPA в качестве вебмастеров, размещающих у себя рекламу, аналогично инвесторам, хотят получить свой кусок прибыли, и вольны выбирать тех рекламодателей, которые платят больше и быстрее, но мы не могли в то время позволить себе отдавать большие средства на цель в «регистрацию» или цель, «достижимую за 2-5 минут» игрового времени. Две цели, работающие в нашей кампании, достигались за несколько часов и два-три дня соответственно, и по конечному эффекту равнялись изначальной тестовой эталонной сумме в 15 рублей за регистрацию.

Впоследствии вебмастера переставали направлять трафик на наш проект, переходя на более выгодные площадки, и с нашей стороны не может быть претензий, однако для нас увеличение цены целей или переход на минутные достижения равносильно пустой трате средств, что не даст никакого обратного эффекта – мы, конечно, скорректировали свои цели в пользу вебмастеров, но, опять же, в рамках разумного. Помимо той CPA-сети, с которой нам довелось работать (и работается по сей день), были и другие предложения – от конкурирующих CPA-сетей, но чем больше менеджеров с нами общалось, тем больше неадекватных цен мы видели — доходило до 60-100 рублей за регистрацию без каких-либо гарантий качества трафика и настоятельные рекомендации не использовать отложенные цели, до которых идти более 5 минут. Такие цены, может быть, покажутся нормальными для компаний-монстров или же для «инфо-бизнесменов», втюхивающих на «лендингах» видеокурсы по увеличению груди за 3999, но явно не для нас.

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

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

Пернатск :: Первая Птичья Пирамида

Борьба с вредителями


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

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

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

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

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

Пернатск :: Чемпионат по футболу

Планы и обещания


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

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

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

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

Байки города и охотники за привидениями


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

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

Проблемы я вижу две, и первая проблема заключается в непонимании игроками условий расчетных формул и нежелании принимать аргументацию. Например, для некого действия указано условие: шанс получения предмета 10% — это означает, что при выполнении действия получается случайное число от 1 до 100, которое сравнивается с числом 10 для получения результата (а для более правильных результатов вычисление идет с точностью до сотых). Но согласитесь, в этом случае шанс 10% не означает, что из 10 попыток однозначно предмет будет получен один раз; это не означает, что из 100 попыток предмет будет получен 10 раз; и даже не означает, что из 100 попыток предмет будет получен хотя бы один раз; но и не означает, что из 100 попыток не будут все 100 с положительным результатом. Шанс означает шанс, и нет никаких условий на историю подходов для корректировки шанса в большую или меньшую сторону, обеспечивающих превращения условия «шанс» в условие «обязательное получение». Таким образом, в глазах некоторых игроков условие «шанс 10%» превращается в «работает в 0.1% случаев, и админы врут», и для них нет никакой разницы в подобных вычислениях, зато появляется ворох претензий к «рандомизатору» и коду проекта в целом.

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

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

Пернатск :: Хэллоуин

Железные потребности


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

Пернатск :: Электромагнитная сеткаСтала очевидной необходимость проведения реструктуризации системы с железной админской стороны, для чего были арендованы два новых «железячных» сервера в Hetzner: PX120-SSD (топовый не-брендовый текущей линейки) и SB41 (из числа аукционных). Если ранее на «боевом» сервере крутилось абсолютно все – от действительно «боевого» проекта, тестового и «dev» проектов до «мелких» сайтов – то реструктуризация произошла действительно масштабная.

Для начала новый сервер PX120-SSD стал домом только для «боевого» проекта, больше туда решительно никого не пустили – это сократит ненужные издержки мощностей сервера. Дальнейшее расширение сервера вверх по тарифам уже не получится, и планируется постепенный рост «вширь» за счет разделения базы на чтение по репликациям и разделения фронтенда с php-fpm по мере необходимости. Затем второй сервер SB41 (он явно помедленнее, но тоже с достаточным запасом ресурса) подвергся разделению на три виртуальные машины соответственно: для «test» и «dev» версий проекта, для репозитория и мониторинга (Pinba и Zabbix), для «мелких» проектов и всего остального. Позднее добавилась четвертая «виртуалка», куда складывается репликация из боевого сервера с отставанием в 30 минут для поддержки «горячего» бэкапа данных.

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

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

Двойной форсаж


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

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

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

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

Пернатск :: Стайные войны

Тропа развития


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

В нашем проекте нет инноваций как в плане архитектурно-механических аспектов, так и в плане менеджмента или пути становления. Мы – не «стартап», а группа энтузиастов, которая довела дело до половины (то, что есть сейчас, — явно не конец), начиная с простого эксперимента и источника опыта, заканчивая попыткой превратить проект в желанную работу. И, надеюсь, через некоторое время нам будет, о чем еще рассказать.
@brntsrs
карма
63,0
рейтинг 3,4
Велосипедостроитель
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (30)

  • 0
    Помню вас, даже участвовал в бета-тесте. Жаль, что не захватили рынок, потенциал огромный.

    Да и подход мне ваш, в целом, импонирует.
    • 0
      Будем считать, что все еще впереди. Тем более, что предпосылки в наличии.
  • 0
    в глазах некоторых игроков условие «шанс 10%» превращается в «работает в 0.1% случаев, и админы врут»

    Это явление имеет собственное название — Великий Корейский Рандом, он же ВКР.
    Обижаться на такое отношение бессмысленно, все любят выигрывать, и потенциально ожидают выигрыша в любом случае, пусть даже затратив много времени/усилий. А тот факт, что выигрыша может вообще не быть, воспринимают как обман.
    • 0
      А никто не говорит, что подобных жалоб быть не должно. Достаточная доля жалоб будет всегда, обязательно кто-то будет ущемлен случайным результатом, специально для подобных пользователей есть локация «для чистки кармы» в виде «тотемного столба» — некоторые пользователи отмечаются на форуме с пожеланием большей удачи, после чего удача неожиданно становится к ним «лицом», и в этом нет нашей заслуги или изменения показателей случайных величин для конкретного игрока.
      Другое дело, когда жалоба носит деструктивный характер репутации проекта — когда в обвинении пользователь конкретно утверждает о «подкрутке» рандомизатора в пользу платящих игроков.
  • +1
    Но согласитесь, в этом случае шанс 10% не означает, что из 10 попыток однозначно предмет будет получен один раз; это не означает, что из 100 попыток предмет будет получен 10 раз; и даже не означает, что из 100 попыток предмет будет получен хотя бы один раз; но и не означает, что из 100 попыток не будут все 100 с положительным результатом.

    Вообще обычно стараются рандом делать не совсем честным, а сглаживать, чтобы вероятность 0 из 100 была меньше «честной».
    • 0
      Сглаживать в чью пользу? Если в пользу «системы» — это как раз является жульничеством. Если в пользу игрока — то достаточно установить более высокий процент шанса, но в этом нет смысла.
      • 0
        Ну условно говоря смотрим на последние Х ситуаций, когда мог выпасть предмет. Сравниваем с ожидаемым шансом лута.
        Если выпадало чаще, чем нужно, уменьшаем шансы, если реже — увеличиваем.
        Условно говоря метафора колоды карт вместо броска кубика.
        • 0
          Фактически гарантируя положительных результат X из Y раз — я понял. Но при таком подходе на лицо факт половинного обмана игрока, когда ему искусственно занижается шанс. Как таковой необходимости усложнения системы на данный момент я не вижу, шансом в достаточных пределах естественным образом контролируется количество предметов (и всего остального) в игре.
          Но вашу мысль я запомню, вероятно для подобной реализации настанет свое время.
          • 0
            Почему обмана, например? Просто механика.
            Матожидание меняться не должно
            • 0
              В рамках какого периода меняться не должно?
              Что отвечать техподдержке на вопрос: «Раньше я находил пять плюшек в день, а последнюю неделю вообще ничего»? Сейчас мы с чистой совестью ссылаемся на «рандом», а в случае со сглаживанием запросто может работать понижающий коэффициент.
              • 0
                Кажется, что чем ближе реальное количество плюшек к матожиданию (например 10 плюшек из 100 попыток при объявленном 10%), тем меньше шансов запроса в поддержку.
                Ну т.е. если шанс 10%, а игрок в неделю пытался 100 раз, то если ему выпадет 0 или 2, то он будет огорчен и возможно напишет, а если 8, то скорее всего не напишет.
              • 0
                Есть вариант проще: запускайте два рандома и выбирайте результат, который общую картину сдвинет ближе к матожиданию.

                Во время бета-теста оный рандом мог лихо сломать всю стратегию удачный охоты. А по некоторым азартным играм у меня среднийпроцент выиграшей стабильно был ниже матожидания.
      • +2
        Ни в чью пользу :(. Условно, есть эвент — пользователь покупает лотерейный билет, из которого с шансом 10% падает ценный бонус, а с шансом 90% — всякие внутриигровые плюшки. Можно поступать «честно, справедливо и порядочно», сильно нервируя тех игроков, кто купил 50 билетов и не получил бонуса. А можно поступать «нечестно, несправедливо и непорядочно» — если игроку после 5 попыток не выпал бонус, то для каждого следующего билета шанс повышается на 10%, пока не дойдет до 100%
        • 0
          И не забывать о некоторой вероятности получения 50 билетов выигрышных подряд, эйфории от побед, и практически гарантированного проигрыша на ближайшие 500 попыток. При этом игрок, понимая такой подход к шансам, может остановиться после продолжительной серии выигрышей, дабы не попасть под сниженный процент — и это явно не является честным подходом.
          • +1
            Правильно, поэтому в таких акциях ограничиваются одним бонусом :).
          • +1
            Приведу цитату, она относится не совсем к данному вопросу, а к ИИ игр, но сам принцип применим и в данном случае — «задача ИИ не выиграть у игрока, а красиво ему проиграть» (автора, к сожалению, не помню).
            Как мне кажется, понятие «честного подхода» в данном случае неприменимо в принципе.
            • +1
              Немного дополню:
              Есть мнение, что использование рандома таким образом есть результат взаимонепонимания между гейм-дизайнером и программистом. Когда ГД говорит, что предмет должен падать с моба с шансом 10%, то он имеет в виду именно то, что для квеста на сбор 10 предметов игрок должен будет убить 100 мобов ± небольшая погрешность.
  • 0
    Пожалуй, единственная браузерка, в которую я теперь играю. К сожалению видно, что игроки, оказывающие спонсорскую помощь проекту играют успешнее. С другой стороны, игра позволяет без затрат играть на среднем уровне и нет никакого «жёсткого доната». Все игровые ценности можно получить без сторонних вложений. Кроме того с некоторой долей удачи можно прокачивать дорогие характеристики бесплатно. За это отдельное спасибо.
    Некоторые последние изменения (как мне кажется) внесли чуть больший перевес в сторону поощрения «доната». Это и «зомбыч», который рассчитывает характеристики по средним на уровне. Само собой, чем выше уровень, тем более ценен игрок. Он старался, качался, тем скорее он вкладывал денег. Ввод «магнитыча» можно считать дополнительным стимулом становиться сильнее и покупать «печеньки». Ведь чтобы он действовал менее эффективно, надо прокачать уйму всего. И листву и характеристики и вообще, оградиться от обидчиков стало ещё труднее.
    Разработчики выдумывают всё новые способы заставить игроков «раскошелиться». Впрочем, радует, что достаточно трезво оценить ситуацию, чтобы просто не ввязываться в авантюры и играть по-старому или выносить из ситуации свою выгоду.
    Например, есть легальные, но не задокументированные способы (я надеюсь, их не закроют) попытаться спасти своё имущество, если на вас скоро нападут (в игре есть таймер, по которому можно понять, когда спадает иммунитет от атак).
    Проекту вцелом желаю удачного развития. Жду-не-дождусь введения городских локаций.
    • 0
      Спасибо за отзыв. Стоит чаще общаться с другими игроками, перенимая способы борьбы с желанием подарить деньги игре. Достаточное количество примеров игроков из верхушки списка, которые либо не платили игре ничего, либо платили раньше и перестали, так как поток игровой валюты стал достаточен для комфортной игры.
      Никто не скрывает, что наряду с обновлением развлекательного характера есть обновление затратного для игрока характера, но рядом с «печеньковой» кнопкой всегда есть «шишечная» или «перьевая» (за исключением буквально пары случаев) — мы понимаем, что как такового дохода от проекта нам не добиться, если поголовно всех заставлять платить. И при этом «топ-игроки» на то и «топ-игроки» — они тратят свои ресурсы (временные или финансовые — кому что нравится), чтобы быть наверху списка.
    • 0
      «К сожалению видно, что игроки, оказывающие спонсорскую помощь проекту играют успешнее.»
      Что значит, к сожалению? Разработчикам тоже кушать хочется, это F2P проект. Даже в Hearthstone от Blizzard платящие игроки играют успешнее.
      • 0
        «К сожалению» — выражение сожаления по поводу игровой механики в пользу доната. Монетизацию проекта было понятно с первых минут его освоения и по данному вопросу у меня нет и не может быть никаких возражений. То, что хочется кушать разработчикам — всё равно что заявлять что вода — мокрая. Это понятно и без слов.
        Насчёт HS — не правда. Успешность в той игре зависит как от удачно подобранных и сбалансированных колод, так и от мастерства игроков. За деньги можно просто быстрее открыть бустеры и получить пару рубашек для карт. Нет никаких гарантий получения кучи легендарок, которые опять же надо уметь применять сбалансированно и с умом.
        В Пернатске успешность напрямую зависит от характеристик персонажа, его рейтинга (пернатости) и обвеса шмотками.
        Причём, характеристики можно качать за деньги а шмотки покупать и улучшать за те же деньги. Т.е. срабатывает простое правило — кто богаче, тот и сильнее. Правда, надо немного подумать при распределении характеристик, но это не так важно, если характеристики перекачены более-менее равномерно.
        Никто не отменяет возможности тратить кучу времени и так же качать характеристики и покупать шмотки без вложений реальных денег.
        Но при этом конкурировать с донатчиками на равных становится просто глупо попросту потому, что 20 печенек грубо говоря = 50 шишек = 50 рублей. Но простому персонажу гарантированно получить 50 шишек можно примерно за полдня-день игры (и их постоянно могут отобрать). Куда проще просто заплатить те же 50 рублей и не париться.
        Повторюсь — я не против F2P и того, что люди просто зарабатывают деньги, занимаясь приятным делом. Хотел сказать, что добиться справедливости при таком подходе в принципе невозможно. Сильные будут сильнее, а слабые — слабее. Такие же мысли были после участия в первом бою между стаями. Да, не всё было гладко, но в таком виде сильные укрепят свои позиции, а слабые так и останутся внизу списка.
  • 0
    Спасибо. Очень импонирует ваш подход.
    Сам связан со стартапами, но к сожалению пока распыляемся на несколько проектов и не нашупали того «своего» )
  • +1
    Играю уже давно, да и достиг многого уже, поэтому выскажусь.

    Вы — совсем не стартап, и совсем не инвесторская компания.

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

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

    P.S. И да, когда я покупаю печеньки, я вкладываю именно в вас, хоть и иногда несогласен с разными моментами развития проекта. Но то, что вы делаете — это круто!
  • 0
    А если не секрет, можете поделиться оценками о стоимости разработки?
    Была тут такая статья: habrahabr.ru/post/180667/ актуально ли?
    • 0
      А вам в каком виде? По-честному с полными суммами или конкретно наш путь интересует?
      • 0
        Интересен ваш опыт.
        • 0
          До момента открытия платежей ушло из «личного» кармана порядка двухсот тысяч в течение двух лет, дальнейшие затраты (на сервер, рекламу, прочие расходы) шли из дохода. При этом я не считаю человеческих трудозатрат, поскольку проект был в дополнение к основной работе, и вам интересен наш опыт.
          Если считать вместе с полными трудозатратами — получится сумма, о которой думать не хочется.
          • 0
            Спасибо. У меня было две браузерки на «личном финансировании»: скидывался на разработку с друзьями.
            На первую ушло около 300к, и она вышла на окупаемость через полгода после запуска. Платили аутсорсерам, за оборудование и маркетинг.
  • 0
    По поводу рендома выпадения в случае с квестами —
    На собственном проекте ощутили, что больше всего ощущение «нечестности» ощущается именно в конце выполнения квеста.
    Например при собирании 10 чего-то с шансом 20%, именно на последних 1-2 предметах игроку сильнее всего кажется, что рэндом к нему несправедлив.
    Выходом стало подкручивание шанса выпадения на последних вещах в сторону игрока, удовольствие от выполнения на порядок выше.
  • 0
    Дальнейшее расширение сервера вверх по тарифам уже не получится, и планируется постепенный рост «вширь» за счет разделения базы на чтение по репликациям и разделения фронтенда с php-fpm по мере необходимости.

    Подскажите, пожалуйста, а что Вы имели в виду под «разделения фронтенда с php-fpm»?
    Спасибо

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