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

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.)

Sabayon Linux likes to play dirty

My friend just mentioned on IRC a rather unusual banner displayed during the installation of Sabayon Linux, somehow involving Debian. I didn’t pay much attention to his claims at first, but then he uploaded a screenshot he’s kindly authorized me to repost:

Screenshot

Isn’t it nice to know there are Linux distributions resorting to over-simplified, uneducated statements to promote themselves? And the banner design itself is ugly as well. I think this merits no further analysis.

After the Storm 0.6.1

A little more than two weeks after the release of version 0.6.0, After the Storm 0.6.1 is out! And just in time for Christmas Eve in Chile, too.

The last couple of weeks have been particularly productive, as I’ve continued to work on AtS Episode II with the help of my loyal assistants vultraz and Espreon, who have been a valuable help providing early feedback, play-testing, and proofreading. In order to keep people busy for a while, this release includes scenarios 4 through 7, and one cutscene-only scenario, adding up to five new scenarios in this version.

Version 0.6.1 was scheduled for this date immediately after 0.6.0’s release, but it was only intended to contain the finished scenario 4, which landed on SVN trunk on December 15th. Since I was left with plenty of time before the original deadline, I decided to continue working on as many scenarios as possible. E2S7 landed on the 22nd, 22:01 UTC. I would have continued working on E2S8 immediately, but since it requires one new unit baseframe, I decided to postpone it and aim for introducing all the final four scenarios in version 0.7.0 when it’s done (most likely by early to mid-January 2012).

For this version, I decided to increase the Wesnoth version requirement from 1.9.7 to 1.9.10, which was already recommended in the campaign description. While there’s no WML code or maps enforcing the version requirement yet, I’ll simply ignore bug reports against AtS 0.6.1 on 1.9.9 and earlier versions since the engine behavior changed a lot between 1.9.8 and 1.9.10 in some areas — it’s simply impossible to keep supporting old development versions now that mainline is releasing 1.9.10 and later as betas for the upcoming stable 1.10. Besides, as a mainline developer I must also encourage people to test the game and report bugs before 1.10!

Should this inconvenience you, I may be able to provide support on a case-by-case basis given a good reason to do so. My general recommendation if your Internet service isn’t good enough to download the bi-weekly Wesnoth 1.10 betas is to just download the latest one and keep it around until 1.10 final is released. By the looks of things, odds are this won’t happen until January.

The changelog for this version of the campaign is unusually long, even though I deliberately omitted some specific additions in the art department — six new baseframes, all made by myself and awaiting revisions in the near future — and unit WML. Since those are tied to the new scenarios, I decided to not spoil it in the changelog.

Version 0.6.1:
--------------
* Increased minimum Wesnoth version requirement from 1.9.7 to 1.9.10.
* Graphics:
* New or updated unit graphics: Sylvan Warden (chained).
* Scenarios:
* Various prose grammar fixes.
* E1S3 - Civil War in the North:
* Removed deprecated flower terrain.
* E1S5 - Bay of Tirigaz:
* Removed deprecated flower terrain.
* E1S6.2 - Elves of a Different Land:
* Fixed a dialog line wrapped in double parentheses.
* E1S9.1 - The Triad (part 1):
* Don't set Elynia's initial status to slowed.
* Fixed animation glitches.
* E1S9.3 - The Triad (part 3):
* Fixed animation glitches.
* E2S2 - The Heart Forest:
* Increased turn limit.
* Reduced initial gold amounts for enemy sides.
* Set initial gold amount for the player.
* E2S3.2 - Revelations:
* Corrected unit facings.
* E2S4 - Shifting Allegiances:
* New scenario.
* E2S5 - The Eastern Front:
* New scenario.
* E2S5 C - The Eastern Front cutscene:
* New scenario.
* E2S6 - The Voyage Home:
* New scenario.
* E2S7 - Proximus:
* New scenario.
* Units:
* Increased Dryad's HP from 43 to 46.
* Increased Forest Spirit's HP from 37 to 40.
* Simplified Sylvan Warden's animations WML, making her less of a resource
hog.
* Removed Kri'tan.

Have fun, and happy holidays!

WML is like XML, all right...

Since people keep saying WML is like XML, I decided to provide an example of what a standard WML snippet would look like if it had to be translated to XML.

WML:

[event]
name=last breath
[filter]
id=shadowm
[/filter]
[message]
speaker=shadowm
message= _ "NO!"
[/message]
[/event]

XML:

<event name="last breath">
<filter id="shadowm"/>
<message speaker="shadowm" message:gettext="NO!"/>
</event>

My knowledge of XML doesn’t go far enough, but I don’t think I’ve ever heard of translatable strings being an integral part of the syntax, hence the funky-looking XML attribute name for event.message.message above.

This example only covers the basic WML syntax (i.e. no preprocessor directives, +nodes or embedded Lua) on purpose.

Miscellaneous Wesnoth loading tricks on Linux

People using development versions or SVN trunk might find it excessively cumbersome to install Wesnoth’s binaries and data files whenever a new version is released (or commit made, for trunk). Since long ago (probably 1.3.x) Wesnoth supports overriding the data directory by providing its path as the last command line argument and, since 1.9.0, it’s also possible to use to use the --data-dir switch to avoid ambiguity with other switches taking path arguments.

Since version 1.5.4 (more specifically, r28934), Wesnoth will also try to locate a usable data directory by itself, by trying to locate data/_main.cfg in the parent dir of the executable file, which is resolved in Linux by making use of the /proc/self/exe symbolic link.

Until today, it had not occurred to me that this makes it possible to link to the Wesnoth binary from any directory, not just one containing the aforementioned WML file. The /proc/self/exe link points towards the final target if the process image is a symbolic link, so you can have a layout like this work as desired provided ~/bin is in PATH:

shadowm@reicore:~$ ls -l bin/wesnoth*
lrwxrwxrwx 1 shadowm shadowm 33 Dec 10 21:09 bin/wesnoth ->; /home/shadowm/src/wesnoth/wesnoth
lrwxrwxrwx 1 shadowm shadowm 37 Dec 10 21:10 bin/wesnoth-1.8 -> /home/shadowm/src/wesnoth-1.8/wesnoth
lrwxrwxrwx 1 shadowm shadowm 40 Dec 10 21:10 bin/wesnoth-1.9.12 -> /home/shadowm/src/wesnoth-1.9.12/wesnoth

The Wesnoth 1.8 binary in this case is compiled with the scons prefsdir option set to .wesnoth-1.8 so conflicts with the development versions can’t occur — those use the custom .wesnoth-1.9 dir instead. Nowadays things seem to be a little more complicated in that regard, as seemingly the game will opt for an XDG layout if there’s no compiled-in preferences dir path on non-Mac, non-Windows builds. According to the EditingWesnoth article on the wiki, 1.8 builds default to .wesnoth1.8. Why the default doesn’t include a hyphen is beyond me.

With things set up like this, I can start Wesnoth from any directory without having to provide my own command line arguments. Of course, you could say this is a rather archaic approach as it’s also possible to create desktop/panel shortcuts instead, depending on the desktop environment. Since I spend more time looking at a terminal emulator with my hands on the keyboard than staring at the wallpaper and desktop icons with the mouse in hand, my own approach turns out to be more efficient for my purposes.

Finally, there’s an even less known feature introduced in r31261 (before 1.5.7) that also makes it possible to omit the --editor or -e switch to start the map editor if the game executable file contains “editor” in its name. This was added as a replacement for the old wesnoth_editor binary that provided the map editor before it was replaced with the built-in version (“editor2”) as part of GSoC 2008.