Не лезьте в геймдев, он вас сожрёт (но вам понравится)

Не зря говорят, что геймдев безжалостен (и особенно к новичкам).

Rovio сделали Angry Birds с какой-там-сорок-с-лишним попытки, всякие новички регулярно проваливают ответственную задачу по доделыванию своих инди пиксельных платформеров на юнити, Башурова вон вообще забанил Эпл, хотя казалось бы — целый Башуров. Короче, жуть и ужас.

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

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

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

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

«Ну замахнулись и замахнулись, зачем об этом писать?» — подумает читатель и будет прав. То есть технически мы уже шестой год делаем какие-то новогодние игры, но только в 2021 попробовали сделать полноценную онлайн-игру с экономикой, рейдами, боссами и всем таким, мморпгшным.

То есть представьте: игроки делятся на 170 гильдий, каждая со своим чатом, нужно победить 7 боссов (у каждого своя история и локация), а ещё для самых бодрых работает ПвП-арена. А кор-механика — тренажёры по вёрстке, JavaScript и PHP. То есть быстро и много решаешь — супер, так держать. Тому, кто решал быстрее и больше всех, даже выдали бесплатное обучение на профессии, которое в мирное время стоит ого-го сколько. Ну и все тренажёры тоже бесплатные, даже те, которые обычно платные.

Я смотрел в грустные глаза наших разработчиков примерно два месяца — весь ноябрь и декабрь 2020 ушли на разработку. На фронте React, на бэкенде PHP и Slim Framework. Для игры выделили выделенный сервер: 1 CPU, 2 Gb Ram, 50 GB HDD (чувствуете надвигающиеся грабли, да?).

Казалось бы, что может пойти не так. А пошло примерно всё (разве что, в отличие от настоящего cyberpunk 2077, релиз не перенесли). И перед тем, как начать второй сезон (хотфикс, если хотите), мы решили этим поделиться, чтобы вы не повторяли наших ошибок.

Грабли № 1. Вовлечение игроков

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

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

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

Главная грабля: мы недооценили упорство людей. Игроки решали задачи без перерывов на сон и отдых (и это 1 января!), в итоге главный приз был получен за считанные часы. За него всерьёз боролись два участника, и один из них просто пошёл часок подремать. В это время всё и случилось.

Мы даже взяли интервью у победителя — говорит, пил воду, ел пиццу, решал задания. Ничего необычного.

Продумывайте заранее, чем вы будете удерживать людей в игре.

Грабли № 2. Так себе экономика

Уровни и внутреннюю валюту — киберкоины — можно было получить за много чего. Просто решать задачи, сражаться на арене с другими игроками, валить боссов. Заработанные деньги можно было потратить в магазине: там продавались скидки на курсы, подписку, навыки и проекты по вёрстке.

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

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

Грабли № 3. Читеры

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

Арена устроена так:

  • Два человека получают одно и то же задание — сверстать или запрограммировать что-то.
  • Кто быстрее сделал, тот и победил. Деньги, слава, вот это всё.

Главная читерная механика была такая

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

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

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

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

Грабли № 4 . Игровой баланс

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

Бабка — один из боссов

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

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

На баланс влияют все части игры — тут важны и экономика, и мета, и вовлечение. Если где-то перекос, то всё упадёт.

Это всё, что касалось геймдизайна. Но не геймдизайном единым.

Грабли № 5. А что тут вообще происходит?

Это моя личная редакторская боль.

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

Какая-то из итераций

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

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

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

Перепишите тексты так, чтобы их понял даже медведь

Грабли № 6. Технические проблемы

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

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

Сами себя заддосили. Уже после запуска разработчикам пришлось допиливать архитектуру. Некоторые места были написаны так, что при одном заходе на страницу рейда генерировалось несколько хитов, в итоге условные 1000 одновременных пользователей генерировали от 2 до 3 тысяч запросов к API. Для однопроцессорного сервера это оказалось чересчур и он снова торжественно прилёг, оставив разработчиков разбираться с этим в ночи.

Баги. Куда же без них. Свидетели говорят, что мониторинги звенели всю неделю. Случались кривые запросы, начисление очков не тем и не туда, undefined на проде (мама). Всю неделю разработка чинила разные баги — буквально днями и ночами — а поддержка поддерживала страждущих и заводила тикеты. В рабочих чатах было много интересных диалогов, которые всё равно из-за цензуры сюда постить нельзя.

На сайте @htmlacademy_ru проходит новогодняя битва HtmlPunk, в качестве награды за участие можно получить undefined коинов, присоединяйтесь если вы is not a function https://htmlacademy.ru https://t.co/PERhZIMu3m

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

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

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

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

0
7 комментариев
Написать комментарий...
Даниил Поляков

Нахожусь в Игровой графике около 2 лет, с недавнего времени заказы стали идти хорошо и могу в свои 17 позволить почти все, что хотел)

Ответить
Развернуть ветку
greg chudnoff

сделать уроки вовремя позволяешь себе? ))

Ответить
Развернуть ветку
greg chudnoff
 Rovio сделали Angry Birds с какой-там-сорок-с-лишним попытки

Откуда инфа?..

Ответить
Развернуть ветку
greg chudnoff

PS: ходит легенда, что slither.io сделал один паренек за полгода работы, но при более пристальном взгляде на игру видно, что для одного человека это конечно нереально

Ответить
Развернуть ветку
Евгений Шкляр

Интервью маркетингового директора Rovio, например.

Ответить
Развернуть ветку
greg chudnoff

то есть, до Angry Birds они сделали еще около 50 игр - это имеется в виду

Ответить
Развернуть ветку
Евгений Шкляр

Да, всё так.

Ответить
Развернуть ветку
4 комментария
Раскрывать всегда