Country not specified
Unknown website Share

Apps4all

Страна: -
Город: -
Был онлайн: -
О себе:
 
08-07-2016, 11:49
Apps4all

Как подготовить социальную игру к большому росту

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

Если ты планируешь создать и выпустить социальную игру, в первую очередь тебе нужно беспокоиться именно о росте. Во многом благодаря Facebook, эти игры могут нарастить пользовательскую базу с нуля до миллионов пользователей буквально за один день. Игра CityVille от компании Zynga имела 100 миллионов активных пользователей уже через 40 дней после выпуска. Разумные затраты на поддержание такого роста вкупе с предоставлением энергичного и убедительного пользовательского опыта являются огромным вызовом для разработчиков.

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

Управление данными социальных игр

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

  • Эластичность: Согласование инфраструктурных расходов с запросами оптимизирует выгоду. Возможность легко увеличить (или уменьшить) ресурсы базы данных – это критически важный элемент, требуемый для создания баланса. Нужно уметь вносить эти изменения не прерывая игру. Это обеспечит беспрерывную генерацию дохода.
  • Малая задержка: Интерактивные игры должны обеспечивать быстрый отклик. Нельзя заставлять пользователя ждать. Если игра не достаточно быстра и предсказуема, аудитория уходит, и уносит с собой деньги. Технологии базы данных должны иметь возможность моментального считывания и записи данных по всему спектру.
  • Гибкость формата данных: Лучшие социальные игры приспосабливаются под игрока. Скука ведет к потере числа активных пользователей. Уровень данных должен быть достаточно гибким (даже в очень больших масштабах и без простоя), чтобы отвечать меняющимся требованиям управления данными игры.

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

Выбор правильной базы данных NoSQL

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

Какая из них лучше подойдет для социальных игр? Вокруг NoSQL много разговоров о "Больших Данных". Может быть, это одно и то же?

Давай разберемся с этими вопросами в обратном порядке:

Большие данные против Большой Аудитории

Сегодня на уровне данных существуют две фундаментальные проблемы.

  • Большие данные. Данные генерируются с беспрецедентной скоростью. Как можно эффективно анализировать такие огромные наборы данных, и распознавать структуры, тенденции и возможности? Это проблема "Больших Данных". Для анализа очень больших наборов данных существуют такие технологии, как Hadoop, Map-Reduce и Cassandra. Они имеют пакетную (batch) ориентацию и сосредоточены именно на анализе.
  • Большая аудитория. Пользовательские базы социальных игр состоят из миллионов человек. Миллионы пользователей оказывают на базы данных невероятное давление, независимо от размера набора данных. Даже если на одного пользователя приходится по несколько байт, базе данных очень сложно поспевать за непрекращающимся потоком случайных считываний и записей от огромного числа единовременно находящихся в сети пользователей. Это проблема Большой Аудитории, и, в том числе, для ее решения были разработаны базы данных NoSQL.

Разумеется, если у тебя Большая Аудитория, ты будешь генерировать Большие Данные. Большинство социальных игр используют как транзакционную базу данных NoSQL для обработки данных в реальном времени, так и технологические решения проблемы Больших Данных для анализа.

Классы баз данных NoSQL

Термин "NoSQL" – не слишком удачный. Правильнее такие базы данных называть "нереляционными". Эта характеристика соответствует всем базам данных NoSQL (некоторые из которых поддерживают как минимум подмножество SQL).

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

  • Производительность. Документная модель данных хранит все связанные данные в одном месте: в памяти или на диске (документ). Это обеспечивает постоянный доступ к данным с малой задержкой. Задержка базы данных может вылиться в "лаги" на стороне игрока, и их избежание – ключевой критерий успеха.
  • Динамичная эластичность. Поскольку при использовании документного подхода все данные хранятся в одном месте (как единый документ в физическом хранилище), очень легко перемещать данные с одного сервера на другой без простоя. Перемещение данных необходимо для добавления или удаления кластеров данных, что делается для согласования совокупной производительности приложения с мощностью базы данных. Возможность делать это, не прерывая поток доходов от игры, положительно сказывается на экономической выгоде.
  • Гибкость схемы. Хотя все базы данных NoSQL обеспечивают гибкость схемы, наибольшую гибкость предоставляют именно документные базы данных. Для добавления новых столбцов и их группировки в Column-oriented базах данных все еще требуется отключение, что выливается в простой. Базы данных с использованием ключей и документов не требуют перезагрузки для изменения схемы (т.е. для добавления или удаления "полей" или элементов данных из записей).
  • Гибкость запроса. Баланс гибкости схемы и выразительности запроса (имеется ввиду возможность спросить у базы данных, например, следующее: "дай мне список всех ферм, на которых игроки в прошлом месяце покупали черных овец") очень важен. Хотя база данных на основе ключевых значений очень гибки, и дают пользователю возможность подставить любое значение в пару key-value, они не обеспечивают возможности задавать вопросы. Они разрешают доступ лишь к тем записям, которые связаны с определенным ключом. Я могу запросить данные о фермах для пользователей A, B и C, чтобы проверить, есть ли у них черные овцы, но я не могут попросить у базы данных сделать эту работу от моего имени. Документные базы данных обеспечивают наилучший баланс гибкости схемы, не лишая возможности делать сложные запросы.

Какой вариант лучше всего подойдет для твоей игры?

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

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

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

 
приложение
разработка
база данных
NoSQL
статья
0 0 0

Чтобы оставлять комментарии вам необходимо зарегистрироваться