Project Motivation
The Donet software project is practically a rewrite of Astron. Both Donet and Astron projects are inspired by Disney’s Online Theme Park server.
About Astron
Astron began development in August 29th, 2013, shortly after Disney announced the closure of its legacy online MMOGs, which included Toontown Online, Pirates of the Caribbean Online, and Pixie Hollow. These online virtual worlds would be closed down on September 19th, 2013. Disney’s The World of Cars Online was also one of Disney’s MMOGs, but was closed down earlier on February of 2012. All four games shared one technology; An in-house networking engine developed by Disney for developing massive virtual worlds, named the Online Theme Park server, or ‘OTP’ for short.
Astron is written in C++, and uses libuv as its asynchronous runtime. For the DC language parser, Astron uses a copy of Panda3D’s DC parser, which over time was also modified by the authors of Astron. Later in the lifetime of the Astron project, the Astron DC parser and other networking utilities were split into another project called Bamboo, which would also offer Python bindings for game clients written in Python. Bamboo had initial work done, but never reached a release.
Astron’s Decline in Development
By 2014, Astron had matured enough for fan recreations to run the networking for their virtual worlds. Over the span of a couple years, the Astron project was under active development by multiple contributors who were fans of Disney’s MMOGs, and most were in teams working towards rewriting these games from scratch for their fanbase to play after the closure.
After 2014, the Astron authors had already discussed bigger goals for the project, but many were never completed. As of the time of writing this page, Astron’s source code has not been updated for over 5 years, excluding README changes or trivial contributions made by Donet authors.
Though Astron is used in production environments today for fan rewrites of Disney games, Astron never reached a 1.0 release and still has multiple open issues.
Donet’s Mission
Donet was created as a solution to the following disadvantages of Astron:
Lack of Development
Memory issues at runtime
Permissive Software License
Donet is written in Rust, a general-purpose programming language that is focused on performance, type safety, concurrency, and most importantly memory safety. The asynchronous runtime used by Donet is Tokio, which includes multi-threaded capabilities.
“It enforces memory safety, meaning that all references point to valid memory. It does so without a traditional garbage collector; instead, both memory safety errors and data races are prevented by the “borrow checker”, which tracks the object lifetime of references at compile time.” (“Rust (programming language)”, Wikipedia)
Donet is also licensed under the GNU Affero General Public License. Unlike the Modified BSD License, also known as The 3-Clause BSD License, the AGPLv3 license is specifically intended for software designed to be run over a network. The AGPL is based off the GNU General Public License version 3, which adds a provision requiring that the corresponding source code of modified versions of the software be prominently offered to all users who interact with the software over a network.
A big part of the Donet project is libdonet, which is a rewrite of Panda3D’s DC parser in Rust. Donet’s independence from Panda3D’s source code also gives it independence from Panda3D’s licence, which is also a permissive free software license.