'SE' and 'easy solution' shouldn't be in the same sentance imo :/
'SE' and 'easy solution' shouldn't be in the same sentance imo :/
Wow we are still talking about whether or not it can be done. There hasn't been any real discussion on melee solutions during casting in like 3 pages. Thanks for going off topic again GG and turning another RDM thread into a quagmire that isn't even focused on what we were talking about.
I'm a RequieSCAT-MAN!
About to head out the door, but just a couple of things to comment on,
Firstly, I'm fairly sure that the actual spell casting time calculations and such are handled server-side at the start of the cast rather than client side or in real time. The cast time bar is just a graphical doodad which fills up at a rate specified by the spell's cast time in the .DATs (which is why it never adjusts based on fast cast, and instead you just see spells go off at 50% cast time) in the form of ([1/Cast time]*Pixel size of bar) pixels/second
This would also explain why you see the kind of lag that you do when spells are interrupted. Rather than sending a "Stop casting spell" command to the server in real time, I believe the server simply flips a boolean for "SpellInterrupted" to true whenever an attack/stun would interrupt casting. This boolean is then only checked when the game actually processes the end of the cast, at the same time that the server checks to ensure that the player's ending position is the same as the starting position.
You can see evidence of this in the way the server handles player movement while casting. As long as you end the cast in the same place that you start it, the cast will go through. This means that the client is most likely not sending any information to the server about casting status in real time, as then any movement would stop the casting of a spell.
This is also visible in the way the server handles gear swaps during casting. Casting time is calculated at the beginning of the spell, and potency is calculated at the end of the spell. Taking Fast Cast off in the middle of a spell won't change the rate at which you cast the rest of the spell.
These sorts of things are where I derive my server casting model from. Looking at that model, I'm not sure where I would inject a command to do anything about melee attacks. Overflow/queue errors can also become an issue in high-haste/low-delay scenarios. It's interesting to talk about (certainly much more interesting than normal red mage melee talk, I agree), I just think it would be extremely awkward to try and implement without redoing the system.
Edit: Mana. Shut up. This discussion is significantly more productive than half of the other threads in this forum combined. Rather than sitting off in fairy land where pissing and moaning equates to results, we're discussing how this might actually be implemented or jury-rigged into existence if they actually decided to take a look at it. I'd appreciate it if you kept your nose out of it if you aren't going to contribute in a meaningful way.
Last edited by Greatguardian; 12-11-2011 at 06:15 AM.
I will have my revenge!
Well, if it can't be done then what's the point of discussing it? But since our discussion is going a bit off-topic, how about this to contribute:
Enhancing Spell:
RDM 45) Subtle Sword- Self-only, potent Subtle Blow effect.
RDM 70) Boost-ACC- Does this exist yet? If not, it would help.
RDM exclusive, self-enhancing spells like Temper are the road to melee RDM...sorry, but it's the most realistic way to make it happen.
*How powerful are En-Spells right now? This should be the road to RDM melee, so a boost is in order if they don't make it worthwhile (worthwhile is just enough to not be wasting your time).
Job Trait:
RDM 30) Manablade- Attacks occasionally regenerate MP while wielding a sword.
This would activate around 10% and the amount gained would scale with levels (ex. Manablade II at 70).
I had no idea about this. It's interesting and disappointing at the same time!
Apparently you have dug around in the workings of the game a lot more than I have (not at all), so I'm gonna change my original (very computer sciencey, out-of-the-ass estimation) assumption that there's a 35% chance of them being able to do this to around 10% and closer to your estimate, lol. I had no idea that the game calculates an interrupt this way (now that I think about it, they do tend to happen closer to perceived cast-time...I just didn't know that's how it worked), and I definitely agree that this makes it seem like no, they are not keeping track of casting time continuously (the the start, stop work-around would probably not be able to be applied). Super interesting stuff though, thanks for explaining. I like the Internet sometimes.
Last edited by Selzak; 12-11-2011 at 06:49 AM.
It will be a sad day when people like Guardian and Byrth and stuff stop posting. No one else takes the time to explain things, and when people finally do make them quit these forums from sever headdesk, these forums will become like an untended garden (ie full of weeds)
And the topic was about meleeing while casting, not about rdm melee options. Not a single post was off topic.
If you are now magically making the tread about rdm melee fixes, it doesnt need any. However, that "Manablade" idea above sounds actually pretty good!
We never said it was impossible, merely that currently the server side event engine isn't set up for it. Only one action is allowed to be active at any point in time. They could change that but it would require an overhaul of the servers event engine, something you do not do without lots and lots of time and effort. This isn't like changing something client side where the worst you gotta worry about is a PC crashing or people moving where they shouldn't be. If you screw something up in the event engine the server itself would crash, meaning lost data / loot / fights. Could be scrambled world database's forcing you to revert to the last backup. It also could mean really bad things randomly happening, like getting 10K gil at the end of a fight, except the action never completes and that it keeps giving you gil until your character becomes corrupted. Or the monster casts a spell and it keeps processing until you die, and possibly more until the server crash's.
As for the technical aspects, there is no magic in real life. We system engineers do what we do because certain design's tend to work better then other design's. Action based event engines have proven to be the most efficient method of resolving tens of thousands of independent actions per second by thousands of actors (technical name for players and monsters in a virtual world). Other methods tend to be crushed after 30ish players as their are simply too many things going on for the server's processors and memory to handle while being coherent, things will start lagging and your actions will be delayed a few seconds. That and if the client had ~any~ say whatsoever in what was going on, then you'd see TPP that would instantly win you every fight and get all the drops you wanted.
Nice opinions as usual. Thanks for having opinions, expressing them while on the internet, believing you are actually capable of being right, and assume everyone that doesn't agree or think like you is wrong. I'm sorry you are rude and incapable of seeing that you are talking in nothing but opinions, but what i really don't understand is why you are on the RDM forums and posting about RDMs when you even admit you don't play it anymore. You don't even suggest ideas, you just sit on other people's discussions and act like you are a moderator or someone that is actually paid to be here. Stop being so condescending and actually suggest something or is being negative and getting in the way all you can do?
The obvious answers is obvious. You just build a condition on top of casting just like the devs did with Zanshin. If you don't realize why that is simple and would work you just don't really get programming. It's simple as pie and easy enough to implement that people could actually do it. The Devs are more than capable of doing this. The question is will they do it and is there anything that anyone can come up with other than gaining additional attacks that would benefit RDM more?
Thank you, that is wonderful. If I had more mp to use while meleeing, I would be a happier RDM, especially outside of aby.
Enspell damage is still in bad shape. SE doesn't comment if we are actually getting Tier IIIs or merit upgrades at any point.
I would prefer if they consolidated subtle blow and acc+ on Temper. I don't care if I have to merit for it, it would be worth it for the convenience of just casting 1 spell.
Last edited by ManaKing; 12-11-2011 at 05:56 PM.
I'm a RequieSCAT-MAN!
After surveying an internet's worth of images of people laughing, I've decided on this one.
I feel it best conveys the underlying bitterness within the humor of the phrase "The Devs are more than capable of doing this." I am confident they could set out to make a Peanut Butter and Jelly Sandwich and end up constructing two very sticky and biodegradable hats instead.
Although, you raise an interesting possibility with the mention of something like Zanshin. While it's not very probable the Development Bros could make it possible to melee while casting, a job trait that makes a character attempt one (or more) auto-attack round(s) if engaged when a spell is cast would probably be much easier to implement.
ITT: I don't know anything about programming. Kay.
Alright. I won't talk about any of my programming skills. But, let's have you stop talking about throwing conditions into a system that you don't understand. I'll give you a pseudo-code model that I believe is accurate, or extremely close to the one FFXI uses to process spell casting. You tell me where you'll "throw a condition", and what that condition is, and we'll see how this goes.
Kay? Kay.
Step 1: Client sends packet to server saying "Hey bitches, I'm firin' mah lazer"
>Server processes spell start request, confirms IsValidTarget, and checks player stats and spell stats to determine Casting Time, and records StartTime and StartPosition
>Spell Animation is told to start on the Client
>Server starts the conditional statement: (When CurrentTime = StartTime + CastingTime) and does nothing in the interim. No packets are sent to or from the Client in this time.
>Conditional statement is met. Server requests final stats from the Client. IsValidTarget and IsSpellInterrupted are checked. CurrentPosition is compared to StartPosition.
>If all of these checks pass, Player stats are read from the server and relevant effect calculations are run against Target stats. Effect is applied to relevant Objects.
>If any condition does not pass, player fails Spell Casting.
>Return.
You see, the biggest issue with trying to get the client to do something during casting is the fact that the client and server don't actually communicate while casting. Position data is updated in a separate module, so you can still move of course, but the combat module isn't actually receiving or sending any data to you.
Keep in mind that you're also limited from excessively increasing server traffic, as this could have profoundly negative effects especially for users living in a non-ideal DNS range (eg, about half of the EU, Australia, etc). The current system is built the way it is to minimize the dependence on constant communication in order to make a more pleasant/streamlined experience for all users.
Good luck.
I will have my revenge!
Wow nice and bitter as usual GG. I'm not trying to upset you, I just wanted you to realize you are leaving discussions open only to yourself.
This is an actual discussion and I thank you for it. Instead of you saying I see nothing but problems and no one can fix them, you say these are the problem and I don't see a fix for what we are talking about. For me, the fix is we adjust the way in which something would be implemented but keep the same idea. You can shoot down what I say next and I won't care, so long we keep moving on to the next generations of ideas.
If it would really cause that much additional server traffic than instead of having to do a conditional you just cause casting on RDMs to add a buff that gives them a guaranteed Double Attack on their next auto attack. We are still getting around the ungodly delay that gets in the way of more Hybrid play and it doesn't need a conditional check. It also adds a level unique tactics that adds synergy to a job that is trying to be a caster and a melee at the same time. There is no reason you wouldn't cast a spell before doing CDC or Mercy Stroke, because it would be pure profit.
As far as implementing it, you could add it as a 2nd functionality to Temper if you didn't want RDMs to learn it until later. If not, then make it a job trait and share it with DRK (*cough* give us OA in return). If you wanted there to be an upgrade to this trait, then either make it apply to the next 2 auto attacks or grant a Triple Attack instead of a Double attack. Additional double attacks are more suited to multi-hit WS while Triple attack is more suited towards single hit WSs, like relic WSs.
I'm not going to undersell how powerful this would be, but honestly RDM needs something to get them back in the game as a legitimate piece. We are all aware that the delay between actions is one of biggest downfalls of hybrid play. At least if we are dealing with it in some way, hybrid jobs won't always have to suffer for it.
Fire Away Sir.
Last edited by ManaKing; 12-12-2011 at 05:38 AM.
I'm a RequieSCAT-MAN!
|
© SQUARE ENIX FINAL FANTASY, SQUARE ENIX, and the SQUARE ENIX logo are registered trademarks of Square Enix Holdings Co., Ltd. Vana'diel , Tetra Master, PLAYONLINE, the PLAYONLINE logo, Rise of the Zilart, Chains of Promathia, Treasures of Aht Urhgan, and Wings of the Goddess are registered trademarks of Square Enix Co., Ltd. The rating icon is a registered trademark of the Entertainment Software Association. All other trademarks are the property of their respective owners. Online play requires internet connection. |