Reflecting on 10 Years of Open-Source Uru
It was 10 years ago today that Cyan unexpectedly released the source code for the Uru game engine client and related development tools. I recall thinking it was inconvenient timing, because I was less than a month away from being finished with school, but right in the middle of final projects and exams when the source was released. It’s funny looking back at all the excitement – and politics – and seeing where it led to.
A lot changes over the course of 10 years. Sometimes a lot stays the same too. Our group of developers has seen people come and go over the years, and I’m incredibly grateful to get to work alongside many of these people — in some cases for over 15 years developing tools and Uru-related projects long before the engine codebase itself was released. It’s not an understatement to say that Uru is directly responsible for my becoming a software developer, and I owe a lot to these folks who patiently explained concepts and patterns to self-taught younger me.
A lot changes in a codebase over the course of 10 years too, and that’s what I want to focus on today.
There have been almost 700 pull requests merged to the Plasma project since we mirrored the original source code on GitHub. Some of the highlights include:
- Replacing the Visual Studio 2003 project files with the CMake build system, which allows building on multiple platforms with various compilers and IDEs.
- Updating the physics engine to PhysX 4.1 which is open-source and cross-platform.
- Updating the scripting library to Python 3.9.
- Simplifying management of library dependencies, and writing new user-friendly build instructions.
- Significant code modernization by adopting features of new C++ standards in favour of custom implementations.
- Various performance improvements and gameplay enhancements, such as clipboard functionality and widescreen support.
- Lots of code cleanup to allow for 64-bit and (in future) native macOS and Linux clients
This work has been a group effort, with lots of contributions from the core H’uru team as well as numerous community contributions. A big thank you to everyone who has contributed to Uru over the years, whether through code changes, bug reports, tutorials and documentation, or gameplay testing.