В истории амбициозной SpatialOS пока нет поражающих воображение достижений, зато появился уже второй пример отказа от этой технологии. Впрочем, не спешите делать скоропалительных выводов. Если в случае ION от Дина Холла мы не получили никакой конкретики, из-за чего совершенно непонятно, что стало камнем преткновения в использовании этой технологии, идеолог Chronicles of Elyria — Джероми Уолш — рассказал в годовом отчете о проблемах во всех подробностях.
SpatialOS довольно серьезно может упростить обсчет многих событий в игровом мире, предлагая не только собственную платформу, но и серверные мощности на основе облачной технологии. При этом SpatialOS выставляет счет авторам игры за использование серверных мощностей, обещая значительное снижение расходов на эту технологию, благодаря стратегическому соглашению с Google Cloud. Собственно, Google Cloud и без того предлагает более выгодные условия, чем их прямой конкурент Amazon. Так авторы Camelot Unchained в декабре 2017 года объявили о переходе на Google Cloud, что, по заверениям авторов этого проекта, не только сделает сервис более доступным для жителей, находящихся за пределами США, но и значительно снизит расходы компании.
В любом случае, прелесть облачной серверной технологии заключается в том, что вы платите только за те мощности, которые используете в данный момент. Вам нет необходимости вкладывать деньги в обеспечение собственной избыточной серверной инфраструктуры, которая, возможно, будет простаивать большую часть суток при неравномерном онлайне. Вот только Chronicles of Elyria изначально планировали внедрить технологию Offline Player Characters, которая позволяет вашему персонажу действовать самостоятельно, когда вы выходите из игры. Получается, что большую часть времени в сутках, когда среднестатистический игрок находится вне игры, его персонаж продолжает осуществлять не меньшую, а иногда, из-за необходимости принимать решения вместо игрока, возможно, и большую нагрузку на сервер.
Авторы Chronicles of Elyria, посчитав все, поняли, что реальные затраты на каждого персонажа при постоянных отчислениях SpatialOS будут слишком большие. А монетизация Chronicles of Elyria попросту не предполагает прямого запроса денег за доступ к игровому процессу. Плюс ко всему, некоторые технические сложности выбранных именно авторами технологий — переход с C# на JavaScript в качестве основного языка для backend-технологии при отказе поддержки JavaScript со стороны SpatialOS и исполнение части серверных технологий за пределами SpatialOS — стали дополнительными факторами. Сколько из перечисленных проблем можно было увидеть до объявления об использовании этой технологии, сказать сложно. Но все же кажется, что некоторые из них можно было предвидеть. Нет, правда, о том, что в Chronicles of Elyria персонажей игроков планируют обсчитывать 24/7, было известно еще с анонса проекта. И то, что это вылетит в копеечку в случае аренды серверных мощностей можно было легко предсказать. Авторы Seed, к примеру, это понимают изначально.
Основная интрига во взаимоотношениях авторов CoE и авторов технологии SpatialOS осталась за вежливыми благодарностями в адрес друг друга — насколько ценной для Chronicles of Elyria была предложенная SpatialOS технология. Ответ на этот вопрос читается в окончательном решении об отказе использовать SpatialOS. А вот что могут реализовать разработчики самостоятельно — пока вопрос без ответа. Очевидно, что это замедлит процесс разработки, но, возможно, основная проблема Хроник Элирии совсем не в технологиях, а в весьма странной для MMO концепции, которой Джероми Уолш поделился в том же обращении к игрокам:
Для некоторых игроков именно SpatialOS была важным фактором в решении финансово поддержать Chronicles of Elyria, потому что использование серверной технологии для многопользовательских игр, над которой работает более трехсот человек и в которую вложено полмиллиарда долларов инвестиций, кажется действительно реалистичным сценарием разработки настоящих MMO для небольших команд. Отказ от SpatialOS уже негативно повлиял на отношение к Chronicles of Elyria. Но и для SpatialOS это удар по репутации.
Главный вызов, который остается для SpatialOS — это гибкость и широта возможностей, на основе которых авторы MMO могут реализовать интересные и, что очень важно, самобытные MMO-концепции. Амбициозной технологии нужны не просто примеры успеха — для компании важно показать действительно революционные возможности, которые дает их технология настоящим онлайновым мирам. На этом пути, конечно же, будут неудачи. Тем важнее противопоставлять им явные и очевидные успехи. Которых пока нет.
SpatialOS довольно серьезно может упростить обсчет многих событий в игровом мире, предлагая не только собственную платформу, но и серверные мощности на основе облачной технологии. При этом SpatialOS выставляет счет авторам игры за использование серверных мощностей, обещая значительное снижение расходов на эту технологию, благодаря стратегическому соглашению с Google Cloud. Собственно, Google Cloud и без того предлагает более выгодные условия, чем их прямой конкурент Amazon. Так авторы Camelot Unchained в декабре 2017 года объявили о переходе на Google Cloud, что, по заверениям авторов этого проекта, не только сделает сервис более доступным для жителей, находящихся за пределами США, но и значительно снизит расходы компании.
В любом случае, прелесть облачной серверной технологии заключается в том, что вы платите только за те мощности, которые используете в данный момент. Вам нет необходимости вкладывать деньги в обеспечение собственной избыточной серверной инфраструктуры, которая, возможно, будет простаивать большую часть суток при неравномерном онлайне. Вот только Chronicles of Elyria изначально планировали внедрить технологию Offline Player Characters, которая позволяет вашему персонажу действовать самостоятельно, когда вы выходите из игры. Получается, что большую часть времени в сутках, когда среднестатистический игрок находится вне игры, его персонаж продолжает осуществлять не меньшую, а иногда, из-за необходимости принимать решения вместо игрока, возможно, и большую нагрузку на сервер.
Авторы Chronicles of Elyria, посчитав все, поняли, что реальные затраты на каждого персонажа при постоянных отчислениях SpatialOS будут слишком большие. А монетизация Chronicles of Elyria попросту не предполагает прямого запроса денег за доступ к игровому процессу. Плюс ко всему, некоторые технические сложности выбранных именно авторами технологий — переход с C# на JavaScript в качестве основного языка для backend-технологии при отказе поддержки JavaScript со стороны SpatialOS и исполнение части серверных технологий за пределами SpatialOS — стали дополнительными факторами. Сколько из перечисленных проблем можно было увидеть до объявления об использовании этой технологии, сказать сложно. Но все же кажется, что некоторые из них можно было предвидеть. Нет, правда, о том, что в Chronicles of Elyria персонажей игроков планируют обсчитывать 24/7, было известно еще с анонса проекта. И то, что это вылетит в копеечку в случае аренды серверных мощностей можно было легко предсказать. Авторы Seed, к примеру, это понимают изначально.
Основная интрига во взаимоотношениях авторов CoE и авторов технологии SpatialOS осталась за вежливыми благодарностями в адрес друг друга — насколько ценной для Chronicles of Elyria была предложенная SpatialOS технология. Ответ на этот вопрос читается в окончательном решении об отказе использовать SpatialOS. А вот что могут реализовать разработчики самостоятельно — пока вопрос без ответа. Очевидно, что это замедлит процесс разработки, но, возможно, основная проблема Хроник Элирии совсем не в технологиях, а в весьма странной для MMO концепции, которой Джероми Уолш поделился в том же обращении к игрокам:
В январе 2017 года мы начали долгий процесс превращения того, что было в сущности оффлайновой однопользовательской игрой, призванной оценить пользовательский опыт и геймплей, в Мультиплеерный Развивающийся Онлайновый Мир.
Для некоторых игроков именно SpatialOS была важным фактором в решении финансово поддержать Chronicles of Elyria, потому что использование серверной технологии для многопользовательских игр, над которой работает более трехсот человек и в которую вложено полмиллиарда долларов инвестиций, кажется действительно реалистичным сценарием разработки настоящих MMO для небольших команд. Отказ от SpatialOS уже негативно повлиял на отношение к Chronicles of Elyria. Но и для SpatialOS это удар по репутации.
Главный вызов, который остается для SpatialOS — это гибкость и широта возможностей, на основе которых авторы MMO могут реализовать интересные и, что очень важно, самобытные MMO-концепции. Амбициозной технологии нужны не просто примеры успеха — для компании важно показать действительно революционные возможности, которые дает их технология настоящим онлайновым мирам. На этом пути, конечно же, будут неудачи. Тем важнее противопоставлять им явные и очевидные успехи. Которых пока нет.
40 комментариев
Более матёрые меня могут поправить, но JS вроде как не очень подходит под серьёзный бэк с необходимостью параноидальной защиты данных.
Слишком много для опечатки. :)
Судя по рейтингам, JS лишь недавно поднялся на текущую (седьмую) позицию.
Иное дело — это стоимость Java/C#-программиста и Js-программиста.
Причиной выбора JS в качестве языка бекенда могут быть недавние изменения в языке, наличие хороших инструментов для асинхронной работы и возможность построить бекенд поверх NodeJs.
На самом деле разработчики могли перейти на связку C++/Js, где на C++, в рамках Ноды, реализуется системный уровень бекенда, а Js используется как скриптовой язык для задач бизнеса.
Такая схема является производительной вне зависимости от выбранного скриптового языка.
Можно, конечно, пойти другим путем и встроить тот же v8 как embeddable interpreter в программу на C++, но вы, кажется, про вариант с native calls из node.
Конкретно для задач разработки игр вариант расширения функционала высокого уровня через низкий выглядит как рубашка наизнанку — приносит много неудобства и выглядит некрасиво.
На js писать быстро и дешевле чем на том же C#, но все равно странно, Node.js довольно много ресурсов ест у сервера, а для высоконагруженных проектов это влетит в копеечку.
Если цели достигаются, языкового инструментария хватает и команда умеет — ради Бога.
И в историй этой JavaScript совсем не основная причина, я уверен.
Основная причина, я подозреваю — цена.
Меня эта платформа сильно смущала всегда, ибо я уверен что это дорого.
Потому что публичные облака и так-то дороги, а тут еще и за надстройку над ними платить надо.
Это не может быть дешево просто, даже в теории.
А если эта надстройка не эффективна по CPU, то все вообще печально может быть и ценник «за использование серверных мощностей» может быть огромной засадой (но тут я могу только гадать)
Если это существенно сокращает расходы на разработку, то почему бы и нет? Но да, для этого лучше брать с игроков деньги за доступ к сервису, включая туда расходы на эту технологию. Это все баланс плюсов и минусов, как в любом другом деле. Если SpatialOS сможет выйти на уровень эффективности, напоминающий использование DirectX в создании графики, только в области создания живого сетевого мира, то эта может быть очень серьезным плюсом.
Ну, и по одной из ссылок, которую я приводил в тексте, написано вот что:
Reduce or remove your cloud costs
Thanks to our partnership with Google Cloud, any games that are built upon the SpatialOS platform by members of the SpatialOS Games Innovation Program will receive subsidies that will substantially or completely cover the costs of cloud-based online development. Up to 100 participating studios will each be provided with up to $500,000 in SpatialOS credits that will cover SpatialOS and Google Cloud usage costs, including underlying server fees, during development. This is the largest development subsidy of its kind.
Вокруг публичных облаков последние годы много хайпа, и люди потихоньку забывают что в конце-то концов это не более чем хостинг. С особенностями.
Если попытаться понять что вы за этот хостинг реально будете платить в месяц, то это будет не просто. Потому, что цена размазана по множеству «подсистем», и нужно очень детально понимать какие нагрузки на все эти «подсистемы» генерирует ваш проект. И уже тот факт, что достаточно точный ответ на вопрос «сколько это будет стоить» фактически не реально получить до, собственно, запуска системы в облаке, должен настораживать адекватных разумных.
И реальная, на данный момент, данность такова: публичные облака примерно в 3 раза дороже традиционных альтернатив. В 3 раза, Карл. Об этом профи прекрасно знают, и на тематических конференциях (HighLoad++, например) этот фактик всплывает не редко в контексте различных проектов. И тут я не голословен: я лично столкнулся этим болезненным фактом в 2016 году. (И в итоге идею переезда в публичное облако, фирма, в которой я работаю, похоронила полностью.)
Очень точно по этому поводу высказались ребята из MemSQL ещё в конце 2013 года: «The public cloud is phenomenal if you really need its elasticity. But if you don't – if you do a consistent amount of workload – it's far, far better to go in-house.» www.wired.com/2013/08/memsql-and-amazon/
Короче говоря, с финансовой точки зрения использование публичных облаков оправдано очень далеко не всегда. Есть мнение, что только примерно 5% проектов запущенных в публичных облаках, реально нуждается в этой самой «elasticity». Т.е. сценарии когда публичные облака это очень круто и плевать на цену — они есть. И я даже реальные примеры могу привести. Но правда и в том, что многим просто напросто деньги некуда девать.
И вот после этого жирного введения я хочу вернутся к MMO.
Понятно что хостинг чуть ли не основная статья расходов у MMO после запуска.
И если проект должен работать многие годы(MMO же!) и при этом дикого роста нагрузки каждый месяц на протяжении всех этих лет не будет — то публичное облако, это очень спорный выбор. Очень очень. В особенности спорный, для не AAA проектов, на которые деньги с неба не падают.
И поэтому, основываться на технологии, которая жестоко завязана на экосистему публичных облаков — это IMHO очень большой риск. Для таких проектов.
опять IMHO :)
Если делать инди-игру с онлайном до 5-10 тысяч человек, тогда конечно, облака и даром не сдались.
Но во-первых про «покупать» речь вообще не идет никогда. А аренда серверов как правило по месячна. Ну ждешь ты наплыв на старте — арендую много серверов, через три месяца откажешься. Это никакая не проблема.
Речь даже не идет собственно о физических серверах. Можешь арендовать себе хост-сервер и построить виртуализацию. Т.е. ради Бога — вот вам облачные технологии те самые. Часто, действительно, удобно.
Речь именно о использовании публичных облачных сервисов (Google Cloud, AWS, Azure, Oracle Cloud и т.п.) это, на данный момент, тупо очень дорого. За те же самые ресурсы вы платите в разы больше получая взамен теоретически неограниченную горизонтальную масштабируемость и «как бы» очень высокий SLA. Нo, как я писал выше, действительно оправдано это гораздо реже чем кажется.
Вы подумайте вот о чем — крупные игроки бешено стоят и пропагандируют эти облачные сервизы не в последнюю очередь потому, что это очень прибыльное дело :) А прибыльное оно потому что ценник :))
В контексте P2P MMO, IMHO, единственное заметное достоинство это возможность развернуть свой игровой сервис в любой точке мира где есть дата-центр нужного облачного сервиса на примерно одной и той же архитектуре. (Примерно, потому что дата-центры облачных сервисов имеют гораздо больше отличий чем хотелось бы.)
— учитывать, что на пиковые нагрузки в случае своего датацентра нужно держать запасные мощности, причем это может быть, скажем x1.5 от номинальной нагрузки. Про эластичность облака вы уже упомняули выше.
— железяки в облаке поддерживаются не вами. Это не особенно проблема, если у вашего бизнеса один условный «сервер в подвале» и админ, который его ребутает. Это становится проблемой, когда машин много, у них отказывают рейды, черти что еще случается, нужен персонал, который всей этой чепухой занимается. В случае с облаком вы об этом не то, чтобы не задумываетесь, а так, краем глаза посматриваете на оповещения о maintenance, которые у вас вызвали наблюдаемую задержку в пол-секунды.
— Повышенная доступность. Для обеспечения гарантий доступности, необходимых, например, согласно SLA, предоставляемым вашим бизнесом вам нужен, по сути, еще один датацентр где-нибудь не сильно далеко, но и не очень близко. Чтобы, например, при региональной аварии сервис все еще оставался доступен. Затраты на инфраструктуру вырастают значительно. Это не только еще один датацентр и персонал, но и накладные расходы на синхронизацию между ними. В случае с облаком эти штуки гораздо дешевле.
— Мультирегиональная доступность, доступ к, например, гугловой CDN. Контент отдается с points of presence гугла поблизости от пользователя. Ну и просто сеть у гугла хорошая. Лучшая в мире, пожалуй.
— Доступ к managed-сервисам, которые, опять же, обслуживаются не вами. Звучит как мелочь, а интеграция без усилий с тем же S3, или даже просто с fully-managed RDBMS, относительно которых вам не надо заморачиваться, а можно вместо этого делать то, что ваш бизнес делает — это хорошо. Казалось бы, что такого в петабайтном распределенном хранилище с минимальной latency и гарантиями доступности 99.9995 (тот же google cloud store).
… я тут понял, что написал простыню не по теме ресурса, так что прекращаю безобразия
Вслед за отказом от SpatialOS в компании прошли увольнения части сотрудников в связи с тем, что переговоры с инвесторами на протяжении всего 2017 года не дали конкретных результатов.
К концу 2017 года стало понятно, что издатели не хотят брать на себя риск в продвижении настолько инновационного проекта, как Chronicles of Elyria, без существенных изменений в наших начальных взглядах. Условием некоторых издателей также был ввод микротранзакций, лутбоксов или других способов предпочесть доход игровому опыту. Ни один из этих вариантов нами не был принят.
Недостаток средств, собственно, мог стать одной из причин отказа от сотрудничества со SpatialOS, за которое, разумеется, нужно платить. Что до внезапно проснувшегося у идеолога Chronicles of Elyria предпочтения игрового опыта доходу компании, хочется напомнить важные философские установки Джероми Уолша, которые вступают в явный конфликт с красивыми лозунгами.
ПС: надеюсь не надо доставать табличку «сарказм».