Project Darkstar
   HOME

TheInfoList



OR:

Project Darkstar was an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
MMOG A massively multiplayer online game (MMOG or more commonly MMO) is an online video game with a large number of players, often hundreds or thousands, on the same server. MMOs usually feature a huge, persistent world, persistent open world, alt ...
middleware Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to implement co ...
solution written in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
. Project Darkstar began as a personal project of Jeff Kesselman in 1999. It later became a research project at Sun Microsystems, and aimed to "help developers and operators avoid a range of serious, yet typical, problems associated with massive scale online games, virtual worlds, and social networking applications today, including zone overloading, data corruption, and server underutilization."


History

Project Darkstar began as a personal project of Jeff Kesselman in 1999 while he was the Senior Game Integration Engineer at the Total Entertainment Network. In 2004, Sun's Game Technology Group was formed, and at that time Mr. Kesselman brought the third iteration of the project into Sun where it was dubbed the Sun Game Server. (The SGS moniker survives to this day in the package names of the Project Darkstar Server.) Mr. Kesselman worked on the third version for a year as a solo project in Sun, debuting an early version at the Game Developers' Conference that year. Following the reorganization of the Software CTO's office in 2005, the project was moved to Sun Labs under Sun Labs Director Karl Haberl. Karl increased the man-power, adding Seth Proctor and Dan Ellard as co-researchers, as well as contractors James Megquier and Sten Anderson. This team delivered what is now known as the Early Access version, the first working server, for GDC 2005. On February 2, 2010, in the wake of the purchase of Sun by Oracle,
Jim Waldo Jim Waldo is an American computer scientist and the Chief Technology Officer of Harvard University. He is the Gordon McKay Professor of the Practice of Computer Science at the Harvard School of Engineering and Applied Sciences and Professor of Tec ...
posted on the "Project Announcement" forum that "Sun Labs engineering effort is no longer being applied to Darkstar development". A number of members of the Sun Labs team and a number of members of the Darkstar community worked for a time on the RedDwarf Server as a successor to Darkstar.


Features

When a Project Darkstar server implementation is run, it either starts a new network or joins one that is currently running. All networks contain clients,
server Server may refer to: Computing *Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients Role * Waiting staff, those who work at a restaurant or a bar attending customers and su ...
implementations, a Project Darkstar stack on which the server implementations run, and several meta-service nodes that handle traffic between each node in the server stack. A server implementation is a user created
program Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of managing several related projects * Time management * Program, a part of planning Arts and entertainment Audio * Progra ...
written with the Project Darkstar
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
. The clients include all client-side applications and games that are connected to a game server in the network. Project Darkstar is being developed to support all features vital to a massively multiplayer game, and at the same time be scalable enough to support non-massive
multiplayer online game A multiplayer video game is a video game in which more than one person can play in the same game environment at the same time, either locally on the same computing system (couch co-op), on different computing systems via a local area network, or ...
s. As such, there are many features that it supports, and many features that are being implemented and integrated into it actively. *
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
load balancing * Meta-services * Persistent data storage using
Berkeley DB Berkeley DB (BDB) is an unmaintained embedded database software library for key/value data, historically significant in open source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores arbitr ...
* Transactions * Duping prevention *
Channel Channel, channels, channeling, etc., may refer to: Geography * Channel (geography), in physical geography, a landform consisting of the outline (banks) of the path of a narrow body of water. Australia * Channel Country, region of outback Austral ...
communication * Scalable data structures * Pluggable protocols * Administrative tools The API of Project Darkstar is the key component for developers who use the technology. With it, they can develop game servers to communicate correctly with their client technology and have a server up and running that runs on top of the Project Darkstar game stack. The API is written to hide the concurrency of the underlying system that the Project Darkstar stack performs for the developer, so that the program can be written with the illusion that it is single threaded, even though the stack is fully parallel. The main parts of the API include task management, data persistence, and channel communication. Control of information in a Project Darkstar server is generally handled by tasks, although in some special cases they are not necessary. They are used in instances where storage or retrieval of data must be protected from a server
crash Crash or CRASH may refer to: Common meanings * Collision, an impact between two or more objects * Crash (computing), a condition where a program ceases to respond * Cardiac arrest, a medical condition in which the heart stops beating * Couch su ...
or
shutdown Shutdown or shut down may refer to: * Government shutdowns in the United States * Shutdown (computing) * Shutdown (economics) * Shutdown (nuclear reactor) Arts and entertainment Music * "Shut Down" (The Beach Boys song), 1963 * ''Shut Down Volu ...
, as tasks are saved and remembered when they are run, and can be respawned when the server is restarted in the same state as they were in before the crash. This is useful, for instance, when updating character information. If something goes wrong with the server internally, the character information is persisted and on a server restart the character information will be restored from the last state it was in before the crash. The Berkeley DB used by Project Darkstar stores all data that is to be persisted. Anything that is to be stored in the
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
must also be serializable, as the
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
is programmed to store binary information. A managed object can be anything from player data (i.e. position, equipment) to internal server data and control logic (i.e. scalable data structure, tasks). The usefulness of managed objects is seen in the instance of a server failure. Since managed objects are updated transactionally, any corrupted data is discarded on the server restart and the managed object is rolled back to its last working state. Channels give developers an easy way of communicating with many clients. The way channels work is by giving clients a way of subscribing to channels such that they can send messages to the channel and receive messages from the channel. When a message is sent to the channel from a client or the server, the message is
multicast In computer networking, multicast is group communication where data transmission is addressed to a group of destination computers simultaneously. Multicast can be one-to-many or many-to-many distribution. Multicast should not be confused with ...
to all clients who are subscribed to it. It is an abstraction built on top of the communications layer to assist in the development of easy and extensible communication between many clients and the server.


Notable uses

*
Open Wonderland Open Wonderland (originally Project Wonderland) is a Java open-source toolkit for creating collaborative 3D virtual worlds. Within those worlds, users can communicate with high-fidelity, immersive audio, share live desktop applications and doc ...
- a 100% Java open source toolkit for creating collaborative 3D virtual worlds


Reception

Some authors have suggested that the management of Central Object Store and Distributed Random Access might not be realistically possible in a highly interactive game environment.


RedDwarf

RedDwarf Server was an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
middleware Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to implement co ...
solution for developing the
server-side In the client–server model, server-side refers to programs and operations that run on the server. This is in contrast to client-side programs and operations which run on the client. General concepts Typically, a server is a computer application ...
of
massively multiplayer online game A massively multiplayer online game (MMOG or more commonly MMO) is an online video game with a large number of players, often hundreds or thousands, on the same server. MMOs usually feature a huge, persistent world, persistent open world, alt ...
s. It was the official community fork of Project Darkstar. Once Oracle discontinued support for the project, the community
rebranded Rebranding is a marketing strategy in which a new name, term, symbol, design, concept or combination thereof is created for an established brand with the intention of developing a new, differentiated identity in the minds of consumers, investors ...
the latest codebase of Project Darkstar's repositories and released it as RedDwarf Server. RedDwarf inherited the Project Darkstar licensing scheme, with the RedDwarf Server distributed under
GPLv2 The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
and the server APIs being made available under the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
(GPL) with the
classpath exception A GPL linking exception modifies the GNU General Public License (GPL) in a way that enables software projects which provide library code to be " linked to" the programs that use them, without applying the full terms of the GPL to the using program. ...
. The Java and C client APIs—available as part of the RedDwarf project— were distributed under a
BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
. Clients can communicate with the server using a
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
or C
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
. The community also released client APIs for additional platforms including C#,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
,
Objective-C Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXTS ...
, and
ActionScript ActionScript is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (meaning i ...
. RedDwarf Server uses a built-in protocol for network communications.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-files/config-properties.html


References


External links


Project Darkstar
{{Portal bar, Free and open-source software, Computer programming, Video games Massively multiplayer online games Inactive massively multiplayer online games Sun Microsystems software