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.

Can’t have it all…

It’s been a long time.
Hello, how are you?
I’ve been really busy, remembering how I’m a terrible dirty hacker who hates Uru and wants to ruin it for everyone.

It’s been a long time… albeit not as long as some people, who have been asking similar questions for far longer.

I’m tired of this. I’ve spent 7 years watching squabbles and arguments back and forth on every possible issue, and that’s not what I’m here for.
I’m here to develop, to create, to take ideas and turn them into something more. These past few years have really served to convince me that the Uru community is not the place to do that.

Read More…

From My Hands…

I… haven’t touched Blender in 2 months.
I haven’t done any meaningful work in Blender is far longer.
It’s sad for me to say that, because I have things that I want to do and ideas that I want to develop.

We’re losing people. I’ve seen more people lose interest over the past 6 months than I have in any other period of Uru. We’ve been given hopes and promises, and now we’re all waiting for something that might never come. Times change and people get busier, and I feel that need to seriously ask myself why I’m still here.

It’s not because I enjoy it: Uru is depressing these days, and I don’t want to build Ages that nobody will ever explore;
it’s not for the community: I’ve seen almost all the good people lose interest, leaving only the idiots on MOUL worshiping their Holy Blue Lords of Cyan;
it’s not for the potential: time killed whatever potential was left in Uru.
It’s not even for Plasma anymore, the more I see of it, the more I realise how much it could be improved and yet there’s no way to do that.

I thought things would be more open when MOULa started, but instead they’re more closed than before. Any incentive to work on stuff is crushed by Cyan’s continued silence, and the overwhelmingly vocal disapproval of many community members. We all have bad days where we ask “Why do I put up with this?”; but when you’re seriously asking yourself that question every time you think of Uru, maybe it’s time to move on. I don’t want to be part of this anymore.

Uru’s dead, more dead now than before MOULa started. I keep wanting things to change, but I can’t keep pretending that they ever will. Cyan can’t make Uru work. They’ve lost direction and fragmented so much that the only thing keeping them in business is rehashing existing games on new platforms. The “Golden era” ended with Prologue, and came to a crashing halt after Myst V. MOUL never managed to bring any of that back.

The future is uncertain. I can say for sure that prpl-uruki will probably never be finished, and libHSPlasma development has mostly stopped as all the developers lost interest. PyPRP2 is up in the air, very dependent on what happens with Blender and whether there’s still enough interest to keep developing it. Without maintenance and support for the current tools, Age builders will lose interest and drift away, and with them goes any lingering hope for Uru’s potential.

For now, we keep waiting… but maybe someday you have to accept that the story’s over.

(Responses to this post are archived here)