Dungeon Master
Posts: 182
Joined: Saturday, 18th December 2010, 10:26
Location: Germany
Improving Xom!!!
Related Dev Wiki page.
A. History
In the old days, before Stonesoup, Xom was basically the god of mutations. Players would pick Xom, knowing that if they survived his antics long enough, they'd eventually be kitted out with a full set of mostly beneficial mutations. Xom was endgame material, but just not very interesting.
Then along came Zooko, who overhauled Xom to largely what he is today. In the resulting patch, which was merged into Stonesoup 0.5, Xom received random moods ranging from "beloved toy of Xom" (today's "Teddybear") to "beloved plaything" (today's "very special plaything"), which heavily influence the severity of his actions. In the original patch, the good moods were all but guaranteed to result in a good effect and vice versa for the bad moods. The devteam didn't like how this enabled the player to game the effects, so this was eventually changed to have the chance of good/bad effects to scale along the mood scale.
In addition to the new moods, the game now kept track of Xom's "interest" which counts down to 0 (at which point Xom gets BORED and only picks bad effects) and can be increased by a large number of pointless or harmful actions. Eventually, this too was changed to be somewhat less grindable.
Much later, with the introduction of Jiyva, Xom basically lost his trademark ability of mutating the player. Oh, he can still do so, but the chances are much lower. Also, at some point the number of mutations got capped, so the player couldn't get the screenfuls of mutations anymore, anyway.
With all these changes, Xom became more dangerous (or maybe he'd always been that way and it only became apparent during testing). Anyway, as a result, a number of restrictions were added to guarantee a minimum experience level for some effects. As a result, Xom has become positively timid in the early game and more boring than ever. Tension was added to differentiate between combat and non-combat situations, but outside of fights involving extremely dangerous monsters, so far it doesn't have any noticeable effect.
All of which leads me to the conclusion that Xom is in need for yet another overhaul.
B. Who is Xom?
Xom is one of the two true chaotic gods in Crawl's pantheon. (In my opinion, Makhleb is basically an evil god with a side-order of chaos.)
Where Lugonu personifies chaos in the sense of opposition to the established order and the destruction of the universe, Xom embodies randomness, chance, and personal whims. Other than Lugonu, Xom does not wish to overthrow the other gods as they and their followers provide an endless source of entertainment.
Xom is the embodiment of "schadenfreude" and can be an absolute jerk about it. In real life, Xom would be the guy to play mean, potentially harmful, pranks on unsuspecting victims and then mock them for having no sense of humour.
Xom does not like being predictable, at all. When Xom gets the feeling of possibly having become predictable, he'll turn around and do the exact opposite, even to his own disadvantage, just to confuse everyone.
Xom has a rather short attention span and wants to be constantly kept entertained. Over the course of centuries, Xom has come to appreciate that while followers' quick and messy deaths provide a few seconds of utmost hilarity, keeping them alive but under constant pressure can be much more fun in the long run. However, when bored, Xom still tends to seek entertainment in the easiest manner available to a god: by torturing his followers.
Disclaimer: When I use the male pronoun to refer to Xom, I do so because that's how I personally picture this deity. Naturally, within the game, Xom is as genderless as all the other gods. (Those Demigods will sure get a nasty surprise when they attain their goal. Well, except that they won't care anymore.)
C. Does Xom follow Crawl's game design goals?
Major design goals
- challenging and random gameplay, with skill making a real difference
- meaningful decisions (no no-brainers)
- avoidance of grinding (no scumming)
- gameplay supporting painless interface and newbie support
The current Xom fails in several aspects of this. There's at least one major effect that makes many players decide that going unarmed is much safer than using a weapon, which borders on being a no-brainer while being completely non-obvious to newbies. Worse, even weapon-users can greatly reduce the likelihood of their weapon being animated by simply not wielding it outside of combat, which is even less obvious and seems a bit grindy. As for the first point, Crawl is difficult enough in the early game when the player doesn't have any escape options, but Xom might actually exacerbate this problem. Something to keep in mind is that Xom is particularly popular among casual players, for the sheer wackiness of the game, whereas players interested in actually winning the game are extremely unlikely to pick Xom outside of challenge games. While the first is fine it itself, there should also be something Xom has to offer to the latter type of player.
The interest rate used to be heavily grindable by performing "stupid" actions (such as zapping yourself with an unknown wand), but that was greatly toned down, though traces still exist. The saving grace is that interest hardly plays any role at all. In fact, I cannot remember ever having suffered a particularly bad effect from Xom being bored. If it happened (rarely enough) it was usually a minor miscast; the really bad effects are much more likely to occur when the interest counter is greater than zero, simply because boredom is such a rare state. Unfortunately, spoiler myth still claims otherwise, and players still tend to attempt grinding Xom's interest, either because they overestimate its importance, or because they want to minimize the remaining effect.
Also, there are the so-called "annoyance gifts" where Xom specifically gifts an item you could use but currently can't because the slot is blocked by a cursed item. This is, of course, highly scummable: for example, you can increase the likelihood of rings by wearing cursed gloves. The thing is, I'm just not sure how much that actually matters: Depending on tension, annoyance gifting (a positive effect) happens between 4 and 8 times out of 1000 Xom effects.
Minor design goals
- clarity (playability without need for spoilers)
- internal consistency
- replayability (using branches, species, playing styles and gods)
- proper use of out of depth monsters
Of the minor goals, Xom surprisingly suffers from a lack of replayability, by which I mean that all of my Xom games (in which admittedly I didn't get very far) ended up feeling the same. Now, of course the same could be said about most of the other gods, but for Xom in particular it's the opposite of what you'd expect.
I've already given examples of Xom effects where the optimal behaviour is non-intuitive and goes counter to the goal of clarity.
Xom does like to throw out of depth monsters at the player, which early on often is a death sentence. Other than a randomly generated OOD encounter, the summoned monsters will pop up very close to you, will be instantly alert, and quite often bring some friends. On the upside, they're summoned, so if you do have the means to escape, you'll be able to safely return to the level later-on. Unfortunately, in the (very) early game, the player is unlikely to have any of the usual escape tools, while during the later game, Xom's summoning actions are easy to avoid, if a bit costly in the long run. Mostly because of this, common advice is that if you want to play Xom, you should pick a god-less background, to build up the character a bit (by gathering items and gaining hit points) before picking Xom at the Temple. However, since Xom is available from the start, this (again) is non-obvious to new players. Removing Chaos Knights is an option, but seeing how he's so popular among new players who may have severe trouble reaching the Temple that would be a great loss.
This means that Xom's actions need to scale with whatever the player's got at her disposal to cope with them. This was partly adressed in that the number of summoned monsters scales with the player's experience level and (for example) banishment is outright disallowed for young followers, but it's clear that this is not enough. Getting a single hellion is a death sentence to any character without immediate escape options, while even a small group of imps can be laughed off by most but the most puny followers.
D. So how should Xom be changed?
Let's start at the last point: Hostile summons (overall chance at zero tension: 2.4%)
The type of demon currently depends entirely on Xom's mood, which cannot be influenced by the player in any form. Scaling the type rather than (or in addition to) the number of summons may go a long way in making the early game fairer and the late game more interesting.
Animated weapon (chance at zero tension: 0.8%)
To get rid of the grinding involved, I propose that Xom animate the weapon in the player's inventory that deals the most damage (but is slowest). For unspoiled players, this will usually be the wielded weapon, so this change would not affect newbies. Picking a random carried weapon is an alternative only in theory, as that would result in players carrying several junk weapons instead of wielding one. (Incidentally, a similar measure should be applied to Mara duplicating the player as that suffers from an even more spoilerific work-around.) At the same time, the effect should scale with the player's experience level. Currently, there's a fixed threshold of xl 7 after which there's a 25% chance of weapon animation happening instead of hostiles being summoned. This chance could also depend on the player's experience level.
Banishment (chance at zero tension: 0.1%, for a character at xl 10)
This is the rarest of all Xom effects and the one most feared by players. This is the case because banishment has far-reaching consequences and is a death sentence in the earlyish game. Currently, the player needs to have at least experience level 9 to be banished by Xom, and there's an additional saving throw depending on character level. None of this changes the fact that if a character is banished, she will spend the next thousands of turns trying to get out of the Abyss and fighting for her life. Thus, I propose to add a chance for Xom un-banishing followers if the tension is sufficiently high. Since tension takes into account character health and level, this should result in a shorter duration of stay for weaker followers (though xl could additionally be included in the formula), as it should be, with the chance of returning to safety increasing the longer they manage to survive. Obviously, they may still die in there, so the chance of banishment happening should remain low, though maybe the xl restriction could be loosened a bit.
Miscast effects:
EDIT: Added later, after the reminder by cerebovssquire.
Xom uses the same miscast effect as Zot traps actual spellcasting miscasts. There are four tiers of miscast effects: The harmless level 0 miscasts (15.3% at zero tension) have a 5% chance of being replaced by flavour messages. In addition, there are the minor level 1 miscasts (6.7%), the major level 2 miscasts (3.2%) and the nasty level 3 miscasts (0.7%). The latter two may include banishment or summoned demons of the highest 1 tier. Currently, the severity of one of Xom's miscast effects depends entirely on his mood. To make this fairer to the player, this should factor in experience level, too.
Teleportation roundabout:
This is not really a bad effect (in fact, it's usually a way of both mapping a level and detecting monsters), but it's an effect that happens much too often, something that is exacerbated by this being both a good (4.7%) and bad act (5.9% at zero tension). The difference is that the good effect tries to place the player in an area that is less dangerous than the original one, while the bad effect does the opposite. However, that doesn't excuse the two effects to be so similar and happen so often. I think that the effect should be split into a teleportation roundabout that is a good act requiring tension, has lower chances of happening, a smaller number of possible stops, and always leaves the player (nearby) where she started out; and a simple teleport aimed at a more (bad effect) or less (good effect) dangerous location.
Vitrification (chance at zero tension: 3.8%):
Vitrification also happens a tad too often. It's supposed to be a good effect, but it's also a bit boring. It would be more useful if the surrounding part of the level has not been mapped yet, or at least more interesting if there are hostile monsters on the other side of the wall. Granted, the latter would be a bad effect, but the former would be easy to achieve. The radius depends on Xom's mood, but personally I consider the large-area vitrification to be more boring than funny. Things could be spiced up a little if there was a chance for some squares not being vitrified, and the larger the radius, the larger said chance.
Annoyance gifts (0.8% at high tension):
This is a tricky one. On tbe one hand, players love to complain about acquirement producing useless items; on the other hand, it's much too easy to influence Xom's choice of item, though considering its rarity, this only matters in the long run.
The code uses the following condition for annoyance gifts:
* If the player is wielding a cursed weapon, there's a 50% chance of getting another weapon of the same type.
* Otherwise, if the player is wearing cursed gloves, there's a 50% chance of getting a random ring.
* Otherwise, if the player is wearing a cursed amulet, there's a 50% chance of getting a random amulet.
* Otherwise, if the (non-Octopode) player is wearing at least one cursed ring, there's a 50% chance of getting another random ring.
* Otherwise, if the player is wielding a weapon, there's a 20% chance of getting a weapon of another base type than the wielded one.
* Otherwise, if the player is wearing a cursed cloak, there's a 50% chance of getting a random type of armour.
For all of these, the quality of the generated item depends on Xom's mood. You'll notice that with the exception of the weapon with a different base type, all of these are actually more useful than a random item gift, provided the player has a way to remove the curse. Once the player starts encountering mummies, her equipment becomes very likely to being cursed, and if its quality is sufficiently good, she may even decide to actively curse some of it, so as to improve her chances of getting good items. (Note that other than with Ashenzari, this is not how the god is supposed to work. Rather, it's a result of a design flaw.)
While I like the concept of Xom gifting stuff designed to annoy the player, it appears like he's actually more successful in that respect if he chooses to randomly gift her with some kind of armour she cannot wear, a cool artefact with a bad property, or even yet another pile of rocks. Thus, I propose to change annoyance gifts to do just that. The curse requirements can be kept and used if ?remove curse are sufficiently rare (no idea if that can be tracked right now). Otherwise, specifically pick weapons for which the player has a low skill, high-AC armour artefacts for characters with low Armour/high Spellcasting or, vice versa, low-AC artefact armour for characters specializing in Armour. Hand out helmets if the player has the horns mutation, boots for hooved followers, etc. Gift an item that has the exact same properties as the one the player is already wearing. Create a powerful artefact and add a property that is bound to be harmful considering the character's species and playing style: i.e. Hunger for mummies and -CAST for non-casters doesn't count. If this seems overly harsh, consider that the chance of getting an acquirement gift at high tension is 1.4% and a random gift even 5.4%.
In general, check tension more often. Increase the chance for good actions the higher the tension, and include lots of effects useful in combat (potion effects, allies, animating monster weapons, ...) Of course, Xom being Xom, even a "good" act could have bad side-effects like the player being confused alongside the monsters or a monster polymorph ending up making the monster more dangerous. Add special effects for particularly high tension, such as starting a forest fire or conjuring up a thunder storm (complete with clouds of rain and chain lightning). On the other end of the spectrum, greatly increase the range of available flavour messages to balance out Xom acting more often.
Keep track of the time spent at low tension, and increase the chance for bad effects as that time increases. Repurpose Xom's interest counter for this, and warn the player about Xom becoming BORED once a given threshold is reached. The importance of the grindy ways of keeping Xom's interest high should be reduced even further and only have the effect of delaying Xom's inevitable wrath. For bad actions, only use damage-dealing effects if there are (low-tension) monsters around. Otherwise, the player will simply rest out the damage and spend even more time being boring.
Get rid of the poisson distribution of effects which makes it close to impossible to tell the chance of any given effect taking place, and replace it with a mapping of chances to actions, for each of which the power, tension requirements etc. can be defined separately. The severity (how extreme Xom's mood is in either direction) should mostly be replaced in favour of tension tracking. To determine effects' power, use Xom's mood directly, so that e.g. an acquirement happening when Xom is an extremely bad mood is more likely to be of very low quality than using the same power as it would have been for Xom being in an extremely good mood.
Add a low chance for getting a particularly good gift with long-term effects (mostly) regardless of Xom's mood. In particular, don't use mood for determining the power of said gift. Guarantee this happening comparatively early in the game, possibly by including the turn count or experience level in the formula. Such a gift could be a strongish permanent ally, a acquirement-level artefact, or an awesome mutation. This is mostly intended to keep players' interest even should Xom decide to be otherwise mean and/or stingy.
Comments, anyone?