Вопрос

Проект Даркстар была темой ежемесячного JavaSIG встреча вчера вечером в офисе Google в Нью-Йорке.Для тех, кто не знает (вероятно, все), Project Darkstar - это основа для многопользовательских онлайн -игр, которые пытаются позаботиться обо всех «жестких вещах». Основная идея заключается в том, что вы пишете логику сервера игрового сервера таким образом, что все операции разбиты на крошечные задачи.Вы передаете эти задачи в структуру Project Darkstar, которая обрабатывает их распространение на определенный узел в кластере, устраняет любые проблемы параллелизма и, наконец, сохраняет данные.

Очевидно, что подобные вещи для видеоигр представляют собой совсем другую проблему, чем для корпоративных приложений.Джим Уолдо, который читал лекцию, утверждает, что в MMO-играх соотношение чтения/записи базы данных составляет 50/50, тогда как в корпоративных приложениях 90% чтения и 10% записи.Он также утверждает, что большинство существующих MMO хранят все исключительно в памяти и выгружают данные в БД только каждые 6 часов.Это означает, что если сервер выйдет из строя, вы потеряете всю работу с момента последнего дампа БД.

Сам проект звучит очень круто, но я не думаю, что индустрия его примет.Во-первых, вам нужно написать код сервера на Java.Клиентский код может быть написан на чем угодно (Джим утверждает, что ActionScript 3 является самым популярным, за ним следует C++), но серверный код должен быть на Java.Звучит хорошо, но у меня сложилось впечатление, что все в игровой индустрии ненавидят Java.

Во-вторых, в отличие от других отраслей, где разработчики предпочитают использовать существующие фреймворки и библиотеки, ребята из игровой индустрии, похоже, любят писать все сами.Мало того, они любят переписывать все для каждой новой игры, которую выпускают.Ситуация начинает меняться, когда разработчики используют Havok для физики, Unreal Engine 3 в качестве платформы и т. д., но по большей части похоже, что все по-прежнему является проприетарным.

Итак, ребята из Project Darkstar просто зря тратят время?Может ли такая общая структура действительно работать для сложных игр с требуемой производительностью?Даже если это сработает, готовы ли игровые компании его использовать?

Это было полезно?

Решение

Редактировать:Это было написано до того, как Oracle купила Sun и начала неистовствовать, уничтожая все, что не приносит им миллиарда долларов в день.См. комментарии к вилке OSS. Я по-прежнему придерживаюсь мнения, что подобные вещи (MMO Middleware) вполне реальны, вам просто нужна компания, которая не зацикливается на этом.

На рынке может доминировать несколько крупных игр, но это не значит, что на нем мало места для более нишевых игр.Давайте посмотрим правде в глаза:Если вы хотите охватить более 100 000 игроков, вам в конечном итоге придется создавать свой собственный стек технологий, по крайней мере, для критического ядра.Вот что CCP сделала для EVE Online (Безстековый ввод-вывод), то же самое Blizzard сделала для World of Warcraft (хотя они используют множество сторонних библиотек), то же самое сделала Mythic для Warhammer Online (хотя они основаны на Gamebryo).

Однако, если вы стремитесь создать небольшую нишевую MMO (например, десятки бесплатных MMO/MMO с магазином предметов), то правильно настроить сетевые ресурсы просто безумно сложно, согласованность данных еще сложнее, а масштабируемость - самая большая проблема. чч.

Но игровые технологии — не единственная ваша проблема: вам также нужно заняться биллингом.Только кредитная карта?Тогда удачи, продавая в Германии, люди там хотят ELV.Именно здесь вам нужен надежный поставщик выставления счетов, но вам все равно необходимо подключить приложение для выставления счетов к своим учетным записям, чтобы гарантировать, что учетные записи будут заблокированы/повторно активированы в случае сбоя выставления счетов.

Некоторые компании уже предлагают «Услуги инфраструктуры MMO» (т.е. EEIS Арвато), но суть в следующем:Такие вещи, как Project Darkstar, ЯВЛЯЮТСЯ реалистичными, но предполагать, что вы можете построить многомиллиардную MMO полностью на стороннем стеке, является оптимистичным, возможно, идеалистическим.

Но опять же, полностью изобретать все технологии еще глупее — используйте то, что вам нужно от третьих лиц (т. е.Биллинг, рендеринг шрифтов, аудиовыход...), но напишите то, что действительно улучшает или разрушает ваш бизнес (т.е.Сетевой стек, пользовательский интерфейс и т. д.) самостоятельно.(Примечание:Сообщение Джеффа может быть немного несовершенный, но общее направление ИМХО правильное.)

Приложение:Кроме того, игровая индустрия часто лицензирует и повторно использует движки.Наиболее известными игровыми движками являются Нереальный движок, Исходный движок и id Tech, на которых работают десятки, если не сотни игр.Но есть и менее известные (за пределами отрасли) двигатели.Есть Геймбрио, промежуточного программного обеспечения, лежащего в основе таких игр, как Civilization 4 и Fallout 3, было Рендеринг Сейчас это только собственная разработка EA, но она используется в таких играх, как Battlefield 2 или The Sims 3.Есть открытый исходный код Огре3д, который использовался в некоторый коммерческий титулы.Если вы просто ищете звук, есть такие вещи, как ФМОД или если вы хотите заняться рендерингом шрифтов, почему бы не дать FreeType вращение?

Я говорю следующее:Сторонние движки/промежуточное ПО действительно существуют, и они успешно используются уже более десяти лет (я точно знаю, что id Wolfenstein Engine лицензировался другим компаниям, и это было в 1992 году), даже крупными компаниями с многомиллионными оборотами. долларовые титулы.Важным моментом является поддержка, потому что хороший движок без помощи в случае возникновения проблемы практически бесполезен или, по крайней мере, очень дорог, если разработчику приходится тратить время разработки игры на ненужную отладку движка.

Если ребятам из Darkstar удастся правильно организовать поддержку и выпустить 2 или 3 игры более высокого уровня, я верю, что им удастся открыть рынок MMO для гораздо большего количества мелких разработчиков и инди-разработчиков.

Другие советы

По мне так это бесполезная технология.Мир MMO контролируется несколькими крупными игровыми компаниями, у которых уже есть свои собственные технологии.Разработчики инди-игр любят создавать MMO, и иногда они это делают, но такие игры редко набирают обороты.Более крупные компании, проникающие в мир MMO, вероятно, будут лицензировать «проверенные» технологии или расширять свои собственные.

Игровые компании повторно используют огромное количество кода от игры к игре.Большинство/многие игровые компании разработали свои собственные технологии и используют их в каждой выпускаемой ими игре.Иногда они делают что-то вроде замены своего физического кода на сторонний физический движок.Если их внутренняя база кода (игровой движок, инструменты проектирования, внутренний конвейер) начинает слишком стареть или становиться громоздкой, они могут переключиться на один из крупных игровых движков, например Unreal.Даже в этом случае основные фрагменты кода будут по-прежнему повторно использоваться из игры в игру.

Насколько я могу судить, компании, производящие видеоигры, не используют повторно большую часть своего кода, потому что если они это делают, это означает, что их новая игра — это просто переработка старой.

Хм...если вы имеете в виду длинный хвост компаний, занимающихся видеоиграми, возможно.Внутри компании, выпустившей ряд успешных игр, обычно присутствует некоторая доля повторного использования.Серьезные изменения в оборудовании могут привести к отказу от большого количества работы, но это действительно зависит от компании.

Звучит весело — проектировать и программировать, но я думаю, что в конечном итоге все сводится к бесполезные абстракции (чтобы украсть у Джоэла).

В играх очень часто повторно используются «игровые движки», даже сторонние.Это звучит как еще один шаг в этом направлении.

Я думаю, это отличное дело.Разработчикам не нужно беспокоиться обо всех этих вещах, о которых заботится проект darkstar, и он очень прост в использовании.Но дело не только в том, чтобы заставить его работать и не изучать все об интернет-коммуникациях. Речь также идет о производительности.Проект darkstar находится в разработке уже более двух лет и становится все лучше, быстрее и надежнее.

Я думаю, что будет сложно и, вероятно, не стоит тратить время на написание этих вещей для конкретной игры, когда вместо этого можно использовать подобные технологии.Кроме того, во время выполнения вы получаете полезную информацию, сообщающую вам, где в приложении есть причина замедления или взаимоблокировок, чтобы вы могли это исправить.

Я не работаю в игровой индустрии, но мне кажется, что для видеоигр это будет делать то же самое, что и движки Quake и Half-Life.То есть они будут способствовать заинтересованности молодых разработчиков в индустрии и развитию инди-игр.

Насколько я могу судить, компании, производящие видеоигры, не используют повторно большую часть своего кода, потому что если они это делают, это означает, что их новая игра — это просто переработка старой.Всем нужен новый крутой физический движок, лучшая графика, новые способы игры.Большинство движков и фреймворков видеоигр созданы для конкретного сценария и поэтому не очень приспособлены к другим ситуациям.

Возможно, Darkstar поймет это правильно, но я в этом сомневаюсь, поскольку обобщение работает только в определенных случаях.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top