Задать вопрос
@cthulhudx

Как правильно организовать базу данных многопользовательской MMORPG?

Здравствуйте!У меня есть такой вопрос - как правильно организовать базу данных многопользовательской MMORPG?Подойдет ли реляционная БД?Подкиньте пожалуйста литературу по проектированию БД, буду весьма благодарен.
  • Вопрос задан
  • 1541 просмотр
Подписаться 3 Оценить Комментировать
Решения вопроса 2
@AlexLIn
Посмотрите как делают другие
https://github.com/mangos
Ответ написан
Комментировать
@UA3MQJ
Начните с проектирования архитектуры! БД там на 3-4 уровне будет.
А у меня вот со временем свое мнение выродилось по этому поводу. Много читал, думал. Много программировал. И когда начали писать свою ММОРПГ, моя задача была - сервер, я выбрал лучшее, из того, что я знал - Erlang. Почему? Это тема отдельного длинного монолога. Для общего развития рекомендую почитать про Erlang. Потом про что-то другое, но там потребуется MQ (RabbitMQ)для кластера, чтобы обмениваться сообщениями между нодами. Какие нибудь Boost.io для быстрой работы с сетевым ядром системы. Какой-нибудь Redis для очередей сообщений. Какой-нибудь Memcache для nosql быстрой работой с данными. И какой-нибудь sql для хранения на постоянку. Потом ответить на вопрос, а нужен ли этот весь огород, если есть Erlang. Если этого будет недостаточно, то почитать про возможности по обеспечению надежности Erlang сервисов и по обновлению кода без остановки серверов.
Причем я еще могу понять, когда проект на Python или Java. Когда работает полхо, но деплоится быстро. Но есть упоротые по беспределу (либо горячая молодежь, либо закоренелые наСИльники), которые пытаются делать это на сях, считая, что так быстрее/лучше etc.

В итоге получается:
Десятое правило Гринспена: Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.
Дополнение об Эрланге: Любая достаточно сложная распределённая программа содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Erlang.

Но решать нужно самостоятельно, и самому себе обоснованно. Если будет выбрано направление Erlang, то могу подкинуть еще ссылок. Но хочу сразу сказать, что наш проект в жизнь не вышел, но в силу других , не технологических причин. В нашем экономически обоснованном мире, побеждают, не всегда самые лучшие технические решения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@aleks_raiden
Вполне подойдет, если кратко (а вопрос слишком общий). Кроме того, обычно используют несколько БД, и чаще всего -комбинацию NoSQL и SQL.

Почитать/посмотреть:
habrahabr.ru/company/mailru/blog/256039

habrahabr.ru/company/mailru/blog/254843

habrahabr.ru/company/mailru/blog/254073

habrahabr.ru/company/mailru/blog/248845

habrahabr.ru/company/mailru/blog/182088

habrahabr.ru/company/mailru/blog/220359

habrahabr.ru/company/starnigames/blog/254799
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы