Patch Notes

Patch Notes for upcoming and released versions of the FutureMUD Engine on LabMUD

Current Live Version: Alpha-005

Alpha-006

  • Implemented blindfolds that impair vision when worn as well as gags that muffle speech when worn
  • Started work on basic restraints such as ropes, handcuffs, shackles etc which either prevent the restrained from using their hands, make it harder for them to walk, and can potentially be attached to other things (shackles might be chained to a post for example), which would prevent them from moving.
  • Added the ability of drugs to damage specific organs (so overdosing on painkillers might kill your liver for example)
  • Added a player “Health” command to show various detailed information about the state of your health
  • Added the ability for individual room/person/item descriptions to be overridden by effects…for certain hallucinagenic drugs for example
  • Made it slightly more difficult to reopen a closed bleeding wound, so that it doesn’t happen as much just by walking around.
  • Characters now have sizes when upright, sitting and lying down. By default this is determined by race but can be influenced by effects and merits/flaws
  • Planets now have a planetary radius
  • Added some new abilities to take advantage of effects in progs
  • Added a new type of effect to give bonuses/penalties to stats and skills
  • Improved the way TCP connections are handled (particularly when they disconnect “messily”). This has also made the timeout functionality work properly.
  • Skills can now be set to have both a “practical” and “theoretical” value, which is improved by different activities and the average of which determines the actual skill level (for most tasks).
  • Improved the way that bleeding in the airway is displayed
  • Added in a “Second Wind”. Every character by default can benefit from a second wind that returns a large amount of stamina the first time that they run out within a particular period. Merits and effects can also give additional second winds under particular circumstances (when wounded, when fighting x or more opponents at once, etc).
  • Radios can now have named channels
  • CPR can no longer keep someone alive who has been totally or almost totally exsanguinated.
  • Implemented a literacy and writing system. See SCRIPTS, SCRIPT, READ and WRITE in game. Room/Item/Character/Other descriptions can now include written text that displays only to people who can read it. At the moment pens, pencils and crayons are in as writing implements as well as individual sheets of paper. Books and graffiti coming soon.
  • Base work on the crafting system. Still not complete.
  • Added an item type for Power supply items that are only turned on by progs
  • Base movement speed is now influenced by how much weight you are carrying and an armour use check.
  • Combat stamina usage is now increased by how much weight you are carrying and decreased by an armour use check.
  • Implemented a SMASH command for smashing items (and door) with unarmed attacks and weapons. You can also smash the locks off of things without smashing things.
  • Grouped similar looking wounds in the look command so you now see “a small cut (x7)” instead of “a small cut, a small cut, a small cut…”
  • Zones now calculate the coordinates of their containing rooms automatically, to aide in pathfinding AI.
  • Added Staggering Blows as a type of unarmed and armed melee attack. These make the target roll a check to stand up factoring in relative strength and attack damage if they are hit, and if they fail can cause them to be delayed in combat or be knocked prone. These moves also end clinching if successful so represent a high-strength counter to clinching.
  • Added in crossbows. Crossbows function similar to bows but have a multi-stage loading process. In the near future bows will be changed to drain stamina while being held loaded, something crossbows will avoid.
  • Added in a system of Allies. You can declare people allies and trusted allies. This means you will automatically consent to certain non-hostile but consent requiring actions (rather than having to type ACCEPT) and also that you will not target these people in combat with hostile moves (though if they are hostile towards you this is removed automatically).
  • Added a command to dress another person (or corpse), as well as a command to temporarily consent to someone else dressing and undressing you. See DRESS.
  • Added in the ability to limit the size of exits so that only people smaller than a certain size can fit through, and also optionally the largest size that can fit through upright (so people between the two levels will have to crawl to get through).
  • Lots of bugfixing (see various discussion threads for examples)

Alpha-005 (Released 13 September 2016)

I got really bad at keeping patch notes during some major testing blitzes and the subsequent laze carried over into features too. Major highlights include:

  • Rescue and Guard system for combat, as well as guarding items
  • Concept of “Power Sources” for powered items. They can be battery powered or have a “Power Supply” that plugs in to something else that produces power (e.g. a generator). Batteries are also optionally rechargeable (and there is a battery charger item type).
  • Handheld radios (which you can TRANSMIT to talk on), as well as Listening Bugs (which automatically broadcast all heard speech while powered)
  • SET BRIEF setting to show only brief room descriptions as you move about, and SET COMBATBRIEF to show only combat messages pertaining to you.
  • Numerous improvements to delayed actions that pick up when targets have quit, died, moved, been engaged in combat, etc.
  • Implemented ranged combat (throwing weapons and bows currently – crossbows and firearms soon to come). This includes a number of combat settings that control how you act at range. There is also a concept of “Cover” – different rooms, terrains and even items in rooms provide cover, which you can see with SURVEY COVER. When you take cover, it will be relatively effective at protecting you from ranged attacks, but can make you vulnerable if charged in melee.
  • Combat setting to control whether you’ll go charging off after people automatically if they shoot at you.
  • Substantial performance enhancements – the startup time of the MUD is down to 25 seconds. I believe I have got to the bottom of why NPCs and Guests were taking so long to load.
  • Item destruction is now in and working well – your weapons and armour will take a fair beating and will eventually be destroyed. Clothing and armour with >50% damage also do not hide wounds or garments underneath themselves. Coming soon will be the ability to repair this damage (currently no way to do so).
  • New VITALS will allow you to check someone for breathing and a pulse
  • Lots and lots of combat balancing.
  • Too many bugfixes to list – but I got some long standing critical ones. The MUD seems fairly stable in “old” content now – most of the crashes lately have been in new content, which is a good sign.

Alpha-004

Surgery:

  • Created a system for surgical procedures
  • Initially implemented procedures include Medical Examination (used to determine general health and physiology of patient), Triage (used to quickly assess stability and criticality of a patient, as well as useful in identifying potential internal wounds), Amputation (cutting something off), Repartation (attaching something that has been cut off back on), Exploratory Surgery (determines internal bleeding and organ damage in a patient), Internal Trauma Control (stops internal bleeding), Anasthetic Assessment (determines dosage level of anasthetic for patient).
  • Tidied up system for internal injuries to reflect the new model
  • New Merit types: Surgery Finalisation Merits (makes it easier or harder to stitch someone up after you do surgery on them), Conscious Amputation Merits (makes it easier or harder to amputate from people while they’re still awake)

Infection:

  • Created a system for wounds, bodyparts and organs to become infected
  • Infections have different types; initial types will be Simple Bacterial, Infectious, Gangrene, Necrotic and Fungal. Each infection type has different effects and different vectors of spread. Different locations may have super deadly infections that can be caught (don’t swim in a sewer with open wounds or you will die).
  • Wounds become infected when in infectious environments. Antiseptic treatments are the most effective defense, but a clean wound is substantially less likely to become infected.
  • Once infections take root they will get better or worse over time depending on the traits, merits/flaws and effects of the user. Initially in LabMUD this will be largely based on body by default, with a couple of merits/flaws added for infection resistance or susceptibility. Certain medications will give an infection-fighting effect while they’re in the system – some medications may be only effective against certain types of infection too, so rare infections might require rare medications.
  • Infections that get to a certain strength may spread – depending on the infection type this may mean spreading to another wound, spreading to an adjacent bodypart (gangrene for example), spreading to a specific organ (for later planned organ-attacking infections), or even spread to other people in the vicinity (Infectious).
  • Some infections can do permanent damage that cannot be healed if they get to a high intensity (Gangrene, Necrotic). Outside of this, infections mostly cause a substantial amount of pain and lack of wound healing unless they get into an organ; untreated, this may lead to death.

Sweating:

  • Characters now sweat when they exert themselves heavily.
  • Sweating will soak through to worn clothing as well as making you thirsty. Clothing will show up as (sweat-damp), (sweaty) and (sweat-drenched) as it gets more sweat on it, and then (dried sweat) when the sweat dries. Sweat can be washed out of clothing by players with water, just like blood.
  • At the moment the amount of sweat produced by each bodypart is determined by its relative hit chance…this is a temporary workaround, in future bodyparts will be able to set their “relative sweatiness” so for example “chest” and “groin” can sweat more than “fingers”.
  • The cut-in threshold has been set at “Heavy” exertion (in the future you may sweat at lower levels in hotter weather, but there is not yet a weather system). The balance of this may need to be calibrated but initially if you do something that keeps you at an average of “Heavy” exertion for approximately 30 in-game minutes (6 RL Minutes), you will get about 4 in-game hours worth of passive thirst (which is roughly equivalent to real world based on my research).

Biology:

  • Added several new internal organ types: Intestines, Stomach, Spine, Lung, Trachea, Spleen, Kidney, Esophagus
  • New functional bodypart: Tongue (required to speak)
  • Damage to your ear organs now causes deafness. Note: ear organs are not the same as the ear locs.
  • Damage to Esophagus, Stomach or Intenstines makes eating and drinking difficult. This will tie in with surgical procedures to attach IVs so food and water can be given intravenously for people with such injuries.
  • Implemented a breathing system. Races can be flagged as needing to breathe, and also flag which fluids they can breathe.
  • Rooms have a fluid for their atmosphere. This is by default determined by terrain. Most terrains would have a breathable air gas – underwater locations would have water, space might have nothing. Eventually the intention would be for effects/spells etc to be able to override this.
  • In order to breathe, a being needs to be able to breathe the fluid in the room they’re in, and have at least one working lung and trachea. Both of these organs are highly susceptible to internal bleeding – a dagger or gunshot to the lung could now cause you to drown in your own blood.
  • On the 10-second health tick, a being needing to breathe will take hypoxia damage to all of their organs if they cannot breathe. The amount of damage taken is determined on a per-organ basis, and is designed to be fairly slow (except to the brain, where it is configured to cause damage sufficient to cause unconsciousness after a minute or so).
  • Hypoxia damage is relatively quick to heal if it is minor.
  • Reworked how organ damage is applied – certain damage types (Hypoxia, Electricity, Crushing, Shockwave) always have a chance to damage organs, Piercing/Ballistic wounds have a chance on “Moderate” or higher wounds, and all other types require a “Severe”. Chance to damage an organ is then determined by the organ’s hit-chance. This means for instance that crushing wounds to the head are basically always going to be dealing damage to the brain for example, and a moderate stab to the chest has a chance of hitting a target’s heart – but it would take a severe chop to get the same result (this is balanced out by these wound type’s ability to cause bleeding).

Drugs:

  • Implemented a system for drugs. Admins can build different drugs, and the drugs can currently be ingested (via pills), inhaled (via smokeables) or injected (via syringes). I also intend to create drug-grenades, drug-soaked-rags you can hold up to people’s faces, and drinkable drugs in the future.
  • Each drug can have a number of different effects at different intensities. So for example one drug might be an anasthetic and also damage the liver.
  • The current drug types I have in are:
    • Anasthetic – applies increasingly larger skill penalties and eventually knocks you unconscious. Above certain levels, you will stop breathing, and above even higher levels, your heart will stop.
    • Analgesic (i.e. Painkiller) – gives an overall reduction in pain based on its strength. At extremely high doses an analgesic effect could make you immune to pain completely.
    • Antibiotic – gives resistance to infections of certain types based on its strength.
    • Antifungal – gives resistance to fungal infections based on its strength
    • Immunosuppressive – gives penalty to resistance to infections of all types, but stops replanted/transplanted organs and bodyparts from being rejected.
    • Organ damage – drugs that do this effect damage an organ based on their strength. For example, common painkillers probably also do damage to the liver – so don’t go popping 50 pills to make yourself immune to pain in combat, because you’ll probably kill your liver.
    • Neutralise another drug – these drugs act to quickly neutralise and cancel out another specific drug. This might be used for example with a reversible anasthetic.
  • I intend to add more drug types in the future, including narcotics as well as tailored combat drugs.
  • Drug concentrations are relative to the weight of the patient – big bulky warriors will need more anasthetic than children and scrawny tavern sitters. There’s also the possibility of traits, merits/flaws and racial contributions to concentration effects.
  • Created pills which can be swallowed to deliver drugs, as well as adding the possibility to add drug delivery via smokeable items on drags.
  • Created the ability of liquids drugs, as well as a syringe item type which can be used to inject them. Be careful when injecting drugs in this way because you’ll precisely control (and therefore need to know) the dosage!

Progs:

  • Some enhancements to Gender in Progs mostly relating to use in messages – e.g. him/her, he/she etc.
  • Added Roles to the prog system, allowing characters/chargens to be tested against the presence of roles in progs (useful for building secrets/secret areas as well as in a few chargen options), and exposed some properties of roles to the system as well.

Inventory:

  • Implemented on a helper system to control automatically manipulating tools and reagents so that surgery and eventually crafts (and magic, or whatever other systems need it) use the same system. This would mean that if you had multiple phases requiring that you wield different tools, the system will automatically get those tools from the room, containers (in the room or on your person), sheathes, attachments etc, and put tools back when done.
  • The health-related commands like bind, cleanwounds and suture all now use Inventory Plans to get their curable items, which means you don’t need to worry about fiddling around with such items in the heat of the moment.

Core Framework:

  • Significantly reworked a number of performance-impacting data types (characters and items being the prime culprits) that could cause big performance stalls when a bunch of them were loaded for the first time at once. These are now “late initialised” in a  batch, which means the database only needs to be hit once. For example, when loading a player for the first time and loading all their items to outfit them, the MUD would stall for 4-5 seconds. The same outfitting procedure now runs under 0.1 seconds, which is low enough to not cause any lag.
    • I suspect the reason it still takes even 0.1 seconds is because of the way effects are loaded and I think I could get some more performance increases in this area with some effort, which is forthcoming.

Alpha-003 (Released 09-05-2016)

Bodypart Damage:

  • Added an admin command (and backend code) for reversing limb severing. This code will also be important in reattaching limbs (through surgery or magic), systems coming in future.
  • Added display of missing limbs when looking at someone
  • Added information on missing and critically damaged bodyparts to the WOUNDS player command
  • Added requirement to have at least one working eye bodypart to see things, thus giving a consequence for eye damage
  • Changed some of the logic around what happens when a bodypart suffers critical damage in order to make the system easily expandable to new kinds of bodyparts.
  • Added instant death effect when a “Brain” bodypart is critically damaged, loss of consciousness when less critical damage is taken.
  • Added instant death effect when the “head” limb is severed – while the head was previously severable and even produced a neat severed head, the only prior consequence was the loss of places to wear a hat
  • Added “prosthetic” item type that replaces lost limbs. Prosthetics can be obvious or natural, and functional or non functional. Updated attach and detach commands to work with prosthetics.

Wear Profiles:

  • Implemented long-overdue admin building commands for wear profiles. These control which bodyparts worn items cover, among other things such as transparency, preventing removal in stacks, and whether they are mandatory. This means it’s much easier to build worn items outside of the kinds we’ve already thought of without the need for database hacking.
  • Added a new “Hides Severed Bodyparts” flag for Wearloc Profiles. The prototypical example would be shoes hiding whether toes are severed. By default though most clothing should not hide what has been severed unless it is designed to do so.

Chargen:

  • Added the ability to view helpfiles for skills and attributes from within their respective chargen screens
  • Added a check when selecting skills to ensure that at least one language is chosen

Bugfixes:

  • Fixed an incorrect limb damage effect when severing limbs
  • Fixed a bug where certain bodyparts required for something to be worn were occasionally ignored.

Alpha-002

Limbs and Limb Damage:

  • When bodyparts on a limb take too much damage, stun or pain, the limb may be disabled until some of that damage has dissipated.
  • Implemented system of “Limbs” for bodies. Limbs currently include Arms and Legs, but will eventually include Wings and Tails as well
  • When arms are disabled, any “hands” locations on that arm drop what they are holding
  • When legs are disabled, target may fall over if they have less than the required number of limbs to stand up (2 for bipeds, 3 for quadrapeds, etc)
  • Disabled arms cannot be used to pick up new items, manipulate (open, close, attach etc) or attack in unarmed combat
  • Disabled legs cannot be used to stand up
  • Require at least one working arm to crawl
  • Implemented permanent severing for limbs
  • Implemented bodypart items for severed bodyparts

Miscellaneous:

  • New “Electricity” damage type, which causes burns and uses electrical conductivity material properties to determine damage reduction.

Bugfixes:

  • Changed how the selection of random bodyparts for attacks to target works to fix a logic error that was causing certain “front only” bodyparts to be selected more often than they should’ve been (e.g. shins copping a beating)
  • Fixed a crashing bug with using the admin “As” command on NPCs.
  • Fixed a crashing bug when an effect was deleted while it had pending changes in the save queue (short lived effects)
  • Fixed a display problem with the admin “Effects” command.
  • Fixed a bug with “direct” bodypart group describers failing to describe their group
  • Fixed a crash bug to do with NPCs unintentionally “look”ing while being loaded
  • Fixed a bug where items could disappear into the ether when being loaded into an inventory and not being able to be used in the way it was used prior to the save.

Alpha-001

Optimisation:

  • First pass at optimising item and character loading back to acceptable levels. Approximately 75% performance improvement on load largely due to inventory loading optimisation. More work required especially for very large inventories.

Progs:

  • Added “Count” property to collections
  • Added “AddRange” statement for adding collections to collections

Inventory:

  • Added a hard limit to the number of items that you could stack on top of each other (no more wearing 500 jumpsuits at a time).
  • Added a “Bulky” flag for wearable items that prevents other bulky items from being worn on top of them.

Bugfixes:

  • Fixed missing logic for hourly prog schedule intervals
  • Fixed bug where “Wielding” something you already wield simply made you wield it in more hands until you ran out of hands
  • Fixed a bug related to the order in which things happened when an item was deleted (or used up), which could mean that an item would be left in somebody’s inventory after it should’ve been deleted. This also sometimes led to a crash when they later gave that item to someone else.
  • Fixed a bug in a certain form of displaying descriptions to people (usually found in chargen) that could display incorrectly, as well as missing the “height” attribute.
  • Fixed a case where certain inventory actions were supposed to be “silent” (i.e. not echoed to the player) but were still echoing.
  • Made characters stop what they are doing when they lose consciousness or die (no more binding wounds from beyond the grave or the veil of sleep)
  • Fixed a crash bug to do with adding skills to a characters via admin command
  • Fixed a bug to do with incorrect bracketed emote behaviour in the manipulation commands (open, attach etc)
  • Fixed a bug whereby you couldn’t stop fleeing once you had started fleeing
  • Fixed up logic for targettng worn items when removing them so it would target “top layer” items first, so it wasn’t so hard to remove layered inventory
  • Fixed a bug where the order in which things were saved could sometimes cause a crash when saving a player’s inventory when two people were giving each other items, where

Leave a Reply