Server-side Curing

IanirIanir Administrator, Moderator Posts: 473 Creator
Hi again, everybody!

So, in the coming weeks, we're going to be taking a good, hard look at implementing server-side curing. This is going to be a huge project and, as such, we're generally am interested in hearing the player's voices on the matter and gathering ideas about specifics.

First, though, I would like to iterate a few things.
* This is not an update of FirstAid: I intend for this to be a competitive solution that doesn't require equilibrium and a diagnose every usage, and will be tracking afflictions from hidden sources and random sources into account as it exists to ensure it does not feel like it has a godlike overhead view for curing.

* This is not fully intended to replace client-side systems: While I want it to be competitive, it should not be an end-all-be-all; a finely tuned system geared toward the player using it should be able to outcure it, and I am not going to cover every single case that may pop up.

* It should be customisable: With focus as it exists, players should be allowed to set a number of focusable cures if they need it, and even be able to swap these on the fly.

* It should be interactive: Lusternia's combat system is heavily based around hidden afflictions in many places, and while best guesses can be made, the built-in curing will not handle all cases, so we will be providing a way for players to 'predict' what afflictions they have and the system will attempt to focus on those, benefitting the correct and possibly wasting balances of the incorrect.

* It will not be done in a week: This is a large undertaking, and to ensure the game continues to run smoothly, we will likely need to optimise the system - even if it is coded in a week by some miracle, it will likely not be released until we are happy with the performance underneath the hood.

* It will not handle defenses (yet): Lusternia's defense system is, underneath the hood, still covered in cruft. We have plans to look into this, but it will take a lot more time and may even be beyond the scope of this system in general anyway. A few exceptions may be made on a case by case basis for ones that are considered vital (insomnia, truedeaf, trueblind), but no promises.

* Yes, we are coding envoy reports first. Stop asking me every time I reload the code or open my mouth if succumb is fixed.


So, given that, we would like to hear any input you may have. Are there things you want to see in the system? Things you feel should work certain ways? Do you feel we should emulate a standard latency with curing like some other games do? Let us know!

- Ianir
Forum Avatar drawn by our lovely Isune.
«1

Comments

  • MalariousMalarious Member Posts: 581 Master
    No standard latency potentially. Heck if you could have an option to cure the instant you get an aff (before the prompt even), that'd even be neat.

    Can we implement the chain cure setup though? cures <cure> <cure> <cure> <cure>  Or something that allows location? Maybe allow an aff to trigger a focus?   CURE ANOREXIA SLICKNESS DAMAGEDTHROAT, and it would try all those in focus.

  • CiaranCiaran Member Posts: 771 Mythical
    edited March 2017
    Is succumb fixed yet?

    Edit: But yeah, will it have latency coded into it?  My system is pretty great, but I can't ever overcome my .3s average latency.  If you want clientside to be competitive, you'll have to include a built in lag.

    What are your thoughts on that?
    To me you're forever the kick runner from 3 years ago, the guy who does domoths when no one is online and whines that he's got no competition, and the guy that use to only turn up to fights when the numbers favoured him.
  • XenthosXenthos Shadow Lord Member Posts: 5,819 Transcendent
    No to implementing a latency; it's going to be a generic "one size fits all" (though maybe with some customization allowed), we shouldn't be intentionally adding overhead to it.  Just make it work.  If someone wants the flexibility of being able to control the whole thing themselves, then they have that option but it shouldn't then make everyone else slower too.

    I mostly just want something that I can actually use.  If it's hamstrung with limitations to the point that it's better to have your own system, then people will still feel required to have their own system and that kind of defeats the whole point.
    image
  • ShedrinShedrin Member Posts: 905 Transcendent
    Ianir said:

    So, given that, we would like to hear any input you may have. Are there things you want to see in the system? Things you feel should work certain ways? Do you feel we should emulate a standard latency with curing like some other games do? Let us know!

    - Ianir
    No to latency.

    Off the top of my head, allow for toggling ignoring afflictions.
  • XenthosXenthos Shadow Lord Member Posts: 5,819 Transcendent
    One thing that really excites me about this is that with decent standard curing, it will make Envoy work more streamlined.  We will know how things are going to affect a significant portion of the playerbase without the "Oh, your system just sucks, blah blah" distractions that we've seen from time to time.
    image
  • DanquikDanquik Member Posts: 146 Master
    Well depending on how configurable it is,  the "your system sucks" might still be a factor.
  • BreandrynBreandryn Member Posts: 1,521 Transcendent
    GUYS I AM REALLY EXCITED!!!!!!!!!
    • Aeon curing may need some special love and/or options to help us customize what happens when we have it
    • CURING (the skill) may need to be removed and baked in to ssc or have some updates/fixes made. Currently it has a few bugs, such as causing lurching in aeon when you try to disable it
    • Consider message echoes and potentially including options such as full and brief. Some people like knowing what their system is doing and some just consider it spam.
    • Consider what the stance will be on things like consumeables and skills in ssc and incorporate that consistently. I've seen some frustrating situations where some things were allowed but it wasn't standard.
    • Consider placement (baseline in a skillset? A config?) and if you want this to be something breadcrumbed to (such as via the lamp or collegium)

  • CiaranCiaran Member Posts: 771 Mythical
    Side idea: If there is no latency for serverside curing, perhaps you could add in some tools for clientside to steer serverside completely.  Things that spring to mind are:
    Balance queueing, i.e.:
    QUEUE SMOKE STEAM [FOCUS <aff>] etc. (To control what the serverside curing does next, and chase balance without having to completely turn off serverside curing)
    Automatically instantly react to/ignore an affliction, i.e.:
    AUTOCURE [AFFLICTION] ON/OFF
    Adding afflictions/removing afflictions manually.

    I'll keep thinking on it. :)
    To me you're forever the kick runner from 3 years ago, the guy who does domoths when no one is online and whines that he's got no competition, and the guy that use to only turn up to fights when the numbers favoured him.
  • ShedrinShedrin Member Posts: 905 Transcendent
    Breandryn said:
    GUYS I AM REALLY EXCITED!!!!!!!!!
    • Aeon curing may need some special love and/or options to help us customize what happens when we have it
    • CURING (the skill) may need to be removed and baked in to ssc or have some updates/fixes made. Currently it has a few bugs, such as causing lurching in aeon when you try to disable it
    • Consider message echoes and potentially including options such as full and brief. Some people like knowing what their system is doing and some just consider it spam.
    • Consider what the stance will be on things like consumeables and skills in ssc and incorporate that consistently. I've seen some frustrating situations where some things were allowed but it wasn't standard.
    • Consider placement (baseline in a skillset? A config?) and if you want this to be something breadcrumbed to (such as via the lamp or collegium)

    Aeon isn't gonna exist how it is for much longer (hopefully).
  • XenthosXenthos Shadow Lord Member Posts: 5,819 Transcendent
    Breandryn said:
    GUYS I AM REALLY EXCITED!!!!!!!!!
    • Aeon curing may need some special love and/or options to help us customize what happens when we have it
    • CURING (the skill) may need to be removed and baked in to ssc or have some updates/fixes made. Currently it has a few bugs, such as causing lurching in aeon when you try to disable it
    • Consider message echoes and potentially including options such as full and brief. Some people like knowing what their system is doing and some just consider it spam.
    • Consider what the stance will be on things like consumeables and skills in ssc and incorporate that consistently. I've seen some frustrating situations where some things were allowed but it wasn't standard.
    • Consider placement (baseline in a skillset? A config?) and if you want this to be something breadcrumbed to (such as via the lamp or collegium)

    There's a report up for aeon that was already semi-approved by Admin and has near-universal Envoy agreement (report 1321) which will change how it functions entirely (and incidentally make it much easier to handle in this server-side curing system).
    Ciaran said:
    Side idea: If there is no latency for serverside curing, perhaps you could add in some tools for clientside to steer serverside completely.  Things that spring to mind are:
    Balance queueing, i.e.:
    QUEUE SMOKE STEAM [FOCUS <aff>] etc. (To control what the serverside curing does next, and chase balance without having to completely turn off serverside curing)
    Automatically instantly react to/ignore an affliction, i.e.:
    AUTOCURE [AFFLICTION] ON/OFF
    Adding afflictions/removing afflictions manually.

    I'll keep thinking on it. :)
    Being able to toggle afflictions seems fair, as well as being able to "override" what it wants to cure next with what you want it to via the Focus command.
    image
  • BreandrynBreandryn Member Posts: 1,521 Transcendent
    edited March 2017
    @Ciaran - in Aetolia I am pretty sure they added in healing balances to their version of strategems. I could be just dreaming that up, in which case we should implement it to make them jealous.

    @ianir - Some purely informational commands would be very useful to help us build our own systems around this, such as a way to see what affs ssc thinks we have.

    I'd also love it if the curing was smart enough to auto-disable during places it needs to disable, eg teleport, flinging soulless, etc. I mean, we're going to be manually disabling anyways for that stuff, why even have the newbcheck of coding in a disable?
  • CiaranCiaran Member Posts: 771 Mythical
    edited March 2017
    The other important question other than if there will be a built in latency is: How will serverside react to command failure?  There are tons of command failure effects in Lusternia, coming basically in two types: General command failure (stupidity/insanity/drunkenness/etc.), and specific command failure (anorexia/asthma/etc.). If serverside instantly recognizes command failure it will be automatically better than 99.9% of clientside systems out there.  However, if it has a biiig lag on command failure, it will be super easy to gimp people using serverside.

    Just food for thought.  I'd recommend something like a .4-.5s delay in recognizing general command failure, and I guess a .2-.3s delay in recognizing specific command failure. (Normally serverside would already know that you have anorexia and not sip, but if it was given under blackout, it'd have to simulate figuring out that you have the affliction).
    To me you're forever the kick runner from 3 years ago, the guy who does domoths when no one is online and whines that he's got no competition, and the guy that use to only turn up to fights when the numbers favoured him.
  • XenthosXenthos Shadow Lord Member Posts: 5,819 Transcendent
    Ciaran said:
    The other important question other than if there will be a built in latency is: How will serverside react to command failure?  There are tons of command failure effects in Lusternia, coming basically in two types: General command failure (stupidity/insanity/drunkenness/etc.), and specific command failure (anorexia/asthma/etc.). If serverside instantly recognizes command failure it will be automatically better than 99.9% of clientside systems out there.  However, if it has a biiig lag on command failure, it will be super easy to gimp people using serverside.

    Just food for thought.  I'd recommend something like a .4-.5s delay in recognizing general command failure, and I guess a .2-.3s delay in recognizing specific command failure. (Normally serverside would already know that you have anorexia and not sip, but if it was given under blackout, it'd have to simulate figuring out that you have the affliction).
    Those are fair points-- the exact numbers may be open to debate, but there should be some small delay before trying a command again after command failure. 

    Blackout is trickier, though-- do you have it just not do anything except sip health until you diagnose (and you could then do a simple client-side script for what you want it to "assume")?  Do you have it just try each of the cures on each balance?  Do you give it a toggle to let you do one way or the other?
    image
  • BreandrynBreandryn Member Posts: 1,521 Transcendent
    In Aetolia, they changed command failures to simply generic failures (removing emotes and nasty ones like secrets). Does Imperian do the same? In any case, it recognizes that you have the affliction but every command, even through curing, still has a 33% (I think that was the number) failure chance. The result was a bit quicker curing, but not overpoweredly-so. There might have been some other internal tweaks done, like maybe a hidden CD or something. I can't remember the details, but the end result I've seen in other IREs seems to handle stupidity fairly.
  • SsalissSsaliss Member Posts: 3,575 Transcendent
    Personally, I'd love to see all the current projects completed before another large project is begun. Finish the overhaul (i.e. get monks out), complete the defense overhaul so that all defenses are catalogued, perhaps have a look at some tradeskills (for instance, alchemy will lose a fair amount of stuff when all afflictions are overhauled), etc. Don't get me wrong, I'd love to see a server-side curing system, and I think it'd help a lot, but... yeah. It just seems like there are a lot of unfinished projects at this point.
    image
  • XenthosXenthos Shadow Lord Member Posts: 5,819 Transcendent
    Ssaliss said:
    Personally, I'd love to see all the current projects completed before another large project is begun. Finish the overhaul (i.e. get monks out), complete the defense overhaul so that all defenses are catalogued, perhaps have a look at some tradeskills (for instance, alchemy will lose a fair amount of stuff when all afflictions are overhauled), etc. Don't get me wrong, I'd love to see a server-side curing system, and I think it'd help a lot, but... yeah. It just seems like there are a lot of unfinished projects at this point.
    A number of projects are actually getting completed very shortly, which is why this one is now being talked about.  They're on almost the same page as you in that regard.

    Tradeskills can be done via reports (a special report if required for certain ones), imo.  Most aren't going to really have that much of a problem, only a couple (alchemy and possibly herbs).
    image
  • PhoebusPhoebus tu fui, ego eris. Member Posts: 1,889 Transcendent
    Ssaliss said:
    Personally, I'd love to see all the current projects completed before another large project is begun. Finish the overhaul (i.e. get monks out), complete the defense overhaul so that all defenses are catalogued, perhaps have a look at some tradeskills (for instance, alchemy will lose a fair amount of stuff when all afflictions are overhauled), etc. Don't get me wrong, I'd love to see a server-side curing system, and I think it'd help a lot, but... yeah. It just seems like there are a lot of unfinished projects at this point.
    Ianir has been making extremely good pace with multiple projects at once so far. I trust his judgment on how many projects he and his fellow codeslavesfriends can handle at the same time.
  • JaspetJaspet Member Posts: 27 Apprentice
    Ianir said:
    * This is not fully intended to replace client-side systems: While I want it to be competitive, it should not be an end-all-be-all; a finely tuned system geared toward the player using it should be able to outcure it, and I am not going to cover every single case that may pop up.

    ...

    Do you feel we should emulate a standard latency with curing like some other games do? Let us know!
    Wouldn't a system without simulated latency end up creating a huge disadvantage for people using their own clients? Because in the time that my client has seen the affliction message and sent an appropriate response, someone else using server side curing has already fixed it and started the cooldown.

    I feel like, if your goal is to keep player created systems viable, the goal should be to keep parity between the tools that you're providing and what players can already do.
  • DanquikDanquik Member Posts: 146 Master
    Client side systems offer the advantage of being fine tuned to you in many regards, including tieing more directly into your offensive system.

    If you are the make an alias and spam it type server side will suit you fine, but at the top tiers of combat having your own system will be a noticeable difference.

    For instance there are all sorts of alternative cures and unless serverside, and it just might be, is accounting for every variable of special cures, shrine cures, org potions, and what not then you will only get that indepth in client side.
  • FalaeronFalaeron Jolteon Member Posts: 1,650 Transcendent
    The best curing will still be limited to those who have made an efficient client-side system to control how a server-side system works. For example, a client-side system could decide that in a certain situation cure priorities need to be adjusted on the fly.
  • KarsavKarsav Member Posts: 14 Novice
    Ianir said:
    Hi again, everybody!

    So, in the coming weeks, we're going to be taking a good, hard look at implementing server-side curing. This is going to be a huge project and, as such, we're generally am interested in hearing the player's voices on the matter and gathering ideas about specifics.

    First, though, I would like to iterate a few things.
    * This is not an update of FirstAid: I intend for this to be a competitive solution that doesn't require equilibrium and a diagnose every usage, and will be tracking afflictions from hidden sources and random sources into account as it exists to ensure it does not feel like it has a godlike overhead view for curing.

    * This is not fully intended to replace client-side systems: While I want it to be competitive, it should not be an end-all-be-all; a finely tuned system geared toward the player using it should be able to outcure it, and I am not going to cover every single case that may pop up.
    My problem with this is that a server-side curing system that significantly underperforms compared to client side curing isn't really a competitive solution. If there is significant advantage to using a client-based system then the client-based system is still going to be mandatory because you're still going to have to balance classes around client-side healing capabilities. 
  • LeradLerad Member Posts: 2,403 Transcendent
    edited March 2017
    I think the customisation is probably the most important part of a serverside system, because it makes the serverside system comparable to a client side without being clearly better or worse.

    100ms delay to emulate latency sounds reasonable to me, if we want to standardize serverside curing with other IRE games. I know we usually try not to do the same things, but this really should be an IRE product (like Nexus, or the Flash client), and not a game-by-game product. That said, I know that it's impossible to ask for IRE to standardize their server-side curing systems all the same way, as the meta for combat in each game can be quite different and warrant different considerations. Latency, though, I believe would be one of those aspects where following the best practices of oither IRE games is a wise choice.

    Regarding things like stupidity and jinx, you can simply have it emulate general best practices in player code. Pick one of the systems out there, see how it tries to code for command failure, and have the server-side system follow that thought process. For example, if it's a tempTimer check (send a command, start a tempTimer of 0.5s, after which resend command if there is no confirmation message) then simply have the serverside system resend failed commands after 0.5s, or something like that.

  • FalaeronFalaeron Jolteon Member Posts: 1,650 Transcendent
    1) I don't think most players care if the system available to them is not the top tier system out there. Many players only care about PK on a basic level, or are only interested in curing for bashing and other non-PK activities. A server-side system that functionally works, even if not very well, will likely be enough for most of these players.

    2) The idea that if you use server-side you are not using client-side or vice versa is a false dichotomy. There will likely exist a space for both to be used in tandem. In fact, I wouldn't be surprised if this is what the top tier "systems" will end up doing - a client-side system that works in tandem with the server-side system, effectively taking the best of both worlds.
  • LuceLuce Fox Populi Member Posts: 2,335 Transcendent
    I think you just ruined a perfectly good pair of mmf-coder pants.

    To echo what others are saying, ideal system should be client-side tweaking the server curing on an as-needed basis ("Shuyin just walked in with claws and started wailing on me, better shift transmology and paradigmatics affs up the prio list.", "I just switched from Healing to Hexes, gotta throw the old curelists in the rubbish bin and start over.", "Maligorn just dropped Westwind, I should lower the priority on a couple of those affs.") while letting the ssc deal with the 'heavy lifting'. It would also likely be tied in to your movement and offense too (things like Scentgo, mapping, sprinting, and accounting for Furrikin Roll/Wriggle, pausing your attack queue so you can fly/run/shield, etc.) in ways that ssc either can't or shouldn't account for.

    That said, a couple questions, O Unusual One:

    Will SSC have the ability to remember priority sets?
    Will it be able to account for artifacts you own/are loaned?
    Can we dispense with the newbcheck LIGHT PIPE mechanic yet?
    After SSC is a thing that exists, will we revisit the collegia that currently have curing/healing 'courses'?
    Who is John Galt? Will SSC be able to work properly while locked into an aether module?

  • IanirIanir Administrator, Moderator Posts: 473 Creator
    Luce said:
    I think you just ruined a perfectly good pair of mmf-coder pants.

    To echo what others are saying, ideal system should be client-side tweaking the server curing on an as-needed basis ("Shuyin just walked in with claws and started wailing on me, better shift transmology and paradigmatics affs up the prio list.", "I just switched from Healing to Hexes, gotta throw the old curelists in the rubbish bin and start over.", "Maligorn just dropped Westwind, I should lower the priority on a couple of those affs.") while letting the ssc deal with the 'heavy lifting'. It would also likely be tied in to your movement and offense too (things like Scentgo, mapping, sprinting, and accounting for Furrikin Roll/Wriggle, pausing your attack queue so you can fly/run/shield, etc.) in ways that ssc either can't or shouldn't account for.

    That said, a couple questions, O Unusual One:

    Will SSC have the ability to remember priority sets?
    Will it be able to account for artifacts you own/are loaned?
    Can we dispense with the newbcheck LIGHT PIPE mechanic yet?
    After SSC is a thing that exists, will we revisit the collegia that currently have curing/healing 'courses'?
    Who is John Galt? Will SSC be able to work properly while locked into an aether module?

    Switching and remembering focus sets and similar is a planned feature.

    It will likely check inventory, not artifact ownership, in these cases. This is more a speed thing than not.

    I'll get back to you on 'LIGHT PIPE' - Not a decision I can make myself.

    Regarding collegiums, we'll see. I'll keep that in mind, but that's more up to the patrons of each org.

    Don't see why it wouldn't re: aether module.
    Forum Avatar drawn by our lovely Isune.
  • MoiMoi Member Posts: 1,037 Mythical
    I am super thrilled by this announcement.
  • AnaklusmosAnaklusmos Member Posts: 79 Capable
    10/10 now all the IREs have actual SS curing!
  • VeyilsVeyils Member Posts: 1,457 Mythical
    Ianir said:
    Specific command failure is something I already have scoped to account for. General command failure was actually something I overlooked and will be adding to my plans formally tonight - I agree a command retry wait will be necessary for general command failure, and while numbers will need to be fine-tuned, .4-.5s does seem to be a good buffer for that.

    - Ianir

    That seems quite high. Right now certain american folks can get a back and forward latency of like under .1 so they've failed the command and tried it four or five times again in the space of a server side curer doing it.

    Also as a kind of link in to that its pretty common for people to code mutli entry systems when they know they are afflicted with stupidty/amnesia etc. So like could the server side system have something similar in attempting to eat/smoke any type of cure twice when under a command denial effect.
  • TaerTaer Member Posts: 95 Adept
    Just for numbers comparison, I have the very best available fibre broadband in the UK, at the highest speed. I consider myself lucky if I get better than .350ms latency to lusternia.com.
    email: martin@pharanyx.net
    Discord: Pharanyx#4357
«1
Sign In or Register to comment.