Project Darkstar es un framework de código abierto descontinuado para el desarrollo de MMOG , escrito en Java y desplegado como middleware de motor de juego . Project Darkstar comenzó como un proyecto personal de Jeff Kesselman en 1999, convirtiéndose posteriormente en un proyecto de investigación en Sun Microsystems , [ 1 ] con el objetivo de "ayudar a desarrolladores y operadores a evitar una serie de problemas graves, aunque típicos, asociados con los juegos en línea a gran escala, los mundos virtuales y las aplicaciones de redes sociales actuales, incluyendo la sobrecarga de zonas, la corrupción de datos y la subutilización del servidor". [ 2 ] [ 3 ]
Historia
El Proyecto Darkstar comenzó como un proyecto personal de Jeff Kesselman en 1999, cuando era Ingeniero Senior de Integración de Juegos en Total Entertainment Network. En 2004, el Director de Juegos de Sun Microsystems, Chris Melissinos , [ 4 ] creó el Grupo de Tecnología de Juegos de Sun , y fue entonces cuando el Sr. Kesselman incorporó la tercera versión del proyecto al grupo, donde se le denominó "Sun Game Server" (SGS). (Esta sigla se mantuvo en los nombres de los paquetes del Servidor del Proyecto Darkstar hasta su desaparición).
El Sr. Kesselman trabajó en la tercera versión durante un año como proyecto individual en Sun, presentando una versión preliminar en la Game Developers' Conference (GDC) de ese año. Tras una reorganización de la oficina del CTO de software en 2005, el Sr. Melissinos y el Sr. Kesselman trasladaron el proyecto a Sun Labs bajo la dirección de Karl Haberl. Karl aumentó el equipo, incorporando a Seth Proctor y Dan Ellard como co-investigadores, así como a los contratistas James Megquier y Sten Anderson. Este equipo entregó lo que ahora se conoce como la versión de acceso anticipado, el primer servidor funcional, para la GDC 2005.
El 2 de febrero de 2010, tras la compra de Sun por Oracle , Jim Waldo publicó en el foro "Anuncio del proyecto" que "el esfuerzo de ingeniería de Sun Labs ya no se está aplicando al desarrollo de Darkstar". Varios miembros del equipo de Sun Labs y varios miembros de la comunidad de Darkstar trabajaron durante un tiempo en el servidor RedDwarf como sucesor de Darkstar. [ 5 ]
Características

Cuando se ejecuta una implementación de servidor de Project Darkstar, esta inicia una nueva red o se une a una que ya esté en funcionamiento. Todas las redes contienen clientes , implementaciones de servidor , una pila de Project Darkstar sobre la que se ejecutan las implementaciones de servidor y varios nodos de meta-servicio que gestionan el tráfico entre cada nodo de la pila. Una implementación de servidor es un programa creado por el usuario y escrito con la API de Project Darkstar . Los clientes incluyen todas las aplicaciones y juegos del lado del cliente conectados a un servidor de juegos en la red.
El proyecto Darkstar fue diseñado para admitir todas las características vitales para un juego multijugador masivo y, al mismo tiempo, ser lo suficientemente escalable como para admitir juegos en línea que no sean multijugador masivos . [ 6 ] Por lo tanto, admite muchas características, y muchas de ellas se implementan e integran activamente en él.
- Balanceo de carga de CPU
- Metaservicios
- Almacenamiento persistente de datos mediante Berkeley DB
- Actas
- Prevención del engaño
- Comunicación de canal
- Estructuras de datos escalables
- Protocolos conectables
- Herramientas administrativas
La API de Project Darkstar fue el componente clave para los desarrolladores que utilizaban la tecnología. Con ella, podían desarrollar servidores de juegos que se comunicaran correctamente con su tecnología cliente y tener un servidor en funcionamiento que se ejecutara sobre la pila de juegos de Project Darkstar. La API está escrita para ocultar la concurrencia del sistema subyacente que la pila ejecuta para el desarrollador, de modo que el programa se pueda escribir con la ilusión de que es de un solo hilo, aunque la pila sea completamente paralela. Las partes principales de la API incluyen la gestión de tareas , la persistencia de datos y la comunicación de canales. [ 7 ]
El control de la información en un servidor de Project Darkstar generalmente se gestiona mediante tareas, aunque en algunos casos especiales no son necesarias. Se utilizan cuando el almacenamiento o la recuperación de datos deben protegerse de un fallo o apagado del servidor , ya que las tareas se guardan y se recuerdan al ejecutarse, y pueden reiniciarse al reiniciar el servidor en el mismo estado en que se encontraban antes del fallo. [ 8 ] Esto resulta útil, por ejemplo, al actualizar la información de los personajes. Si algo falla internamente en el servidor, la información de los personajes se conserva y, al reiniciar el servidor, se restaurará desde el último estado en que se encontraba antes del fallo.
La base de datos Berkeley DB utilizada por Project Darkstar almacena todos los datos que deben persistirse. Todo lo que se almacene en la base de datos debe ser serializable , ya que está programada para almacenar información binaria. Un objeto gestionado puede ser cualquier cosa, desde datos del jugador (por ejemplo, posición, equipo) hasta datos internos del servidor y lógica de control (por ejemplo, estructura de datos escalable, tareas). La utilidad de los objetos gestionados se evidencia en caso de fallo del servidor. Dado que los objetos gestionados se actualizan transaccionalmente, cualquier dato corrupto se descarta al reiniciar el servidor y el objeto gestionado se revierte a su último estado funcional.
Los canales ofrecen a los desarrolladores una forma sencilla de comunicarse con múltiples clientes. Su funcionamiento se basa en que los clientes pueden suscribirse a ellos para enviar y recibir mensajes. Cuando un cliente o el servidor envía un mensaje al canal, este se difunde a todos los clientes suscritos. Se trata de una abstracción construida sobre la capa de comunicaciones para facilitar el desarrollo de una comunicación sencilla y extensible entre múltiples clientes y el servidor.
Usos notables
- Open Wonderland : un conjunto de herramientas de código abierto 100% Java para crear mundos virtuales 3D colaborativos [ 9 ] [ 10 ]
Recepción
Algunos autores han sugerido que la gestión del Almacén Central de Objetos y el Acceso Aleatorio Distribuido podría no ser factible en un entorno de juego altamente interactivo. [ 11 ]
Enana Roja

RedDwarf Server era una solución de middleware de código abierto para desarrollar el lado del servidor de juegos multijugador masivos en línea . Era la bifurcación oficial de la comunidad del Proyecto Darkstar. Una vez que Oracle dejó de dar soporte al proyecto, la comunidad renombró el código fuente más reciente de los repositorios del Proyecto Darkstar y lo lanzó como RedDwarf Server. [ 12 ] RedDwarf heredó el esquema de licencias del Proyecto Darkstar, con RedDwarf Server distribuido bajo GPLv2 y las API del servidor disponibles bajo la Licencia Pública General GNU (GPL) con la excepción de classpath . Las API de cliente Java y C, disponibles como parte del proyecto RedDwarf, se distribuían bajo una licencia BSD . [ 13 ]
Los clientes pueden comunicarse con el servidor mediante una API de Java o C. La comunidad también publicó API de cliente para plataformas adicionales, como C# , Python , Objective-C y ActionScript . [ 14 ] RedDwarf Server utiliza un protocolo integrado para las comunicaciones de red. [ 15 ]
Referencias
- ↑ Stephen Shankland (2006). "El proyecto Darkstar de Sun apunta a los servicios de juegos" . CNET . Consultado el 27 de febrero de 2012 .
- ↑ Brent Rabowsky; Radiosity Press (8 de enero de 2010). Entretenimiento interactivo: una guía para la industria de los videojuegos . gameindustrybook. pág. 55. ISBN 978-0-9842984-1-9Consultado el 27 de febrero de 2012 .
- ↑ Tim Blackman (2006). "Almacenamiento de datos escalable en Project Darkstar" (PDF) . Oracle.com . Consultado el 27 de febrero de 2012 .
- ↑ "Sun lanza una importante iniciativa con Game Technologies Group" . GamesIndustry.biz . 5 de junio de 2003. Consultado el 16 de septiembre de 2024 .
- ↑ "Servidor RedDwarf" . 17 de febrero de 2010. Archivado del original el 17 de febrero de 2010. Consultado el 17 de julio de 2020 .
- ↑ Andrew Davison (30 de abril de 2007). Desarrollo de juegos 3D con Java 6: API de Java 3D, JOGL, JInput y JOAL . Springer. pág. 10. ISBN 978-1-59059-817-7Consultado el 27 de febrero de 2012 .
- ↑ Diomidis Spinellis; Georgios Gousios (22 de enero de 2009). Arquitectura hermosa . O'Reilly Media, Inc. pág. 52. ISBN 978-0-596-51798-4Consultado el 27 de febrero de 2012 .
- ↑ Vaclav Snasel; Jan Platos; Eyas El-Qawasmeh (20 de agosto de 2011). Procesamiento de información digital y comunicaciones: Conferencia internacional, ICDIPC 2011, Ostrava, República Checa, 7-9 de julio de 2011. Actas . Springer. pág. 219. ISBN 978-3-642-22388-4Consultado el 27 de febrero de 2012 .
- ↑ Joseph Fong; Reggie Kwan; Fu Lee Wang (2008). Aprendizaje y educación híbridos: Primera Conferencia Internacional, Ichl 2008, Hong Kong, China, 13-15 de agosto de 2008. Actas . Springer. pág. 57. ISBN 978-3-540-85169-1Consultado el 27 de febrero de 2012 .
- ↑ Youngkyun Baek (1 de abril de 2010). Juegos para el aprendizaje en el aula: el juego de rol digital como motivador del estudio . Idea Group Inc (IGI). pág. 272. ISBN 978-1-61520-713-8Consultado el 27 de febrero de 2012 .
- ↑ Hamido Fujita; Imran Zualkernan (15 de octubre de 2008). Nuevas tendencias en metodologías, herramientas y técnicas de software: actas del séptimo SoMeT_08 . IOS Press. pág. 359. ISBN 978-1-58603-916-5Consultado el 27 de febrero de 2012 .
- ↑ "Reddwarfserver | Toma un buen libro -" .
- ↑ "Reddwarfserver | Toma un buen libro -" .
- ↑ "RedDwarf" . 23 de abril de 2013.
- ↑ "Propiedades de configuración del servidor del proyecto Darkstar" . Archivado del original el 4 de marzo de 2016. Consultado el 6 de abril de 2025 .
Enlaces externos
- Proyecto Estrella Oscura
- juegos multijugador masivos en línea inactivos
- Software de Sun Microsystems