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:
- 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.