Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Amazon DynamoDB vs Couchbase vs ... для async multiplayer игры

Amazon DynamoDB vs Couchbase vs ... для async multiplayer игры

Поделиться
Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 Следующая

kFkПостоялецwww15 мая 201714:39#0
Допустим, игра по типу Clash of Clans. Планируем использовать Node.JS для серверной логики.
Какую БД лучше выбрать?

Раньше встречал, что для мобильных игр хорошо подходит Couchbase. Плюс ее же использовали Zynga и по слухам сами Supercell.

DynamoDB тоже позиционирует себя как БД в том числе для игр - https://aws.amazon.com/dynamodb/gaming/
И те же Zynga и Supercell сейчас на ней уже..

Вопрос - какую БД лучше выбрать для игры по типу Clash of Clans? Явно, с меньшей популярностью, нежели у Supercell (возможно выбор DynamoDB связан уже больше с остротой вопроса масштабирования и т.д.).
DynamoDB, Couchbase или может есть еще более подходящий вариант (Tarantool, ...)?

Заранее спасибо за подсказки.

--
Из найденого на просторах:
- Couchbase is a NoSQL software but DynamoDB is a NoSQL database as a service (о том как сильно какой вариант важен в нашем случае не знаю, пока что оба варианта кажутся допустимыми)
- For DynamoDB you have to host your application in EC2 otherwise network lag would be a bottle neck (то есть привязка к EC2, что может быть тоже норм)
- Couchbase is good for <100gb datasets with 100k+ rps, DynamoDB is good for 1tb+ datasets with <10k rps (без понятия насколько правда и актуально ли, плюс у supercell явно не <10k rps)

Правка: 15 мая 2017 15:02

robotcityПостоялецwww15 мая 201718:53#1
Допустим ты возмешь самую плохую самую медленную, к примеру MySql базу данных, как это скажется на самой игре? или ты хочешь чтобы все расчеты вела и синхронизовала между игроками БД?

Правка: 15 мая 2017 18:53

MorphiaПостоялецwww15 мая 201721:12#2
kFk
> DynamoDB тоже позиционирует себя как БД в том числе для игр -
> https://aws.amazon.com/dynamodb/gaming/
> И те же Zynga и Supercell сейчас на ней уже..
имеется ввиду что это для он-лайна можно юзать под Андроид и мобилы в целом
к доступ к своей БазеДанных (БД) ,но на общем ресурсе Амазона

robotcity
> Допустим ты возмешь самую плохую самую медленную, к примеру MySql базу данных,
> как это скажется на самой игре? или ты хочешь чтобы все расчеты вела и
> синхронизировала между игроками БД?
да по-ходу можно базу и самому админить , в смысле хэнд-мейт

kFk
кстати тогда еще вопрос : есть ли критерий по Сервисам БД

kFkПостоялецwww16 мая 20170:17#3
robotcity
> Допустим ты возмешь самую плохую самую медленную, к примеру MySql базу данных,
> как это скажется на самой игре? или ты хочешь чтобы все расчеты вела и
> синхронизовала между игроками БД?

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

kFkПостоялецwww16 мая 20170:18#4
Morphia
> кстати тогда еще вопрос : есть ли критерий по Сервисам БД

Наверное есть, но опыта у меня в этом пока не много.

kvakvsПостоялецwww16 мая 20172:21#5
Поясню по хардкору.
1. Выбор БД, скорость и тип БД роли не играют. Вообще. Монгу только не берите, она глупая )
2. На входе игрока в игру грузим данные аккаунта в память.
3. При выходе игрока или с заданной периодичностью после каждого боя аккаунт сохраняем.
4. В остальное время доступ к БД и диску запрещается. Работаем только через память.

Всё. Будет тебе успех )

MorpheuzПостоялецwww16 мая 20172:57#6
kvakvs
> Монгу только не берите, она глупая )
А что монга сейчас уже не в тренде?

kvakvs
> 4. В остальное время доступ к БД и диску запрещается. Работаем только через
> память.
Это сколько игроков онлайн нужно иметь, что бы так извращаться с оптимизацией?
10К - так, тогда проще сервачек помощнее взять.
При том, что оно и так будет в кэше. Благо сейчас сервера не дорогие с 128 ГБ ОЗУ

kFk
> Ну, БД в любом случае ж расчеты не проводит.
Ну чего же?
Можно заюзать MS-SQL с хранимыми процедурами, там навернуть всю бэкенд логику.
ИМХО, что лучше знаете, или что кажется более понятным - то и нужно использовать.

9К720Участникwww16 мая 201711:42#7
Morpheuz
> А что монга сейчас уже не в тренде?
Она никогда не была в тренде. Очень медленная, тормозючая и что самое главное - теряющая данные.
9К720Участникwww16 мая 201711:44#8
Morpheuz
> Можно заюзать MS-SQL с хранимыми процедурами, там навернуть всю бэкенд логику
Это write-only код. Подобная херня очень тяжело тестируется и очень тяжело сопровождается.
kFkПостоялецwww16 мая 201711:52#9
kvakvs
> 2. На входе игрока в игру грузим данные аккаунта в память.
> 3. При выходе игрока или с заданной периодичностью после каждого боя аккаунт
> сохраняем.
> 4. В остальное время доступ к БД и диску запрещается. Работаем только через
> память.

Так, по идее, не получится. Т.к. надо на сервере производить matchmaking и кучу всего другого.
Плюс такой вариант не cheat-proof, т.к. логика выполняется локально и не проверяется на сервере. Слать готовые данные на сервер нельзя, только запросы и получать уже результат.

kFkПостоялецwww16 мая 201711:54#10
9К720
> Она никогда не была в тренде. Очень медленная, тормозючая и что самое главное -
> теряющая данные.

Ага, тоже много где такое встречал. Поэтому решил поуточнять про Couchbase и DynamoDB)
Плюс может у кого опыт с ними есть.

9К720Участникwww16 мая 201712:44#11
kFk
> Так, по идее, не получится. Т.к. надо на сервере производить matchmaking и кучу
> всего другого.
> Плюс такой вариант не cheat-proof, т.к. логика выполняется локально и не
> проверяется на сервере. Слать готовые данные на сервер нельзя, только запросы и
> получать уже результат.
Ты какую-то фигню пишешь, чесслово.

kvakvs
> Поясню по хардкору.
Вместо всего этого можно было просто написать "memory-cache". Кстати да, у нормальных баз он уже есть, и его использование сильно упростит код, чотбы не извращаться с in-memory поисковыми структурами

kFkПостоялецwww16 мая 201712:48#12
9К720
> Ты какую-то фигню пишешь, чесслово.
Аргументы? Я не настаиваю, если что) Но какая альтернатива?
9К720Участникwww16 мая 201712:53#13
kFk
> Аргументы?
Я не про то что ты пишешь что-то неправильное. Все правильно. ПРосто твой ответ вообще никаким боком не относится к посту kvakvs

kFk
> какая альтернатива
Альтернатива простая. Поковыряться с чем получится,  забить на это мморпг и пойти работать джуном в какую-нибудь конторку. Лет через 10 выбор критериев не будет затруднителен. Я если что свой опыт рассказываю.

kFkПостоялецwww16 мая 201712:57#14
9К720
> Я не про то что ты пишешь что-то неправильное. Все правильно. ПРосто твой ответ
> вообще никаким боком не относится к посту kvakvs
А, это он про серверную логику... Я думал про клиентскую.

Страницы: 1 2 3 Следующая

/ Форум / Программирование игр / Сеть

2001—2017 © GameDev.ru — Разработка игр