День 1 | Стартовая точка
Набросок секции. Закончена на 30%. Приблизительно такой будет стилистика всей игры.
Прошу делиться своим мнением и предложениями!
Набросок секции. Закончена на 30%. Приблизительно такой будет стилистика всей игры.
Прошу делиться своим мнением и предложениями!
Привет!
Сегодня поговорим о реализации сохранений в GMS, их разницу со встроенными сохранениями и немного затронем тему работы с файлами.
Ссылки на предыдущие гайды:
Первый гайд - Знакомство.
Второй гайд - События отрисовки, коллизия, скрипты.
Третий гайд - Камера и разрешение экрана.
Четвертый гайд - Иерархия объектов. Глобальные переменные.
Пятый гайд - Структуры данных. Сетка комнаты и размещение объектов по сетке.
Шестой гайд - Алгоритмы поиска путей.Теория. Как работают сохранения?
Для начала, для чего нужны сохранения.
Цель такой механики - это выгрузка информации о том, что игрок сделал в своём мире и как он изменился относительно базового состояния на определённый момент времени. Иными словами, отслеживание изменений.
В общем случае, сохранение представляет собой файл, в который, по определённой разработчиком системе, записана информация.
Самый простой пример - это текстовый файл, в котором содержится информация о параметрах дисплея пользователя, просто строчкой "1920х1080". Самое главное - что данная информация уже где-то есть и в ходе работы программы может изменяться.
После записи информации в файл, её необходимо считать и провести с ней какие-либо действия. Поэтому важна системность - хаотичный набор строк разбирать сложно. :)
Встроенный функционал GMS. Как и когда использовать? Плюсы и минусы.
В GMS'е имеется две функции с лаконичными названиями, которые вы можете использовать в своём проекте.
Сохранение игры:
game_save("Название_Файла.Формат") - где ".Формат" официальный мануал предлагает использовать .dat
Загрузка игры:
game_load("Название_Файла.Формат")
Соответственно, самая простая система загрузки сохранений, которую вы можете реализовать, выглядит следующим образом.
Перейдём в объект oGameManager и создадим у него два события: нажатие на F5 и нажатие на F6. Первое будет сохранять файл, второе - загружать.
Важно: везде добавим проверку, что мы находимся в основной комнате. В противном случае, будут вылетать ошибки при попытке загрузки из любой другой комнаты.
В событии нажатия F5:
if room == Room1
{
game_save("save.dat");
}
В событии нажатия F6 мы сначала сделаем проверку, что у нас есть файл сохранения и если она будет пройдена - загрузим сохранение.
if file_exists("save.dat") and room == Room1
{
game_load("save.dat");
}
Всё. Самая простая система сохранений готова и работает. Как видно, нам хватило буквально четырёх строк кода (двух, если убрать проверки), чтобы её сделать.
Теперь поговорим о тонкостях работы.
Немного технической информации.
Согласно мануалу, это устаревшие функции, которые сохраняют текущее состояние игры, при этом не сохраняя различную динамическую информацию, вроде: холстов (сюрфейсов), ассетов, структур и тому подобных.
Важно заметить, что данные сохранения перестают работать при любом обновлении кода. Стоит вам добавить одну строку кода (даже будь это вывод сообщения в консоль) - всё. Сохранение не работает. Таким образом, любые обновления игры будут ещё тем геморроем для ваших игроков и вас.
А ещё эта система сохранений в будущем, скорее всего, окончательно станет нерабочей.
Итак, из плюсов у нас только скорость установки. Минусы перечислены выше.
Как итог, скажу следующее: использовать данную систему следует на свой страх и риск. Если вы знаете, что ваша игра не нуждается в нормальных сохранениях и носит исключительно экспериментальный характер, то сойдёт и так. Если же вы игрой заняты серьёзно, то вам нужно будет создать свою систему сохранений.
Благо, что это просто! :)
И плюсов у неё много. Например, устойчивость к обновлениям как игры, так и движка ;)
Реализация собственной системы сохранений.
Для ЛЛ.
Общий алгоритм:
Сохранение -> Заносим всю информацию о каждом изменяемом объекте (в т.ч. о тайлах) комнаты в файл.
Загрузка:
- Если файл сохранения есть -> Удаляем все объекты из комнаты -> Читаем информацию из файла -> Создаём объекты заново и вносим в них правки.
Прежде, чем что-то писать, для начала изменим немного то, что уже есть.
Перейдём к объекту oGrid и создадим у него события: User Event 0, 1.
Это, как понятно из названия, пользовательское событие. Мы можем его вызывать только тогда, когда нам нужно, используя event_user(0) (где 0 - это номер события).
Итак.
В событие №0 мы переносим весь код из Create, кроме объявления cells_x/y, а также заполнения тайлмапа и создания grid_array.
В событие №1 перенесём код, который у нас создаёт карту.
var lay_id_blocks = layer_get_id("BlockLayer");Да, всё правильно: grid_array нам больше не нужен. Его наличие будет создавать больше неудобств, чем пользы. Соответственно, нужно будет изменить все места, где он ранее использовался, удалив его. У меня это уже проделано, поэтому рекомендую в последствии скачать проект, если возникнут трудности. Затронуты, в основном, скрипты поиска пути и код у игрока.
var map_id_blocks = layer_tilemap_get_id(lay_id_blocks);
var lay_id_shadows = layer_get_id("ShadowLayer");
var map_id_shadows = layer_tilemap_get_id(lay_id_shadows);
for (var _y = 0; _y < cells_y; ++_y)
{
for (var _x = 0; _x < cells_x; ++_x)
{
ds_grid_set(global.grid, _x, _y, 0) // 0 - это стоимость клетки. Ноль - значит непроходима.
tilemap_set(map_id_blocks, Tile.ground, _x, _y)
tilemap_set(map_id_shadows, 47, _x, _y)
}
}
id = cell_x + cell_y * max_x;Соответственно, клетки по x и по y можно получить следующим образом:
cell_x = id mod max_x;
cell_y = id div max_x;
max_x - максимальное количество клеток по оси x, можно получить с помощью функции ds_grid_width(global.grid);
Что мы сделали: если в комнате нет сетки, то мы создаём oGrid, устанавливаем свои значения клеток по x, y и запускаем событие создания сетки. Это нас убережёт от постоянного пересоздания сетки при заходе в комнату.if room == Room1
{
instance_activate_all()
if !instance_exists(oGrid)
{
var inst = instance_create_layer(0, 0, "Instances", oGrid)
inst.cells_x = 65;
inst.cells_y = 55;
with (inst)
{
event_user(0);
event_user(1);
}
}
}
Наконец, приступаем к созданию скриптов.
Всего их два. scrSave и scrSaveLoad - для сохранения и для загрузки сохранений соответственно.
scrSave - скрипт сохранения
Алгоритм:
Создаём пустой массив. Затем - проходимся по всем изменяемым объектам, сохраняя информацию из них в виде структур в массив.
Затем переводим получившийся массив структур в формат json. Чтобы минимизировать расходы памяти, мы заносим эту информацию в буффер, сохраняем буффер в файл и удаляем буффер.
Кода много, поэтому ссылкой:
https://pastebin.com/YBYejqe0
scrSaveLoad - скрипт загрузки сохранения.
Алгоритм:
Уничтожаем всё, что есть в нашей комнате.
Получаем айди слоев для тайлов.
Если существует файл сохранения, то загружаем его в буффер, "читаем" в переменную (читай - сохраняем), а буффер удаляем.
Помните, что сохраняли файл мы в json? Теперь мы его "читаем" с помощью команды json_parse. Таким образом, мы получаем массив структур, с которым теперь можем работать.
Проходимся по каждому элементу массива через цикл, проверяя тип объекта, создавая их при необходимости и применяя настройки при необходимости.
Оговорюсь, что в готовом скрипте у нас применяются настройки для oGameManager. Это временная мера, так как настройки игры должны лежать отдельно от файлов сохранения.
Ссылка:
https://pastebin.com/kCNT0zcW
Чтобы проверить работоспособность, на тех же F5 и F6 пропишите эти скрипты.
П.С. алгоритм взят из данного видео. Рекомендую, если шарите в английском. Разве что пришлось изменить скрипт загрузки сохранения. В оригинале предлагают каждый раз уменьшать массив, "вычленяя" из него последнее значение. При этом, переменные ссылаются на значения в этом массиве. В общем, это приводит к некорректной работе со структурами данных, даже если пытаться создавать копии.
Мой способ более простой и прямой, позволяет данных ошибок избежать, хотя подводные камни могут быть и у него. Сильных изменений в "потреблении" памяти или ресурсов ПК не замечено.
Бонус.
Не думали же вы, что на этом всё? Не, получается слишком просто.
Помните, что мы делали ранее систему персонажей? Давайте зададим подконтрольному персонажу спрайт (можете выбрать любой, в проекте будет шаблон) и научим его ходить!
Это будет скрипт для прямого управления человечком.
Кратко, алгоритм выглядит так.
На стороне игрока:
- Выделяем человечка.
- Нажимая на любую свободную клетку (или ту, что занята, но рядом имеет свободные), ставим конечную точку пути.
- Рассчитываем путь и передаём его человечку.
- Используя массив с точками, которые нужно пройти, создаём встроенный путь (path) и наполняем его, затем - запускаем. Profit!
Для начала, у oPlayer, в Step'е, где мы ранее создавали пути, всё немного допишем и перепишем. Когда устанавливаем первую точку пути, если у нас в этой же клетке есть подконтрольный персонаж - запоминаем его ID.
Когда будем устанавливать вторую точку пути - если ID персонажа существует, то передаём ему получившийся массив с точками пути, "перевернув" его. Нужно это, чтобы ближайшая к персонажу на данный момент точка шла "нулевой".
Скрипт на переворачивание массива.
https://pastebin.com/uL5MhpmX
Новый код для создания пути:
https://pastebin.com/dWJVuFuB
П.С. Переменную char нужно предварительно создать в Create.
Create у oCharPlayer:
path = noone;User Event(0) у oCharPlayer:
bpath = noone;
spd = 4;
if path_exists(bpath)Вкратце: если путь уже существует, то мы его удаляем. Затем создаём новый.
{
path_delete(bpath)
}
bpath = path_add();
var max_x = ds_grid_width(global.grid);
path_set_closed(bpath, false);
for (var i = 0; i < array_length(path); ++i)
{
var path_x = (path[i] mod max_x) * CellWidth + 16;
var path_y = (path[i] div max_x) * CellWidth + 16;
// Стоимость пути. Выше стоимость клетки в DS grid = ниже скорость.
var cost = 100 div ds_grid_get(global.grid, path[i] mod max_x, path[i] div max_x);
path_add_point(bpath, path_x, path_y, cost);
}
path_start(bpath, spd, path_action_stop, false)
draw_self();Задача: просто отрисовываем путь в технических целях. :)
if path_exists(bpath)
{
draw_path(bpath, x, y, false)
}
if path_exists(bpath)Задача: удалить путь, когда он нам больше не нужен.
{
if x == path_get_x(bpath, 1) and y == path_get_y(bpath, 1)
{
path_delete(bpath);
}
}
В целом, теперь наши человечки могут двигаться. Процесс этот легко автоматизировать и мы рассмотрим его в будущем. Заодно покажу, как просто можно реализовать выделение сразу нескольких юнитов.
P.S. юниты не считаются за "препятствие", а потому спокойно могут проходить сквозь друг друга.
Ссылка на исходник:
https://disk.yandex.ru/d/HjiC4fmpLvsYLw
Итак. Нам осталось разобрать только работу со звуком. В результате - готовая заготовка игры, которую остаётся дорабатывать напильником и активно наполнять.
Происходить это уже будет немного в другом формате, более коротком и информативном с технической точки зрения. С исходниками.
И да. В следующем гайде, скорее всего, без бонусов тоже не обойдётся. Я немного разленился, но постараюсь это исправить. :)
Также в мыслях есть разобрать простую систему моддинга игры на основе файловой системы. Речь о чём-то простом, вроде добавления своих предметов или спрайтов в игру без какого-либо кода.
Спасибо всем, кто читал и удачи тем, кто будет пытаться повторить. Вы зайки и умницы!
Будут вопросы - задавайте, постараюсь на все ответить максимально подробно.
Есть пожелания или замечания - буду рад выслушать.
После окончания разработки игры Flappy bird 3D. Я захотел сделать что то масштабное. Я захотел сделать такую игру, в которую бы и сам захотел поиграть. Я делал ранеры, стрелялки, платформеры. В этот раз я решил сделать хоррор.
Про прогресс разработки - на данный момент я занимаюсь графикой. Рисую главного героя, чудище, рисую карту местности и текстуры. Игра будет 2д, Так как я не умею моделить в блендере, а в Magica Voxel получится не страшно.
Что уже готово(ну или почти готово) - сюжет почти сделан, осталось тольконемножко допилить концовку, чудище готово только спереди, главный герой придуман, но еще не дорисован, нарисовано 2 человека, которые будут использованы как окружение. Сделана текстура пола.
Итоги - эту игру я буду делать довольно долго. Она должна быть как минимум моим самым лучшим проектом. Я постораюсь относительно часто писать посты на пикабу, чтобы вы были в курсе событий. Можете пожелать мне удачи!
Солнечное субботнее утро. Родители уехали на дачу. Китайская восьмибитная приставка, цветной телевизор "Рубин" и россыпь желтых картриджей в вашем полном распоряжении. Никто не скажет: "Посадишь зрение и кинескоп!" - играй хоть до посинения. Картридж уже в приставке, джойстик в руках, вы нажимаете "start" и из динамика телевизора раздается знакомая восьмибитная мелодия.
Ваш младший брат гоняет на зеленом танке по тылам противника, а вы на желтом танке охраняете штаб. Ведомые компьютерным интеллектом вражеские танки наступают, кирпичные стены вокруг штаба уже частично разрушились выстрелами врагов. У вас с братом осталась одна жизнь на двоих и тут вы подбираете бонус с изображением гранаты и все танки противника одновременно взрываются - штаб защищен, уровень пройден!
Взрослый человек, чье детство пришлось на 90-ые хоть одним глазком, но видел эту игру и слышал знакомую мелодию. Как правило картридж с этой игрой шел в комплекте с китайской приставкой-клоном знаменитой восьмибитной Dendy. На картридже была оптимистичная надпись "9999 games in 1". Правда, больше часть этих игр составляли взломанные копии тех самых "танчиков", типа Tank 1990, но кого это смущало.
Мы обожали "танчики". Понятный геймплей, игра вдвоем, разнообразие уровней, режим в котором можно самостоятельно создать уровень и пройти его. По сей день эта игра и знакомая мелодия вызывают теплые ностальгические чувства о развлечениях нашего детства.
Мы давно вынашивали идею, как поделиться с нашими близкими кусочком той теплой ностальгии по ушедшему детству.
Очевидная идея - сделать новую компьютерную игру по мотивам. Но оригинальная игра и по сей день отлично играется и этим ценна.
Поэтому мы объединили, то что любим сами - настольные игры и пиксельный ретро-стиль компьютерных игр нашего детства. В итоге получилась настольная игра по мотивам любимых "танчиков".
Это первый пост в серии, в дальнейшем мы расскажем о основных аспектах разработки настольной игры:
как разрабатывалась и тестировалась механика игры,
как создавался арт,
как мы придумывали и создавали компоненты
и многое другое о том как создаются настольные игры.
Приветствуем, друзья!
Сперва хочется поблагодарить за проявленный к нашему проекту интерес — столько слов поддержки мы никогда и не слышали. Приятно. Было и много вопросов о самой игре, механиках, вселенной, персонажах… сейчас кое-что расскажем!
Что такое The Tales of Bayun?
Мы в команде называем её нарративной ролевой игрой. Кто-то отметил, что скриншоты напоминают визуальную новеллу — и они отчасти правы. Основа игрового процесса — это выбор понравившихся вариантов ответа, который и двигает вперед сюжет. Но в игре присутствуют характеристики персонажа (как видимые, так и скрытые), элементы point and click (для исследования мира и нахождения полезных предметов), нравственные дилеммы и реиграбельность.
Примерно так выглядит скриншот игрового процесса:
В правом верхнем углу отображаются счетчик Лихости / Хитрости и кнопка инвентаря. Балансировка между двумя этими характеристиками или целенаправленный выбор определенного пути откроют перед вами многие двери… но не все. И ни слова о том, что было прошлой ночью!
Мир и сеттинг
The Tales of Bayun — это темное славянское фэнтези. С чудищами, персонажами былин и сказок, серой моралью и котом Баюном. При работе над проектом мы изучили десятки мифов, преданий, легенд — от обилия захватывающих сюжетов разбегались глаза. Изначально планировали пересказать несколько известных сказов на свой лад, но от этой идеи быстро отказались. Решили написать собственную историю, многогранную и интересную. Для этого и создали новый мир, где знакомые с детства персонажи соседствуют с доселе невиданными и незнакомыми.
Про серую мораль упомянули не для красного словца: мы твердо решили не делить весь мир на черное и белое. У главного героя есть свои цели и мотивы, у остальных персонажей — свои. Для одного персонажа ваши поступки могут нести добро, для другого — боль и погибель. Причем последствия выбора не всегда однозначны и понятны с самого начала.
Не смотрите, что мир сказочный — проблем у люда хватает. Кто-то к пойлу хмельному пристрастился, кто-то еле сводит концы с концами и ворует что может, а кто-то улыбается вам в лицо, но готов при первой возможности вонзить нож в спину. Сторона - опасное место и лучше держать ухо востро.
Персонажи
Князья, богатыри, черти, лешие, Хозяйка Медной Горы, Полоз, кот Баюн. Над каждым изрядно поработали и сценаристы, и художники — мы старались сохранить преемственность и узнаваемость, но при этом добавить что-то новое.
Вот, например, процесс создания образа Лешего. Интересный персонаж, со множеством отличающихся друг от друга описаний — то он предстает мудрым низкорослым старцем, то чуть ли не великаном размером с самое высокое дерево, порой в нем преобладают человеческие черты, иногда — нечистые. В нашей игре Леший повстречается игроку в среде своего обитания, в лесу. А вот кем он будет — справедливым хозяином леса или очередным препятствием на пути к цели — предлагаем догадаться самим.
Сверху — ранние наброски. Снизу — более продуманные варианты, попытки отразить двойственность природы и создать узнаваемый, но в то же время непривычный игроку образ.
Продолжительность и реиграбельность
Готовая игра состоит из двух эпизодов, рассказывающих логически связанные, но разные истории и отличающиеся дополнительными механиками и персонажами. В каждой истории порядка 4-5 концовок и несколько секретных. Одно сквозное прохождение займет около 4-5 часов. Для получения всех концовок понадобится 12-15 часов.
Мы с самого начала планировали рассказать две законченные истории и не стали искусственно затягивать прохождение. Концентрированное приключение на несколько вечеров после работы, которое позволит отвлечься от серой рутины или зачистки фортов в огромной игре с открытом миром.
Если вам вдруг интересно, как выглядит часть первого эпизода на уровне сюжета и решений, то как-то так:
Вблизи не покажем, а то можно словить спойлеров и испортить прохождение. Но каждый лист на схеме - это сотни строк диалогов и десятки выборов.
Системные требования и распространение
The Tales of Bayun разрабатывается на Unity, никакого открытого мира у нас нет, поэтому и минимальные требования символические — запустится даже на ультрабуках со встроенной видеокартой или компьютере для учебы из ближайшего магазина электроники.
Проект выйдет в Steam на русском и английском языках. Но мы понимаем, что процесс приобретения игр за последние месяцы изрядно усложнился для жителей России и Белоруссии, поэтому активно ведем переговоры с другими площадками для размещения. К релизу полной версии постараемся выпустить проект где только можно. Планов на мобильный порт или консольные версии пока нет.
А что там с демоверсией?
Точно, о самом главном… Параллельно с основной игрой мы работаем над демоверсией. Осталось отполировать ряд моментов и податься на размещение в каталоге Steam. Потребуется некоторое время, но в течение нескольких недель рассчитываем поделиться плодами наших трудов!
На этом, пожалуй, остановимся. Много текста получилось… Но в самой игре его намного больше! Мы ещё не раз выйдем на связь, ведь столько всего осталось нерассказанным.
Если не сложно — добавьте The Tales of Bayun в список желаемого, нам будет очень приятно:
https://store.steampowered.com/app/1935470/The_Tales_of_Bayu...
Ещё у нас есть небольшая группа вконтакте, где тоже время от времени делимся интересными подробностями о проекте:
https://vk.com/thetalesofbayun
Если вдруг остались какие-то вопросы, задавайте их в комментариях, постараемся ответить.
До новых встреч!
Всем привет!
Меня зовут Маша, хочу поделиться с вами новостью о том что я разрабатываю игру, кто-то уже знает об этом, кто-то нет, но мне хотелось бы подробнее описать о чём она будет.
Для тех кому интересно игра делается по моему одноименному рассказу в 4-x частях:
Мила. Другой мир. Часть 1 - Как я здесь оказалась?
Мила. Другой мир. Часть 2 - Знакомство с новым миром
Мила. Другой мир. Часть 3 - Работа спермоприёмником
Мила. Другой мир. Часть 4 - Школа
Игра не будет копировать все сцены и ситуации из рассказа, но общей сутью и некоторыми моментами будет схожа с ним.
Рассказ, как и игра, довольно специфичен и подойдёт не для всех, так что если что я предупредила 🙄
Игра делается на движке Ren'py. Да, простой и удобный. Да, это визуальная новелла.
Но что для меня важно, так это её оригинальность, я делаю игру не похожую на большинство визуальных новелл для взрослых. Я делаю игру с сюжетом, который будет меняться исходя из решений которые принимает игрок, для меня очень важно чтобы была вариативность и выбор, а главное что бы этот выбор влиял на многое, а не только на отдельно взятую сцену.
Я занимаюсь этим совсем недавно, начала с 3d моделирования и после решила что хочу сделать игру. Для меня это довольно сложно, но мне нравиться этим заниматься и я доведу дело до конца. Благо есть те, кто поддерживает в начинаниях словом и делом.
Вкратце:
Игра о девушке по имени Мила, которая случайным образом на свой день рождение попадает в портал который перемещает её в параллельную вселенную. Мила знакомиться в новом мире с разными людьми и пытается вернуться в свой мир, а возможно и нет, это уже будет зависеть от самого игрока.
Ссылки:
Boosty: https://boosty.to/milkav
Discord: https://discord.gg/SZJkQQjV24
Профессия комьюнити-менеджера весьма нервная — с ней легко можно заработать себе какой-нибудь диагноз. Чтобы отсрочить этот момент и совладать с игровым сообществом, комьюнити-менеджеру важно научиться чувствовать настроение аудитории и понимать ее цели. Мне в этом помогла теория Ричарда Бартла о психотипах игроков.
Всем привет, меня зовут Снежана Французова, я представляю студию BIT.GAMES. В этом тексте я расскажу про теорию Бартла не с точки зрения геймдизайна, к чему все привыкли, а с точки зрения комьюнити-менеджмента. С помощью этой классификации можно быстро распознать мотивацию каждого отдельного игрока, а затем направить его в нужную сторону: в одних случаях — на помощь проекту, в других — на построение социальных связей.
Немного про саму теорию Бартла
Наш проект — казуальный пазл Storyngton Hall, количество наших игроков приближается к 7 миллионам. Мы ориентируемся на весьма специфическую целевую аудиторию: это женщины 35+, живущие в США и Европе, немного захватываем Канаду, Японию, Австралию. В социальных сетях суммарное количество подписчиков у нас 17 тысяч, и оно постоянно растет.
Чтобы понять, чем модель Бартла может быть нам полезна, давайте посмотрим на нее более предметно.
Модель состоит из двух пересекающихся отрезков. Горизонтальный — это игроки и мир, вертикальный — действие, взаимодействие. Если для пользователя важны результаты, собственная стратегия поведения, и его не интересуют остальные игроки, то он вряд ли станет ценным членом вашего сообщества. Бартл считал, что все игроки делятся на четыре категории: киллеры, карьеристы, социальщики, исследователи.
Начнем с самого любопытного, с киллеров. Эти люди обожают власть и доминирование. Они играют, чтобы соревноваться с другими игроками, они обожают мини-ивенты. Почему так? Потому что там победа наступает достаточно быстро. Для них нет большей радости, чем занимать высшие строчки в общедоступных рейтингах. Для них это настоящее удовольствие. А еще киллеры лучше всего монетизируются.
Тут возникает первая проблема. Если киллер — достаточно агрессивный игрок, то насколько корректно зазывать его в сообщество? Ведь он своим поведением может разрушить вашу стратегию коммуникации с игроками.
На самом деле все зависит от проекта. Например, в основе Storyngton Hall лежит сюжет. Наши пользователи читают исторический роман, следят за действиями главных героев, но не влияют на их поведение. За прохождение уровней они получают звезды, которые могут тратить на ремонт поместья, на покупку нарядов, на всякие другие приятные мелочи. И представьте себе, что в этой идиллии вдруг возникает киллер, который начинает соревноваться и портить настроение всем остальным.
Сообщество Storyngton Hall вообще никак не реагирует на внутренние провокации. Игроки ждут, когда я приду и утихомирю того или иного пользователя, который пытается спровоцировать внутреннюю гражданскую войну.
Есть вторая проблема: если сообщество такое миролюбивое, то что делать в социальных сетях? Как устраивать конкурсы и соревнования, если никто не хочет соревноваться и бороться друг с другом? Это во многом зависит от того состояния, в котором сейчас находится проект и сообщество.
Например, сообщество Homescapes в социальных сетях достигает сотен тысяч участников. И из-за этого организаторам сложно подводить итоги конкурсов и раздавать призы. В Storyngton Hall все по-другому. У нас не так много подписчиков в социальных сетях: у каждого поста и конкурса среднее количество комментариев — где-то 50-70. Для меня не составляет большого труда читать их все и награждать людей призами. И в этом смысле у меня политика «детского сада» в социальных сетях: у нас все хорошие, все победители, все в той или иной степени молодцы.
Это позволило мне создать миролюбивый костяк аудитории, который активно помогает игрокам. Когда новичок попадает в сообщество, ему нужна какая-то помощь, и если меня нет рядом, то тут же приходят ветераны, все ему объясняют, советуют, какую «золотую карту» лучше купить.
Следующая категория игроков, о которой говорил Бартл — это карьеристы. Это люди, которые играют, чтобы добиться успеха. Они в своем игровом процессе стараются добыть все, что можно. Все, мимо чего они проходят, они складывают в свою корзинку. Это вторая группа по успешности монетизации.
Такие игроки тоже любят мини-ивенты, потому что там можно получить призы и подарки. Эти люди любят похвалиться, но они не особо клюют на рейтинги, которые мы вывешиваем после каждого конкурса в социальных сетях.
Еще одна категория — социальщики. Это настоящее сокровище для комьюнити-менеджера, потому что эти люди занимаются выстраиванием горизонтальных связей между всеми игроками и членами сообщества. Но плохая новость в том, что эта группа плохо монетизируются.
Почему я все время говорю про деньги? Есть мнение, что комьюнити-менеджер никак не влияет на монетизацию игры, и я с этим не согласна. Мы занимаемся выращиванием лояльности через социальные сети. Лояльность тоже может быть монетизирована. Если игроки не лояльны, то они вряд ли будут тратить на игру серьезные деньги. Мы стремимся делать так, чтобы у них всегда было хорошее настроение. И социальщики нам в этом помогают — они могут выстраивать свои круги влияния.
Последняя группа, о которой говорил Бартл — это исследователи. Эти люди играют, чтобы открывать новые локации и возможности. Также они ищут баги — эта категория игроков лучше всего подходит на роль альфа-тестеров. Каждый месяц я провожу конкурс, чтобы выявить исследователей в своем сообществе.
Бартл считал, что идеальная модель, которая приносит больше всего денег выглядит примерно так.
Кроме этой идеальной пропорции Бартл выделил еще четыре сценария взаимодействия разных групп игроков. Первый сценарий — баланс всех психотипов. На мой взгляд, он невозможен, потому что предполагает «мир во всем мире». На поддержание этого баланса могут уйти все силы команды.
Второй сценарий — баланс между киллерами и карьеристами. И те, и другие отлично монетизируются и у нас получается война между самыми умными и самыми богатыми. Для монетизации это отличный вариант, но это вряд ли поможет создать здоровое сообщество — никакой идиллии не будет.
Третий сценарий — преобладание социальщиков. Это отличный сценарий для комьюнити-менеджера, потому что сообщество будет заинтересовано в выстраивании тесных связей внутри себя. Плохая новость в том, что на этом много не заработаешь.
Четвертый сценарий — доминирование исследователей. Этот вариант хорош, когда игра только выходит на рынок и команде нужно большое количество обратной связи, тестировщиков. Так вы сможете завести себе маленькое ламповое сообщество исследователей, которые будут приносить вам фидбек — это позволит вам подготовиться к выходу на другой масштаб и на более серьезную целевую аудиторию.
Расширенная модель Бартла
Теперь самое время перейти к расширенной модели Ричарда Бартла — к базовой модели добавилась плоскость «осознанного и неосознанного поведения». И теперь у нас не четыре типа игроков, а восемь.
Плоскость «осознанность/неосознанность» связана с опытом игрока. Когда человек только приходит в игру, он осматривается вокруг себя, он еще не готов тратить деньги и предпринимать какие-то осмысленные действия. По мере того, как он приобретает новые знания об игре, он становится «учеником», и вот тут его действия начинают носить осмысленный характер — у него появляются какие-то свои цели и задачи. Следующий уровень — «бывалый»: игрок может выработать собственную стратегию поведения. После того, как он наигрался, он становится «старожилом» и просто наслаждается общением.
Игрок никогда не находится в одной и той же поре, он все время эволюционирует, с ним все время что-то происходит. Комьюнити-менеджеру приходится следить за сообществом, чтобы понимать, как меняются люди и их настроения.
Также задача комьюнити-менеджера — вывести человека из неосознанного поведения в осознанное. Для этого нужно не просто постить видео или мемы, а уделять много внимания фидбеку от ваших игроков, изучать их, заходить на их страницы, смотреть, что они там делают.
В расширенной модели киллеры делятся на две категории. Хейтеры стремятся заполучить некоторую известность любым образом, поэтому для них подойдет даже дурная слава. Политиканы — это большие манипуляторы. Если вы встречаете такого игрока в своем сообществе, вы должны серьезно следить за ним — через какое-то время может оказаться, что комьюнити-менеджер больше не вы, а вот этот человек, который очень тонко манипулирует настроениями в вашем сообществе.
Карьеристы делятся на приспособленцев и планировщиков. Первых больше всего волнуют препятствия внутри игры. Но если они сталкиваются со значительным количеством препятствий в самом начале, они просто отваливаются от вашего сообщества. В такой ситуации комьюнити-менеджеру достаточно прийти и успокоить их, объяснить, что поддержка со всем разберется. А планировщики, наоборот, готовы к достижению каких-то собственных целей и могут хладнокровно преодолевать трудности.
Две группы социальщиков — это друзья и сетевики. Первая категория — это просто люди, которые стремятся к общению. Сетевики же осознанно выстраивают горизонтальные связи между игроками. Они могут стать надежной опорой и дополнительными помощниками, которые смогут перенимать функции самого комьюнити-менеджера.
Как это происходит в Storyngton Hall. У меня появились несколько сетевиков, которые организовали свои сообщества: Storyngton Hall Family, Storyngton Hall History и так далее. Они берут контент, который я публикую в социальных сетях, и перетаскивают его себе. Так они поддерживают бренд и продвигают игру, а я отслеживаю, что они делают. Это мои «агенты влияния» в в других целевых аудиториях, до которых я, скорее всего, никогда не смогу дотянуться.
Исследователи делятся на хакеров и ученых. Хакеры могут насолить вам, если им что-то не понравится, а ученые лучше всех подходят на роль альфа-тестеров. Они терпеть не могут массовые мероприятия, но любят, когда с ними работают индивидуально.
У нас был кейс, когда в группе исследователей затесался киллер. Она была очень хорошим ученым — нашла много багов. Но через какое-то время ей стало скучно и она начала устраивать «гонки» среди альфа-тестеров. Поэтому нам пришлось с ней попрощаться.
Эволюция игроков
Самое интересное в этой системе, что игроки могут эволюционировать и переходить из категории в категорию. Например, при должном обращении недовольного хейтера-новичка можно перевести в ученые — достаточно лишь отметить его заслуги и умения.
Затем этот игрок неизбежно эволюционирует — у него появится собственная стратегия поведения и он перейдет в состояние планировщика. Постепенно он успокоится, привыкнет ко всему и перейдет в категорию старожилов-друзей. В результате он станет человеком, который помогает сообществу и охраняет его.
Есть разные пути эволюции игроков и с течением времени они могут стать как помощниками для комьюнити-менеджера, так и вредителями. Например, политиканы могут устроить переворот в вашем сообществе — люди будут ругаться и плохо относиться друг к другу, а вам будет очень тяжело все это исправить. Хакеры будут рассказывать, как пользоваться лазейками в игре, и продвигать читерство. А хейтер может навсегда остаться хейтером и покинуть вашу игру.
Когда я начала работать комьюнити-менеджером, у меня было маленькое сообщество, которое развивалось эволюционно. Когда людей стало много, я стала думать: «Надо как-то влиять на этот процесс развития». Тогда я исследовала свое сообщество с точки зрения Бартла, выделила категории игроков. Затем я разделила аудиторию на подсообщества и для каждого определила коммуникационную стратегию. В результате я начала формировать свой контент-план, учитывая потребности этих категорий игроков. Появились разные типы задач, конкурсов и способов информирования.
После исследования аудитории я поняла, что наши игроки любят достаточно сложные, но творческие конкурсы. В какой-то момент я предложила им написать альтернативное продолжение романа. К моему удивлению, было много фидбека, прислали достаточно много работ. Для меня это стало свидетельством того, что я двигаюсь в правильном направлении. Поэтому теперь я делаю большой акцент на таких творческих конкурсах, в которых нужно что-то придумать, написать, нарисовать, сфотографировать.
***
Важно помнить, что модель Бартла в комьюнити-менеджменте — это не универсальное средство, которое работает во всех случаях. Многое зависит от специфики отдельной аудитории — к этой модели обязательно нужно добавить культурный контекст и ценности тех игроков, с которыми вы взаимодействуете. Например, когда у Storyngton Hall случается наплыв английских игроков, я немного меняю контент — мы можем устроить традиционный «Five o’clock Tea».
Когда вы подберете подходящие инструменты для работы с аудиторией и разными категориями, начнется новый итеративный процесс — вы будете тестировать эти инструменты, затем внедрять в работу и через какое-то время начинать весь процесс заново. Сообщество постоянно меняется, поэтому нужно постоянно следить за его потребностями и подстраивать свою стратегию под это. И эта работа может продолжаться без остановки.
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.