Я заселил мир своей ММОРПГ и посчитал, во что обходится каждый игрок — хобби 30+ и подросткам, ч. 22
Когда делаешь свою MMO, рано или поздно задаёшь себе тревожный вопрос: а выдержит ли? Не игра — железо. Сколько людей поместится в мир, если он вдруг оживёт по-настоящему?
Пустой мир почти ничего не весит. Я поднимаю два десятка карт, пробегаю их насквозь — и сервер едва это замечает. Всё меняется, когда в мир приходят игроки и просыпаются монстры. В этой части я наконец посчитал, во что обходится каждый.
Мир, который заселяли на камеру
Как заселить карту — от пустого раздела до монстров, которые по ней ходят, — я в этот раз показал не текстом, а серией коротких уроков.
И самое забавное: ролики снимает сама платформа. Я описываю сцену — какую страницу открыть, куда пройти персонажу, что нажать, — а кадры, озвучка и сборка идут сами. Из этих выпусков вырастает курс, чтобы следующий мечтатель начал не с нуля.
Сколько стоит живой мир
У каждой игры в каталоге теперь есть блок «Во что обойдётся сервер». Выбираешь, сколько будет людей и насколько плотно заселён мир, — и сразу видишь, сколько понадобится памяти и мощности.
На одного игрока приходится примерно 3 мегабайта памяти и сотая часть ядра процессора — с учётом монстров, которые просыпаются рядом с ним. Спящий монстр занимает только память, проснувшийся работает постоянно. А искать цель в толпе дороже, чем на пустой поляне.
Числа пока расчётные, а не снятые с живого онлайна, и часть из них приблизительна. Но главное видно уже сейчас: при привычном для онлайн-игр онлайне мой мир умещается на скромном сервере, вроде тех, что держат обычный сайт. Когда я это увидел, стало спокойнее: места хватит для всех, кого хочется позвать.
Места, куда не дойти
Новая проверка находит уголки мира, куда не попасть: клочок земли за скалой, комнату с дверью в никуда. Таких уголков у меня 26. А в одном из них у порта заперты 15 монстров, которых игрок никогда не встретит. Почему-то их было немного жаль.
Что остаётся мне
Инструменты для этого писал ИИ, ролики собирает тоже он. Но каким быть миру — сколько существ на поляне и где игрок обязан испугаться, — решаю я. И какие из 26 запертых мест задуманы, а какие ошибка, тоже решаю я.
Следующий шаг — превратить декорацию в игру: трофеи с поверженных, сундуки, лавки.
А вы считали когда-нибудь, какой сервер нужен вашему проекту? До запуска или когда он уже работал?
История:
- Введение
- Масштабируемость и асинхронность
- WebSocket
- Redis
- LUA и JavaScript
- Выбор технологий, протокола и ECS
- Игровые локации (тайловые карты)
- Клиентская часть на Unity
- Игровые серверные механики
- Открытый бесшовный мир в 2D игре
- FPS, Ping, интерполяция и экстраполяция
- Очереди и параллельное программирование на CPU
- Event-driven, JSON-RPC и почему не SOA
- Сетевая карта и задержка кадра (Latency frame) по RFC 2544
- Авторитарный сервер на процессах
- MVP готов
- Внедряю ИИ: механики из одного описания
- Конвейер контента: анимации, экипировка, обновление без патчей
- Каталог ассетов и git: как командой вести игру в облаке
- Как я тестирую код, который пишет ИИ: контракты вместо тестов
- ИИ-картограф: как карты сшиваются в бесшовный мир
- Сколько обходится содержание одного игрока