Trunk Updates, 25 May 2016

Hi, crawlers! The tournament is over, so it’s time for trunk changes. Fair warning: there’s a lot of them! So I broke it up with some screenshots of the new tiles (described near the end), just for you.

  • Gods:
    • Ukayaw the Reveler, god of ecstatic dance.
      • Tactical piety: gain piety by damaging enemies, lose piety extremely rapidly over time.
      • 1*: Stomp: deal damage to all adjacent enemies, increasing with their max HP and with your Invocations skill.
      • 2*: Line Pass: instantly pass through a contiguous line of enemies, confusing some.
      • Solo Time: On reaching 3*, all visible enemies are briefly paralysed, for a time increasing with Invocations skill.
      • Pain Bond: On reaching 4*, all visible enemies gain the Pain Bond status, causing them to share damage taken with other nearby Pain Bonded enemies. This can cascade!
      • 5*: Grand Finale: spend all piety to telefrag target intelligent monster. They explode.
    • Hepliaklqana the Forgotten, god of ancestral memory.
      • On joining, grants a permanent ancestor spirit that fights alongside you. The ancestor increases in power as you level up, and will reappear on a delay after dying or being trapped in the Abyss.
      • 0*: Recall: recall your ancestor. Works across different floors.
      • 2*: Remember Life: choose between Hexer, Knight or Battlemage classes for your ancestor.
        • Hexer: starts out with Slow, Confuse, and a dagger of draining. At XL 15, trades Slow for either Paralyse or Metabolic Englaciation (player’s choice). At XL 21, trades Confuse for Mass Confusion. At XL 27, swaps the dagger for an antimagic quickblade.
        • Knight: starts out with a shield, long blade, and bonus AC. At XL 15, swaps to either a flaming broad axe or demon trident (player’s choice). At XL 21, the shield becomes large & reflecting. At XL 27, the weapon switches to a speed ego.
        • Battlemage: starts out with Throw Frost, Stone Arrow, and a quarterstaff. At XL 15, trades Throw Frost for either Iceblast or Bolt of Magma (player’s choice). At XL 21, swaps the quarterstaff for a freezing lajatang. At XL 27, swaps Stone Arrow for Lehudib’s Crystal Spear.
      • 3*: Transference: swap your ancestor with another creature in LOS. The player is a creature in LOS.
      • 4*: Idealise: heal your ancestor, remove harmful status conditions, and apply the Idealise buff, which increases AC and doubles damage & spellpower for the duration. Duration & healing amount scale with Invocations.
      • 5*: Transference slows enemies adjacent to the target, for a duration dependent on Invocations power.
      • Piety gained by exploration.
    • Many divine abilities have had their hunger costs removed (ABCJMOP1) or increased (KTY).
    • Beogh’s water walking now lasts until you reach shore, even if you drop below the required piety, enter penance, etc. Funny though “drowning by using Smite too many times in a row” was.
    • Pakellas’s wrath no longer drains the player or their devices, but instead passively prevents device use for its duration.
    • Pakellas suppresses Vine Stalkers’ MP draining bite. (It still applies damage & antimagic.)
    • Pakellas no longer gifts potions of magic to mummies.
    • Dithmenos’s Shadow Step can now be used to step into invisible enemies’ invisible shadows.
    • Monsters hated by your god (e.g. wizards for Trog) can once again be temporarily enslaved.
    • Gozag will no longer attempt to bribe your own summons.
  • Deep elf archers no longer fire in melee.
  • Hellions no longer resist fire or are vulnerable to cold.
  • Unrands:
    • The arbalest ‘Damnation’ no longer provides resistances, but does significantly more damage.
    • Firestarter and Frostbite now provide immunity to fire & cold clouds respectively; the duration of the latter’s clouds have increased.
    • The Staff of Olgreb now has a fixed +9 enchantment, rather than varying by the player’s Poison skill.
    • The Trident of the Octopus King now has twice as large an enchantment bonus per Octopus King ring worn; can *you* get the legendary +24 Trident?
    • The Sword of Zonguldrok no longer creates hostile dead (when an enemy dies due to something other than its attacks) or curses itself
    • The Mace of Variability no longer uncurses itself every turn.
  • The amulet of harm is no longer evil.
  • Corrosion slaying penalties now apply to unarmed & auxiliary (e.g. hoof) attacks.
  • All monster-wielded (or dancing) branded weapons are now listed when they come into sight; this should be helpful for noticing, for example, that d:1 goblin with a dagger of electrocution.
  • Spells:
    • Elemental enhancers (e.g. staves of earth, rings of fire) no longer penalise casting spells of the opposite element.
    • Cigotuvi’s Embrace no longer degrades when taking damage.
    • Simulacrum’s duration is somewhat reduced.
    • Dazzling Spray’s damage is slightly lower.
  • Tiles:
    • Jewellery tiles have been completely replaced.
    • Mutant beasts (from the box of beasts) now have custom tiles that display their exact combination of traits.
    • Many more types of zombies, especially those of early-game creatures, now have custom tiles.
    • Many low-level demons have new tiles.
  • X> once again finds the closest set of stairs by travel distance, rather than by grid distance.
  • For the first time in three years, being in water not only claims to prevent player invisibility from working (because of the disturbance you leave), but actually does so.
  • The player being silenced no longer prevents monsters from shouting.
  • Muted monsters can once again bristle with rage.
  • Sheep now bleat.
  • Inscribing an item with “<ice>” no longer crashes the game.

Happy crawling!

New Server CJR is Online and CAO Updated for 0.18 Tournament

Thanks to ZiBuDo, in time for the 0.18 tournament we have a new WebTiles/console server running in Montreal, Canada, with the official acronym CJR:

Yes, everything you see on that page was done intentionally, and we sincerely beg you not to encourage ZiBuDo to add more memes…

This server supports 0.17, 0.18, and trunk for both WebTiles and console over SSH with hourly automatic trunk updates. CJR also has an IRC bot, Jorgrell, available in ##crawl to announce milestones and list versions. The server has been added to the CAO scoring pages, and your games played there should show up on your score page soon. ZiBuDo has additionally made a leader board tracking various records for games played on CJR.

Thanks to the efforts of neil, CAO is now updated for 0.18 and will be ready for the 0.18 tournament! We were previously unsure if we’d be able to get the server updated in time, but now your v0.18 games played and clan memberships defined on CAO will indeed count for this tournament.

At this time, CWZ, the South Korean server, is the only server we’ve been unable to get updated with 0.18 for the tournament. If anyone can reach the admin of this server, who plays under the account Hong, please do so. Developers in the ##crawl-dev channel can help answer questions about updating the server.
CWZ was updated shortly before the tournament started.

Crawl 0.18: “Pakellas’s Packrats”

We’re proud to announce the release of Dungeon Crawl Stone Soup 0.18: “Pakellas’s Packrats”! 0.18 features a new god and many other additions, streamlinings, and general improvements to the game.

Download DCSS 0.18 here, or play it online on one of many servers across the world! The Windows packages are available now, as well as the source; the Linux and OS X binaries should be online within a few days.
Update: The hotfix release 0.18.1 is now available.
Update #2: Linux debs of 0.18.1 are now available.
Update #3: OS X packages are now available.

The release tournament begins on May 6 2016, at 20:00 UTC, with all online 0.18 games counting towards your score. See the tournament website for more details, including how to set up or join a clan.

0.18′s highlights include:

  • Spells: Charms have been rethought and reworked, and a new spell, Yara’s Violent Unravelling, allows you to punish any enemies with charms of their own.
  • Branches: The Elven Halls have a new set of enemies, there’s a new way to make your way through (or out of) the Abyss, and the Orcish Mines are half as long, but twice as packed with gold.
  • Items: Magical jewellery and wands have both been massively reworked, with many new types appearing and old types gone. Try out the new Amulet of Harm, which increases all damage dealt by – and to – the wearer!
  • Monsters: Many monsters have been reworked or added, with a special focus on the early and very late game.
  • Gods: Pakellas the Inventive gifts and empowers magical evocables, such as wands and rods. Yredremnulites can now enslave the souls of angels and demons, and Beoghites can bring their followers back from the dead.

For a list of other major changes, see the changelog. Many thanks to all those who have contributed to Dungeon Crawl Stone Soup. We hope you enjoy playing 0.18!

0.18 Beta, Release & Tournament Info

The 0.18 tournament will begin in just over a week! From 20:00 UTC Friday 6 May through 20:00 UTC Sunday 22 May, any 0.18 game played on any of the online servers will count for the tournament. 0.18 will be officially released a few days before the start of the tournament.

The rules page will contain all the details about how to score points and earn banners in the tournament. We’re still settling on the rules for this tournament, but they’ll probably be pretty similar to previous years’.

As usual, clans (teams of up to six players) can be formed and changed until one week into the tournament, so don’t panic if you aren’t on one yet! (Being on a clan isn’t necessary to participate in the tournament, but it can be a lot of fun.)

Once the tournament has started, the tournament leaderboard will contain the current results. (Before tournament start, some scores might briefly appear on this page as we test the tournament scripts, but they are just for testing.)

If you want to get a head-start, the 0.18 beta is now out. It is now playable on our Australian server, CPO, and should be available on other servers soon. Local beta binaries should also be available in the immediate future. (See also the 0.18 changelog.)

See you soon!

Trunk updates, 20 April 2016

Hi, crawlers! We’re in feature freeze right now, so here’s the last batch of changes for 0.18 trunk:

  • Gods:
    • Pakellas now gifts exactly one weak wand, one strong wand, one charge-based evoker, and one XP evoker as characters advance in piety, rather than gifting an endless succession of evocables.
    • Lugonu’s Banish no longer has a power cap; instead of reaching maximum power at 10.5 Invocations, it scales smoothly up to 27 Invocations. It’s also somewhat harder to invoke.
    • Ru’s sacrifice descriptions are somewhat more verbose and, hopefully, more useful.
    • Enemies buffed by Gozag’s wrath remain buffed until slain.
  • Monsters:
    • Shadow fiends have been renamed and rethemed to Tzitzimitl, Aztec skeletal demon-gods which threatened to devour the sun. Their defenses are slightly better than before, and their attacks create a ring of miasma around (but not on) the player’s tile, similarly to the late, lamented salamander firebrands.
    • Giant eyeballs are back! They can show up in Depths and Slime, accompanied by tough allies. They’ve also gone from slow to normal speed, but need to charge up twice before being able to paralyse the player, similar to orb spiders or salamander stormcallers.
    • Lich & ancient liches have spellbooks again, instead of per-lich randomly-generated spell lists.
    • Salamander stormcallers have traded their Sticky Flame for a higher rate of Fire Storm casting.
    • Iron Giants have been slowed to 80% speed.
    • Hell Hogs now spit Fireballs. Beware, or your bacon may be cooked…
    • Demonic, angelic, and ‘magical’ spells have all been merged into one category. This primarily affects descriptions.
    • Monsters can no longer use vampiric drain on gargoyles, nor heal from draining summoned creatures.
    • Monsters can no longer zap or evoke equipment while confused or fleeing.
  • Items:
    • Rods are no longer treated as weapons; hitting someone with a magic rod is no longer more effective than hitting them with a rolled-up scroll. (Previously, they functioned as… clubs.) They can no longer be cursed.
    • Scrolls of enchant weapon & enchant armour no longer remove curses.
    • Ziggurat figurines can be used even after having sacrificed Evocations through Ru.
    • The lantern of shadows has faded, mysteriously, into the shadows.
    • Sniper can no longer miss. Its enchantment has been correspondingly downgraded to +9, from +15.
    • Arrows, bolts & sling bullets no longer have brands.
    • Poison needles scale with skill; they reach their old effectiveness at 8 Throwing, and improve from there.
  • Throwing speed scales like weapon skills, rather than being like unarmed combat; it’s floored at 0.7 turns per toss, up from 0.5, but scales faster with skill.
  • Wild/subdued magic are both much less dramatic; each level of the mutation has been reduced in severity to about 60% of what they were before. (E.g., wild magic 1 increases spellpower by 30%, instead of 50%.) Subdued magic’s effects on spell failure were reduced even further, to reinforce its status as a bad mutation.
  • If you would starve with food in your inventory, you will automatically eat that food instead.
  • rElec reduces damage by 2/3rds, rather than 3/4ths.
  • ‘Defensive actions’ (dodging, blocking, etc) can now be listed in morgues.
  • Wind Blast no longer misleadingly claims to ‘summon’ wind; instead, it correctly conjures wind, in accordance with Dungeon Crawl lore.
  • The Abyss has been decisively deanthropomorphised.
  • High score entries featuring mountain dwarves that died of stupidity no longer crash the game.

Happy crawling!

Trunk updates, 23 March 2016

Hi, crawlers! Here’s the latest changes from trunk:

  • It’s now possible to make progress through the Abyss via murder. Killing monsters will eventually generate an exit from the Abyss; further kills will generate stairs down, if you’re looking to fetch the abyssal rune before leaving. The speed at which this occurs depends on the XP value of the monsters killed and on your current level, so a single kill at very low level will often generate an exit.
  • Large abominations have some extremely cool new tiles, thanks to CanOfWorms. Check them out the next time you take an Abyssal jaunt!
  • Hellfire is now Damnation. It no longer melts ice armour or triggers Dith’s fire conduct, but is otherwise unchanged.
  • Explosions can now ignite trees; Fireball, for example, can now ignite trees with its explosion, not just with the center of the fireball itself. The Rod of Ignition can also now burn trees.
  • New option: autofight_warning, disabling autofight (tab) if successive commands are received too quickly. Should be helpful in cases of lag or accident.
  • Monsters should be less likely to ‘flip-flop’ between emerging from behind a corner to take pot-shots at the player & retreating back behind that corner.
  • Ally AI will no longer lock up when ordered to attack a monster that’s invisible to them.
  • D:1 gnolls no longer have a chance of spawning with a pile of throwing nets.
  • The ‘roused’ and ‘battle-frenzied’ monster status effects have been removed and replaced with Might. This is mainly a simplification and should have relatively little impact on gameplay, with the possible exception of spriggan druids’ death effect; the latter’s duration has been shortened to partially compensate.
  • Status effect descriptions have been moved from the manual to an in-game lookup tool, ?/s(T)atus. Existing descriptions have been reworded & clarified, and more have been added.
  • To reduce visual clutter, the tile_show_demon_tier option is now off by default, meaning that demon tiles no longer have pentagrams added.
  • Tar:7 should be somewhat more threatening to any character who worries about packs of shadow fiends.
  • Zot:5 no longer has a 1/3 chance of spawning extra-huge numbers of traps.
  • Some of the easier wizlabs have been buffed; the Cloud Mage has a nastier spellset and more friends, and Cigotuvi’s Monster is now a mutant beast, not a tentacled monstrosity.
  • Maxwell’s Etheric Cage now multiplies received magical contamination, rather than intermittently generating chunks of contamination.
  • Ongoing spell effects (r/dMsl, delayed fireball) are now removed after forgetting the spell.
  • Tukima’s Dance’s power multiplier has been reduced.
  • Player breath weapon ranges have been belatedly adjusted for squarelos.
  • Ru’s Sacrifice Courage now gives a penalty to slaying, rather than giving a bonus to damage.
  • It is no longer possible to use Pakellas to supercharge non-evocables. Relatedly, you can no longer create +72 clubs.
  • It is no longer possible to unequip a Fragile item without destroying it. (By putting it in your quiver and tossing it away.)

Happy crawling!

Trunk updates, 6 March 2016

Hi, crawlers! Here’s the latest changes from trunk:

  • Beogh no longer gives piety for sacrificing dead orcs’ bodies. Instead, they can be brought back from the dead with a new 6* ability, Resurrection. Hostile orcs will be converted by the experience. Saint Roka may be tough to persuade to your side, but he’s considerably less so once he’s dead…
  • Also, orcs will no longer drop items that you’ve gifted them, even if they preferred whatever weapon/armour they had before.
  • Monster changes:
    • New monster: Dart Slug, a slow D:1 monster with a ranged attack. It probably won’t kill you, but it’ll be very funny if it does.
    • New monster: Howler Monkey, an early D monster that’s fairly weak, but makes a heck of a lot of noise. On later levels, they spawn in packs.
    • New monster: Rime Drake, replacing fire drakes. Very similar, but instead of fire, they breathe Flash Freeze, a single-target cold-damage spell that slows victims’ movements for a few turns after they’re hit.
    • Flash Freeze can sometimes miss, though if Antaeus is casting it, it probably won’t.
    • Pandemonium lord generation has been considerably reworked, hopefully resulting in more distinctive foes.
    • Nymphs will flood any type of adjacent walkable terrain, including shops and stairs. They’re also significantly more fragile.
    • Shock serpents’ discharge now only strikes whatever hit it, rather than all enemies (but not any of the serpent’s allies!) in a wide area.
    • Deep Elf High Priests and Sorcerers no longer cast Summon Demon.
  • New command: “?#” lets you browse your character dump in-game.
  • Qazlal’s wrath can now summon a range of elemental-themed creatures, rather than just elementals of subtly-varying HD.
  • Gozag no longer demands any service fee in sprint, rather than demanding a significant fraction of all gold on the entire map to join.
  • Covering a ziggurat in gold with Gozag no longer causes enemies to be completely paralyzed.
  • “Megazigs” (ziggurats entered after fully clearing previous ziggurat(s)) are now considerably nastier, and should give a bit more of a challenge to players & characters who are capable of fully clearing multiple ziggurats.
  • Ziggurats no longer all have the same layout in a given game.
  • The rMut artefact property now works the same as the mutation: a 2/3rd chance of preventing mutations, down from 9/10.
  • Mass Confusion is no longer a player-castable spell.
  • Passwall’s range is now fixed for a given spellpower (& displayed on the spell screen), rather than being random per-cast.
  • Needles of slowing have been removed.
  • Blowguns no longer have extra power when ‘stabbing’ unaware targets.
  • Monsters can no longer pick up items from stacks you’ve seen, even if you haven’t seen the specific items that they’re trying to pick up.
  • However, Maurice can now pick things up from the floor. Even things you’ve seen! Is he cheating…?
  • It’s no longer possible to evolve a permanently petrified plant into a permanently petrified oklob.
  • Spectral shapeshifters can now once again turn into something other than spectral ghost crabs.
  • Vampires can no longer drink ghosts’ blood.
  • Bribed demons can no longer escape Hell.
  • Dumb monsters can no longer shout.
  • Dead monsters can no longer shout.

Thanks to chequers for helping to compile this post.

Happy crawling!

A Brief History Of Buffness

Recently, I’ve been having many conversations about the same subject. People see that we’ve removed various buffs (spells that temporarily improve the player’s stats – Stoneskin, Condensation Shield, Phase Shift), or that we’ve changed others (Ozocubu’s Armour) to be more situational. So they ask, why?

The Problem With Buffs

Dungeon Crawl is a long game. A 3-rune game, on average, takes about six and a half hours to win. (Often longer – very skilled players drag down the average.) An ‘extended’ game, getting all 15 runes, takes twice as long – about 13 hours, on average. And, of course, not all games are won – only one in a hundred! The average unwon game is considerably shorter (about 20 minutes), but weight of numbers will tell – on average, each won game represents a great amount of playtime, thousands of fights and hundreds of thousands of turns.

There’s nothing wrong with a long game, of course, but it does change what makes sense to design. In a shorter game – a sprint, perhaps – a spell that you cast at the start of every fight, or just every 50 turns, isn’t too bad. In Crawl’s main game, though, remembering to refresh your buffs regularly gets tiring very fast! And if you don’t, you’re just reducing your chance to win (passing up free AC, EV, SH…) for no benefit but retaining a tenuous grip on sanity. That’s exactly the sort of choice that Crawl is opposed to; opposing ‘optimal play’ to ‘fun’.

This was the space that many of Crawl’s ‘buff spells’ found themselves in. If you’d memorized and learned to cast Stoneskin, it was totally possible to keep it running at all times, and generally a good idea to do so. But, the work involved wasn’t any fun.

The fact was, Stoneskin and friends were certainly good for a character – they were useful spells! They provided interesting strategic decisions, about skill investment, armour, spell slot use. But, in practice, the annoyance involved over the course of a long game – the choice between ‘good play’ and ‘avoiding tedium’ – made the game less fun. That’s why we cut them!

But Why Didn’t You Just…?

There’s quite a lot of suggestions I’ve seen for what we should have done instead of removing these spells. The simplest is probably to dramatically reduce the duration. If a buff doesn’t stay up for more than a dozen turns, it becomes impractical to keep it running constantly!

The trouble is that this only solves one part of the problem. You’re still left with the choice to cast your buffs at the start of every encounter, and many characters will be well-advised to do so – if you’re waiting for your enemy to close to melee, why not take a turn and a little MP to give yourself some extra defense? Well, because it’s a pain to do that at the start of nearly every encounter in a game with hundreds or thousands of fights… and so we’re back, more or less, where we started.

Another suggestion goes in the opposite direction. So players are keeping these buffs up all the time, or should – why not just automate it for them, and make the spell never expire once cast? That’s how Repel Missiles and Deflect Missiles work these days – they have a chance of expiring when they repel an incoming attack, but stay up forever otherwise.

The problem is that Dungeon Crawl’s spell system is fundamentally built around the assumption that spells are being cast in combat. In combat, the turn spent casting a spell matters – that’s a turn for enemies to act! The MP spent matters – that’s less MP to use for the rest of the fight! And the chance of failure matters – your turn is gone, your MP is gone, and you’re no better off than you were before!

Out of combat, none of those things matter. A turn doesn’t matter, MP doesn’t matter, failure doesn’t matter – you can just rest and try again. This is a problem for buffs in that you don’t need to worry about failure chance very much – get it below, say, 80% failure, and you can just recast until you succeed. What’s more, armour doesn’t matter – normally the choice of body armour is an important strategic choice for spellcasting (something heavy and protective, or something light and easy to cast in?), but for out-of-combat spells, you can just shuck your armour, cast the spell, and put the armour back on. This effectively means that Repel Missiles, for example, is a free, permanent buff for anyone who finds a spellbook containing it – no noticeable skill requirement, just a couple of spell slots. Not too much tactical annoyance, but no strategic decisions, either. It’s no good.

You can try to start patching this problem – what if taking off your body armour took off the spell! (Well, would that also apply to switching in a staff of wizardry, or a couple rings of wizardry?) What if the chance of the spell expiring when it reflected a projectile was based on your current spell failure chance, not spellpower? But when you have to keep suggesting a series of unintuitive mechanics that work like no other spell in the game, in an attempt to make an effect work within Crawl’s spell system, you have to wonder whether it makes sense for that effect to be a spell at all.

There are other variants on the ‘permanent buff’ approach – one suggests making buffs reduce your maximum MP when active, to make it less of a ‘no-brainer’ to keep the spell around all the time. But that doesn’t solve the spell failure issue, and has other undesirable effects – should armour buffs be more useful for melee warriors (who aren’t using much MP otherwise), rather than lightly armoured ‘casters’? Should these buffs become eventually almost ‘free’ later in the game, when MP pools become larger? There aren’t easy answers here.

What Does Work?

We haven’t removed all buffs quite yet. In fact, almost all of them are still around. Why?

Well, let’s look. Something like Swiftness is clearly a buff – you move faster! But the drawback when it wears off, slower movement for a time, means that it’s pretty silly to try to cast it all the time, or even at the start of every fight. It’s situational – useful, but situational. A fine spell to learn, but not one you feel like you should be casting every fight, or every 50 turns!

Other good buffs follow the same pattern. Portal Projectile teleports your shots directly to their target, letting you shoot past intervening enemies – useful, but each shot costs MP, and a miss is totally useless, whereas normal shots could hit another enemy behind your original target. Excruciating Wounds gives your weapon dramatically better killing power (against living enemies, and with investment in Necromancy…), but makes a considerable noise when cast. Invisibility makes you invisible (perhaps unsurprisingly), but the contamination means that you’re not gonna be able to turn invisible again for a while afterward, and haste would be dangerous – which can leave you in some pretty tight spots…

Adding ponderous to Ozocubu’s is an attempt to make it fit that same pattern – useful, but situational. This is an experiment! It may not work out – the drawback may be too weak, or too irrelevant (as for Cheibriados worshippers, perhaps) – or too strong in other cases! We’ll see how it works out.

A Dash Of Context

We don’t want to kill your playstyles, and we won’t. Statue Form has already been buffed to make up for the loss of Stoneskin; other forms will likely have some similar compensation in the near future. Transmuters and other light-armour characters will not stop being viable; trust us on this one.

Dungeon Crawl: Stone Soup has a long and storied history of removals. Remember Alter Self, the spell that randomly mutated your character? (Repeat until desired mutations achieved…) Or Divinations, the spell-school entirely made up of out-of-combat spells? Or, perhaps, Mountain Dwarves?

Every removal’s led to some wailing and gnashing of teeth. This one’s far from the worst in that regard, and it certainly won’t be the last – but it is one of the removals with the most history behind it, and which the most thought and design effort has been applied to. It’s my hope that this post is helpful to those who were confused, informative to those who were curious, and, if perhaps not a perfect salve to those who were angry, at least reassuring with regards to the care which has been invested here.

Thanks for reading, and happy crawling!

Many thanks to dpeg for the help with this post.

Trunk updates, 18 February 2016

Hi, crawlers! Spring has sprung, so here’s some changes for you:

  • Wand changes:
    • Removed: Cold, Fire, Draining, Fireball, Frost, Invisibility, and Magic Darts.
    • New: Acid, which shoots a beam of corrosive acid. Roughly as powerful as Draining was.
    • New: Iceblast, which launches an explosive, partially physical explosion. Somewhat more powerful than Fireball was.
    • Monsters will no longer machine-gun their wands quite as often.
  • Other removed items: Xom’s chesspieces, rods of destruction & the swarm, and potions of poison.
  • Luckily, potions of degeneration are back! They now drain all stats by 1d3 points when consumed.
  • Even more luckily, stats now regenerate faster at low XLs.
  • Statue form, bat form & hydra form no longer have stat modifiers. Low-strength Vampires rejoice!
  • Statue form also now gives somewhat more AC.
  • Other spell changes:
    • Ozocubu’s Armour now gives ponderousness (+0.1 movement delay).
    • Passwall is now level 2 (previously, level 3).
    • Song of Slaying has been simplified; it now gives +slay with every kill, capping at +9 slay. (It was previously… complicated.)
    • Removed spells: Stoneskin, Condensation Shield, and Phase Shift.
  • God changes:
    • Ashenzari now lets you directly curse items, rather than needing to create scrolls of curse armour/weapon/jewellery. This ability still consumes a scroll of remove curse.
    • Okawaru’s abilities (Heroism & Finesse) are now considerably lower duration at low Invocations, but cost less piety and scale to higher max durations.
    • If you would regenerate MP under Pakellas while already full, you can now get a potion of magic instead.
    • Sif now gives miscast protection at ** and amnesia at ****. (Previously, the reverse was true.)
    • Yredelemnul’s Enslave Soul now works on angels and demons.
  • Swamp worms’ ambush predator functionality should now function correctly. Beware…
  • The Captain’s Cutlass now does flat bonus damage when it disarms an enemy.

Thanks to chequers for helping to compile this post.

For those who are interested, there’s also two new experimental gods being tested – Ukayaw, God of Ecstatic Dance, and Hepliaklqana, God of Ancestral Memory. They can be played on CBRO or, for the antipodeans, CPO.

Happy crawling!

Trunk updates, 23 January 2016

Hi, crawlers! Some fresh changes for the new year:

  • Items:
    • New unrand: the Warlock’s Mirror, a +3 buckler of reflection. Unlike other shields of reflection, it’s also capable of reflecting piercing beams, enchantments, and other effects. Watch as that neqoxec’s Malmutate bounces off and malmutates its caster!
    • New amulet type: amulets of harm, which increase damage done by and to the player by 25%.
    • New amulet type: amulets of magic regeneration, which increase player MP regeneration considerably after a short warmup period.
    • Weapon types no longer have hidden ‘strength weights’. Instead of dex and str both giving varying bonuses to damage, str now solely gives a bonus to-dam, and dex now solely gives a bonus to accuracy.
    • Potions of cure mutation are now dramatically (~50%) more common.
    • Potions of ambrosia now bypass clarity.
    • The amulet of corrosion resistance is now a ring.
    • Evocable +tele effects are gone. Rings of teleportation now only provide random teleportation.
    • Rings of invisibility have disappeared; they are no more.
    • Ditto, potions of degeneration. They will be missed by someone, somewhere, somehow.
  • Monsters:
    • Natasha no longer becomes weaker upon revival.
    • Swamp worms are now amphibious and generate submerged, emerging to attack the player and never resubmerging.
    • Deep elf high priests now have an Aura of Brilliance spell that affects all allies in their view, making them cast spells more frequently and with more spell power.
    • Demonspawn warmongers’ Sap Magic has been simplified: it now has three levels, rather than scaling continuously, and the spellcasting chance penalty now expires at the same time as the Sap effect itself.
    • Demonspawn corruptors’ Corrupt Body and wretched stars’ Corrupting Pulse now tend to cause multiple levels of a single bad mutation, rather than single levels of multiple bad mutations.
    • Doom hounds’ howls now summon a variety of nasty things, rather than other doom hounds.
    • Trapdoor spiders have crawled out of the game.
  • Spells:
    • Alistair’s Intoxication is now level 5 and gives Vertigo status instead of confusing the player or draining Int, and can sometimes affect rPois monsters.
    • The Infusion spell now ramps up to maximum power much more quickly, which should make it more useful past the first floor or two of the dungeon. (If still not too much longer than that.)
    • Spectral Weapon now bases the strength of the summoned weapon on spell power, instead of weapon skill.
    • Summoning tweaks: Shadow Creatures is now level 6, Monstrous Menagerie is now level 7.
  • Gozag’s Call Merchant shops no longer secretly vary in quality by the floor they’re called to.

Happy crawling!

Trunk updates, 13 December 2015

Hi Crawlers! Here are the latest and greatest goodies from trunk.

  • The Orcish Mines are now two levels, and only spawn plain orcs as part of bands; gold generation is doubled to account for the shorter branch.
  • The Elven Halls now contains elementals and dancing weapons (in addition to the ones normally found in the Hall of Blades).
  • All enemies, including uniques, now have (at least slightly) randomised HP.
  • You can no longer gain breath abilities as mutations; only draconians and nagas have access to them.
  • Xom’s random spell set has been adjusted slightly.
  • The penalties for amulets of dismissal and regeneration have been adjusted:
    • Wearing an amulet of dismissal subjects the player to vertigo for a few turns, reducing accuracy, EV, and spell success.
    • The amulet of regeneration no longer rots on removal; instead you need to be at full health at least once while wearing it for it to have an effect.
  • The amulet of stasis has been replaced by the amulet of reflection, which grants a few points of SH that act as a shield of reflection. The Brooch of Shielding is now a +8 amulet of reflection.
  • Chaos champions lose Chaotic Mirror and instead gain Call of Chaos, an ability which applies (usually) positive status effects to allies in its line of sight. Mnoleg also gains this spell.
  • Deep elf mages are now HD 9 and absorb the spells from the deep elf conjurer and summoner into some of their own spell sets.
  • New enemies:
    • Deep elf archers, who have attained a notable level of skill in both archery and hexes.
    • Deep elf elementalists, with mastery of all of the elemental schools and the noted ability to turn rock into earth elementals to dig out entrenched foes.
  • Deep elf fighters, conjurers, priests (but not high priests), and summoners have all been removed.

Happy Crawling!

Crawl 0.17.1: Bugfix Release

There’s a new bugfix release of the stable version of DCSS. Source packages and binaries for Windows and Linux are available now, and OS X binaries will be uploaded as soon as they’re available. We recommend all 0.17 users upgrade to this version. Here’s a list of changes from the changelog:

  • Fix insect monsters never berserking. This bug prevented queen bees from berserking their hive bees and moths of wrath berserking insects in Spider.
  • Prevent the Gell’s Gravitas spell from moving monsters into deep water or lava.
  • Fix resting to stop properly when MP don’t regenerate.
  • Properly warn when a beam might poison a monster while worshiping the Shining One.
  • Put hunter’s swords in slot ‘a’ or ‘b’ at game start to allow easier switching between ranged and melee weapons.
  • Put Earth Elementalists’ starting stones on the ‘b’ slot.
  • Update the manual for 0.17.
  • Many other bug fixes for game crashes, to vaults, and to in-game text.

Keep on squaring those circles!

Comments Off

Trunk Updates, 4 December 2015

Hi crawlers! With the close of the tournament, let’s find out what has changed in trunk since 0.17.

  • Gods
    • New god: Pakellas the Inventive. Pakellas is a temple god, with an altar either in Temple or on D:2-9.
      • Grants MP on kills (at about half the rate of Vehumet) and passive wand charge identification.
      • Blocks MP regeneration and hates channeling (staff of energy, crystal ball of energy, the Staff of Wucad Mu, and Sublimation of Blood).
      • Piety on kills.
      • 1*: Quick Charge: spend 2/3 your current MP pool to add some charges to a wand or rod proportional to your Evocations, your current MP pool, and the capacity of the device.
      • At 2*, Pakellas gifts you a wand once (of any type other than heal wounds, hasting, and teleportation).
      • 3*: Device Surge: on your next use of an evocable item, spends 1-9 MP to apply one to three enhancers to its power output, with maximum MP and number of enhancers dependent on piety.
      • Starting at 4*, Pakellas occasionally gifts rods, wands, and miscellaneous evokables (always starting with a rod unless you are a felid).
      • 6*capstone: Supercharge: sets a rod to +10 (18/18), or sets a wand’s capacity to 50% above normal for that wand type (in addition to recharging it – this has the effect of improving Quick Charge’s efficiency on the wand).
    • Xom now chaos brands more weapon gifts, and can chaos brand ranged weapons again.
    • Finesse is no longer blocked by stasis.
    • Jiyva altars in Dungeon no longer appear as early in Dungeon.
    • Cheibriados now blocks chaos effects from hasting the player.
    • Piety given for a Ru sacrifice is more explicitly stated.
    • Abandoning Yredelemnul now destroys your zombie minions.
    • Followers of Elyvilon can pacify insects (again).
    • Zin’s Recite is now only interrupted if the player is silenced or incapacitated (or goes berserk).
  • Branches, Environment
    • The enemies in the Elven Halls ending vault are now less likely to be lured out of the vault.
    • Ziggurat portals no longer appear in Pan.
  • Character
    • A new mutation: Sturdy Frame, reducing base ER by 2/4/6 and thus making heavy armour easier to wear. Can be a demonspawn mutation.
    • The player no longer takes an accuracy penalty for fighting while invisible but without SInv (also true of monsters).
    • Formicids now have 0 Throwing aptitude (was -2).
    • Taking a known shaft now has a 2/3 chance of shafting one floor and 1/3 of two floors.
  • Items
    • New items:
      • The amulet of dismissal, which has a chance of teleporting away enemies that attack you in melee combat, and contaminates the player when it is removed.
      • The +8 frozen axe “Frostbite” {freezing cloud, *Noise +Fly rC+}, an executioner’s axe with a chance of placing freezing clouds on enemies it strikes.
      • The +12 armour of Talos {ponderous, rF+}, a troll/ogre-sized suit of plate mail.
      • A figurine of a ziggurat – evoke to create a ziggurat portal. Appears on Zig:27 of all ziggurats and in the Tomb:3 loot.
      • Pieces from Xom’s chessboard – evoke to randomly swap the positions of you and all enemies and LOS, or (on failure) to trigger a Xom effect.
    • The robe of vines is now +2, Regen+7.
    • The Majin-Bo now speaks occasionally.
    • The amulet of Cekugob is now an amulet of dismissal.
    • Removing an amulet of regeneration now causes 2-7 hp of rot.
    • A new property can now generate on random artefacts: Fragile, which destroys the item when it is removed.
    • Amulets of faith now grant a 25% bonus to piety, not a 33% bonus.
    • Removed items:
      • Amulets of resist mutation and warding.
  • Monsters
    • New monsters:
      • Spark wasps, lethally electric swarming insects that appear singularly in Spider and in packs in Depths.
      • Iron giants, with all the resilience that iron implies and the ability to throw you into the pack of giants they lead.
      • Doom hounds, lurking in Tartarus who can howl to summon a pack of their brethren.
    • Mnoleg gains Random Bolt and Dig.
    • Gloorx Vloq gains Summon Executioners and Black Mark.
    • Juggernauts now have two less damaging attacks instead of one powerful attack.
    • Jellies and death oozes cannot be blinded.
    • Jumping spiders and mana vipers can be blinded.
    • Jumping spiders cannot see invisible.
    • Giant eyeballs and golden eyes can now see invisible.
    • Salamander stormcallers’ chant does not need to be continuous; they now only need to try to cast Fire Storm at their target three times for it to trigger.
    • Entropy weavers’ corrosion is now instant and smite-targeted, but only applies one level of corrosion.
    • Ice devils are now tier 4 demons, with lowered HD to match.
    • Hellwings now have the swoop attack formerly possessed by blue devils.
    • Orange demons have their attacks split – they now have a reaching poison sting and a melee-only weakness attack.
    • Salamander mystics lose Localised Ignite Poison.
    • Natasha, deep elf knights, and salamander stormcallers can no longer cast Conjure Flame.
    • Spectral mist can no longer summon completely random spectral enemies.
    • Banishment from powerful monsters can now send you deeper into the Abyss than Abyss:1.
    • Removed monsters:
      • Octopode crushers.
      • (Plain) spiders.
      • Salamander firebrands.
      • Blue devils.
      • Brain worms.
  • Spells
    • New spell: Yara’s Violent Unravelling (L5 Hexes/Transumations). Dispels all cancellable effects on the target and, if any were dispelled, causes a damaging explosion of mutagenic energy around the victim.
    • Hydra Form now has a fixed number of heads.
  • Interface
    • Earth elementalists now have their stones start on b.
    • Characters starting with a primary ranged weapon now have their melee weapon on b by default.
    • An option is added to the butchering prompt to allow butchering only (e)dible corpses.
    • Auto-eat now triggers for ghouls if they are rotted.
    • The religion screen now shows all god powers, with currently accessible powers (per level of piety) being highlighted.

Time to start the experiments… happy crawling!

0.17 Tournament Results

The 0.17 tournament is over. For 16 days, players could compete for tournament points and banners by playing 0.17 games on the public servers.

The winning player was cosmonaut, with 5787 points. cosmonaut won 22 games during the tournament, including a 5-game streak, and won 15 tier-three banners. In second place was johnnyzero, with 5644 points and 17 wins, including the longest streak for 10 games. In third place was iafm, with 5432 points and 27 wins, the most wins of any player, and 16 tier-three banners. EnterQ won the most tier-three banners of the tournament, getting 20 of 22 possible. The only unwon banner was Ruthless Efficiency III.

The fastest win by turncount was achieved by 4thArraOfDagon (19225 turns with a VSMo of Cheibriados). This game was also the highest scoring win of the tournament at 74M points, and incredibly is the second-highest-scoring game among all online games ever played! Demise had the fastest realtime win at 57m 37s with a HOBe, and johnnyzero had the lowest level win with an XL 19 FeAE of Dithmenos. The first victory of the tournament was claimed by CcS, playing a MiMo of Cheibriados, just 86 minutes after tournament start, followed by lessens a mere 32 seconds later, playing a MiBe.

The clan competition was won by tasonir’s clan (17151 points), followed by Vidiiot’s clan (16340 points), and MorganLeah’s clan (14161 points). There were 167 clans in all with points scored in the tournament.

Here are some basic statistics on the players in this tournament compared with the 0.16 tournament (in parentheses):

  • Players: 2836 (2773)
  • Total player time: 40866 hrs (43008 hrs)
  • Avg player time:  14.4 hrs (15.5 hrs)
  • Proportion of players using webtiles: 89.8% (88.9%)

graph made by johnstein shows how various statistics progressed over the course of the tournament. See here for additional comparison graphs. On behalf of the Dev Team, many thanks to all the server admins, outside contributors, bug reporters, and to the many DCSS players, new and centuryplayer alike, who made the 0.17 release and tournament possible!

Crawl 0.17: “Squaring the Circle”

We’re proud to announce the release of Dungeon Crawl Stone Soup 0.17: “Squaring the Circle”! 0.17 features a square line of sight, shorter Lair rune branches, new rune vaults for many branches, and many, many additions and improvements to the game.

Download DCSS 0.17 here, or play it online on one of many servers across the world! The source and Windows packages are available now, and our deep build annihilator elves are hard at work on the OS X binaries. We’ll update the website as soon as those files are ready!
Update: The linux debian 0.17 packages are now in the repository!
Update 2: The OS X packages are now on the download page. Many thanks to geekosaur for making these and troubleshooting signing issues! If you have problems running this on OS X, please tell us in ##crawl-dev or file a bug report on Mantis.

The release tournament begins today, Nov 6 2015, at 20:00 UTC, with all online 0.17 games counting towards your score. See the tournament website for more details, including how to set up or join a clan.

For a list of other major changes, see the changelog. Many thanks to all those who have contributed to Dungeon Crawl Stone Soup. We hope you enjoy playing 0.17!

The 0.17 Tournament Page is Online

We have now have the official page for the 0.17 Tournament online! Bookmark that URL, since it will eventually have a nice leader-board with links to all tournament results for players, clans, and banners, as well as a table of ongoing tournament games. The page currently shows the 0.17 tournament rules, included the rule changes from the 0.16 tournament.

This biggest change is that Beogh’s Saint banner has been reworked and is now called Heretic. This banner rewards players for abandoning and mollifying one, three, or nine gods, excluding Beogh, Ely, Ru, TSO, and Zin. There’s no longer a clan-based banner, but clans are still tracked with clan points awarded in all the various ways. Gone are the days when Saint I was either a trivial banner or perhaps the most difficult one if you were in a high scoring clan! Hopefully enduring epic god wrath will also make for some memorable games. Lugonu’s Heretic banner has been renamed to Spiteful, which has the same rules but no longer rewards tournament points for the tier 3 banner.

The other changes:

  • Nemelex’ Choice bonus points are now awarded to the first eight winning players instead of the first seven.
  • Lord of Darkness III allows you to enter Temple. No more altar grinding required!
  • Angel of Justice III requires that you kill the Serpent of Hell at least once.
  • No more clan points from winning with the highest AC+EV. Cigotuvi’s Embrace certainly spelled the end of that one…

Remember, the tournament will take place from 20:00 UTC Friday 6th November to 20:00 UTC Sunday 22nd November. If you’re participating in a clan, don’t forget to edit your RC file per the instructions. Clan memberships can be changed during the tournament (with changes detected automatically) until 19:00 UTC Saturday 14 November, after which time clans are effectively frozen.

Note that for testing purposes, the tournament page is currently tracking all games played in November. Don’t worry about any tournament results you see listed now, since the database and pages will be reset before the start of the actual tournament. Finally, the tournament page may get a visual overhaul thanks to work being done by chequers, the CPO admin who also helped overhaul the homepage. If we get these changes incorporated in time for this tournament, you’ll see them automatically when you visit the tournament page.

Best of luck to all participants!

October Trunk Update and the 0.17 Release and Tournament Date

Hello fearless yet terribly naive dungeon adventurers! Last time I said we’d update more frequently than once every two months, yet here we are again nearly two months later. It’s because of all the torpor snails, they’re everywhere! In addition to the usual round of updates, we want to announce the date of the upcoming 0.17 release and tournament.

Break out your best clan name puns, because the 0.17 Tournament will take place from 20:00 UTC Friday 6th November to 20:00 UTC Sunday 22nd November. We’ll make a follow-up post in a few days with the tournament home page when we have that ready for you. The release itself will happen on or before the start of tournament. If 0.17 is available on your server, please play that version to help us track down bugs before the release!

  • Gods
    • Gozag’s Call Merchant now places all shops at the player’s location. Customer service is our motto!
  • Monsters
    • Orange crystal statues now have Shadow Creatures and both they and obsidian statues cast their spells much faster. Don’t be surprised to find a lot of brainless MiFi stumbling around the next time you visit the dungeon.
    • Derived undead now have damage that’s 80% of their monster’s base damage instead of losing a fixed amount.
  • Player
    • The demonic guardian from the demonspawn mutation now has Fedhas-style protection from ranged attacks. Could this spell the end of complaints about demonic guardian? Tune in next time to find out!
    • The player blink mutation now only has one level and increases its success rate more rapidly as you gain levels.
    • Some species now have lower Throwing skill aptitudes (you’re welcome):
      • Centaur, Halfling, and Kobold go from +3 to +1.
      • Ogre, Spriggan, Tengu, High Elf, and Deep Elf go from +1 to 0
      • Hill Orc and Gargoyle go from 0 to -1.
  • Dungeon
    • New Lair branch end vaults:
      • A Shoals winter wonderland featuring frosty the kraken simulacrum.
      • A Shoals garden with plants that the satyrs lovingly tend to when they’re not shooting you to death.
      • A scaly new Snake ending, brought to you by the letter V, for Vashnia.
      • A Spider ending in one of three delicious spider flavors, brought to you by the letter A, for Arachne.
      • A Swamp ending with three possible rune locations for hydra to devour delicious players. Brought to you by the letter L, for Lerny.
    • Four new baileys:
      • A flooded polearm bailey that throws you right into the middle of things.
      • A gnoll polearm bailey with a chance to meet the incredibly glamorous and popular crystal plate armour gnoll sergeant.
      • An axe bailey castle that Rodney himself would recognize. Don’t worry, mortals, you don’t need the passtune to enter.
      • An axe bailey with an orc warlord boss you’ll only see if you survive the mobs outside its chamber…
    • Giant-themed zig levels now have juggernauts, and Earth-themed zig levels now have entropy weavers, octopode crushers, juggernauts, and caustic shrikes! Remember, you can always do Just One More Zig Level!
  • Spells
    • Controlled Blink is now level 8. They say that with -cTele gone controlled blinks are even stronger these days…
    • Gell’s Gravitas has been reworked to allow targeting empty squares and to have stronger power initially, scaling more slowly to max power. Hopefully these changes make the spell more usable.
  • Items
    • New unrand artefacts:
      • The Robe of Vines: a +5 robe with massive regeneration but which renders the wearer unable to heal by external means.
      • Kryia’s mail coat +7 scale mail which amplifies the effect of healing items (and grants rC+ to boot).
    • Hammers are gone. Head over to CYC to reminisce about the good times we used to have with hammers…also go there if you just want to get maced.
  • Interface
    • Fix a long-standing bug related to player messages that caused lag in WebTiles games over time. Hopefully refreshing WebTiles due to lag will be a thing of the past!
    • The skill menu now shows the relative XP cost of gaining skill levels.
    • A fancy new rune menu that shows the runes you have and all the ones you’ll never ever be good enough to get.
    • An ability_slot rc option that lets you map abilities to specific letters.

Check out the home page for follow-up posts about the tournament pages and release. After all, I know many secrets…

Webtiles architecture

Author’s note: I originally posted this earlier this year to the roguelikedev subreddit. Then I deleted it in my periodic social media purge, but thought this should be preserved somewhere.

DCSS webtiles does all the “engine” stuff on the server side. Its architecture, and most of the client-side and middleware code, was developed by our devteam member edlothiol (Florian Diebold) starting in 2011. There are three components (and a fourth non-webtiles component for online console play over ssh):

  • The Crawl binary (written in C++) does everything the console version does, including rendering ASCII to the console. It *also* opens a Unix-domain socket which it uses to send information about the visible game state to the web server, as a JSON stream. One copy of Crawl runs for each player.
  • The webtiles server is a webserver written in Python (using the Tornado framework). On one end, it communicates with the Javascript client through the web; on the other, it launches the Crawl binary and talks to it through the socket and through Crawl’s stdin. The server is responsible for keeping track of who is playing or watching which games, and based on that forwarding JSON messages from Crawl to the appropriate clients, and converting client messages into game input. The server also handles in-game chat, and serves static files such as tilesheets and javascript over HTTP.
  • The client is written in Javascript. It establishes a websockets connection to the server, and speaks JSON over this connection. Playing a game versus watching it uses the same client code. The client takes the JSON messages coming from the server and uses them (along with the tilesheets) to determine what to render in its canvas. Input from the user is translated into a JSON message and sent to the server. Many things you would think can be handled on the client side, like scrolling a multi-page menu or displaying the inventory, actually go through the server, so that watchers can see what the player sees even before the full command is issued. One exception is the “line reader” (used whenever we ask the user to type something): there, the input editing uses an ordinary HTML text field; only when the user presses <Enter> are its contents sent to the server as input.
  • Console games replace the server with (an old version of) dgamelaunch, the software developed for by paxed (who is now a member of the nethack devteam, congrats). This is a really thin wrapper around the game: it runs Crawl, sends the game’s stdout to both a ttyrec and to dgamelaunch’s stdout, and sends its own stdin to Crawl’s stdin (this is why console players can play robotfindskitten, or boggle or atc, on some of the servers: the wrapper is so thin it works with pretty much any game). It is the responsibility of sshd or telnetd to actually do the network communications: as far as dgamelaunch is concerned, it’s just talking to a tty. Console watchers are fed a stream of the player’s ttyrec. On most servers dgamelaunch runs the webtiles version of the Crawl binary, and tells it to make a (Unix-domain socket) connection to the webtiles server as well. That way webtiles watchers can connect to and watch games being controlled from the console; the other direction is handled by having the webtiles server also make ttyrecs. dgamelaunch has its own messaging system, entirely separate from webtiles chat.

Hidden information, such as the contents of out-of-sight map cells or the identity of unidentified objects, never leaves the Crawl binary. Even before Webtiles existed, we kept most public and private information separate: there are classes for map_knowledge and monster_info entirely separate from the actual map and monster data. Items do use the same type, but have a function to strip off unknown info.

Lame ASCII-art diagram. As in Crawl, § represents a cloudthe Internet.

                 SERVER SIDE   §   PLAYER SIDE
          unix socket     websockets
            (JSON)           (JSON)
      CRAWL <----> WEBTILES <--§--> CLIENT
        ^   <-----          ---§-->
        |    stdin           HTTP
        |   (UTF-8)      (images, JS, etc)
        |                      §
        |                      §
        `--> DGL <---> SSHD <--§--> SSH
           stdin/stdout        §
         (UTF-8 + curses)      §

Trunk Updates, 6 September 2015

Welcome dungeon crawlers one and all! It’s been over two months since our last update. Things have been a bit slower around the Dungeon as of late, but in such a long time we’ve managed to accrue quite a list of notable changes:

  • Gods
    • Gozag
      • Branch bribing works on any intelligent monster in the branch, based on HD and a branch factor.
      • Branch allies are permanent, but won’t leave their home branch.
      • You can bribe the Dungeon, Depths, Tomb, Crypt, and Pan now! Greed is good.
    • Ashenzari
      • Reskilling ability now costs less piety and works faster, and can reduce skill levels to 0.
      • The Scrying ability is granted at 1* piety, the passive skill boost at 2*, and SInv at 3*.
    • Xom makes fewer chaos clouds. You’re welcome.
    • Ru’s Sacrifice Eye gives only one amulet’s worth of inaccuracy penalty.
    • All altar-based abilities have been moved to the ability menu, and are hence immediately usable when granted: Zin’s Donate Gold and Cure All Mutations, Kiku’s Bless Weapon and Gift Necronomicon, Lugonu’s Bless Weapon, and The Shining One’s Bless Weapon.
  • Monsters
    • New monster: Juggernauts, terrifying giants that lurk in Depths. They move quickly and deliver fantastically punishing blows, but must rest after each attack. Don’t get jugged!
    • Death cobs now have a hunger draining attack and deal significant damage. Don’t get cobbed!
    • Hunger draining attacks on Hungry Ghosts and Death Cobs apply whenever the attack hits, not only if damage is done.
    • Polyphemus can literally (1st definition) throw his Yaks at the player. We’re just as amazed as you are.
    • Salamander genus monsters now all move normal speed and are fast in lava. Because that’s how it is in nature.
    • Demonspawn Warmongers no longer cast Grand Avatar and can sometimes generate with a shield.
    • Salamander Stormcallers’ Firestorm spell does more damage.
    • Monsters have lost some relatively ineffective spells like Animate Dead, Simulacrum, and Hellwings no longer have Teleport Other.
    • Polar bears, Black Bears, and your common backyard Kraken no longer try to flee at low HP.
    • Wolves and Wargs have been taking howling classes and can now howl competently.
    • Wandering Mushrooms no longer spawn as hostile monsters, but you can still make them through Fedhas.
    • Lots of new tiles for things like Giants, Smoke demons, Crocodiles, Quokkas, and terrible 3-headed serpents that lurk in the very Hells beneath.
  • Player and Dungeon (for they are one…)
    • Corrosion applies -4 to both AC and Slaying instead of -5 and -3 respectively.
    • Most random feature mimics are gone, save for those mimicing shops and portals.
  • Spells
    • Darkness is now level 5 instead of level 6! That’s an entire spell level of terrific savings!
    • Casting Haunt no longer causes Sickness. We were….sick of it.
    • Casting Malign Gateway no longer drains Int. We hope….you get the hInt.
    • The Corpse Rot spell rots all corpses in LOS, not just those 5 tiles away.
    • Ozocubu’s Armor and Stoneskin now no longer give respective bonuses to Ice Form and Statue Form.
    • The Singularity spell is no more. Don’t worry about the Moon Troll, he’s been practicing his Caustic Bolt.
  • Items
    • The Sack of Spiders has a better spider distribution that’s been certified by spider actuaries. It makes more appropriate spiders at the low and high ends of evocations and fewer ally-nuking orb spiders.
    • The Crown of Eternal Torment is gone. May discussions as to whether it was OP or Meme torment us no more…
    • The Ephemeral Infusion effect is no more. The Elixir card now directly heals allies, and Demonspawn Bloodsaints don’t need it, since they no longer lose HP when casting Legendary Destruction.
    • High-level spellbooks no longer restrict learning or identification based on spell skills.
    • The contamination over time from Maxwell’s Cage has been reduced by 20%.

We’ll try to have at least monthly updates from now on. Don’t forget to let it end in Hellfire!

Crawl 0.16.2: Bugfix release

There’s a new bugfix release of the stable version of DCSS. Source packages and binaries for Windows and Linux are available now; OS X and Android binaries will be uploaded as soon as they’re available. This release contains an important fix for Tiles users where mouse clicks could sometimes act as if Ctrl or Alt modifiers were active even when these keys weren’t pressed. A number of other bugs have been fixed that have minor gameplay effects; see the 0.16.2 entries in the changelog for details.

Update: OS X binaries are now available on the download page.

Update 2: Thanks for people pointing out the problems with the debian packages. They were built relative to Ubuntu Utopic (14.10) instead of Ubuntu Trusty (14.04). They’ve been rebuilt relative to Trusty and reuploaded to the repository. If you apt-get update and reattempt install, things should work. Next release we’ll be building relative to the recently updated debian stable, which will simplify things.