• Skip to site navigation
  • Skip to content
  • Skip to sidebar
  • Skip to footer
  • Go to archive page
Shadowmaster’s Lair
  • Home
  • Projects
  • Articles
  • About
  • Contact
  • Blog

Wesnoth add-on tests and sanity checking

Friday, January 27, 2012

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.

Posted in Projects, Software, Wesnoth at 00:19 UTC | No comments

After the Storm 0.7.0: Mission Complete!

Wednesday, January 18, 2012

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.

AtS was always planned to have only two episodes, so as previously said I consider it to be 100% complete in terms of scenario count right now. The third episode (After the Storm: Final) is still in the planning stage and it will most likely be developed in parallel with the balancing, clean-ups and touch-ups leading to version 1.0.0, making it a target for version 2.0.0 instead.

Right now, AtS is in urgent need of portrait art for the new characters introduced throughout E1 and E2, at least two new unit baseframes for use in E1S9.2 and E2S11, plus a third baseframe for E3. While portrait art isn’t a version 1.0.0 target per se, I would really welcome any help at any time, as long as the art style stays consistent with Invasion from the Unknown. It’s very likely the missing baseframes will be provided by myself in the meantime.

Later, I’ll publish a more complete to-do list with the tasks remaining to be done for version 1.0.0, and I’ll try to make a more exhaustive art to-do list as well.

The changelog for this version follows:

Version 0.7.0:
--------------
* Graphics:
  * New or updated unit graphics: Dusk Faerie, Shaxthal Worm, Shaxthal
    Rayblade, Shaxthal Assault Drone, Shaxthal Protector Drone, Shaxthal War
    Drone, Shaxthal Runner Drone.
  * New or updated terrain graphics: Dark Hive Floor (transitions).

* Scenarios:
  * E1S5 - Bay of Tirigaz:
    * Rewrote shipwreck generator code so the message strings can actually
      be translated.
  * E1S8 - Fear:
    * Updated to use a Wesnoth 1.9.10 terrain.
  * E2S1 - By the Moonlight:
    * Updated to use a Wesnoth 1.9.10 terrain.
  * E2S2 - The Heart Forest:
    * Updated to use a Wesnoth 1.9.10 terrain.
  * E2S4 - Shifting Allegiances:
    * Fixed a local variable leak.
  * E2S6 - The Voyage Home:
    * Updated to use a Wesnoth 1.9.10 terrain.
  * E2S7 - Proximus:
    * Added a hint regarding the enemy leader's chance-to-hit override to
      objectives.
    * Fixed animation glitches.
  * E2S8 - And then there was Chaos:
    * New scenario.
  * E2S9 - New Hive:
    * New scenario.
  * E2S10 - The Betrayal:
    * New scenario.
  * E2S11 - A Final Confrontation:
    * New scenario.
  * E2S12 - Fate:
    * New cutscene scenario.

* Units:
  * New unit: Shaxthal Worm (replaces the Shaxthal Wyrm).
  * Balancing:
    * Reduced Nightshade Fire's ranged arcane attack strength from 12-3 to 10-3.
    * Reduced Nightshade Fire's ranged cold attack strength from 13-2 to 11-2.
    * Reduced Night Nymph's ranged arcane attack strength from 9-3 to 8-3.
    * Increased Errant Soul's ranged attack strength from 2-1 to 2-2.
    * Reduced Chaos Headhunter's ranged attack strength from 6-3 to 5-3.
    * Reduced Chaos Marauder's axe attack strength from 10-2 to 8-2.
    * Reduced Chaos Marauder's ranged attack strength from 7-3 to 6-3.
    * Reduced Chaos Soulhunter's axe attack strength from 13-2 to 12-2.
    * Reduced Chaos Soulhunter's ranged attack strength from 10-3 to 9-3.
  * Revised Shaxthal unit descriptions.
  * Shaxthal Runner Drones can no longer advance to Assault Drones.
  * Added a custom teleport animation for Nightshade Fire.
  * Added unit type descriptions for Night Nymph and Nightshade Fire.
  * Removed conflicting markup from the Sylvan Warden unit type description.

Just like the previous release, AtS 0.7.0 requires Wesnoth 1.9.10 or later. The presence of the Rotten Bridge terrain in several scenarios (mentioned in the changelog) really enforces this requirement in this opportunity.

So... yeah, the campaign is complete now. Go forth and play.

Posted in Miscellaneous, Personal, Projects, Software, Wesnoth at 02:17 UTC | No comments

Wow

Monday, January 16, 2012
commit 9f6bd04ec405d3987a513ae490fcfef7fad6a034
Author: shikadilord <shikadilord@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.

Posted in Miscellaneous, Personal, Projects, Software, Wesnoth at 03:26 UTC | No comments

About After the Storm 0.7.0...

Tuesday, January 10, 2012

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.

Posted in Projects, Software, Wesnoth at 00:00 UTC | No comments
Page 1 of 1, totaling 4 entries
‹ January ’12 ›
Mo Tu We Th Fr Sa Su
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
  • Recent posts
  • Archives
  • RSS/XML RSS 1.0
  • RSS/XML RSS 2.0
  • Atom/XML Atom 1.0
  • RSS/XML Comments
Twitter: @shikadilord
  • On the other hand, the practical results are beautiful.1 day ago
  • You know you have jumped the shark when your commit advertises itself as "Horrible, horrible hack". #Wesnoth1 day ago
  • That's all there's to say on the matter.2 days ago
  • Shadowmaster’s Blog: After the Storm 0.8.0 http://t.co/Txzwse3y #Wesnoth2 days ago
  • I just updated the #Wesnoth forums' Posting Guidelines with a new item on attachments: http://t.co/hZeCFXqF4 days ago
  • Can anyone tell me how an account name of 'buynowwebsites' could exist for anything other than spamming? http://t.co/93ZTLOlM1 week ago
Categories
  • XML Frogatto
  • XML Hardware
  • XML IRC
  • XML freenode
  • XML Miscellaneous
  • XML Personal
  • XML Projects
  • XML Rei 2 IRC Bot
  • XML Wesnoth-TC
  • XML Site updates
  • XML Software
  • XML Web browsers
  • XML Web design
  • XML phpBB
  • XML Wesnoth
  • XML Wesnoth Evolution
  • XML Wesnoth-UMC-Dev
Projects
  • Wesnoth Add-ons
  • Wesnoth-TC/RCX
  • Frogatto levels
  • Rei 2 IRC Bot
  • Wesnoth-UMC-Dev Registry
  • Shikadibot 0314
  • phpBB 3.0 Mods/Hacks
Articles
  • Wesnoth Evolution
Links
  • Battle for Wesnoth
  • Wesnoth-UMC-Dev
  • Frogatto & Friends
Contact • Site Information & Disclaimer

Copyright © 2006-2012 by Ignacio R. Morelle. All rights reserved.
Powered by Poison Ivy/Dorset6 D9 and Serendipity.
Hosting provided by rewound.net and NearlyFreeSpeech.NET.

Serendipity PHP Weblog Valid XHTML 1.0 Transitional