World Library  
Flag as Inappropriate
Email this Article

Dworkin's Game Driver

Article Id: WHEBN0026950489
Reproduction Date:

Title: Dworkin's Game Driver  
Author: World Heritage Encyclopedia
Language: English
Subject: Xyllomer, LPC (programming language), Skotos, Chronology of MUDs, MUDs
Collection: Lpmud Gamedrivers, Lpmud Mudlibs, Mud Servers
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Dworkin's Game Driver

DGD, Dworkin's Game Driver (at one time called Dworkin's Generic Driver), is an LPMud server written by Felix A. "Dworkin" Croes.[1][2] DGD pioneered important technical innovations in MUDs, particularly disk-based object storage, full world persistence, separation of concerns between driver and mudlib, runtime morphism, automatic garbage collection, lightweight objects and LPC-to-C compilation.[1][3][4]

Contents

  • History 1
  • Features 2
    • Persistence 2.1
    • Statedumps 2.2
    • Dynamic Recompilation 2.3
    • Disk-based Transparent Swapping 2.4
  • Mudlib support 3
  • See also 4
  • References 5
  • External links 6

History

DGD's first public release was on August 12, 1993.[3]

The first publicly available MUD to use DGD was PaderMUD (later Xyllomer), in December 1993.[5]

The original primary development MUD for DGD was The Pattern,[6] referencing The Chronicles of Amber (like Croes's pseudonym Dworkin, which refers to Dworkin Barimen). It was taken offline sometime before February 1997.[7]

During the 1994-1995 academic year, DGD was a core element in a master's thesis at the Katholieke Universiteit Leuven. As part of the thesis work, a deterministic mechanism for handling arrays and mappings passed between objects was devised.[8]

In December 1995, exclusive rights to commercial use of DGD were acquired by BeeHive Internet Technologies, Inc., which sold an exclusive license to ichat in January 1996. ichat used DGD to establish the first Yahoo! chatrooms. ichat then became Acuity Corporation, which sold a sublicense to Skotos in February 1999. Skotos used DGD to create a series of online games. Acuity Corporation was later acquired by Quintus Corporation. In March 2001, the exclusive license was terminated due to the bankruptcy of that company.[4][9]

In 2002, DGD was used for academic research into persistent distributed object systems.[10]

In August 2005, DGD's commercial use rights were assigned back to Dworkin B.V., Croes's company.[4]

On February 3, 2010, DGD 1.4 was released as open-source software.[11]

Features

Unlike other LPMud drivers, DGD has many powerful features specific to it that make it stand out as a game driver. These feature include persistence, Dynamic Recompilation, and statedumps, which allows a fully persistent system—no reboots and no reset system. A never-ending game world could be created.

Persistence

DGD supports persistence as a driver feature in ways that many languages simply can't. Using Dynamic Recompilation, coders never have to save objects to disk, reboot or recompile the logic for the objects, and then reload the objects from disk. Because DGD is also disk-based it can be persistent by swapping much of its unused memory to disk. Persistence is powerful and allows for behavior not experienced in most games. Some possibilities include... Not destroying objects left on the ground Not ever destroying NPC's nor randomly creating them en masse with zone resets State is not lost on reboot, except for the connection state of the player.

Statedumps

Statedumps are dumps of the state, or memory, to the hard disk, similar to how a computer dumps its memory to hard disk when it goes into hibernation. The driver can start from a statedump and have the game be exactly in the same state it was before reboot, minus network connections. This is why it is possible to reboot and easily maintain persistence of the way things were before the reboot. It also allows for a concept called virtual uptime, where while the game is actually down but when it comes back up it is still the same as it was before. This virtual uptime means the game has never reset itself in anyway and all changes are persistent between real downtime.

Dynamic Recompilation

The dynamic recompilation feature allows one to recompile the logic of a master object during runtime, automatically upgrading all instances to the new version. Inherited objects cannot be recompiled in this way, they must instead be destructed and then compiled again. This will leave inheriting objects referring to the old version of the object, so they must in their turn either be recompiled, if possible, or destructed and compiled again in order to refer to the new version. Because of the restriction against recompiling inherited objects, it makes sense to separate inheritable objects from others, which is also done by the DGD Kernel Library. The recompilation mechanism is essential for persistent but evolving systems. Combined with statedumps, a reboot would only be necessary to update the driver and would probably be a transparent change to admins and users alike.

Disk-based Transparent Swapping

The DGD driver transparently swaps all the objects in memory to disk based on parameters that can be tuned by the admin of the game. The disk-based nature of the game allows one to never have to write code to load or save objects to and from the disk by oneself. The most commonly used objects are generally kept in memory to negate any non-trivial swapping cost and things are put to disk automatically based on when they were last accessed. This is also a powerful feature because it doesn't make the coders of the game responsible for what is in memory, which can dominate a lot of development time for any game programmer.

Mudlib support

Mudlibs available for DGD include:

  • Phantasmal can be found at phantasmal.sourceforge.net
  • Skotos 2.0 created by Skotos Tech
  • Melville
  • 2.4.5
  • Gurba
  • LPMOO

See also

References

  1. ^ a b Shah, Rawn; Romine, James (1995). Playing MUDs on the Internet. John Wiley & Sons, Inc. pp. 164–165.  
  2. ^ Busey, Andrew (1995). Secrets of the MUD Wizards.  
  3. ^ a b  
  4. ^ a b c  
  5. ^  
  6. ^ Busey, Andrew (1995). Secrets of the MUD Wizards.  
  7. ^ Johnston, Craig (1997-01-31). "DGD, archives from the pattern". rec.games.mud.lp. Retrieved 2010-04-27. 
  8. ^ Van Hees, Kris (1995-07-01). Experimental programming in an object oriented system (Lic. Informatics thesis). Katholieke Universiteit Leuven. Retrieved 2010-11-05. This thesis describes modifications made to Dworkin's Game Driver (DGD) to provide non-clonable objects (entities) and deterministic pointer type conversion from reference to copy at execution thread boundaries. 
  9. ^ "Skotos Tech Acquires DGD License" (Press release). Skotos. 1999-02-05. Retrieved 2010-04-18. 
  10. ^ Hansen, Geir Harald (2002-07-31). A Distributed Persistent World Server using Dworkin's Game Driver (Cand. Scient. thesis). University of Oslo. Retrieved 2010-04-14. This thesis describes the design and implementation of a persistent distributed object oriented system and programming environment. It is built on an existing non-distributed server, Dworkin's Game Driver (DGD). 
  11. ^  

External links

  • Official web site
  • Wiki
  • DGDHub repository
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 



Copyright © World Library Foundation. All rights reserved. eBooks from World eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.