After the Storm 0.7.4 released, 0.8.0 on the horizon

It’s only been a week since version 0.7.3 of After the Storm came out. As I said some time ago, I’m not announcing minor releases in my blog anymore since they can get on occasion a little too noisy for my taste. However, today’s release, version 0.7.4, is special in a few ways.

Continue reading “After the Storm 0.7.4 released, 0.8.0 on the horizon

Two days without Wesnoth SVN

Gna! down...

Gna! server did not survive a reboot while upgrading its main OS. It should be fixed and replaced by new hardware if needed by Friday 10 feb. Sorry for the inconvenience.

Send support (jokes, beers, etc.) via #gna on Freenode.

I think this Gna.org system administrator puts it better than anyone else ever could.

From what I read on their IRC channel, an upgrade from Debian lenny (oldstable) to squeeze (stable) went wrong while there was nobody around with physical access to the host to fix the problem and make it boot again. Why one would perform an operating system upgrade in such circumstances is beyond me, but I can certainly say the Wesnoth bug and patch trackers, and the Subversion repository won’t be available until that’s fixed.

I for one am glad to use git-svn.

UPDATE (2012-02-11): According to the admins, the machine didn’t power on again after the upgrade, so it’s not just a software issue. Any needed repairs will have to wait until Tuesday, February 14th.

Wesnoth add-on tests and sanity checking

Maintaining Wesnoth add-ons of the size of Invasion from the Unknown and After the Storm isn’t a small task by any means. Over the years, I have had to rely on user feedback to detect critical problems in a release, because testing becomes cumbersome and tedious as the scenario count increases.

My usual release procedure simply involves—at least since I acquired the habit of testing before releasing—running the game, starting each episode of the campaign with the medium difficulty level and making sure the WML preprocessor and parser don’t throw any warnings or errors. Before Wesnoth 1.9.x, the preprocessor didn’t abort when encountering a missing macro or file during a brace substitution, so I had to pay close attention to stderr to ensure nothing is wrong.

The WML preprocessor in Wesnoth 1.10 became more strict, aborting on the aforementioned situations. It was also exposed for command-line usage (for testing or debugging) through the -p or --preprocess switch, also explained in detail under PreprocessorRef in the wiki.

At first I thought that wasn’t very useful beyond diagnosing complicated preprocessor issues, but today I realized I can also do this:

This can be easily accomplished with a simple shell script here embedded in the AtS Makefile. The only major shortcoming is that it doesn’t cover every possible problem because it’s merely running the WML preprocessor, which doesn’t consume and produce WML — all it sees is plain text mixed with some preprocessor directives. The task of reading actual WML (which is potentially found in the preprocessor’s output) is left to the WML parser proper, which creates internal objects in memory corresponding to the internal representation of WML handled by Wesnoth (config class objects).

UPDATE: After investigating the issue further with timotei (who exposed this functionality through --preprocess in the first place), it turns out the preprocessor output with --preprocess is indeed parsed — the real problem is that the preprocessor and parser use different logging facilities, and the former doesn’t even throw errors directly, so a preprocessor-only failure will make the game exit successfully (exit status of zero), while a parser error (potentially induced by a previous preprocessor error) causes a more appropriate non-zero exit status. This and other jarring inconsistencies make add-on test automation rather difficult, to say the least, so things have been simplified in the Makefile as a result.

It would be nice to be able to run the parser unit on the --preprocess output to detect syntax issues like missing end tags or unterminated string literals in the future, as part of a fully automated test suite. For now, it seems I’ll have to stick to my primitive and inelegant manual method before making new AtS releases, plus the unbelievably clumsy wmllint.

With great code comes great responsibility

I think I rarely discuss the more subjective/emotional aspects of working with the crazy folks at the Battle for Wesnoth Project, so this might be a good opportunity to do so given we are currently on the threshold of the first release in the new stable series, 1.10.

Since a while after joining the project, I’ve been wanting to make deeper changes to the add-ons server software (campaignd, by legacy). Some of those desired changes would benefit me directly as a user-made add-ons maintainer myself (previously Invasion from the Unknown, now After the Storm); other changes simply seem very convenient to have, such as some kind of authentication support and the ability to ban people without dirty system admin hacks.

Yesterday, I unveiled aspects of my not-so-modest proposal to replace campaignd with new code. You can find the pastebin link within my post to the developers mailing list.

Even though I have some of the basic ideas and I’m still collecting previous information (such as Mordante’s proposal), I am terribly hesitant to proceed with the larger project because it will take time and dedication I cannot really promise at this point. But why?

Continue reading “With great code comes great responsibility

After the Storm 0.7.0: Mission Complete!

After the Storm’s development began in 2008, some time after the completion of Invasion from the Unknown. Since then, the campaign’s development was repeatedly and severely hindered by multiple planning issues, partially caused by (borderline pathological) perfectionism on my part; plus many other personal problems.

During most of 2011, development was unofficially halted, with a half-baked E1S9.2 lingering around in the Wesnoth-UMC-Dev SVN trunk for months. Version 0.4.0 was released near the end of September, and from that point onwards, I decided to not stop working on the campaign ever again, until it reached completion.

That day, sadly, arrived sooner than I expected. Version 0.7.0 is here, presenting a complete Episode II with 12 scenarios, adding E2S8 through E2S12 to the line-up found in version 0.6.1.

Continue reading “After the Storm 0.7.0: Mission Complete!

Wow

commit 9f6bd04ec405d3987a513ae490fcfef7fad6a034
Author: shikadiqueen <shikadiqueen@87cc232e-6748-0410-ac04-a3fa75566414>
Date: Mon Jan 16 03:22:28 2012 +0000
AtS E2S12: completed epilogue scenario
This makes After the Storm 100% complete in terms of scenario count.
git-svn-id: https://wesnoth-umc-dev.svn.sourceforge.net/svnroot/wesnoth-umc-dev/trunk/After_the_Storm@12917 87cc232e-6748-0410-ac04-a3fa75566414

I never thought this day would come.

About After the Storm 0.7.0...

Before anyone asks, yes, I have been working on AtS 0.7.0 all this time since the last release (0.6.1). It will include the last five scenarios of Episode II, that is, E2S8, E2S9, E2S10, E2S11 and E2S12.

Determining what the colors stand for is left as a proposed exercise for the reader.

Wesnoth 1.10 RC 1 released, and some rationale behind the accounts purge

Wesnoth 1.10 RC 1 was released. Go test it, kids. You really must help us.

Besides that, I said in my previous post that I’d be releasing a separate announcement for the Crazy MP People. I wasn’t joking.

It might seem weird to perform such a purge of old forum accounts, and it might even confuse some MP users. A few times I’ve had to provide support to players who, despite having gone through the process of registering a new account—requiring them to visit the forums, no less—they had not fully realized that the forum and MP servers share the same user accounts database!

The truth is, the purge has become—in part—a marketing ploy I devised in order to have people try the last 1.9.x version before 1.10 becomes the current stable. If this angers you because you have been avoiding the new series like the plague, then think again. Give 1.10 an opportunity, because 1.8 is going the way of the dodo. 1.10 is much better, has better features and terrains, and even if you dislike some of the changes (i.e. the feral trait), I’m sure you will eventually find it worth of your time once you grow past the They Changed it, now it Sucks stage.

Regardless of that, the plan of purging unused accounts came to me much earlier while dealing with a major flaw in the wesnothd (the MP server software) forum user handler code. It seemed worth it to try to keep the database tidy by removing old, entirely unused cruft from it, and unconfirmed, 0-post accounts that have never been on the MP server since the introduction of forum accounts integration count as overly unused cruft.

A purge like this isn’t a new thing either. The previous forum administrator performed a larger purge of unused accounts right when the aforementioned integration was introduced, but it was never announced or discussed anywhere.

Purge.

Wesnoth 1.10 Release Candidate 1, oh my!

Hi! I’m shadowmaster. You might remember me from such type of campaigns as Invasion from the Unknown, After the Storm and Flesh and Steel (tentative name). As some of you may have heard, Wesnoth 1.10 RC 1 has been tagged in the mainline Subversion repository today, marking the start of the final stretch before the final (but by no means definitive) release of Wesnoth 1.10, the new stable series for this year.

If you are interested in the changelogs, they can be found at the following two locations:

In general, after a development (odd Y number in X.Y.Z) release is tagged in SVN, 24 hours must pass before it is announced, in case the primary packagers (Pandora, Windows, Mac OS X and Debian) detect critical bugs that could require immediate fixing, and to give them time to catch up since not all of them have a lot of time in their hands or enough resources — at one point, a packager was constantly running out of hard disk space thanks to Wesnoth’s sheer volume.

If you are tech-savvy enough to be able to determine which package is the one that corresponds to your platform—or you just prefer to compile from source—you can skip the wait for the announcement and head directly to the SF.net project files and locate your download. For example, these are the Wesnoth 1.10 RC 1 files; at first there’s only the source code tarball, but more files will appear as the primary packagers finish their work. Of course, during the first few hours, not all SF.net mirrors will be able to provide the files. Again, Wesnoth is very large and takes a while to transfer over the net.

(Wesnoth 1.10 RC 1 internally calls itself 1.9.14. This is intentional.)

With the first Release Candidate for 1.10 tagged and later announced, all commits in SVN trunk from now on will be only fixes for bugs reported in the bug tracker following our instructions, and translation updates, until 1.10.0 is ready. If too many major and complicated bugs come up, 1.10 RC 2 will be released before 1.10, but that seems unlikely right now since the release manager has a plan.

I have an announcement to make in the forums tomorrow that is strongly related to Wesnoth 1.10 and may upset the Crazy MP People a bit since I’ll be encouraging forcing them to test 1.10 RC 1 like the Crazy MP People they are. We shall see.

2011 Wrap-up

At long last, 2011 is coming to an end. In a few hours, we’ll have to dump our old calendars to replace them with new ones bearing the number 2012 in a big font size. Then the people who believe 2012 will be the end of life on Earth will begin to panic as we approach December again. Those nutcases.

This was a relatively calm and monotone year in what pertains to my personal life, so I’m not going to delve into details in this opportunity. However, I made some resolutions last New Year and it might be worth it to review them and check why I didn’t accomplish all of my goals.

  • Learning Japanese: I got severely sidetracked after a while. I may still try again in the future, just because.
  • Losing weight: I may have gained some a lot of weight during the course of the year. Oops. I did, however, stop drinking coffee, because my stomach started to reject (read: try to vomit) it after a while for some reason.
  • Wesnoth RCX: Still halted. Frankly, there doesn’t seem to be enough interest amongst the Wesnoth community nowadays for this kind of tool, and for my own purposes Wesnoth-TC serves well as it is.
  • Relearning C♯: Also sidetracked. It doesn’t seem worth it, in hindsight.
  • Learning Lua: Accomplished according to certain definitions. I haven’t really learned more about the language than necessary, but I have indeed committed some Lua code to mainline Wesnoth, and several tasks of varying difficulty are accomplished with custom Lua-backed WML tags in After the Storm and Invasion from the Unknown as of this writing.
  • Rei 2 IRC Bot: Stalled, due to lack of interest. There are also seem to be a few Irssi-specific problems with Perl 5.14, which is in the operating system I’m using at the moment, Debian wheezy.
  • Website: Accomplished. In fact, in a few hours I’ll deploy a few minor changes to the code to optimize the blog template processing a bit.

One particular resolution deserves separate analysis, though:

Then there’s Wesnoth. I intend to finish the Second Act™ of After the Storm Episode I as soon as I may, even through the means of placeholders — I’m willing to do anything to rescue AtS out of Development Hell before the end of 2011.

I didn’t resort to unlawful methods to accomplish this goal as I originally feared, but it still happened! Granted, rather late.

During September and October I had a rather unexpected creativity and productivity spurt which culminated with the release of AtS version 0.5.0 with Episode I: Fear complete with 13 scenarios. More recently in December, we reached version 0.6.1 with 7 complete scenarios for Episode II: Fate. As of this writing, E2S8 and E2S9 are also complete in SVN trunk in Wesnoth-UMC-Dev, although it’s been suggested that the latter could use some spicing up. E2S10 is a work in progress since yesterday, and part of E2S12 was written already back in October, just not committed.

Thus, it could be said that after many difficulties, After the Storm broke out of Development Hell. Whether I’ll consider Episode III: Final (expected to be shorter, around 6 scenarios) part of the required line-up for version 1.0.0 is a matter I haven’t settled yet.

Once After the Storm is finished, I plan to take a rather long break from campaign development. That isn’t to say I’m out of ideas, since there is one character I want to explore in further detail in her own campaign. However, I may have my Wesnoth time taken up by mainline work after 1.10 is released depending on the situation then, since there’s a rather large technology gap in Wesnoth that needs to be solved.

Other than that, I haven’t really decided on any resolutions for 2012, so I’ll leave you with the one resolution of the moment:

...
screen #0:
dimensions: 1280x800 pixels (338x211 millimeters)
resolution: 96x96 dots per inch
...

(This information is utterly wrong. xdpyinfo reported the same screen dimensions on bluecore last year in spite of its screen being glaringly larger than reicore’s by a few milimeters.)