The power of creativity, Part 1

Maintaining open source software can be quite a chore. The bigger something becomes, the greater the chances are that people find bugs in it and that those bugs interfere with their user experience. After a while, you end up with so much work to do – often for free – that you start to wonder if it was even worth embarking on that endeavour in the first place.

Now, what I am about to talk about is my own experience as an open source game developer. The magic of OSS manifests in wildly different ways depending on what the software’s purpose is, but I think some of these feelings are relatable for those who work on anything meant for use by a non-technical audience, such as desktop environment components and apps, image editors, media players, and so on.

So, let me tell you about immortality.

Continue reading “The power of creativity, Part 1


Effective as of today the 22nd of February, I have officially resigned from the Wesnoth, Inc. Board of Directors.

The post wherein I inform of this to the Board and the Project Council is not currently public, but I am including its full contents below for reference.

Due to recent changes in my life, I can no longer adequately dedicate time to unpaid activities such as Wesnoth-related work in the way people are probably accustomed to, which is why I have decided to officially step down from my position as member of the Wesnoth Inc Board of Directors. I do intend to continue to be around to help out with server administration and maintenance of the add-ons server software until someone else is able to commit to the same tasks in a more reliable fashion, although my presence on Discord and IRC is going to remain scarce and prompted primarily by direct tagging/highlighting of my username.

It is my hope that the Board will be able to find an adequate replacement and/or expand its membership further so it can continue to uphold the 2/3 requirements stated in the Project Constitution.

Regards Iris

Just to be clear, there are no ulterior motives behind my decision and this is purely something that I needed to do in order to better prioritise other work outside of Wesnoth.

Wesnoth and me: 2021 edition

Hello again and welcome to my increasingly infrequent round-up of Wesnoth-related activity for the past number of years. Although the sparseness of my schedule in this case might actually work to my advantage — Wesnoth 1.14.0 went gold on May 1st 2018, and its feature release successor is version 1.16.0, released on October 25th 2021 merely two weeks ago!

This time around there are no big life-changing events in between — well, sort of — so I’m gonna spare you the pain of reading through an overdramatic intro and just skip straight to the nitty-gritty.

Continue reading “Wesnoth and me: 2021 edition

Wesnoth and me: 2018 edition


It’s been quite a while since I last properly talked about The Battle for Wesnoth in here — years, really. Some people know that at some point in 2016 I mostly stopped contributing to the project, aside from some server-side stuff such as maintaining the multiplayer games server (wesnothd) and the add-on content server (campaignd).

Since then, a lot of people new to Wesnoth, as well as people not familiarized with Wesnoth, have heard about me, and they don’t really know what it is I’ve actually done over the years. So, I thought it would be a good idea to write about my involvement with this game since I happen to feel like writing walls of text stuff right now.

So, where shall I start?

Continue reading “Wesnoth and me: 2018 edition

Amethyst, and life updates

Oh hi there. Long time no see. Apparently I haven’t posted since February 2017, huh. A lot of things have happened in the meantime, it turns out. Some of those things are to blame for my general inactivity elsewhere, but when it comes to this blog I just can’t seem to come up with anything to say worthy of my trademark text walls, at least not ever since I joined Twitter several years ago— wait, wasn’t that in 2010? Time sure flies. I feel old. Okay, let’s face it, I am old.

“Iris” version 1.1.0 as of earlier today

In addition to it having been a while since my last post in here, it has also been a while since the last time I gave the website an overhaul, for what little use it sees nowadays. Because of that, plus some of my experiences designing the new website theme for The Battle for Wesnoth last year, I decided to try to modernize my own a little bit so it looks more in tune with my current practices. I also decided to spruce things up with a new colour scheme, like last time, taking things in a different direction to what I’m used to.

An attentive reader who’s been around for long enough might be able to tell that the “Iris” design last year did undergo a slight revision incorporating Font Awesome in order to make icons not look awful on high-DPI screens. This was a natural conclusion of my work designing and testing the theme on devices with higher pixel density. Plus it was precisely last year that I actually caved in and got a smartphone given to me by a relative, further highlighting all the inconveniences of designing things on/for 96 DPI these days. Other than that, though, the design remained mostly unchanged from what I made in 2014.

“Iris” version 1.2.0, aptly codenamed Amethyst for reasons that should be blatantly obvious, is mostly the same as before under the hood, but on the surface it hopefully looks shinier and more elegant and modern. Even though I am not using the site much right now like I mentioned above, I have a faint hope that the new look will motivate me to post more again.

Since there wasn’t a New Year post last year, or even the year before that, or uh... the year before that as well... actually I guess there haven’t been New Year posts in here since January 1st 2013. Oops. Anyway, I guess it’s time for a short summary of what I have been up to in recent times. Let’s see...

Continue reading “Amethyst, and life updates

Invasion from the Unknown 2.0.0

Nearly 11 years ago, I was checking out some of the free and open-source games included with the openSUSE distribution when I came across a fantasy turn-based strategy game called Wesnoth. I vaguely remember taking a quick look at it and dismissing it for some reason. It wasn’t until an OS update later the same year that I would actually give version 0.9.5 a proper try. Immediately upon doing so, I was enthralled by the game’s sheer quality and its surprisingly accessible gameplay.

Continue reading “Invasion from the Unknown 2.0.0

Invasion from the Unknown 2.0 RC 1 and After the Storm 0.9.16

Today, December 1st, IftU 1.99.0 (a.k.a. 2.0 RC 1) and AtS 0.9.16 have been released.

There is nothing noteworthy about AtS 0.9.16 whatsoever, but IftU 1.99.0 constitutes the first public codename Reconstruction release after several years of work. That is, not counting this year’s April 1st release (which apparently everyone simply assumed to be a hoax instead of actually downloading it from the trunk add-ons server).

I’m cutting this post short since — as should be painfully evident — I don’t really feel motivated to update this blog nowadays. Still, the announcement over at the Wesnoth forums has some more details about this first IftU 1.99.x/2.0 RC series release that are worth checking out if you are planning on installing or updating to this new version.

After the Storm 0.9.10

Version 0.9.10 is out.

Due to circumstances, it has been quite a while, and honestly I lost track of what this release was supposed to have besides a thing that requires another thing from another campaign that has not been completed or released yet. So let’s talk about what AtS 0.9.10 actually has.

Firstly, the minimum Wesnoth version requirement now is 1.11.11.

That’s right. Previous versions (including 1.10.x) are no longer supported. Ever since I moved to 1.11.x following the release of AtS 0.9.0, maintaining support for previous versions (including buggy development releases) required a series of unwieldy kludges that made the code uglier and harder to maintain and were, for the most part, untested beyond the classic “does it compile?” test. With all those bits gone, it will be easier to improve and optimize some aspects of the campaign, as well as work on the thing that requires the other thing I alluded to above.

For now, the first one such aspect I have worked on is converting several units to the 1.11.x animation WML syntax. Although some other people seem to prefer the new syntax over everything, I have chosen a more pragmatic approach for this campaign, so the set of units that I’ve converted in this release is rather limited. Hopefully more will follow soon, but I’m certain that there are a few for which the change hurts code readability. Plus, since most of my units are headbutters, the code size gains are marginal in the average case.

Finally, somebody reported to me of an issue with the player’s recall list and gold being discarded during certain key scenario transitions. It turns out this resulted from a change in Wesnoth 1.11.13 purportedly intended as a bug fix for MP campaigns. I was aware of the change and its implications at the time 1.11.13 was released, but I wrongly assumed AtS would not be impacted because I failed to take a tiny detail into account. Exactly three months later, I realized the sheer gravity of my mistake — but fortunately, it seems nobody else played AtS on 1.11.13+ in the meantime. (Thanks to RainerT for the report. This would have gone unnoticed for who knows how many more years months otherwise.)

As you can see, there is not a lot to talk about in this release other than the version requirement change. Since it’ll be a while before Wesnoth 1.12.0 is released, and AtS remains largely the same as it was the last time I posted in this topic, I believe stable version purists won’t be missing out on anything for now — at least not until the thing is done.

Also due to circumstances, this release is largely untested, so I would not be surprised if I accidentally broke a thing or two since 0.9.9.

The complete changelog for this version follows:

Version 0.9.10:
* General:
* Raised minimum game version requirement to 1.11.11. All existing
compatibility code for previous versions has been removed.
* Graphics:
* New or updated unit graphics: Sprite, Fire Faerie, Forest Spirit, Dryad,
Demon Shapeshifter.
* Scenarios:
* Added an option to certain scenarios to ensure Wesnoth does not discard
the player's gold and recall list under certain circumstances due to a
behavior change in version 1.11.13 and later. Affected scenarios:
* E1S9.3 - The Triad, part 3
* E1S11 - Return to Wesmere, part 2
* E2S0 - Transience
* E2S11 - A Final Confrontation
* E3S0 - Opening (Within)
* E3S6 - Divergence
* E3S8B - Destiny, part 1
* E3S11 - After the Storm
* Units:
* Balancing changes:
* Changed Leech's alignment from 'lawful' to 'neutral'.
* Decreased Leech's HP from 62 to 42.
* Decreased Leech's melee damage from 11-2 to 9-2.
* Decreased Leech's unit level from 3 to 1.
* Converted to the simplified 1.12 animation syntax:
* Dusk Faerie, Night Nymph, Nightshade Fire
* Sylvan Warden
* Sprite, Fire Faerie, Dryad, Forest Spirit
* Elvish Wayfarer
* Faerie Avatar
* Demoness Hellbent Tide
* Verlissh Control Spire
* User interface:
* Cutscene themes now use the 1.11.10 [theme] id attribute on 1.11.10 and

A load of WML errors (Part I)

Wesnoth Markup Language (WML) is the primary source code language for all add-on and mainline content for Wesnoth. Creators like me write large amounts of WML to instill life into their user-made projects. Our wiki has a rich reference section for the various dialects of WML understood by the game in different contexts. Tools like wmllint exist to make sanity-checking and porting tasks easier for the few people who can tolerate its obtuseness us. There is a whole forum section in dedicated to assisting people with their WML endeavors.

With so many resources available, you’d think WML is the most fun thing to work with, right?

Continue reading “A load of WML errors (Part I)