Wesnoth-UMC-Dev: A Retrospective

Today, after Wesnoth-UMC-Dev reached its most important milestone, I have decided to step down from the project administrator position to leave the decision making and user support tasks to Espreon and AI0867, who have done an undeniably good job in my absence the last year while I was busy working on other projects.

This does not mean that I’m completely breaking my ties with this exciting platform for add-on development which ESR and I founded. I’ll continue to take care of infrastructure matters such as the website design, content and coding, the Registry tools and miscellaneous utilities whenever I have time; I’m not going to abandon After the Storm either, since I continue to be a user of the project either way.

I mentioned that I’d be following up the official r10000 announcement with the history of the Wesnoth-UMC-Dev Project. Most of the content below is taken from an interview I recently had with BfWEthnographer which eventually touched this subject.

The idea of creating the Coordinated Wesnoth User Made Content Development Project (better known as wesnoth-umc-dev or Wesnoth-UMC-Dev) came up in a rather casual conversation with none other than Eric S. Raymond on IRC, on March 13th 2008:

Me: do you think wesnoth-Invasion_from_the_Unknown (wesnoth-iftu) would be a good name for the sourceforge.net project

ESR: Why only solve your problem? Start something like wesnoth-designer-sandbox.


Me: wesnoth-umc-dev: Wesnoth UMC Development sandbox

ESR: Makes sense.

The problem we were trying to solve at the time was the coordination of work between add-on maintainers and the people (back then, ESR) in charge of adding new user-made campaigns to Wesnoth’s mainline. Very often user-made content is maintained by a single person in the official add-ons server; that person is the only one who is able to review other people’s ideas and changes to the add-on’s files because there is no Version Control System for uploads to the server.

Since our primary intention was for ESR to work on Invasion from the Unknown’s prose while I continued maintenance of the campaign (already past 1.0 at that point), we knew we needed a VCS to boot.

ESR had previously worked with Taurus on The Hammer of Thursagan (an add-on campaign specifically developed for mainline) and they coordinated their work using the WesCamp-i18n Subversion repository. Unfortunately, WesCamp was not created for this purpose and this gave the administrator an unexpected maintenance problem to deal with; additionally, the service provider (berlios.de) was known to have technical issues at the time.

We also knew that the Extended Era maintainers of the time had a Subversion repository of their own in Sourceforge.net, albeit only intended for hosting EE itself and not more content.

And so we founded the Wesnoth-UMC-Dev Project at Sourceforge.net, originally known simply as the UMC Sandbox. I’m not really sure at what point I changed the name to the really long “Coordinated…” one, but the project’s Unix-style name used for SF.net URLs has been wesnoth-umc-dev from the very beginning; the IRC channel has used the same simple name since its creation at the end of March 2008.

We chose Subversion as our VCS because it was the only choice SF.net offered besides CVS back then (nowadays Bazaar, Git and Mercurial are also available options). To this day SVN continues to be, in my opinion, the one VCS in broad use that has the most extensive and easiest to read documentation (Version Control with Subversion, a.k.a. the “SVN book” or the “turtle book”) available online.

The first project to make use of this service was Invasion from the Unknown. The idea of extending our mission to providing interested add-on authors a place to work with the advantages of versioned content regardless of mainline consideration status came almost immediately afterwards — Thunderstone Era (back then a collaboration between Aethaeryn, ESR, and me) is the second project to join Wesnoth-UMC-Dev, and the first to come to existence within it, on March 28th 2008.

The first year turned out to be a success as not only we got some new add-ons (including Legend of Wesmere and Delfador’s Memoirs, moved to mainline on October 7th 2008 and April 10th 2009 respectively) but also a new administrator, AI/AI0867, who replaced ESR.

With the pass of time we got a website (hosted by AI0867), which has also served as my guinea pig for practicing my amateur web design skills. It’s gone through three major overhauls, codenamed Soradoc (one of the three outposts relevant to the Eastern Invasion plot), Kalari (a key location to the plot of After the Storm and my (re)vision of Under the Burning Suns) and Hakone.

Soradoc Kalari Hakone

Shortly after Kalari was deployed, my work on the Wesnoth-UMC-Dev Registry began, and after a brief coding spree the first piece, umcreg (codename Thoria) was released, along with a neat web interface that works to this day. umcstat never came to life, and it’ll probably not happen any soon either since it’s not really required for Wesnoth-UMC-Dev’s operation per se.

A little known fact is that everyone’s favorite legendary Wesnoth Forum Emperor was, in fact a half-administrator (our fancy term for user support staff) for a while during 2009; at one point we all four were active project staff. Since Espreon managed to have more spare time than Turuk to help people, he was eventually promoted to project administrator, and continues to be very active nowadays.

My involvement with Wesnoth-UMC-Dev declined during the past year as I got involved with other projects: designing levels for Frogatto, starting, completing and maintaining the Spanish translation for Atheme IRC Services and managing the Wesnoth Forums in Turuk’s absence while struggling with After the Storm infamously slow development.

Even now that I’m permanently leaving most administration tasks to AI0867 and Espreon, I am glad to have managed to turn this simple repository into something greater that’s helped people both from the user content creators community and the mainline Battle for Wesnoth Project.