Разработка социальных игр - опыт работы и обзор направлений

Всем привет!

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

Разработка социальных игр - опыт работы и обзор направлений

Прежде чем начну, хочется рассказать немного о бэкграунде. В настоящий момент я являюсь одним из представителей Пермского сообщества разработчиков, в создании которого нам помогает технопарк Morion.Digital, а также разрабатываю платформу Ocugine. До этого у меня был опыт в разработке 4-х мобильных игр, 3-х социальных игр и попытки создания PC-проектов.

Челопундрики.

Начну наверное с опыта создания первой игры, которая была написана на чистом HTML. Да, тогда это были еще времена флеша, но я хотел написать игру именно на HTML + JS. И это был не Canvas, и не WebGL, а извращение в виде DIV-ов, CSS3 и прочей фигни.

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

Разработка социальных игр - опыт работы и обзор направлений

С технической точки зрения игра представляла собой кликер с элементами прокачки, захвата районов и т.д. Все бои происходили таким образом: игроку давался случайный противник, при нажатии кнопки “бой” все параметры считались на сервере, а игроку возвращался лишь результат в окошечке, который говорил - победил участник или нет.

Разработка социальных игр - опыт работы и обзор направлений

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

Итак. После того, как мы разработали и протестировали игру - мы подали заявку в каталог новых. Это так называемый бесплатный фичеринг в каталоге игр вконтакте. После подачи заявки мы прошли модерацию и… А дальше случилось то, чего я вообще никак не ожидал. Хлынул трафик. И был он настолько мощным - что напрочь ложил нам сервера. Ложил сервера каждые 10-15 минут. Играть было невозможно, рейтинг игры неимоверно портился, я паниковал и пытался быстро переехать на другой сервер. Но, к сожалению, этого не удалось и мы потеряли самый сочный траффик. Каждый час в нашу игру приходило от 2 до 5 тысяч новых пользователей, которых мы потеряли)))

Разработка социальных игр - опыт работы и обзор направлений

Когда прекратилась борьба с серверами - ежедневный онлайн игры составлял уже всего около 200 человек. Это было ужасно, но, к великому удивлению приносило какие-то очень небольшие деньги. За все время жизни игры (около 3-х месяцев) она принесла около 40,000 рублей, после чего мы решили похоронить проект.

Разработка социальных игр - опыт работы и обзор направлений

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

Lords of Sword.

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

Разработка социальных игр - опыт работы и обзор направлений

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

Проблема первая - WebAssembly

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

Разработка социальных игр - опыт работы и обзор направлений

Сюда же стоит добавить ограничения по ОЗУ от WebAssembly в размере 512 мб. А на более слабых устройствах этот порог еще ниже. Что приводит к постоянным фризам, вылетам и другим серьезным проблемам. Единственный вариант - как можно сильнее пытаться оптимизировать игру в контенте и даже в рамках нашей пошаговой арены - это было очень тяжело.

Проблема вторая - плохая оптимизация из коробки

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

Разработка социальных игр - опыт работы и обзор направлений

Таким образом мы выстроили для себя целый ряд моментов, связанных с оптимизацией:

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

- Отключать у UI все, что можно отключить. Rich Text-ы, Raycast-таргеты и прочие моменты. Тут же стоит добавлять на каждый UI элемент пустой материал. Без него это работает медленнее, хотя и не понятно почему. Видимо особенность самого Unity.

- Работать только пулами. Никаких созданий / уничтожений объектов.Сжимать текстуры на максимально допустимый уровень, от которого не будет тошнить. При этом использовать митмаппинг и другие оптимизационные параметры.

- Не использовать аудио-сжатие на обычных эффектах. Юзать только для музыки. Жрет процессор и течет память.

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

Конечно это далеко не все моменты оптимизации WebGL на Unity. Если будет интересно - могу поведать об этом в отдельной статье. Но самый лучший совет - не используйте вообще Unity для таких целей. Возьмите Pixie или Phaser.

Разработка социальных игр - опыт работы и обзор направлений

Теперь хотелось бы поговорить о поддержке сообщества. Мы всегда делали на этом большой акцент и взаимодействие. Наш саппорт всегда общался с сообществом, как с лучшими друзьями, те, кто нас поддерживал, получали множество бонусов и персональный подход к клиенту. К примеру, у нас была внутренняя политика персонального менеджера для так называемых “китов” - игроков, которые всеми силами пытались удержаться в лидирующих позициях за счет своих денег. Опять же стоит сделать оговорку о нашей модели. Возможно, кто-то из вас будет нас хейтить, но мы распространяли F2P игры, в особенности социальные, исключительно по модели Pay2Win. Да, это плохо с точки зрения коммьюнити, но мы всегда находили подход к обеим сторонам, предоставляя возможности бесплатного (хоть и более тяжелого) получения премиум-предметов, включая чуть ли не ежедневные розыгрыши для участников сообщества.

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

Вывод о локальных рынках и платформах.

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

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

Если говорить о последнем проекте, при затратах в районе 100,000 рублей, жизненном цикле в 3 месяца и активной поддержке сообщества, мы смогли заработать в районе 900,000 рублей. И, если бы не было тяжелых технических проблем, возможно это было бы достаточно прибыльным занятием. Но, увы и ах.

Новые возможности для работы в 2019-2020.

Разработка социальных игр - опыт работы и обзор направлений

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

1) Смерть Flash. Да, да. Уже совсем скоро поддержка Flash будет окончательно прекращена даже как включаемого плагина. Такие социальные сети, как Вконтакте больше не будут поддерживать данную технологию, а значит, их каталог ждет некая зачистка.

2) Развитие платформ внутри платформ. Появление новых перспективных платформ для игр на базе приложений и социальных сетей, имеющих внутреннюю аудиторию в сотни миллионов игроков - отличный повод задуматься о выходе в веб. Уже сейчас, на примере социальной сети Вконтакте, можно сказать что в развитие данной платформы (VK Direct Games) вкладываются весьма значительные силы. На данный момент каталог имеет уже более 4 млн. MAU и сотни тысяч DAU. И это при условии того, что сам каталог пустой. Запуская игру в ближайшее время в этом каталоге - вы открываете для себя возможность выхода на рынок без продвижения. Также стоит обратить внимание на WeChat, Yandex.Games и другие платформы в начальном этапе развития, но с большим потенциалом и уже готовой аудиторией.

3) Развитие технологий WebGL. Если несколько лет назад она еще была достаточно сырой, то сейчас её можно использовать даже для кросс-платформенных игр. Да, у неё еще есть ряд недостатков, однако уже сейчас это можно и нужно делать. К примеру, мы совместно с командой GFX ведем работу над созданием платформы для разработки веб-игр. Движок на базе WebGL уже выдает превосходные результаты для 3D игр даже на слабых мобильных устройствах из браузера, показывая 60FPS.

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

Всем спасибо, кто дочитал эту статью до конца. Надеюсь, мой опыт будет полезен вам. Буду рад услышать ваши истории.

44
3 комментария

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

1
Ответить

Классная статья. Мы как раз сейчас делаем игру для ВК. Я не совсем понимал, что людей мотивирует играть в социальные игры. Теперь я примерно понимаю, в каком направлении копать. Спасибо автору ;) 

1
Ответить

А какой выхлоп с игрока, который не донатит в игру напрямую? С рекламы вк идет что-то или вроде того?
Как были устроены pay2win механики? Как мотивировались "киты" занимать место в топе?

Ответить