Skip to content

A free and open source network engine inspired by Disney's Distributed Networking protocol, written in Rust.

License

Notifications You must be signed in to change notification settings

donet-server/donet

GitHub Build Status Coverage Status Discord

donet

Donet logo artwork by honeymatsu.

Donet is a free and open source network engine designed after the Distributed Networking protocol, as defined in the high-level networking API of the Panda3D game engine, which was originally developed by Disney Interactive (formerly known as Disney VR Studios) to connect with their in-house server technology, the OTP (Online Theme Park) server, which was used to power their massive multiplayer online games, such as Toontown Online and Pirates of the Caribbean Online, from 2001 to 2013.

Getting Started

The Donet repository houses three different Rust projects:

  • donet - The Donet daemon source, which includes all the Donet services. See donet-server.org.
  • libdonet - The core utilities for Donet services, including datagram utilities and the DC language parser. See libdonet.rs.
  • bevy_donet - A Bevy plugin for the Bevy game engine that provides the client-side implementation for Donet. This integrates Donet to the engine by translating network field updates to Bevy ECS operations.

Please read the introduction to Donet for an overview of the project and how the engine works.

Before starting your own contribution to Donet, please read over the Contributing Guidelines. If you are a first time contributor to the project, please add your name and Git email address to the CONTRIBUTORS.md markdown file. You may also use your GitHub username as your name. If your contribution includes modifications to source code, please add your name and Git email in the Cargo.toml file as an author of this project.

To build Donet, run the following under the project directory:

cargo build --release

Note

The bevy_donet crate is not a default member of the main cargo project workspace. Only the donet and libdonet crates are default members of the workspace as they are both required to build the server daemon binary.

To build the bevy_donet crate, run:

cargo build --package bevy_donet

If you are working on a contribution to either the Donet daemon or libdonet, please run code linting and unit testing before pushing:

cargo clippy
cargo fmt --all -- --check
cargo test

These checks should go over all source files in the bevy_donet/, donet/, and libdonet/ source directories.

If you have any further questions, feel free to join our community Discord server.

Documentation

Currently the Donet server is still under heavy development.

For the libdonet rust library documentation, visit libdonet.rs.

Software License

The Donet engine is released under the GNU Affero General Public License, version 3.0 (AGPL-3.0), which is a copyleft open source software license. The terms of this license are available in the "LICENSE" file.

Distributed Networking architecture resources

Resources for more info on Panda's Distributed Networking (Sources listed in chronological order):


Donet logo artwork created by honeymatsu. 🍩

Older revisions of the Donet logo created and designed by Karla Valeria Rodriguez. 🍩

Legal

"we", "us", and "our" refer to the Github organization, "Donet".

“Disney” may refer to The Walt Disney Company, or any of its subsidiaries.

The Donet project and organization is not in any way endorsed by, or affiliated with, the Toontown: Corporate Clash non-profit game studio registered in the United States. We are not affiliated with Disney.

About

A free and open source network engine inspired by Disney's Distributed Networking protocol, written in Rust.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published