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.
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.
It’s almost as if moving Web hosts in October is going to become a yearly activity, like New Year celebrations, or birthdays.
shadowm.rewound.net turned into a testing ground for crazy experiments ranging from a seldom-updating blog, to a quotes database for an IRC channel. Giving the few interested visitors a general idea of who I am and what I do in my spare time was barely a goal at first. Fast-forward to Q4 2014 and just look at this mess.
But as everyone knows, nothing is eternal. Not even the sun. Okay, from a practical standpoint we can assume the sun is eternal. That’s beside the point.
The first chapter of “shadowm”— formerly known as “Shadowmaster’s Lair” — lasted much longer than it logically should have, and I thank grafix for that. Starting today, I am now hosted by AI0867, a close collaborator of mine in projects like Wesnoth-UMC-Dev, my campaign Invasion from the Unknown, and, well, Wesnoth itself. Hence the new hostname,
Around May this year, I went to great lengths with the Iris site redesign to ensure everything would work on any host provided the software dependencies are satisfied, and removed and/or optimized a load of cruft left from earlier iterations. In theory, things should perform more or less fine on the new host, although it is hard for me to gauge this as a user — for you see, I am stranded in high-latency mobile broadband land, making pretty much every website out there equally slow from my point of view. In any case, if there are any glaring inefficiencies, I’ll do my best to correct them over the course of the next few days.
To sum it up, most people (i.e. the handful of followers I have) should not notice a difference besides the new hostname in URLs. Old links will continue to work for approximately a year through the magic of HTTP redirection, though you should probably update them now just in case.
Anyway, that’s all I wanted to say. Now back to our regularly scheduled programming.
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 existingcompatibility 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 discardthe player's gold and recall list under certain circumstances due to abehavior 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 andlater.
Those who have followed me these last five years or so are probably aware that I designed and coded this site’s layout on my own in an effort to learn the basics of Web design. Thus,
shadowm.rewound.net has been redesigned no less than eight times since its inception.
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 Wesnoth.org 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?
Version 0.9.9 is out, just in time for the holidays!
Since I have tested and developed this campaign primarily on Wesnoth 1.11.x since the 0.9.0 release, this version promotes support for Wesnoth 1.11.8 to official status. Because most of the campaign makes use of 1.11.x-specific features (both from me and other mainline developers) when available, it is quite possible that I will entirely drop support for Wesnoth 1.10.x in a future release even before the first Wesnoth 1.12 beta arrives. I still intend to make sure certain additions and changes for episodes II and III land before the last AtS version supporting 1.10.x, if time permits.
This 0.9.9 release primarily deals with prose corrections and improvements, and various other ‘cosmetic’ changes. There are also various fixes for some instances of dysfunctional AI recruitment on Wesnoth 1.11.7 and 1.11.8 resulting from the
recruitment_save_gold aspect being enabled by default in those versions (but not 1.11.9 and later).
There isn’t much in terms of new graphics since the prose and code changes (plus some mainline stuff) have kept me far too busy to do much more than some doodles. On the other hand, this release contains various animation fixes and improvements to the Aragwaithi units ported from Era of Chaos. There are also a handful of balancing changes affecting both Aragwaith and non-Aragwaith units.
Also featuring in this release are a number of WML optimizations intended to reduce campaign load times — especially on 1.10.x, which has a slightly slower tokenizer implementation than 1.11.x. Since the affected bits of code have been completely rewritten in Lua, it is possible that I accidentally introduced new bugs in the process that I may have missed during my playthrough, extensive as it was.
There is also a new secret feature that is not mentioned in the changelog. What is it, you ask? Well, if I told you, that would ruin the surprise. Think of it as a Christmas present!
Finally, from this release onwards, After the Storm is no longer part of the Wesnoth-UMC-Dev Project, and will be hosted on GitHub instead. Ever since development of the campaign started, Wesnoth-UMC-Dev provided SVN repository hosting for both After the Storm and Invasion from the Unknown, but over time that has proved to be an inefficient solution due to technical and organizational concerns. Although the conversion process was not easy in the least, I believe that this move will make things easier for me in the long-term, since I had been using
git-svn to work on IftU and AtS since late 2008 anyway.
Release tarballs will continue to be hosted by Wesnoth-UMC-Dev for the time being, until I decide to phase them out entirely in favor of GitHub’s Releases page. If anyone is using them because they cannot normally download AtS or AtS_Music from the wesnoth.org add-ons server, I’d appreciate it if you let me know so I can make a more informed decision in the future (or point you to add-ons.wesnoth.org, that works too). For the time being, the tarball compression format has changed from Bzip2 (
.tar.bz2) to xz (
Special thanks to vultraz and 8680 for their proofreading assistance, without which this release would be about 1% less awesome. Also thanks to the current and past Wesnoth-UMC-Dev admins, AI/AI0867 and Espreon, for their continued support all these years — IftU and AtS simply wouldn’t be the same without Wesnoth-UMC-Dev.
The complete changelog for this version follows:
Version 0.9.9:--------------* General:* Removed Wesnoth development versions warning from the campaign menu entriesas support for 1.11.8 and later is now mature.* New complete algorithm for calculating the relative direction between twohex grid locations, handling all six intrinsic facing directions insteadof only SW and SE.* Updated Aragwaith faction from Era of Chaos 1.3.1+dev up to commit9dedeba7cddc2a027745c9994a917fdcb78ed341.* Stripped optional whitespace from terrain map and mask files, decreasinguncompressed directory size by about 62%.* Graphics:* New or updated unit graphics: Blood Core, multiple Aragwaith units, DemonGrunt.* Assigned a more dignified generic portrait to Cron (1.11.x only).* Music and sound effects:* Mitigated `[fade_out_music]` causing a portion of the previous track to beheard at full volume at the end of the fade-out sequence. It still won'thelp in all cases.* Scenarios:* Fixed additional bugs with hero ellipses on Wesnoth 1.11.6 and lateraffecting Anya on every scenario and Durvan on scenario E3S7B and later.* Use STARTING_VILLAGES_ALL instead of STARTING_VILLAGES with large numbersto assign all villages to sides.* Skip inclusion of death events for characters that are not present duringthe first few scenarios of E1.* E1S3 - Civil War in the North:* Fixed the first defined on-map unit (usually Galas) becoming permanentlyinvisible.* Minor prose tweaks.* E1S4 - Terror at Dusk:* Balancing changes to make the scenario easier on Wesnoth 1.11.7 andlater, possibly connected to the new AI recruitment gold saving aspectintroduced in Wesnoth 1.11.7 and enabled by default.* Minor prose tweaks.* E1S5 - Bay of Tirigaz:* Made it so Mal Keshar speaks for bat units when investigating shipwrecks.* Minor map tweaks.* Minor prose tweaks.* E1S6.1 - Quenoth Isle:* Fixed Elynia's ellipse reverting to a generic unit ellipse on 1.11.xduring the faerie fire cutscene.* Not-so-minor prose tweaks.* E1S6.2 - Elves of a Different Land:* Not-so-minor prose tweaks.* Extended map for large screens.* E1S7 - The Search for the Past:* Improved ending cutscene transition.* Minor AI adjustments to make the undead minions recruit correctly onWesnoth 1.11.7 and later.* Not-so-minor prose tweaks.* E1S7x - Resolutions:* Minor map tweaks.* Not-so-minor prose tweaks.* E1S8 - Fear:* Not-so-minor prose tweaks.* E1S9.1, E1S9.2, E1S9.3 - The Triad:* Not-so-minor prose tweaks.* Various cutscene improvements and changes.* E1S10 - Tears:* Minor prose tweaks.* E1S11.1 - Return to Wesmere, part 1:* Not-so-minor prose tweaks.* E1S11.2 - Return to Wesmere, part 2:* Fixed story text not appearing because of a missing macro inclusion(long-standing bug that's existed ever since the scenario was firstreleased).* Minor map tweaks.* Minor prose tweaks.* E1S12 - The Queen:* Balancing changes.* Excluded time area for the E1S11.2 starting area on Wesnoth 1.11.7 andearlier (including 1.10.x) due to a bug with time area ids not beingsaved, resulting in a time area with local lighting that interfers with acutscene sequence after reloading from a non-start-of-scenario save.* Fixed long-standing offset-by-one bug with a terrain mask applied nearthe end.* Minor map tweaks.* Not-so-minor prose tweaks.* Various cutscene improvements and changes.* E1S13 - Death and Rebirth:* Minor cutscene improvements and changes.* E2S1 - By the Moonlight:* Minor AI adjustments for Wesnoth 1.11.7 and later.* Not-so-minor prose tweaks.* Now the scenario lives up to its name.* E2S2 - The Heart Forest:* Fixed fog not being cleared correctly when Allyna first appears.* Made it so Allyna introduces herself once three of the five bandits havebeen killed rather than all of them.* Minor AI adjustments for Wesnoth 1.11.7 and later.* Minor prose tweaks.* E2S3.1 - Unrest in Raelthyn:* Minor prose tweaks.* E2S3.2 - Revelations:* Minor prose tweaks.* E2S4 - Shifting Allegiances:* Minor prose tweaks.* E2S5 - The Eastern Front:* Minor prose tweaks.* E2S6 - The Voyage Home:* Not-so-minor prose tweaks.* E2S7 - The Voyage Home:* Minor prose tweaks.* E2S8 - And then there was Chaos:* Minor AI adjustments for Wesnoth 1.11.7 and later.* Not-so-minor prose tweaks.* E2S9 - New Hive:* Minor prose tweaks.* E2S10 - The Betrayal:* Minor prose tweaks.* E2S11 - A Final Confrontation:* Maybe-minor prose tweaks.* Minor cutscene tweaks and improvements.* E2S12 - Fate:* Minor cutscene tweaks and improvements.* E3S0 - Opening (Within):* Minor cutscene tweaks and improvements.* E3S1 - Beyond her Smile (A Light in the Darkness):* Minor map tweaks.* Various cutscene improvements and changes.* E3S2.1 - Return to Raelthyn:* Minor map tweaks.* Increased initial gold supply for the second human player side.* E3S2.2 - Reckoning:* Minor prose tweaks.* E3S3 - Amidst the Ruins of Glamdrol:* Minor prose tweaks.* E3S4.1 - Outpost of Hell:* Minor prose tweaks.* E3S4.2 - Gateway:* Minor prose tweaks.* E3S5 - Pass of Sorrows:* Minor map tweaks.* Minor prose tweaks.* Minor ending cutscene improvements.* E3S6 - Divergence:* Minor prose tweaks.* E3S7A - Dark Fire:* Prevent crashing Wesnoth 1.11.8 due to a missing initial time of day(part 1 only).* Minor AI adjustments for Wesnoth 1.11.7 and later.* Minor map tweaks.* Minor prose tweaks.* E3S7B - Dark Sea:* Minor AI adjustments for Wesnoth 1.11.7 and later.* Minor prose tweaks.* E3S8A - Interim:* Prevent crashing Wesnoth 1.11.8 due to a missing initial time of day.* Minor cutscene improvements nobody could possibly notice.* Minor prose tweaks.* E3S8B - Destiny, part 1:* Minor aesthetic changes nobody could possibly notice.* Fixed parts of the map being unintentionally uncovered upon enteringHemérilyel's chamber.* Made Hemérilyel more aggressive towards the player on Wesnoth 1.11.2 andlater.* E3S8C - Breakdown:* Minor AI adjustments for Wesnoth 1.11.7 and later.* Minor prose tweaks.* E3S8D - Destiny, part 2:* Minor prose tweaks.* E3S9 - Dark Depths:* Minor prose tweaks.* E3S10 - Blood:* Minor prose tweaks.* E3S11 - After the Storm:* Minor prose tweaks.* E3S12 - Destiny, part 3:* Minor prose tweaks.* E3S13 - Epilogue:* Minor prose tweaks.* Units:* Balancing changes:* Imps are now immune to the plague weapon special.* The Protection ability affects own units of any lower level again insteadof only level 0 and 1.* Affected units: Demoness Hellbent Tide, Aragwaith Shield Guard,Aragwaith Ancient Banner.* Physical endurance no longer resets statuses (poisoned, slowed, etc.).* Decreased Lumeril Glyph Mistress' arcane damage resistance from -10% to-20%.* Decreased Fallen Faerie's cold ranged attack strength from 11-3 to 10-3.* New or improved unit animations: Verlissh Matrix Core, Shaxthal CustodianDrone, Shaxthal Queen, Verlissh Matrix Flow System, Verlissh Control Spire,multiple Aragwaith units, Dusk Faerie line.* Made it so the Falcon unit type and the lightfly movetype are only definedif the mainline Khalifate faction is not present, by testing the existenceof core/units/khalifate/Falcon.cfg.* Fixed a minor inaccuracy at the beginning of the Terror abilitydescription.* The spawn controller code (used e.g. in Shaxthal hives) has been completelyrewritten in Lua. No behavior changes expected.
Merry Christmas/Happy Holidays, everyone!
I posted a rather extensive report of the results of the
baldras.wesnoth.org migration to the developers’ ML because Ivanovic wanted me to post updates to the ML for some weird reason. I am fairly sure the people who are actually subscribed to it skip them entirely.
Because I care about transparency and stuff, I pointed out an important thing there:
[…] the migration process went smoothly and now the wiki is running MediaWiki 1.21.2 instead of 1.16.1. Look up 1.16.1's release date and the branch's EOL date and you'll understand why I've been saying "not really optimal" and "deplorable" when referring to the wiki.
(Only after sending the mail I realized that I wrote MW 1.16.1 instead of 1.15.1. The version that was running on
wesnoth.org is indeed 1.15.1, not 1.16.1.)
I don’t really have anything to add here, but I am providing a verbatim copy of the email after the break anyway, only because it’s a wall of text and I like those.
As announced in the Wesnoth.org forums, today (although it’s still yesterday for me) we are moving most of Wesnoth.org’s facilities to a new host, to continue the migration process that started with the previous move of
What you probably wouldn’t guess from the announcement is how complicated the underlying machinery actually is. I did not want to clog up the post with additional details because that is often confusing for most people, but here is a list of services that will be directly affected by this whole operation:
For very long, there have been only two (2) campaigns in the Wesnoth add-ons server that follow the “shadowmcanon” established by Invasion from the Unknown and After the Storm; the campaigns in question are Invasion from the Unknown, and After the Storm. Yes. That’s it. The only other campaign whose author has consulted plot matters with me and followed the shadowmcanon correctly (as opposed to blindly extrapolating from IftU and AtS and making grossly wrong assumptions about things that are left unspecified or presented in a deliberately vague fashion) is The Silver Lands, but it was abandoned far too early during its development cycle.
But the status quo has just changed with the release of version 0.5.0 of Shadows of Deception (NX-RPG), a campaign by vultraz for Wesnoth 1.11.6 and later. So far, six scenarios out of the first set of 12 have been done; the goal is two episodes.
Of note is the fact that vultraz has been a member of my After the Storm internal playtesting and prose reviewing team for a couple of years.
Per the description found in the campaign’s forum thread, Shadows of Deception (SoD for short) is “a half-RPG, half regular style Wesnoth campaign, incorporating several custom gameplay elements as well as your typical battle scenarios”. What does half-RPG mean? Damn if I know — I don't even know what a full RPG would be. Having playtested SoD prior to the release myself, though, I can say that the campaign places a fair amount of emphasis on the story while experimenting with some unusual gameplay mechanics.