Подтвердить что ты не робот

Является ли Project Darkstar реалистичным?

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

Есть несколько компаний, которые уже предлагают "MMO Infratructure Services" (т.е. Arvato EEIS), но в итоге: Stuff like Project Darkstar IS реалистично, но предполагая, что вы можете создать Multi-Billion-MMO целиком на стороннем стеке, оптимистично, возможно, идеалистично.

Но опять же, полностью изобретая всю технологию, еще глупее - используйте необходимые вам материалы третьей стороны (например, Billing, Font Rendering, Audio Output...), но написать материал, который действительно делает или разбивает ваш бизнес (т.е. сетевой стек, пользовательский интерфейс и т.д.) самостоятельно. (Примечание: публикация Jeff может быть немного ошибочной, но общее направление верно IMHO.)

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

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

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