I’m currently developing a turn based game. I plan to have magic spell abilities that will involve a lot more than just playing an animation on a rig (Think a fireball spawning in).
I look at games like Elemental Battlegrounds and I’m curious in how they handle asset theft in regards to their spell animations. Are they protected? If so, how is it done?
My current plan is having the client play the animation and send a remote when it reaches an animation event so the server can do all the complicated and valuable stuff.
The effects for things like this generally play on the client, and other clients receive an event to start the same effect at the same time. You can’t protect the animations since they have to play on the client no matter what (or you wouldn’t see them).
I understand that the animation on the character model can be stolen, but what about the actual effects? If I create and launch the fireball on the server, synced up with the animation through animation events, then the client doesn’t have access to the fireball script.
Or, would that solution be too laggy? I’m fine with eating my potential losses and keeping it clientside.
I mean, you can always just run the animation on the server, since animations get auto replicated to the client. To my knowledge, animations can’t really be stolen unless they get the key frames and if you create fireball on the server, they won’t be able to steal it.
From what I heard, Remote Events can be accessed by exploiters (as in sending an event from the client), but it should be fixable by having the server check for aomething to only allow the legit remote events to pass
I think I should clarify that the animation on the rig and the rest of the animation are two different things.
Yes, I know the animation track can be stolen, and there’s nothing I can do about it.
I’m talking about the additional effects: Like a pillar of light coming down from the sky. That’s not done through an animation object, that’s done through scripting.
Yeah, I’m just worried about lag and desync. I’m currently making a very crude animation + fireball attack to see how this works out. It’s a promising idea, and I’ll let you guys know if it works out or not.
Well the only way to steal it at that point is to reverse engineer the whole animation off eyesight alone. Which is pretty impressive, and at that point I don’t think many people are going to put in that effort.
Well, the testing has been done, and animation handling on the server is supbar due to replication lag. It was noticeable even in Studio, so unfortunately, I think I’ll have store the animation script on the client.
@azqjanna , I’ll mark your answer as the solution. I can see why effects should generally, if not always, be handled on the client.