Перед вами мой взгляд на проблему обнищания современных MMORPG по части игровых механик. И, забегая вперед, происходит это отнюдь не из-за всепоглощающего доната.
Еще недавно, запуская какую-нибудь онлайн-игру, мы видели примерно это:
Простая изометрическая проекция, действия происходят на одной плоскости, а даже если и есть перепад высот, то на стороне сервера это организовано как ряд параллельных нумерованных плоскостей. В общем, технически все как будто довольно примитивно, но сколько было видов взаимодействия между игроками и миром, какие трагедии происходили в этом «простом» мире!
А сейчас, при запуске среднестатистической MMORPG мы видим вот такое:
Красота! Все почти как настоящее, только лучше! Однако же, что же (ну кроме визуальной красоты) принесли нам современные игры в плане взаимодействия как между игрой и игроками, а также между самими игроками? Гусары, молчать! Про 20 видов разнообразного доната мы тут не будем.
Рискну выдвинуть предположение, почему так происходит.
Со стороны сервера всякая онлайн-игра выглядит как бесконечный цикл, между итерациями которого проходит сколько-то времени (несколько миллисекунд, или даже микросекунд), и в каждой итерации проверяется множество всяких взаимодействий между игровыми объектами, произошедших за прошедший интервал времени. Одними из самых ресурсоемких являются расчеты механических взаимодействий – столкновений, перемещений одних тел по другим, и так далее. Когда у тебя по сути плоский мир (даже если в клиенте он трехмерный), то расчет взаимодействий довольно прост.
Если же на сервере мир трехмерный, то расчетов становится намного больше — вместо взаимодействий по четырем границам объектов (ну или шести, или даже восьми) нужно начинать рассчитывать между собой пространственные коллизии. Например, пересечения сфер вокруг игровых объектов между собой. Также немедленно появляются взаимодействия между объектами и поверхностью мира: если персонаж стоит на крутом склоне, он должен заскользить вниз, и надо еще силу трения рассчитать, иначе с любой поверхности с мельчайшим уклоном все заскользит куда-то вниз.
Таким образом, сервер поглощен в основном сугубо утилитарными расчетами, предназначенными для повышения реалистичности онлайн-мира, и ни на что другое сил не остается ни у него, ни у создавших его программистов. Нам же все эти модели надо в движок зашить, и поддерживать.
Но иногда бывает еще и хуже. В погоне за красотой, все силы разработчики бросают на клиентскую часть, а серверную, ввиду явной сложности пространственных расчетов, делают по остаточному принципу. В первую очередь реализуют основные геймплейные механики, а всю сложную и тяжелую рутину оставляют на потом, или не делают вообще. Так у нас появляются игры без серверной геодаты, где весь контроль перемещений осуществляется на стороне клиента. К чему это все приводит, я думаю, рассказывать не нужно.
Те же сложности возникают и при создании клиента игры. Пока у нас изометрия, нарисовать несколько спрайтов довольно просто. И оперировать с ними просто: где надо, один спрайт заменил на другой, где надо – просто убрал спрайт, а где надо – добавил новый.
Но простые игроки требуют реалистичности – а значит, дадим им реалистичность! И вот у нас уже игровые клиенты весят по 20 гигабайт, потому что там внутри текстуры в 4K-разрешении, и модели по миллиону полигонов со скелетом из 300 сочленений.
Однако же в получившейся красоте появляются свои сложности. Разработчики трехмерных игр знают, что наилучшим способом повысить быстродействие при отрисовке 3D-сцены – это преобразовать множество трехмерных объектов, соприкасающихся друг с другом, в единую громадную криволинейную поверхность, состоящую из треугольников (так называемый три-меш, ну или просто меш). При всей своей кажущейся сложности, отрисовываться она будет довольно быстро, так как существует большое количество разработанных специально для этого методов. Но объединение всего ландшафта в меш приводит к тому, что ландшафт становится совершенно статичным. Дерево не срубить, камень не поднять, травку не выдернуть. Если же каждое дерево делать отдельным объектом (не говоря уже о камнях и травинках), то клиент немедленно задохнется во фризах. Достаточно вспомнить Archeage и мероприятие по захвату Золотых Равнин. Сотня собравшихся в одном месте персонажей приводила к сильной просадке fps (число кадров в секунду) именно потому, что надо было отрисовывать много отдельных объектов, а не один большой меш. А с точки зрения клиента, любое отдельно стоящее дерево или камень – почти как персонаж (ну разве что полигонов поменьше). В Archeage вышли из ситуации, сделав только некоторые деревья игровыми объектами, равно как и рудные жилы.
А в H&H, ввиду крайне низкой полигональности, возможно стало сделать каждое дерево отдельным объектом. Но травы там нет совсем, кроме отдельных собираемых элементов. Да и про визуальную красоту в H&H, я думаю, говорить излишне :)
Настоящий же разгул интерактивности, как это ни странно звучит, происходит там, где никакой графикой и не пахнет. Именно в Dwarf Fortress путем отказа от любой попытки выглядеть красиво достигнуто крайне высокое качество симуляции. В игре происходят исключительно те расчеты, которые нужны для реализации геймплея, а расчетов для графики не производится совсем.
Таким образом, возникает парадокс: в попытке сделать визуальную часть онлайн-игры как можно более сложной, приближенной к реальному миру, разработчики уменьшают в ней количество реализованных игровых механик, и неизбежно упрощают ее. И наоборот: где не гонятся за красотой как самоцелью, и делают визуальную часть игры проще – там появляется возможность реализовать множество интересных игровых механик, сделать саму по себе игру более сложной (в плане глубины геймплея, а не трудности).
Разумеется, это всего лишь моя точка зрения, и могут существовать и другие точки зрения на эту проблему. Критика принимается.
Еще недавно, запуская какую-нибудь онлайн-игру, мы видели примерно это:
Простая изометрическая проекция, действия происходят на одной плоскости, а даже если и есть перепад высот, то на стороне сервера это организовано как ряд параллельных нумерованных плоскостей. В общем, технически все как будто довольно примитивно, но сколько было видов взаимодействия между игроками и миром, какие трагедии происходили в этом «простом» мире!
А сейчас, при запуске среднестатистической MMORPG мы видим вот такое:
Красота! Все почти как настоящее, только лучше! Однако же, что же (ну кроме визуальной красоты) принесли нам современные игры в плане взаимодействия как между игрой и игроками, а также между самими игроками? Гусары, молчать! Про 20 видов разнообразного доната мы тут не будем.
Рискну выдвинуть предположение, почему так происходит.
Со стороны сервера всякая онлайн-игра выглядит как бесконечный цикл, между итерациями которого проходит сколько-то времени (несколько миллисекунд, или даже микросекунд), и в каждой итерации проверяется множество всяких взаимодействий между игровыми объектами, произошедших за прошедший интервал времени. Одними из самых ресурсоемких являются расчеты механических взаимодействий – столкновений, перемещений одних тел по другим, и так далее. Когда у тебя по сути плоский мир (даже если в клиенте он трехмерный), то расчет взаимодействий довольно прост.
Если же на сервере мир трехмерный, то расчетов становится намного больше — вместо взаимодействий по четырем границам объектов (ну или шести, или даже восьми) нужно начинать рассчитывать между собой пространственные коллизии. Например, пересечения сфер вокруг игровых объектов между собой. Также немедленно появляются взаимодействия между объектами и поверхностью мира: если персонаж стоит на крутом склоне, он должен заскользить вниз, и надо еще силу трения рассчитать, иначе с любой поверхности с мельчайшим уклоном все заскользит куда-то вниз.
Таким образом, сервер поглощен в основном сугубо утилитарными расчетами, предназначенными для повышения реалистичности онлайн-мира, и ни на что другое сил не остается ни у него, ни у создавших его программистов. Нам же все эти модели надо в движок зашить, и поддерживать.
Но иногда бывает еще и хуже. В погоне за красотой, все силы разработчики бросают на клиентскую часть, а серверную, ввиду явной сложности пространственных расчетов, делают по остаточному принципу. В первую очередь реализуют основные геймплейные механики, а всю сложную и тяжелую рутину оставляют на потом, или не делают вообще. Так у нас появляются игры без серверной геодаты, где весь контроль перемещений осуществляется на стороне клиента. К чему это все приводит, я думаю, рассказывать не нужно.
Те же сложности возникают и при создании клиента игры. Пока у нас изометрия, нарисовать несколько спрайтов довольно просто. И оперировать с ними просто: где надо, один спрайт заменил на другой, где надо – просто убрал спрайт, а где надо – добавил новый.
Но простые игроки требуют реалистичности – а значит, дадим им реалистичность! И вот у нас уже игровые клиенты весят по 20 гигабайт, потому что там внутри текстуры в 4K-разрешении, и модели по миллиону полигонов со скелетом из 300 сочленений.
Однако же в получившейся красоте появляются свои сложности. Разработчики трехмерных игр знают, что наилучшим способом повысить быстродействие при отрисовке 3D-сцены – это преобразовать множество трехмерных объектов, соприкасающихся друг с другом, в единую громадную криволинейную поверхность, состоящую из треугольников (так называемый три-меш, ну или просто меш). При всей своей кажущейся сложности, отрисовываться она будет довольно быстро, так как существует большое количество разработанных специально для этого методов. Но объединение всего ландшафта в меш приводит к тому, что ландшафт становится совершенно статичным. Дерево не срубить, камень не поднять, травку не выдернуть. Если же каждое дерево делать отдельным объектом (не говоря уже о камнях и травинках), то клиент немедленно задохнется во фризах. Достаточно вспомнить Archeage и мероприятие по захвату Золотых Равнин. Сотня собравшихся в одном месте персонажей приводила к сильной просадке fps (число кадров в секунду) именно потому, что надо было отрисовывать много отдельных объектов, а не один большой меш. А с точки зрения клиента, любое отдельно стоящее дерево или камень – почти как персонаж (ну разве что полигонов поменьше). В Archeage вышли из ситуации, сделав только некоторые деревья игровыми объектами, равно как и рудные жилы.
А в H&H, ввиду крайне низкой полигональности, возможно стало сделать каждое дерево отдельным объектом. Но травы там нет совсем, кроме отдельных собираемых элементов. Да и про визуальную красоту в H&H, я думаю, говорить излишне :)
Настоящий же разгул интерактивности, как это ни странно звучит, происходит там, где никакой графикой и не пахнет. Именно в Dwarf Fortress путем отказа от любой попытки выглядеть красиво достигнуто крайне высокое качество симуляции. В игре происходят исключительно те расчеты, которые нужны для реализации геймплея, а расчетов для графики не производится совсем.
Таким образом, возникает парадокс: в попытке сделать визуальную часть онлайн-игры как можно более сложной, приближенной к реальному миру, разработчики уменьшают в ней количество реализованных игровых механик, и неизбежно упрощают ее. И наоборот: где не гонятся за красотой как самоцелью, и делают визуальную часть игры проще – там появляется возможность реализовать множество интересных игровых механик, сделать саму по себе игру более сложной (в плане глубины геймплея, а не трудности).
Разумеется, это всего лишь моя точка зрения, и могут существовать и другие точки зрения на эту проблему. Критика принимается.
43 комментария
А потом еще слушать от игроков, что «графика не оч» :)
Опять же, в ХиХ каждое дерево — объект? Прелестно. Но кто-то реально считал, больше ли этих деревьев на локацию, чем в АА? На скрине натыкано несколько сиротливых объектов, что ж, в АА может быть столько же плюс деревья, которые объектами не являются, но создают красивость. В чем разница? И там, и там есть объекты, с которыми можно взаимодействовать. От того, что добавлены невырубаемые деревья — кстати, вполне возможно, исключительно ради того, чтобы игроки не превратили совсем уж все вокруг себя в голую пустыню — как-то пострадала интерактивность «настоящих»? Мне тут нужен смайлик «nope», право слово.
При этом игры с «красивостями», похоже, способны не только привлечь больше игроков (да-да, они все примитивные субъекты, которые жаждут только картинки, но не механик), но и удержать их, вот ведь сюрприз. А в ХиХ люди как приходят, так и уходят, и дело, сдается мне, вовсе не в графике.
Кстати, впервые услышала о том, что Dwarf Fortress — ММОРПГ.
Превращение же территории в голую пустыню силами игроков тоже несет в себе ценность. Во-первых, можно навскидку определить, если что здесь добывать (если голая земля — то значит все вырубили), а не бегать по нарисованному лесу, водя мышкой по деревьям, в надежде найти не нарисованное. С этим как раз бот хорошо справится, ему не скучно будет, да и точки респа он легко закартографирует. А во-вторых, как в Eco, можно показать игрокам, что нельзя вести себя безответственно, надо заботиться об окружающей среде.
И кстати, Dungeon Keeper тоже не ММОРПГ. Но вместе с Dwarf Fortress, они были приведены просто как пример изометрической графики и отсутствия графики вообще.
То, что некоторые объекты были жестко прикручены это больше проблема дизайнерского замысла.
И это мы еще терраморфинг не рассматривали, который есть в H&H, но в AA его нет.
P.S. Терраморфинг есть в Life is fuedal, которая по графической части даже выше Archeage.
P.S.S. Технические проблемы с графикой Archeage вообще по большей степени лежали в изначально неправильном выборе движка Cryengine 3, который для ММО вообще не оптимизирован.
А в ХиХ количество видов деревьев ничем не ограничено? Это круто, конечно.
Это нормально. Нормальный лесоруб тоже выбирает себе деревья, а не бежит стремглав через чащу, как бобер-мутант. И если конкретно в этой части леса не нашлось пригодных для рубки деревьев — значит, не повезло. Приходите через год-другой.
А что касается ценности — давайте поговорим о том, как выхолащивание территории в ХиХ может иметь «ценность». В игре, которая дышит на ладан именно потому, что живет циклично, от вайпа до вайпа, потому что игроки выжимают из окружающего мира максимум, доходят до условного капа развития и теряют к игровому процессу интерес. Я все же хотела бы увидеть какие-то более жизнеспособные примеры такое ценности. В ММОРПГ.
Тогда простите, но это все некорретный разговор. Синглы могут позволить себе большее. Они могут позволить себе построиться вокруг любой механики. Они не страдают от главного — от избытка людей, которые должны постоянно взаимодействовать внутри игры. Я уверена, если мы пороемся в синглах, то найдем примеры игр с интересными и сложными механиками и сейчас. Я не специалист, но я категорически не верю, что со времен Dwarf Fortress синглплееры не предлагали аудитории ничего интересного и оригинального. Майнкрафт, например, не считается?
ММО — это совершенно другая область. Здесь все тривиальные механики игры должны быть подчинены социальным, а игровая часть — адаптирована под массовое взаимодействие и постоянную доступность механик всем и каждому. Естественно, это создает совершенно другую нагрузку, и я не только о технической нагрузке говорю. Сложно увязать все эти механики в одно, сделать цельный «организм», и где растут деревья — для ММО уже совсем не первый вопрос.
Яростно плюсую! Именно что в ММО (и ММОРПГ особенно) первично именно взаимодействие игроков. Но чтобы оно не оставалось только навороченным 3D-чатом, нужно побуждать игроков с помощью игровых механик к социализации. Какой-нибудь поход за редким лазуритом за тридевять земель — это вызов! И даже если есть карта местности, по которой понятно — в каком направлении идти, лучше, чтобы это была какая-то область без фиксированных точек расположения лазурита. Манор в L2, при некотором его улучшении, мог бы тоже быть прекрасной механикой объединения игроков (и вообще, манор и спойл — это было интересное решение проблемы добычи ресурсов без тераморфинга, веселой фермы и веселого рудокопа).
Вообще собирательство — сложная механика для социализации. Обычно собирать удобно одному. То есть нужно придумать механики для объединения, причины, и вряд ли это будет технически сложно. Тут вызов скорее для интеллекта :)
Безусловно. Но сейчас у нас есть интересный пример именно ММО (пусть и в скромных масштабах) с развитыми механиками взаимодействия между игроками и окружающим миром. Я, разумеется, про Eco. Очень жаль, что со временем у меня сейчас такой напряг, даже сюда удаётся заходить только в коротких перерывах между работой — иначе я бы тоже посмотрел на этот мир своими глазами. Но я надеюсь, что он никуда не денется в ближайшие несколько месяцев :)
Просто развивать исключительно социальные взаимодействия тоже не выход — мы по сути переизобретём чат. Безусловно, я могу ошибаться, но интересный интерактивный контекст социальным механикам не вредит.
Речь не идет о «чистом» социальном взаимодействии, скорее о том, как социализацию вплести в геймплей. Я выше писала — это сложно не в техническом, а в интеллектуальном плане. Пример: АА, в которой очки работы должны были, по идее, повысить значимость игроков друг для друга, развить диверсификацию и т.д., а на практике послужили причиной для разъединения и универсализации. Не сработало. Не в механиках дело было, а в логике игры, и этот момент банально не додумали.
А поясни этот момент, пожалуйста. Просто мы ведь не видели концепцию в ее изначальном замысле. Только монетизационную эксплуатацию, извратившую ее кардинально. Там, где игрок должен был получить лимит и отсутствие очков работы, он получал приглашение в магазин.
В игре, где на все нужно зарабатывать и все имеет цену, не тратить эти ОР было бы просто расточительно. ОР имели твердую цену в игровой валюте, но их нельзя было просто взять и передать в упаковке. Нужно было тратить их на трудовую деятельность. И понятно, что делать это нужно было не тупо и бессмысленно, а с четким расчетом: ведь чем выше уровень профессии, на которую они тратятся, тем выгоднее.
Конечно, многие пошли по пути наименьшего сопротивления и выбрали… правильно, торговые грузы, одну из немногих механик в АА, которая не была привязана к игровому сообществу на стадии окончательной реализации товара. Деньги почти что из воздуха. А для того, чтобы скрафтить торговые грузы, нужен был огород. А потом, в очередном обновлении — дом с торговым складом. И вот вокруг таких индивидуальных предпринимателей закрутилась целая производственная цепочка, и зачем таким людям объединяться? Культура, при которой каждый «гуляет на свои» ОР, сформировалась окончательно. Те, кого укачивало от трактора или не привлекали кубинские круизы, осваивали другие ремесла. Буквально перековывали мечи на орала. Потому что когда у тебя в руках сверхценный ресурс — очки работы — нельзя же просто так их выбросить? Вот все и «сливали», кто во что горазд.
И это я сейчас без конст, без гильдий-достигателей, без прочих крайних полюсов формирования жесткой «корпоративной» культуры с барщиной на морковке. Понятно, что это локальные перегибы. Но они появились не на пустом месте, система, в которой у воина и ремесленника очков работы поровну, и передать их нельзя, и ценность их огромна — она на самом деле не оставляет возможностей для реальной диверсификации. Возможно, именно это пытались сбалансировать, когда ОР начали тратиться на каждый чих, включая открытие мешочков с лутом. Но получилось только хуже: пул ОР все равно оставался у всех одинаковым, просто если раньше фермер, потратив весь суточный запас на своем участке, мог хотя бы мобов побить, теперь оказывался полностью выключенным из игры. А пвпшники уже не могли отучиться водить тракторы :) И это не говоря о манящем Острове Свободы, который давно уже стал частью местной ПвП-активности. Как же туда паки-то не водить? Да и монетизацию через имбирный напиток уже подвезли, так что исправлять ситуацию было поздно.
Реактивность — это свойство корректироваться в зависимости от изменений окружающей среды.
Рефлекс — это стереотипная реакция в ответ на некоторое возбуждение.
Первый подход так и называется — реактивным. Второй — рефлексивным.
Так вот. Что я видел раньше в серверах? Они были рефлексивными. Это было главным свойством.
Появился игрок на локации, в зоне его интереса от каждого движения начинают считаться варианты. Если игрок движется по зоне спауна мобов, то от каждого перемещения на периферии зоны интереса начинает работать спаунер, выбрасывая мобов с равномерной вероятностью распределения по всей зоне спауна.
Встретились два игрока, пересеклись их зоны интереса, для них начинают считаться механики ближнего действия.
Любое действие, как правило, представлено таймером, который не тикает назад, а сразу говорит время, когда ему сработать. Каст скилла — это таймер. Куллдаун — таймер. Эффект скилла — таймер. На самой локации тоже есть таймер, который подсовывает некоторые события игрокам на тот случай, если все они разом замрут, чтобы локация выглядела живой. Четко оговоренные границы активной работы дают возможность экономить ресурсы и тратить их только по делу.
А когда последний игрок вышел с локации, все ее ресурсы почистились, мобы удалились, ненужные эффекты удалились и локация перешла в спящее состояние.
Это буквально система реального времени, использующая ресурсы только по мере возникновения событий.
eAthena была способна с успехом содержать до 10к активных игроков РО всего на одном ядре с частотой 4ГГц, не загружая его на 100%. А в РО механики далеко не так просты, как может показаться.
Что я вижу в серверах все последнее время. Сервера сплошь и рядом реактивные.
Xeon-Phi на 72 ядра? Нам этого мало! Нам нужен юнит на 4 зеона и 288 ядер! Но и этого будет мало, когда к нам начнут подключаться игроки.
Обозначенный Эльфом бесконечный цикл крутится для каждой локации отдельно. При старте локации, на ней сразу создаются все мобы, все НПЦ, все активности, всё возможное, что для этой локации возможно. Старт локации, при этом, занимает чумовое количество времени. И это еще только цветочки.
После старта локации, для нее безусловно начинает работать цикл обработки событий, а события генерируются вот всем тем, что было в локацию загружено. Мобы ходят, НПЦ скучают, триггерные зоны ищут игроков… От 10 до 100 раз в секунду. Игроков еще нет, а ресурсы уже сожраны под ноль. Кайф!
1 секунда — безумно короткий отрезок времени, в нем всего 1000 миллисекунд.
Если локация работает со скоростью 10 тактов в секунду, то на один ее такт может быть отведено не больше 100 миллисекунд. Но 10 тактов в секунду — это слишком мало для качественной симуляции. Тактов должно быть от 60, лучше 100.
Однако же, 60 тактов означают что на один так не может быть потрачено больше 16.6 миллисекунд. А если тактов нужно 100, то каждый такт надо впихнуть в 10 миллисекунд.
И за эти 10 миллисекунд надо посчитать все то, что накапало в событиях. И это вне зависимости от того, есть игроки на локации или нет. Точнее, если игроков нет, то еще пол беды, а если есть, то хоть вешайся. Помимо НПЦ, триггерных зон, кустиков, колодцев, мобов и прочего контента локации, теперь еще и игроков с их безумными выкрутасами надо считать.
Вот такая вот история выходит. Я не знаю почему при разработке игрового сервера люди стали идти в стороны реактивных систем. Но что это шаг в болото, я всегда догадывался.
Да, создание рефлексивной системы сложнее, требует большей подготовки и более широкого набора навыков.
Является ли это достойным ограничением? Не думаю.
Самым ярким примером хорошей рефлексивной системы на данный момент является Factorio. Это не просто полностью рефлексивная система, это настоящий, полноценный клеточный автомат. Полный клеточный автомат, согласно классификации.
Думаю, на этом этапе все становится понятно. :)
Живой мир тоже может быть построен на основе рефлексивных систем обработки данных. Более того, клеточные автоматы являются именно и рефлексивными, и живыми в одно и то же время.
А даже если и пойти дальше по этому тонкому льду скептицизма, то сразу встанет вопрос такого рода. Ну зачем что-то считать на локации, где НПЦ гвоздями прибиты к месту, где игроков еще нет, где нет никаких полезных активностей? Всякие там SEED, Rimworld и.т.д. понятно, там надо. А когда из неигровых и живых только мобы да кустки (и триггерные зоны, но их ни кто еще не видел, так что это секрет что они живые), зачем их значимость приравнивать к игрокам и тратить на них ресурсы реального времени?
Напиши об этом заметку.
Пожалуйста!
Перевод интересной статьи по теме, можно почитать тут.
ДФ кстати нехило так начинает лаговать при длинной сессии.
Любое дерево на этом скриншоте можно срубить. На его месте можно посадить новое, и оно будет постепенно расти. Любой участок поверхности можно терраформировать. В любом месте можно сделать, к примеру, огород, поставить дом и превратить долину в полноценный город. Если брать базовые принципы взаимодействия, это ничем не отличается от ХиХ. В ХиХ графика попросту… своеобразная, назовем это так. И это не связано с техническими ограничениями, как мне кажется.
Проблема Life is Feudal, да и Haven an Hearth — это растерянность на дальних дистанциях. Что со всем этим счастьем делать, когда целина освоена, долина превратилась в город и главные события в преображении пространства, на которые богата игровая механика, позади? Вопрос глубоко философский, он относится к геймплейной конструкции — стимулам и долгосрочным целям. Кажется, что мысль дизайнера сосредоточена на первых ярких этапах освоения девственно чистого мира, а дальше, условно, у нас маячит финал. Отсюда постоянные вайпы в Haven and Hearth. И, боюсь, через год мы услышим нечто подобное в контексте Life is Feudal.
При этом я не могу сказать, что по механикам эти игры беднее, чем UO. Мне кажется, что они богаче и сложнее. ХиХ так точно. Их проблема в том, что этап цивилизации здесь, это этап занятых, с точки зрения новичков, территорий, упущенного этапа романтичной колонизации, обретение скуки сторожилами, а не то, что должна дарить цивилизация — новые намного более богатые и интересные возможности. Хотя даже на их фоне еще у Фенимора Купера множество раз в произведениях сквозила тоска по ранней колонизации.
И я не писал, что H&H беднее по механикам. Как раз с механиками у него все прекрасно.
Просто для уточнения: не такое уж и глубокое, открытый безвайповый тест. Ну и деньги обычные.
Но ты прав в том, что даже в H&H сейчас заняты переписыванием рендеринга, потому что игра при скоплении игроков начинает лагать.
Это все тратит время, и чем больше деталей в реализации будет сделано, тем больше времени требует. Плюс тестирование всего этого — тоже время.
Сервер? А что сервер? Игроки разве видят, какое железо там и софт? Нет. Они видят результат его работы. Частоту багоюзов, лагов и фризов.
Игровые механики? Безусловно, сервер их выполняет. В том качестве, с которым этот сервер написан.
Игроки видят реакцию сервера и адмнистрации игры.
Быстрый кик с сервера за спидхак и почти мгновенное после этого письмо на привязанную к аккаунту почту — «Низзя повторять! Будет бан».
Или полный игнор сервером того факта, что игрок прыгает по десятикилометровому континенту как зайчик по лужайке.
Прочие «прелести» и чудеса.
Игроки это видят, и поступают так, как посчитают нужным в такой ситуации. Соотношение честной игры и нечестной будет зависеть напрямую от этого видения.
Проработанный мир, с качественными механиками, нескучной прокачкой и с самого запуска игры продуманным геймплеем на капе игры хотя бы на пару месяцев (а там глядишь и новый патч с расширением гейплея, либо игру таки сделали так, что частых обновлений и не нужно для интересной игры). Такой мир требует огромного времени, а соответственно, и огромных финансов на создание. Причем, как можно заметить по некоторым событиям в мире ММО, финансов своих, ибо привлечение финансов чужого дяди запросто может увести первоначальный замысел игры совсем не в ту степь.
Почему же тратится так мало времени на проработку? А банально — играми сейчас занимаются все кому не лень. Рынок забит, причем однотипно наштампованными играми. Разработчики в основном небогаты, и игры делают в расчете на быструю окупаемость. Графика — да. Анимация — норм. Озвучка — да. Квесты — на старте игры обычно норм. Реклама — да, да и еще раз да. Геймплей — на старте норм, а дальше — бог знает. Абузоустойчивый сервер? А зачем? Нате вам сторонний античит, авось в этот раз читеров поменьше будет.
Через годик-два игру прикроют по нерентабельности.
Так и живут.
Получается не только сам движок, но и скриптовая логика на языке программирования Lua и даже физика крутятся на одном физическом ядре процессора. Из-за этого на форумах рекомендуют выбирать процессор с высокой производительностью на ядро. Если это серверный Intel, тогда под требования подходит четырёхядерный Intel Xeon E3 с частотой выше 4GHz. С декстоповой версией процессора тоже самое, всё это нужно для достижения онлайна в 100 игроков вместо, например, 64-ёх.
Понятное дело нижний порог условен и зависит от используемого процессора, скриптов и прочего, а вот верхний нет, то есть вряд ли кто будет ставить на карту 200 игроков. Особо смелые могут поставить 128, но даже без реальных игроков, а простое создание большого числа неписей приводит к неприятным последствиям, причём не столько для сервера, сколько для клиента.
Другое дело пропы или по другому простые динамические объекты, вот их может быть гораздо больше. Фишка же в том, чтобы всё это ещё не находилось в одной области видимости, тогда можно поместить ещё больше объектов. Момент истины наступает, когда поворачиваешь камеру и начинаешь на это смотреть, вот тогда то всё и вылазит.
TCP или UDP? Для передачи данных игры используется UDP. Так же графическая и физическая модели разделены, то есть графических моделей может быть зашито много и выбираемых посредством того же LOD (Levels Of Detail), вот только это проблема видеокарт клиента, а не единственного работающего потока сервера, потому графику можно прокачать без проблем, главное чтобы у клиентов были не «калькуляторы».
Но сам собой напрашивается вопрос, а зачем делать такой серверный движок, когда топовые физические движки уже давно умеют считать на GPU. Между тем на форумах давалось объяснение или предположение помимо нежелания вкладывать огромные деньги в перепрограммирование. Хотя серверные решения в которые можно добавить видеокарты давно уже являются стандартом, в принципе покупать сервера с процессором дешевле, да и мороки с настройкой меньше.
И действительно такое решение потребует всего лишь укороченных серверов высотой в 1U. Предположим берём процессор с 4-мя физическими ядрами на воздушном охлаждении и получаем 4-е карты уровней с онлайном каждой 100 человек, а это уже 400 человек на серверный компьютер. Можно взять и с большим количеством физических ядер, меньше человек на физическое ядро, зато больше запущенных процессов SRCDC.
Хотя логика висит на сервере, проблема не только в ней. Ниже изображение, где я сижу на своём сервере перед телевизором показывающим youtube. Еду можно съесть, она заскриптована. Можно в неё стрелять, взорвать в центре гранату и она разлетится. Главное не спамить предметы друг в друга, те же любимые школьниками вагоны.
Разрушаемость это тоже не проблема, есть такие параметры как минимальный засчитываемый предмету урон, прочность самого предмета и многое другое, включая графические, физические, логические (вроде включения звука) свойства материала. Если же это браши, то есть простейшие статические объекты, то после компиляции карты происходит двоичное разбиение пространства (binary space partitioning). Сами карты хранятся в файлах с расширением bsp. Стоит ли после этого жаловаться на оптимизацию.
Возьмём число Данбара, утверждается, что человек способен одновременно поддерживать от 100 до 230 социальных связей, а чаще всего 150 и это всего по жизни, а не в одной игре. Нужен ли открытый, но пустой, то есть не насыщенный событиями, мир. Нужны ли тысячи игроков на одной локации не имеющие друг к другу никакого отношения.
Можно изначально до компиляции покрыть карту разрушаемыми объектами, кафельные плитки из камня, деревянный паркет, металлическая крыша, стеклянные окна, всё это будет разрушаться с характерным материалу звуком. В практическом же плане это не очень интересно. Обставить свою комнату разрушаемыми предметами, да пусть даже посадить деревья во дворе и то занимательней.
Если представить, что человек как в MMORPG имеет уровни, то есть его личное умение, то у кого-то способность к модификации первого уровня, у кого-то десятка, эльфов восьмидесятого уровня единицы и встречаются они крайне редко. Первые уровни могут думать, что модифицировать это возможно весело, но не стремятся подняться выше, потому что в реальности это не по фану. Потому в MMORPG и качают игрового персонажа с его псевдоопытом, а не себя, как хардкорщики.
У каждого есть возможность создать графику превосходящую проекты от крупных разработчиков. Точно так же можно прокачать логику всего. Простейший пример поведение ботов, на картинке внизу показан путь пересчитанный на момент времени снимка. Цель найти и подбежать к игроку. Казалось бы безграничные возможности кастомизации и перепрограммирования это весело, но для абсолютного большинства, в том числе и меня, это не так.
Людям не нужны сложные механики, им нужны игры простые в освоении и не требующие больших мозговых затрат. Индустрия предлагает подобное в том числе и в MMORPG, но донат действительно убивает такие проекты, особенно у российских локализаторов. И многие уже даже не пытаются оспаривать платную кастомизацию, а уж получить все костюмы с самого начала и вовсе из разряда невозможного.
Есть ещё такая тема, как игра в ожидание. Очень ждёшь покупки какого-то реального предмета, получаешь его и быстро теряешь интерес. Тоже самое и с играми, для некоторых ожидание игр и механик с сомнительными характеристиками гораздо желаннее самого игрового процесса. Опять же можно иногда понастольгировать, но многие долго не выдержат получив вырвиглазную графику, потому что к хорошему быстро привыкаешь, а вот отвыкать сложнее.
В контексте MMO это спорно даже в общих случаях, потому что приводит к быстрому «выгоранию». Вот уж где есть время на неспешное плавное изучение. Иначе мы рискуем заявить «людям не нужны сложные книги» или «людям не нужны сложные фильмы». :) Мне нужны. А на несложное мне жалко своего времени. Жизнь же не бесконечная.
Очень мало игр, где сейчас не так. Не можешь в одиночку кого-то прибить — ждешь пока подбежит кто-то, выпиливаешь с ним эту цель, и вновь разбегаетесь. Кто там рядом был, игроки забывают уже через минуту. Такой сейчас ленивый геймдизайн, отклонения от него редки.
Проблема показать эту разрушаемость синхронно всем игрокам, что должны ее в текущий момент наблюдать. Сложность сильно зависит от числа наблюдателей и расстояния до них (впрочем, фактор расстояния, как и качества связи, часто игнорируют).
Неа, это разработчикам не нужна морока со сложными механиками. Если бы людям сложноть была не нужна, не было бы пираток с классической линейкой или вов. Либо было бы в разы меньше как таких серверов, так и числа игроков на каждом из них.
В случае с постепенным упрощением существующих MMO, мне кажется, дело не в том, что разработчикам не нужна сложность. В конце концов, именно они и сделали изначальные версии своих проектов. Дело, по-моему, в попытке расширить аудиторию или вообще искать другую. «Эти у нас уже есть», или «эти уже всё равно наигрались», или «эти всё равно недовольны». Почему если мы признаем баг в голове игроков, когда ожидание игры или воспоминания об игре у них бывают сильнее, чем впечатление от того, что есть, мы не можем признать точно такой же баг в голове авторов по поводу собственной аудитории? :)