Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
0.21 Development and Release Plan
This page is for managing development planning with a focus on things that could be implemented in the next release. Features on this page are considered major or significant improvements. General bugfixing does not need to go here although major bugs could end up in a "tasks for completion" section once we near a release.
Features are divided into sections based on their stage of completion or planning. Each feature should have the names of any devs who are actively working on, planning, or responsible for the feature and who realistically think they'll be able to finish it in time for the release date.
This is a list of tasks that generally need to be completed for any release to happen.
- Release schedule - The tournament is scheduled for Jan. 5th 2018, with the release that day or the day prior. Feature freeze will likely be on or around the 29th of December.
- Mantis administration - closing and/or fixing hundreds of old bugs and FRs
Testing and feedback
These are features which have been implemented in some fashion and are in trunk builds for testing / feedback / polishing. They are likely to be included in the release if they are ready by that stage.
No Spawns in most branches
Spawns no longer generate over time. Instead, a few more monsters on average are made on level generation and each monster has a 1/8 chance of generating awake.
Training targets (advil)
You can set/view a training target from the skill menu (use ! to switch to the target view mode), as well as from item descriptions for items that have a specific skill target, and using lua hooks. Item descriptions also try to provide a bit more information about training outcomes. This is still undergoing UI refinement so more feedback is needed. Detailed page with ideas.
Gnolls (gammafunk, elliptic)
Gnolls have been reworked according to a "skill-robin" idea described in this commit and are being play-tested in trunk. Some possible issues with the current design/implementation:
Strong Nose The mutation works reasonably well later on for Gnolls since they at least can use more items effectively compared to any other species. It doesn't have high impact since Gnolls are very strong early on, but it's an unobtrusive mutation that feels thematic, so we can keep it for now.
Apt/Stat Balance Gnoll had their spell school aptitudes reduced to +6. The spell school reduction helps to makes having access to advanced spells not happen too early. They still have a quite easy early game with high starting skill levels, which is something that could be addressed in the future.
Titles Their Invocations apt increased to +9, which makes them use invocations titles unless multiple manuals for a skill get found and used.
Message spam Gnolls level up many skills at the same time, producing a distinct message for each. Would be nice to combine these into something like "N of your skills reach level M!".
Wu Jian Council (WJC) Changes
WJC was reworked in trunk per the ideas in the main discussion: Wu Jian Council Changes
It may need further balance tweaks before release.
Wand Charge Merging (gammafunk)
Wands now merge charges in trunk and are destroyed when they run out of charges. All the basic aspects work fine, but there is at least one bug wrt autopickup that should be looked at before release.
Identification Charge counts for wands of a given type always ID once that wand has been seen once. Identification probably won't be addressed in this release
Recharge Scrolls These have been removed with no replacement. Less recharging is partially balanced by no charges wasted through the identification system, and there were and probably still are too many charges lying around.
Food Unification (|amethyst)
|amethyst has merged the branch branch, which merges rations together, removes fruit and royal jelly, and make other necessary adjustments to food drop rates. Fedhas accepts rations for abilities that previously used fruit.
These issues may still be relevant:
easy_eatEnable by default. I'm not aware of any problems with doing this.
auto_eatFalls back to rations when no chunks are available. Not sure if there are issues here. If we don't unify food, there would be the issue of what kind of ration to use by default maybe?
New Spell: Borgnjor's Vile Clutch (gammafunk)
Spell detail in this commit. Some potential issues with this spell:
Constriction Damage I went with spell-power based so that the spell would scale in a natural way with what felt reasonable after play-testing at early spell-power levels of 30-40 but also at the top end of 120-200. The fomula I used is:
2d(5 + spellpower / 15).
This is a level 5 (albeit two-school) mostly non-resistable spell you can use to kill most monsters through extended, although there are eventually more efficient spells. There are other L5 or lower spells giving this kind of big non-resistable advantage include Summon Mana Viper (anti-magic) and Spectral Weapon.
Constriction Escape The escape chance is also based on spell-power, and I give some details as to the escape chances you can expect in the commit. It's difficult for monsters to escape the constriction at high spell-power: for a 50% chance, around 6 turns at 120 spell-power, 9 turns at 200. However it's not easy to justify getting high spell-power given two otherwise unrelated spell schools.
Targeting "through" monsters Mibe (the player) noticed that the targeter thinks it can't hit "through" an ally that's in the path to a potential target. It can give you the "Force cast with Z" message if some ally is in the path between you and a viable, in-range target. This is a smite-targeted spell, so that shouldn't happen.
Constricted monster AI Mibe noticed that a constricted monster won't attempt to break free and move into a harmful cloud to reach the player. We may want to have it act as if it was already in a harmful cloud wrt trying to move in this situation.
Tasks for completion
These are features not yet int trunk which have which should have a simple path to implementation and where there isn't any known disagreement of the benefits. If any of these turn out to be more complicated or warrant more discussion, they can be moved to the [Under Consideration] section.
- Ely Pacification Success Display Show the chance of pacification succeeding.
- Minor Destruction Acid Beams The acid effect from Makhleb's minor destruction is apparently much much stronger than the other effects.
- Engulf and Invocations Engulf is supposed to be a silence-like effect, blocking scrolls and spells, but it allows invocations. Probably this should forbid invocations as well.
These features are not yet in trunk but are being actively worked on or considered by one or more devs, but may not make it into the next release (or any release for that matter).
Mutagenic Chunks and the Mutation Roulette
Purple chunks were removed as part of |methyst's food unification. Advil has created a Mutation roulette brainstorming page to discuss what ways we can allow players to be a bit more about the purple lyfe and still have good mutation balance.
Update: There's a good chance that the current potion-only mutation situation will be final for 0.21, but we may be able to implement one of the mutation roulette ideas in the next week. --gammafunk
Player Ghosts (advil)
Player ghosts are often tedious to fight due to having relatively extreme characteristics compared to normal level monsters. Having to repeatedly lure a ghost to a staircase when it's difficult to kill so that you can re-enter a level elsewhere is not enjoyable, yet this situation occurs often since ghost are frequently generated monsters. They are a social feature for online play, but past "griefing" incidents involving the generation of nasty ghosts have shown that ghosts can be used to make the game less fun for online players.
If it's not possible to design a new ghost system that we feel is both interesting enough yet not exploitable, we can remove ghosts and try other less intrusive ways to give online players a sense of community. That said, there are a few ideas for how to reform the ghost system described below. Note that some but not all of these ideas are mutually exclusive.
Update: advil has made a spooky_vaults branch to implement the ghosts-in-vaults suggestion below. The draft of this branch is complete but it needs review and testing, and we're not going to push a feature with a large potential for server breakage so close to release. This branch will be a high priority for merging in 0.22-a. --gammafunk
Balance Ghost Characteristics (Lasty)
Making ghosts not have such extreme values for any or all of: action/movement speed, max HP, AC, EV, SH, and melee egos. Some things we could do to "normalize" ghosts before saving ghost data:
- Normalizing max ghost speed to some number, maybe 12.
- Logarithmic step-downs for defenses.
- Removal of certain buffs like berserk/might.
- Removing weapon brands (except perhaps flaming/freezing), or replacement of specific ones like chaos/distortion.
- Normalizing ghost resists to the undead resist set.
Normalize the Ghost Creation Rate (Lasty)
To help prevent griefing, we can make the rate at which ghosts generate not depend on the numbers of deaths happening on the server. It would be possible to randomly generated ghosts when ghost files are unavailable and still have the same overall rate of ghosts encounters as we have now. Decoupling the creation of ghosts from the number available in ghost files would not allow players to influence the frequency with which other players encounter ghosts. This change alone wouldn't be enough, however, since players could still influence the types of ghosts that tend to generate.
Ghost Generation Depth
For D:4 and a few levels afterwards, most ghosts are a lot like ogre monsters that can't follow up stairs. We could move ghost generation down to e.g. absolute depth of 10, giving us ghosts in Lair, from D:10 on, in Orc, and in all lower depths.
Put Ghosts in Vaults (advil)
This idea would have ghost interaction be completely voluntary. Ghosts could always be generated behind special "grave" vaults, which could be runed door or transporter vaults that revealed the presence of the ghost to the player. This vault could contain a small amount of generic loot to make fighting the ghost more tempting for players, especially later one when XP is not a sufficient reward.
This approach allows players to completely ignore ghosts if they don't enjoy fighting them, which would be enough for most ghost-haters. It's a good idea to look at the control of ghost generation rate idea above if ghosts do continue to reward XP (and possibly now also reword loot).
Make Ghosts Harmless
Ghosts could instead by harmless, 0 XP "flavor" monsters that existed to simply warn the player and give speech messages. Ghosts could be saved with basic information about the monster they died to or the way in which they died, and their speech could include a warning about this. The ghosts themselves would probably have to be something like a peaceful monster with no means of dealing damage. Suggested by hellmonk.
Make Ghosts Into One-Time Allies
This proposal is probably the least practical of the ones mentioned, but I'm including it since it's an interesting take on the problem of making dealing with ghosts more fun. Even if we put ghosts in vaults and normalize their attributes, they ultimately may not ever be fun monsters to fight. So instead of being hostile, ghosts could be temporary allies that appeared to help the player fight the type of monster that killed them.
Ghosts would appear when a monster is seen if a ghost file existed for a player dying to this monster. The ghost would be a temporary ally that would aid the fight. It would probably be simplest to have them disappear like normal summons either when they died or when their duration expired. Since ghosts would be beneficial, this idea would probably also require the ghost generation rate control idea above. Suggested by mikee.
Update: The food-unification branch was merged, as noted above, but the fundamental issues remain with food's effectiveness for ensuring forward progress. No further rework will happen in the 0.21 release, but the discussion/ideas below are relevant to 0.22. We have at least one other idea to consider for forward progress (trap-like effects and removal of randomly generated traps), but we need to agree on both the overall approach and what changes are needed for all the affected areas of gameplay. --gammafunk
Food does not function well at all currently as a forward-progress clock but is intertwined with other systems like spells, berserk, some evokable abilities, and certain gods that try to impose extra nutrition costs to make food more meaningful. For characters that don't use these systems food is irrelevant and difficult to make relevant while also balancing for characters that do use things with food costs. Consuming food is also UI-intensive (although we have many options to streamline this) and involves a good deal of extra inventory management.
Idea: XP Debt
This is an idea for replacing the food system with a "smooth" penalty for forward-progress that functions much like piety decay, but applies to all characters, not only those worshiping gods. The idea is that the player continuously accrues an "xp debt" as they act which must be payed off by earning XP before any XP is applied to increasing skill levels and XL. This is essentially "lost XP" but it would be in small amounts such that the player would not notice it over the course of normal play when clearing a level. They would begin to notice it as they spent large amounts of time on a level doing things like resting near stairs to get monsters to wander into view or otherwise during excessive amounts of luring.
Some issues related to this idea:
Optional: Level loss with high debt As the debt gets sufficiently high, the player could lose an XL. This could be communicated through a status light as they got close to losing a level. This aspect is not required for the proposal and could possibly have some issues of its own, but it's a way to make the mechanic more impactful and increase the sense of danger behind it.
Auto-explore and Travel Like piety decay, this system would "penalize" autoexplore, which takes more aut to explore a map compared to manual movement, however as this is a very gradual system the difference should not be notable if it's balanced right. Since autoexplore generally means the player sees more of a level and fights more monsters per-level, this partially balances out this difference as the player earns additional XP. Overall the change might encourage some players to try harder to minimize turncount, doing this heavily would still be very dangerous
For Travel, this would be an additional cost added to piety decay, however just as piety decay doesn't prevent the player from traveling places for e.g. shops or dropped items in practice, nor should xp debt.
XL/XP Scaling For this to work, the decay would need to scale with player XL, or in some way account for the fact that more XP is gained as the player goes deeper. Additionally, do we scale XP gain so that the average XP gained per game/level is the same including typical piety decay?
UI We will need some kind of status light to indicate to the player that they're accrued large amount of debt, especially if the optional level-loss idea is included. Since there are no levels like for the piety system, a full display is probably not needed, but perhaps said status light would have colors depending on severity of the XP loss.
Abilities currently using food Since food would be gone, we'd need to figure out which abilities that currently have food costs need adjustment. Spell hunger, evocable ability hunger (namely invis and berserk), and hunger from certain god abilities (also Trog berserk) have to be looked at. These costs could be simply removed since the abilities have other meaningful costs, but further adjustments can be made.
Gods relying on food Fedhas would need some fruit-like cost for his current abilities. Gozag could continue replacing corpses with gold, but would no longer offer food shops. Perhaps the gold drop rate would need a reduction to compensate for the fact that players won't purchase food shops.
Species with unique food mechanics Vampires could continue using their blood system, and ghouls could continue making chunks from corpses. The Carnivore and Herbivore mutations would be meaningless, and probably the species that have those could lose that without compensation.
Swamp Revamp (gammafunk)
The current swamp monster set is large, lacking in focus, and has a few fairly annoying gimmicks. I think the branch monster set would be improved if we can trim out the most annoying ones (insubstantial wisps), remove the less impactful Lair monsters (frogs, komodos), and develop a few core monsters that define a theme and set of common characteristics, like merfolk in Shoals, naga in Snake, and spiders in Spider. These will have some commonality in terms of a mechanical idea (mf all are fast in water, have reach, spiders have an af_type + web interaction, naga are slow but have constrict + spit) and defensive profile.
Update: I may get to a new monster and possibly remove insubstantial wisps this release, but most of this will have to wait till next version, as I haven't finished the details. --gammafunk
Plant Monsters The current idea is for there to be a set of maybe 5 "plant" monsters with certain other swamp monsters being reflavored or possibly removed as necessary. To contrast with Shoals, these will not be fast in water and with have more balanced AC/EV (merfolk have lower AC and high EV). The two existing plant monsters are thorn hunters and shambling mangoves. The former work fairly well, although the bramble mechanic is very hard for the player to reason about. Shambling mangroves are fairly annoying due to their HP and the Roots attack is an over-elaborate LOS slow. Ideally this monster could get reworked.
New Swamp Worms or Plants The current "hiding" mechanic of swamp worms just doesn't work very well. Current plan is to make these non-hiding yet have a lesser-beckoning like attack on the player that would probably do some damage. These would be less common than old swamp worms since too much player re-positioning gets annoying fast. The "slurp" attack would not be LOS-range, but maybe 5 or 6 squares. We could also retheme this as one of the aforementioned plant monsters.
Layout change The chaotic mix of shallow and deep water is very annoying to navigate, and while it's nice that Swamp has much more non-water terrain and 'walls' (trees) compared to Shoals, it could be improved by moving the water to more contiguous areas that are more lake-like with these more open areas connected by pathways. This is a lower priority than reworking the monsters, since the current layout works on a basic level just fine, but I'd like to try a layout with structure described above.
Wizlab Improvements (gammafunk)
Cloud Mage, Hellbinder, Zonguldrok, Wucad-Mu, Iskenderun, and Golubria wizlabs have some improvements that could be made to better randomize types and placement of monsters or layout. Levels that have a relatively straightforward layout with limited types of monsters and limited randomization to monster types, numbers, and placement are not fun with repeated play-through.
Update: Two wizlabs were updated, as noted below, and I may get to Zonguldruk's and possibly Wucad Mu this release (although the latter doesn't have a specific plan yet). I will probably also tweak Moon Base's loot to include some more consumables and not rely so heavilly on star_item/good_item. Iskenderun's and Golubria's will likely have to wait for 0.22. --gammafunk
Hellbinder Has a layout that makes it too easy to avoid fighting most of the demons, and is generally too easy for an xl18-20 character, probably. Some modifications to the layout could force the players to fight more of the monsters. Some improvements to monsters placement could probably also be made.
Cloud mage A very limited monster set together with a very linear layout. Probably the simplest thing to do here would be to mix in more kinds of cloud/air monsters.
Cloud Mage was revamped in this commit along with the change to give air elementals a new Vortex ability. --gammafunk
Zonbuldrok The Zombies and undead that place over time just aren't very threatening. Could increase the placement rate, place some spectrals/simulacra, and mix in a few non-derived undead
Wucad-Mu Very limited monster set. Could place some actual monsters along the way that feel suitably different from the spawns.
Iskenderun I need to look into in more detail, but has as I recall pretty limited sets of monsters with non-randomized placement (need to confirm this).
Golubria The layout is interesting and the central fight is memorable, but the chambers place a number of monsters that are simply too easy and are only there for flavor reasons.