Project Darkstar
| Company type | Open source software project |
|---|---|
| Industry | Software development, Video games |
| Founded | 1999 |
| Founder | Jeff Kesselman |
| Fate | Discontinued |
| Successor | RedDwarf Server |
| Products | Middleware for MMOG development |
| Parent | Sun Microsystems (later Oracle) |
Project Darkstar was an open source framework, now discontinued, designed for developing MMOGs. Written in Java, it functioned as middleware for game engines. The initiative originated as a personal endeavor by Jeff Kesselman in 1999 and later evolved into a research project at Sun Microsystems. Its primary goal was to assist developers and operators in addressing common issues encountered in large-scale online games, virtual environments, and social networking platforms, such as server overloads, data corruption, and inefficient server utilization.
History
The origins of Project Darkstar trace back to 1999 when Jeff Kesselman, then Senior Game Integration Engineer at Total Entertainment Network, began it as a personal project. In 2004, Sun Microsystems established its Game Technology Group under Chief Gaming Officer Chris Melissinos. Kesselman introduced the third version of his project to this group, renaming it the "Sun Game Server" (SGS). The SGS abbreviation persisted in the server’s package names until the project's conclusion.
Kesselman single-handedly developed this third iteration over the course of a year, unveiling an initial release at the Game Developers' Conference (GDC) in 2004. After a restructuring within Sun’s Software CTO office in 2005, Melissinos and Kesselman transitioned the project to Sun Labs under Director Karl Haberl. Haberl expanded the team by recruiting researchers Seth Proctor and Dan Ellard along with contractors James Megquier and Sten Anderson. This expanded team produced the Early Access release—the first operational server—presented at GDC 2005.
Following Oracle’s acquisition of Sun Microsystems, on February 2, 2010, Jim Waldo declared that "Sun Labs engineering effort is no longer being applied to Darkstar development." Afterward, some former Sun Labs engineers and members of the community contributed to the RedDwarf Server, which aimed to serve as Darkstar’s successor.
Features
A running Project Darkstar server either initiates a new network or connects to an existing one. Each network comprises clients, server implementations, a Project Darkstar stack that hosts these servers, and meta-service nodes responsible for managing communication between stack nodes. Server implementations are user-developed programs built using the Project Darkstar API. Clients include all client-side applications linked to game servers within the network.
Project Darkstar was engineered to provide core functionalities required by massively multiplayer games while maintaining scalability for smaller online multiplayer titles. Its notable features encompassed:
- CPU load balancing
- Meta-services
- Persistent data storage utilizing Berkeley DB
- Support for transactions
- Mechanisms for duping prevention
- Channel-based communication
- Scalable data structures
- Support for pluggable protocols
- Administrative management tools
At the heart of Project Darkstar was its API, which allowed developers to build game servers capable of client communication and operation atop the Darkstar stack. This API abstracts concurrency complexities so developers can write code as if it were single-threaded while the underlying stack performs full parallel processing. Key components of this API include task management, data persistence, and channel-based messaging.
Tasks primarily govern information control by safeguarding data during server crashes or shutdowns. They achieve this by saving their state and respawning after a restart to continue from where they left off. This design ensures uninterrupted processes such as character data updates—maintaining data integrity despite failures.
Persistent storage is handled through Berkeley DB; all data stored must be serializable into binary format. Managed objects—which range from player information to internal server logic—are updated transactionally. In case of server failure, any corrupted data is discarded and reverted to the last consistent state to guarantee system reliability.
Channels offer developers an effective method for communicating with multiple clients simultaneously. Clients subscribe to channels to send and receive messages, which are multicast to all subscribers. This model simplifies scalable communication between clients and servers.
Noteworthy Applications
- Open Wonderland – a fully Java-based open source framework designed for building interactive 3D virtual environments with collaborative features.
Critical Feedback
Certain industry analysts have expressed doubts regarding the practicality of handling Central Object Store and Distributed Random Access within highly dynamic gaming settings.
RedDwarf
RedDwarf Server served as an open-source middleware platform dedicated to the development of the server side infrastructure for massively multiplayer online games. It emerged as the official community-driven continuation of Project Darkstar following Oracle's cessation of support. The community adopted and rebranded the most recent Project Darkstar codebase, launching it under the name RedDwarf Server. This project preserved Project Darkstar’s original licensing terms: the server itself was released under the GPLv2, while server APIs were licensed under GPL with the classpath exception. Client APIs for Java and C were provided under a BSD license.
Communication between clients and the server occurs through Java or C APIs, with supplementary client APIs accessible for C#, Python, Objective-C, and ActionScript. RedDwarf Server utilizes a proprietary protocol to manage network interactions.