WikiDer > Проект Darkstar
Оригинальный автор (ы) | Sun Microsystems |
---|---|
изначальный выпуск | 30 августа 2007 г. |
Стабильный выпуск | 0.9.11 / 29 октября 2009 г. |
Написано в | Ява |
Платформа | Ява |
Тип | ПО промежуточного слоя MMOG |
Лицензия | GPLv2, BSD |
Интернет сайт | http://www.projectdarkstar.com/ |
Проект Darkstar был Открытый исходный код MMOG промежуточное ПО решение, написанное в Ява. Проект Darkstar начался как личный проект Джеффа Кессельмана в 1999 году. Позже он стал исследовательским проектом в Sun Microsystems,[1] и нацелен на то, чтобы «помочь разработчикам и операторам избежать ряда серьезных, но типичных проблем, связанных с крупномасштабными онлайн-играми, виртуальными мирами и приложениями социальных сетей сегодня, включая перегрузку зон, повреждение данных и недоиспользование сервера».[2][3]
История
Проект Darkstar начался как личный проект Джеффа Кессельмана в 1999 году, когда он был старшим инженером по интеграции игр в Total Entertainment Network. В 2004 году была сформирована группа Sun Game Technology Group, и тогда г-н Кессельман представил в Sun третью версию проекта, получившую название Sun Game Server. (Название SGS сохранилось до сих пор в именах пакетов Project Darkstar Server.)
Г-н Кессельман работал над третьей версией в течение года как сольный проект в Sun, представив раннюю версию на конференции разработчиков игр в том же году. После реорганизации офиса технического директора по программному обеспечению в 2005 году проект был переведен в Sun Labs под руководством директора Sun Labs Карла Хаберла. Карл увеличил штат сотрудников, добавив Сета Проктора и Дэна Элларда в качестве со-исследователей, а также подрядчиков Джеймса Мегкьера и Стена Андерсона. Эта команда предоставила для GDC 2005 то, что сейчас известно как версия раннего доступа, первый рабочий сервер.
2 февраля 2010 г., после покупки Sun компанией Oracle, Джим Уолдо разместил на форуме «Объявление о проекте», что «инженерные разработки Sun Labs больше не применяются к разработке Darkstar». Несколько членов команды Sun Labs и ряд членов сообщества Darkstar какое-то время работали над RedDwarf Сервер как преемник Darkstar.[4]
Функции
При запуске реализации сервера Project Darkstar он либо запускает новую сеть, либо присоединяется к уже работающей. Все сети содержат клиенты, сервер реализаций, стек Project Darkstar, на котором работают серверные реализации, и несколько мета-сервис узлы, которые обрабатывают трафик между каждым узлом в стеке сервера. Реализация сервера - это созданный пользователем программа написано в Project Darkstar API. К клиентам относятся все клиентские приложения и игры, подключенные к игровому серверу в сети.
Проект Darkstar разрабатывается для поддержки всех функций, жизненно важных для многопользовательской игры, и в то же время должен быть достаточно масштабируемым, чтобы поддерживать немассовые многопользовательские онлайн-игры.[5] Таким образом, он поддерживает множество функций, а также многие функции, которые активно внедряются и интегрируются в него.
- ЦПУ Балансировка нагрузки
- Мета-сервисы
- Постоянное хранение данных с использованием Berkeley DB
- Сделки
- Обман профилактика
- Канал коммуникация
- Масштабируемые структуры данных
- Подключаемые протоколы
- Инструменты управления[нужна цитата]
API Project Darkstar - ключевой компонент для разработчиков, использующих эту технологию. С его помощью они могут разрабатывать игровые серверы для правильного взаимодействия со своей клиентской технологией и иметь запущенный и работающий сервер, работающий поверх игрового стека Project Darkstar. API написан так, чтобы скрыть параллелизм базовой системы, которую стек Project Darkstar выполняет для разработчика, так что программа может быть написана с иллюзией, что она однопоточная, даже если стек полностью параллелен. Основные части API включают задача управление, данные упорство, и канал связи.[6]
Управление информацией на сервере Project Darkstar обычно выполняется задачами, хотя в некоторых особых случаях в них нет необходимости. Они используются в случаях, когда хранение или извлечение данных должно быть защищено с сервера. крушение или же неисправность, поскольку задачи сохраняются и запоминаются при запуске и могут быть повторно запущены при перезапуске сервера в том же состоянии, в котором они были до сбоя.[7] Это полезно, например, при обновлении информации о персонажах. Если что-то пойдет не так с сервером внутри, информация о персонаже сохраняется, и при перезапуске сервера информация о персонаже будет восстановлена из последнего состояния, в котором она находилась до сбоя.[нужна цитата]
База данных Berkeley, используемая Project Darkstar, хранит все данные, которые необходимо сохранить. Все, что должно храниться в база данных также должен быть сериализуемый, как база данных запрограммирован для хранения двоичной информации. Управляемым объектом может быть что угодно, от данных игрока (то есть позиции, оборудования) до внутренних данных сервера и логики управления (то есть масштабируемой структуры данных, задач). Полезность управляемых объектов проявляется в случае отказа сервера. Поскольку управляемые объекты обновляются транзакционно, любые поврежденные данные сбрасываются на сервере. перезапуск и управляемый объект откат до последнего рабочего состояния.[нужна цитата]
Каналы позволяют разработчикам легко общаться со многими клиентами. Принцип работы каналов заключается в предоставлении клиентам возможности подписаться на каналы, чтобы они могли отправлять сообщения на канал и получать сообщения из канала. Когда сообщение отправляется в канал от клиента или сервера, сообщение многоадресная передача всем клиентам, которые на него подписаны. Это абстракция, построенная поверх уровня связи, чтобы помочь в разработке простой и расширяемой связи между многими клиентами и сервером.[нужна цитата]
Известные применения
- Открытая страна чудес - набор инструментов с открытым исходным кодом на 100% Java для создания совместных 3D виртуальных миров [8][9]
Прием
Некоторые авторы предположили, что управление центральным хранилищем объектов и распределенным произвольным доступом может быть нереально возможным в высоко интерактивной игровой среде.[10]
Красный карлик
RedDwarf Server был Открытый исходный код промежуточное ПО решение для разработки на стороне сервера из многопользовательские онлайн-игры. Это был официальный форк сообщества Project Darkstar. После того, как Oracle прекратил поддержку проекта, сообщество ребрендинг последняя кодовая база репозиториев Project Darkstar и выпущена как RedDwarf Server.[11] RedDwarf унаследовал схему лицензирования Project Darkstar, при этом RedDwarf Server распространялся под GPLv2 и серверные API, доступные в рамках Стандартная общественная лицензия GNU (GPL) с исключение пути к классам. Клиентские API Java и C, доступные как часть проекта RedDwarf, распространялись под Лицензия BSD.[12]
Клиенты могут общаться с сервером, используя Ява или же C API. Сообщество также выпустило клиентские API для дополнительных платформ, включая C #, Python, Цель-C, и ActionScript.[13] RedDwarf Server использует встроенный протокол для сетевых коммуникаций.[14]
Рекомендации
- ^ Стивен Шенкленд (2006). «Проект Sun Darkstar нацелен на игровые услуги». CNET. Получено 2012-02-27.
- ^ Брент Рабовски; Radiosity Press (8 января 2010 г.). Интерактивные развлечения: руководство по индустрии видеоигр. gameindustrybook. п. 55. ISBN 978-0-9842984-1-9. Получено 27 февраля 2012.
- ^ Тим Блэкман (2006). «Масштабируемое хранилище данных в Project Darkstar» (PDF). Oracle.com. Получено 2012-02-27.[постоянная мертвая ссылка]
- ^ «Сервер RedDwarf». web.archive.org. 2010-02-17. Получено 2020-07-17.
- ^ Эндрю Дэвисон (30 апреля 2007 г.). Pro Java 6 3D Разработка игр: Java 3D, JOGL, JInput и JOAL API. Springer. п. 10. ISBN 978-1-59059-817-7. Получено 27 февраля 2012.
- ^ Диомидис Спинеллис; Георгиос Гусиос (22 января 2009 г.). Красивая архитектура. O'Reilly Media, Inc. стр. 52. ISBN 978-0-596-51798-4. Получено 27 февраля 2012.
- ^ Вацлав Снасел; Ян Платос; Эйас Эль-Кавасме (20 августа 2011 г.). Цифровая обработка информации и коммуникация: Международная конференция, ICDIPC 2011, Острава, Чешская Республика, 7–9 июля 2011 г. Труды. Springer. п. 219. ISBN 978-3-642-22388-4. Получено 27 февраля 2012.
- ^ Джозеф Фонг; Реджи Кван; Фу Ли Ван (2008). Гибридное обучение и образование: Первая международная конференция, Ichl 2008 Гонконг, Китай, 13–15 августа 2008 г. Материалы. Springer. п. 57. ISBN 978-3-540-85169-1. Получено 27 февраля 2012.
- ^ Ёнкюн Бэк (1 апреля 2010 г.). Игры для обучения в классе: цифровые ролевые игры как мотиватор учебы. Idea Group Inc (IGI). п. 272. ISBN 978-1-61520-713-8. Получено 27 февраля 2012.
- ^ Хамидо Фудзита; Имран Зуалкернан (15 октября 2008 г.). Новые тенденции в программных методологиях, инструментах и методах: материалы седьмой SoMeT_08. IOS Press. п. 359. ISBN 978-1-58603-916-5. Получено 27 февраля 2012.
- ^ http://www.reddwarfserver.org/?q=content/welcome
- ^ http://www.reddwarfserver.org/?q=content/open-source-online-gaming-universe
- ^ http://sourceforge.net/apps/trac/reddwarf/wiki/Extensions
- ^ https://svn.java.net/svn/sgs-server~svn/branches/sgs-server-0.9.10/sgs-server/src/main/resources/com/sun/sgs/impl/kernel/doc- файлы / config-properties.html