Комментарии 14
У нас уже все есть для запуска игровой индустрии.
С меня движок для игр(убийца юнити, не имеющий аналогов в мире): https://github.com/space2pacman/elpy
С вас движок для сервера))
Вообще пора бы ввести моду на минимализм в потреблении технологий, а то что не проект так прикручивают кучу всего, непонятно зачем и как с этим работать, а ведь это простой сервис например. Все то что хорошо работает, просто и минималистично. Автор молодец.
Было бы хорошо написать про ограничения сервера. Например какой лимит игроков(если кто-то делает ММОРПГ там может быть и 20к игроков разом), про масштабирование я так понял еще не думали?
Всякие редисы и очереди делают для горизонтального масштабирования.
"Всякие редисы" - делают не для масштабирования, а для хранения данных в первую очередь и они слишком медленные. Горизонтально масштабирумое решение можно и 200к разом. Это 6-ая по счету статья-вся информация разбита по частям
Редис это in-memory кеш, который часто служит связкой между несколькими инстансами, в качестве общего кеша/памяти(причём сам Редис может горизонтально масштабироваться тоже, синхронизируя состояние, но это для особо больших решений).
Поэтому и участвует в масштабировании, когда можно в любой момент добавить сервер или убрать лишний, не теряя состояние мира/игроков/или любой другой stateful операции.
А использовать его "просто для хранения" глупо, только лишние запросы по сети. Фунционал редиса локально можно кеш библиотеками сделать.
Но для потенциального масштабирования в будущем лучше делать абстракции/интерфейсы которые потом позволят изменить имплементацию хранилища (in memory прежде всего) и использовать тот же редис, не изменяя основную логику сервера.
У меня мастштабирование идёт целыми локации игровыми.
И локаций может быть неограниченное число. Некоторые на одном физическом сервере, другие на другом и игроки по ним ходят
И я на согласен что redis "просто для хранения использовать глупо" - это его основная функция и довольно быстрая по сравнению с sql базами
Текущий vps за 10$ без оптимизации полагаю выдержит не более 2000 онлайн , вот ссылка на последние тесты http://my-fantasy.ru/articles/frontend/index/eyJpZCI6OX0=
Что бы дать точное количество нужно точно знать для какой игры. Мое решение не игра, а технология где сервер делает все расчёты в тч физики. Если использовать его как типовой роутер на прием и пересылку запросов от игроков то и больше цифра онлайн
Так или иначе 20к игроков разом это что же за карта должна быть...
речь про совместных онлайн. Не про игры с комнатами по 5-20 игроков
Думаю уже через месяц (сегодня начну) я сделаю открой мир, напишу очередную статью, покажу видео и расскажу про масштабирование что использую более подробно
Создание сервера для онлайн ММО игр ч. 6 — Выбор технологий, протокола и архитектурный шаблон Entity Component System