Hacktoberfest 2021 Recap

Hacktoberfest is an annual celebration of open-source put on by Digital Ocean, by encouraging people to contribute to and support open-source projects. Participants who submit 4 or more pull requests to public projects on GitHub are rewarded with swag.

While winning a free shirt might not be the biggest source of motivation, it is an excellent opportunity for project to identify opportunities for new contributors to step in and make a difference, and an opportunity for folks looking to contribute to dip their toes in the water.

The H’uru projects on GitHub are open-source and elligible for Hacktoberfest credit, and for the past several years we’ve seen a number of contributions during these times. This year we had a record-breaking 41 pull requests, including some by first-time contributors!

Plasma engine client & tools

This is the Plasma engine as open-sourced by Cyan, which includes the MOULa game client, some related tools, and the 3D Studio Max plugin.

There were some really great quality-of-life fixes here that improve the game, as well as some bug fixes and preparation work for future content. Not all of these pull requests are finished and ready to merge, but an important part of open-source is collaboration and feedback on ideas as they are developed.

MOULa assets & game content

This project is all the MOULa game assets, including fan Ages and the Intangibles. Most of the work here involved fixes to existing game content, and set up work for future expansion.

Special shout out to Hazado, who has shown incredible skill at applying fixes and customizations to existing game data with surgical precision. Several of his pull requests are the technical implementation side of work by other community members, including new clothing outfits and updated translations.

DIRTSAND server

DIRTSAND is an unofficial open-source implementation of a MOULa-compatible server, and is most prominently used for the Gehn Shard. It is also popular as a local server for development purposes and testing out content.

This year’s fixes by Hoikas focused mostly on crashes and deadlocks around mismatched SDL versions.

libHSPlasma I/O library

libHSPlasma is an open-source Plasma data library that handles data from multiple versions of Plasma, and provides the base for many other tools like PlasmaShop, korman, and MoulKI.

There were a few fixes here this year, in particular one from new contributor roblabla to add some missing network messages. Thanks Rob!

PlasmaShop tools

This is the all-in-one, one-stop-shop for Plasma engine tools. Including game file editors, a log viewer, an offline Vault editor, PRP editing tools, and more.

Zrax did some work to make the code match modern conventions, as well as a performance improvement for log viewing.

Korman Blender plugin

Korman is the open-source plugin for building and exporting Uru content from the free Blender 3D modelling program.

It didn’t receive significant attention this year, but Doobes did contribute preliminary some work to improve connecting Python scripts to object animations and Deledrius contributed several cleanups and a modifier fix.

string-theory shared library

This is a C++ UTF-8 text-handling library written by Zrax, based on work to clean up string handling and conversions in the Plasma engine. Originally called plString, this was extracted into its own library that is now used by both Plasma and libHSPlasma (and other non-Uru-related projects).

This year’s work by dpogue focused on maintenance to the continuous integration build scripts and ensuring Solaris is supported.

Guild of Writers forum theme

The Guild of Writers forum theme has been needing some template updates, and Deledrius took a stab at fixing some of the compatibility issues.

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.

Graph of commits to H-uru/Plasma on GitHub since 2011

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.

CWE Development Library Bundle Update

After many delays, much hemming, and lots of hawing, the ability to play WebM video (vp9/opus) was merged into the main codebase today. You should still be able to compile the new codebase after this merge; however, if you would like to be able to see videos in the client, you will need to download the new devlibs bundle.

There are currently no official WebM versions of the Cyan introduction video nor the MOUL intro video. For now, you will need to convert them using third party utilities if you want them to play. We hope to fix this in the near future.