About Store Forum Documentation Contact



Post Reply 
Something about skills in (mmo)rpgs, and such
Author Message
Nito Vermilion Offline
Member

Post: #1
Something about skills in (mmo)rpgs, and such
Hi folks,

At first: keep in mind that this is neither finished nor something that could be called "ready for implementation". And also that I`m not a professional programmer nor I`m advanced enough to discuss this on the base of the esenthel engine.

What I just want to discuss is the following:
My initial reason why I post this here is because I read many posts about "omg, I just finished my world. How do I do damage on mobs O.o" and these threads in mass. (not on this board though).
What I just want is to state my personal thoughts about how you could implement such things. Don't know whether if it is a good example or a bad one but at least it's something. Maybe someone get's the spark for his/her system.

The following is an easy example how I think a "skill system" or at least an attempt on "how a non tab target system" could work.
Anyway you are free to take this idea and gather any brilliant ideas or w.e. from it. And you are free to leave any impression or thought about it as well.

--------------------------------------------------------------------------
Every Object is made of Cylinders (can be another form or so, cylinders are just nice to work with). Means every player, npc and object is made out of cylinders which determines its position and also its volume in the world. That means the player position P is a function of the coordinates x, y, z plus the time. P = P(x, y, z, t). With that you can evaluate the collision value while executing a skill. Collision Value is a value which determines if an attack hits or misses.
Let`s say we have an example attack with a 360° weapon swing (skill id 1) then I`d say you could divide the “battleground” into 4 zones like the following. Each zone has also their respective task time which means any object which is within the zone is “targeted” means it gains collision value = 1/true/… because the object stood in the to be attacked area.
For example Zone 1, task time = 100ms, Zone 2, task time = 200ms, … and so on.

[Image: unbenanntmlt.png]

The red arrow means the camera or basically the player is facing this direction
After that collision check we can sort out which object takes damage and which does not.
Means the whole attack is divided into 4 steps whose are also divided into collision checking and damage evaluation/damage giving.


So if the player presses the button f1, assigned with skill id = 1 “360° Sword Swing” then the following should go through.
Code:
<skill id 1>
<sequence 1>
<collision check sequence>
Time t = 100ms, collision value = “value, …” (evaluate the position of objects in the zone 1 with P(x,y,z,t))

<Skill Effects damage: “dmg_value” (evaluation by another function or so), heal= “heal_value”, aggression = “value”>

</Skill Effects>
</collision check sequence
</sequence 1>

<sequence 4>
</sequence 4>
</skill id 1>
/pseudo-code
With this you should have a at least basic version of an example skill.

Do not know if that helps or not. Any have fun with it. I`ll investigate it after I finished animating my characters -.- (such a pain in the ***)

cheers, nito

[By the way]:

I know that there is much more than just that. For example the collision checking like this (physical check, is x,y,z = x(attack zone1), y(attack zone1, z(attack zone1)) is too much work to do for cpu (server side) but as I said just an idea. I will update this when I`m working on it properly. I think of dividing the world into special units (squares) and evaluate the position by them but who knows....
(This post was last modified: 04-20-2013 10:39 PM by Nito Vermilion.)
04-20-2013 09:45 PM
Find all posts by this user Quote this message in a reply
Post Reply