Glossary

DC

Abbreviation of Distributed Class.

Distributed Class

This is a class definition that the developer defines in the DC file. Distributed Objects are instantiated based on a Distributed Class in which it inherits it’s properties, or fields, from.

DO

Abbreviation of Distributed Object.

Distributed Object

Represents an instance of a Distributed Class. This object is present in the State Server’s visibility tree and views of it can also exist on Donet clients. This includes AI and game clients.

DOG

Abbreviation of Distributed Object Global.

Distributed Object Global

Similar to a Distributed Object, but is omnipresent in the Distributed Object visibility tree. This means that it is known globally and always remains accessible by all participants, such as Clients and AI processes. DOGs are useful for authentication, as anonymous (or non-authenticated) clients can interact with a Distributed Object Global object, as its not part of the visibility tree and it’s DoId is a constant that is globally known by all clients.

DoId

Distributed Object Identifier. This is a 32-bit long identifier that is generated by the server at runtime to identify a Distributed Object that exists in the State Server.

AI

Abbreviation of Artificial Intelligence.

Artificial Intelligence

The name for this is arbitrary, as it is not in any way related to the field of machine learning. An AI is a process on the server cluster’s internal network that acts as a client connected directly to a Message Director instance. This means that all AI clients bypass the Client Agent, as they are inside of the ‘trusted zone.’ AI processes have authority over Distributed Objects and host the game/application’s logic.

UD

Abbreviation of UberDOG.

UberDOG

This is similar to an AI process, but is dedicated to managing Distributed Object Global (DOGs) objects.

Views

Views are local implementations of a Distributed Class from different perspectives. A view is essentially a representation of a Distributed Object in the eyes of a client. Distributed Object instances on a client inherit from a Distributed Class and are usually, by convention, named with a suffix which describes the object’s perspective from the client’s point of view in the virtual world. Valid suffixes are:

  • AI (Artificial Intelligence)

  • UD (UberDOG)

  • OV (Owner View)

OV

Abbreviation of Owner View.

Owner View

This is a type of View used by clients, which have ownership over that Distributed Object instance.

CR

Client Repository. See Panda3D’s Client Repository.

AIR

AI Repository. See Panda3D’s AI Repository.

DSL

Domain-specific language. See DSL on Wikipedia.

Network contract

See Design by contract on Wikipedia.

MVC

Abbreviation of the Model-view-controller software design pattern.

Model-view-controller

A software design pattern. See MVC on Wikipedia.

Context-Free Grammar

A formal grammar used to define languages. See context-free grammar on Wikipedia.

Unit Testing

See Unit Testing on Wikipedia.

async

Common abbreviation of asynchronous.

asynchronous

Term for an operation that is running in the background, as opposed to blocking the flow of the code until it is completed.

future

A special handle that represents an asynchronous operation that will complete at some point in the future. Sometimes called a “promise” in other programming languages.

tokio

Tokio is an asynchronous Rust runtime and library.