2008-08-21 12 views
24

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

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

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

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

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

ответ

24

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

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

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

Но игровая технология - это не единственная проблема - вам также нужно заняться выставлением счетов. Кредитная карта только? Получайте удовольствие от продажи в Германии тогда, люди там хотят ELV. Вот где вам нужен надежный поставщик биллинга, но вам все равно нужно подключиться к платежному приложению со своими учетными записями, чтобы убедиться, что учетные записи заблокированы/активированы при сбое биллинга.

Есть несколько компаний, которые уже предлагают «услуги Inforatructure Services MMO» (то есть Arvato's EEIS), но суть в том, что такие вещи, как Project Darkstar, реалистичны, но предполагая, что вы можете создать Multi-Billion-MMO целиком на третьей стороне Стек оптимистичен, возможно, идеалистичен.

Но опять же, полностью изобретая всю технологию, еще глупее - используйте необходимые вам материалы третьей стороны (например, биллинг, рендеринг шрифтов, аудиовыход ...), но write the stuff that really makes or breaks your business (т. Е. Сетевой стек, пользовательский интерфейс и т. д.) самостоятельно. (Примечание: публикация Джеффа может быть a bit flawed, но в целом правильное направление IMHO.)

Приложение: Кроме того, игровая индустрия много лицензирует и повторно использует двигатели. Наиболее известными играми являются Unreal Engine, Source Engine и id Tech, которые сжигают десятки, если не сотни игр. Но есть некоторые менее известные (вне отрасли) двигатели. Существует Gamebryo, Middleware за такими играми, как Civilization 4 и Fallout 3, был RenderWare, который теперь только EA-in-House, но используется в таких играх, как Battlefield 2 или The Sims 3. Существует открытый исходный код Ogre3d, который был использован в some коммерческих titles.Если вы просто ищете звук, есть такие вещи, как FMOD или если вы хотите сделать рендеринг шрифтов, почему бы не дать FreeType спину?

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

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

+1

Спасибо за внимание! – 2009-01-30 22:14:55

-1

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

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

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

+1

Но Darkstar - это код внутреннего кода, а не код на стороне клиента - игроки (в общем) не заботятся о встроенной технологии, когда говорят о желании большего и лучшего. – 2008-10-01 23:35:18

2

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

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

3

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

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

1

Это звучит забавно для дизайна и кода, но я думаю, что это в конечном итоге сводится к useless abstractions (чтобы украсть у Джоэла).

1

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

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^