Jump to content
Eternal Lands Official Forums
Entropy

Special effects

Recommended Posts

Done :D

 

Please note this code gives all events the same effect at the moment, but it is just a case of changing the SFX type for each one when the time comes.

 

https://developer.berlios.de/patch/index.ph...p;group_id=1256

Share this post


Link to post
Share on other sites

I've put SFX for this on my todo list. As soon as spells with targets are done, along with continuous effects (say, the random flicker of a shield) and instantaneous effects (say, an attack impacting a shield), and the two extra effects already on my list are done (chimney smoke and disappearing bags), I'll do them.

 

I think it's a great idea.

Share this post


Link to post
Share on other sites

Just a recent screenshot showing some of the features implemented since the last screenshot posts:

 

http://www.daughtersoftiresias.org/progs/e...s/eyecandy6.jpg

 

Some things you'll notice since the previous screenshots:

 

Left: Five special swords swinging through the air, leaving trails behind them (looks especially nice when in motion -- you don't get a sense of it in a screenshot)

 

Front left-center: Summoning a large snake.

 

Back-center: The fountain is not backlit in this screenshot, unlike the previous one.

 

Right, front: One example of magic effects: the peak of the special effect when you cast magic immunity (the particles glow, flare, and spiral inwards around each other until fading out over the person's head)

 

---

 

Status update: I now have the prototype spell for target magic done. The rest should be done in a day or two.

Share this post


Link to post
Share on other sites

They look great!

 

I was also wondering if, for the magic spells, it can be an option to attach a spell effect to a bone on the model's skeleton.

 

Example: A player casts a fire ball spell. The player goes into a spell animation that looks like they're throwing a ball, so the fireball should come from the hand bone.

 

I have the magic spell animations done, they will be in this update, however they won't be in use because currently the code doesn't allow for them. But when it does it'd be cool to do things like that. With monsters too.

Share this post


Link to post
Share on other sites

Indeed, that is how I have set it up. The red sphere in the background currently waves back and forth, representing the character's hand. When you cast a spell on a target, it always begins with a brief (0.3 second) buildup of particles orbiting around your hand (no matter where your hand moves) before flying toward the target(s) (0.7 seconds), where it causes the effect (usually about 1 second). I had to keep the spell effects short because you can cast spells pretty quickly in EL.

 

When there are multiple target, the speed particles move is determined by the length of time it will take to get to the most distant target, so that you get a cascading effect where the nearer targets get hit first. It looks better than having them all go off at once. When there are multiple particles heading toward a target, they orbit around each other en route.

 

The particles that you fire from your hand, obviously, dodge obstacles (in this case, the two pillars that I set up in the center of the screen as obstructions). That way you don't have your spells go through trees or other silly looking things. It can handle an unlimited number of obstructions, but in practice we'll probably want to limit it to a dozen or so on low-end systems and a hundred or so on high-end systems. Thankfully, the calculations are pretty quick, and not as many particles are involved in the spell while it's flying as in the spell effect when it reaches its target.

 

Like with targetted spells starting out at the caster's hand, sword effects release the sparkles along the length of the blade, no matter how it's oriented. The faster the blade moves, the more the release of particles. If you're standing still, it'll occasionally flicker. If you're walking with it, you may get a gentle trail. But when you're fighting with it, it should shine and trace paths through the air.

Edited by KarenRei

Share this post


Link to post
Share on other sites

It depends on how distracted I get. ;) They're already quite stable, but they're not incorporated into the game yet; I've been using my own test environment to make it easier to debug.

 

I expect to have targetted spells finished by the end of the weekend (perhaps even by the end of the week). They were a particularly tricky case to get a template for, since I didn't want jerky transitions between A) flying around the caster's hand, :D flying to the target, and C) having an effect on the target. I had to create a function that bends their velocity vector toward a desired target vector, and determine an optimal speed for that target vector that would get the particles to their destination on time. The template case (remote heal) is done now, so the others just involve modifications to it -- different particle spawners, movers, effects, etc.

 

Continuous magic effects (like shield sparkling) should probably take just a few days, as should "instantaneous magic effects" (like striking a shield). Then there's chimney smoke (1-2 days), bag pickups (1 day), and harvesting effects (a week). After that will be incorporating them into the game and testing in-game -- perhaps two weeks (hard to say until I get into the process). So, I'm looking at something like a month to finish.

 

When all is said and done, however, we should have some of the best special effects in the MMORPG world. :) At that point, I'll probably either take a break or move onto lighting and normal maps.

 

Hmm. Just a quick thought here, and I'm just throwing this out in the open (I have no opinion on it either way): what would people's opinions be on an instantaneous effect of blood for when a blow is delivered to a target? Nothing gratuitous or Mortal Kombat-ish -- just a small, opaque, colored particles under the influence of gravity?

Edited by KarenRei

Share this post


Link to post
Share on other sites

Hmm. Just a quick thought here, and I'm just throwing this out in the open (I have no opinion on it either way): what would people's opinions be on an instantaneous effect of blood for when a blow is delivered to a target? Nothing gratuitous or Mortal Kombat-ish -- just a small, opaque, colored particles under the influence of gravity?

I think that would be a nice addition, but that's the type of effect that would probably need a configuration option to turn it on/off. There are some people who may not want such effects in game, or perents of younger players who may wish to turn that sort of thing off.

Share this post


Link to post
Share on other sites

I think the blood would be pretty cool ;) hahaha

 

I do have a request for an effect if you can do it...i'd like to be able to have clouds, like if you are climbing a high mountain, there would be clouds on the "ground". They would need to be about the size of a ground tile, however preferably round and kind of random in shape(like a cloud), and perhaps a few different ones having different levels of opacity.

 

They can be static, however if they did move then they can just jitter a little bit, but stay in place.

 

Here is an image to show it better. The very opaque clouds on the left, and one semi transparent on the right:

http://img.photobucket.com/albums/v59/fflewddar/clouds.jpg

Share this post


Link to post
Share on other sites

Excellent then, perhaps they will make it in the next update (March or so). That's good because it will give us more time for testing.

 

As for the blood, that's cool, but it needs an on/off option, for those that don't like blood.

Share this post


Link to post
Share on other sites
I was also wondering if, for the magic spells, it can be an option to attach a spell effect to a bone on the model's skeleton.

 

Example: A player casts a fire ball spell. The player goes into a spell animation that looks like they're throwing a ball, so the fireball should come from the hand bone.

Relating to this, I think we need some more info sent from the server regarding spell success, specifically for PvP and teleport (when implemented). For instance, you successfully cast a harm spell and you now have the wand icon. I think you should get a "charging up" effect like your fireball in the hand. This would require data from the server since others would need to get the info too. It would also make the spells appear less instantaneous. Thoughts?

Share this post


Link to post
Share on other sites

If people do that, I'll modify the code for the spells. Until then, I'll operate on the assumption that there is only a short, fixed charge time.

 

3 targetted spells done, 1 underway, four to go. I'll definitely finish targetted spells by the end of this weekend unless the weekend is crazy-hectic.

Share this post


Link to post
Share on other sites

It depends on how distracted I get. :) They're already quite stable, but they're not incorporated into the game yet; I've been using my own test environment to make it easier to debug.

To save you some time when it comes to integration, the right hand bone (which I assume roja will use for animations? I could be wrong) is boneId 25, ie.

 

float points[1024][3];
float x, y, z;

CalSkeleton_GetBonePoints(CalModel_GetSkeleton(actor->calmodel), &points[0][0]);
x = points[25][0];
y = points[25][1];
z = points[25][2];

Edited by crusadingknight

Share this post


Link to post
Share on other sites

Update: Targetted magic is now complete.

 

TODO list:

 

Ongoing spell effects (random shield flickers, etc)

Instantaneous effects (strike a shield, strike a player if blood is enabled, etc)

Chimney smoke

Disappearing bag

Clouds

Random harvesting events

One more optimization (trimming/scaling particle textures)

OPTIONAL: Deterministic firefly positions for firefly effect (already coded)

OPTIONAL: Blowing leaves/flower petals, based on firefly effect.

OPTIONAL: Auto-adjust LOD when we near our particle limit.

Merge code from sandbox into the game.

Test, test, test.

Share this post


Link to post
Share on other sites

Update:

 

A very productive weekend! This weekend, I finished targetted magic, continuous effects, and instantaneous/impact effects. All of them. :)

 

Shrinking that todo list, one line at a time...

Share this post


Link to post
Share on other sites

Have you taken a look at the current particles we have for the map editor? Don't forget those as well.

 

Since you will more than likely have to edit map maker for this new particle thing (figured I'd add something more ebil :)), do you think you will be able to make sure particles are rotatable, much like a 3d object?

Share this post


Link to post
Share on other sites

http://www.daughtersoftiresias.org/progs/e...s/eyecandy7.jpg

 

In this scene, on the right hand side, a heavy blow strikes a shield. I didn't capture right at the moment of impact; the effect "blows away" from the . Lighter blows aren't as brilliant. Off to the left, a major summon is going on. :)

 

Poison effects are also included in this version.

 

Acelon:

 

I assume you mean "particle effect", not "particle". A particle is a single point of light or material. A particle effect is the collective association of many particles.

 

Assuming that you mean "particle effect" instead of "particle", yes, you can rotate them to any angle. Many of them also have varying degrees of intensity, and all have a level of detail flag that you can set (1 to 10). Individual particles, not particle effects, cannot be rotated. It wouldn't make much sense to, either -- most of these are "glowing lights", and a glowing light looks the same from all sides. The ones that aren't glowing lights (for example, non-backlit water) still look the same on all sides (it doesn't matter what angle you look at a drop of water from -- it looks like a drop of water). Situations like these are where point sprites shine.

 

I do have tenative plans for one type of particle effect that uses particles which don't look the same on all sides: blowing leaves/flower petals. However, they benefit from the fact that they're small and dancing around constantly, so any attempts by the player to rotate around them wouldn't be noticed because it would just look like they're dancing out of the way.

 

It is possible, using my system, to have individual particles that do have an orientation. However, tris/quads are a performance hit compared to point sprites (especially if you don't want them to be 2d objects in 3-space, which means a minimum of 4 tris/quads), so I try to avoid them.

 

What about the current particle effects should I be concerned about? My current system doesn't preclude the use of extant effects unless we were to strip out the old system in entirity, so if there are some effects that exist that I haven't covered by the time I integrate the new eye candy, it should still be fine.

 

If anyone wants to see the system in action (screenshots rarely do special effects justice), download the most recent eye candy source from:

 

http://www.daughtersoftiresias.org/progs/eye_candy/

Edited by KarenRei

Share this post


Link to post
Share on other sites

With the old particle system, as I believe I explained earlier on in this thread, it's very very unintuitive and not user friendly. Just open up the particle editor to see what I mean. Of course if you're a programmer and understand all that mumbo jumbo, it may not be so bad for you.

 

But, the problem is that so far only like 2 people have managed to make particles from the current system(and they're currently not around anymore). No one else can really figure it out. So it's pretty much a dead end right now.

 

With your new particles, you have to manually make them, so if we need a new particle, we'd have to describe it to you, hope that you're still around and wanting to do it for us, and then wait to have it made. Is that correct? Or would they be something that we can all make? Are you planning on designing a particle editor, similar to the thing we have in the map editor now, but that non-programmers can use and understand?

 

I think that's our biggest issue. And also that the issues with the current particles(such as them being able to rotate), are resolved.

 

 

Of course, if these things don't happen, well it's nothing new, we take what we can get :)

 

 

And yes I mean "particle effect" whenever I say particle.

Share this post


Link to post
Share on other sites

With the old particle system, as I believe I explained earlier on in this thread, it's very very unintuitive and not user friendly. Just open up the particle editor to see what I mean. Of course if you're a programmer and understand all that mumbo jumbo, it may not be so bad for you.

 

But, the problem is that so far only like 2 people have managed to make particles from the current system(and they're currently not around anymore). No one else can really figure it out. So it's pretty much a dead end right now.

 

With your new particles, you have to manually make them, so if we need a new particle, we'd have to describe it to you, hope that you're still around and wanting to do it for us, and then wait to have it made. Is that correct? Or would they be something that we can all make? Are you planning on designing a particle editor, similar to the thing we have in the map editor now, but that non-programmers can use and understand?

 

I think that's our biggest issue. And also that the issues with the current particles(such as them being able to rotate), are resolved.

@Roja: I think any such editor would probably only be as useful to non-programmer as the current one, since there's only so much you can do by tweaking the rgba values/decay, velocity, acceleration, constraints etc. of existing effects.

 

On the topic of the existing interface: Any suggestions to improve it? (I know the actual labels have to be improved.) It should probably be rewritten seperately from the map editor anyway, since it's current implementation is finicky a saving particles at best, and lacks precision (especially on acceleration, which is rather jerky right now.) The current particles also seem a bit in need of help, since only 20% of them seem to be rendering, (which is probably why they're so slow, too, with all of the extras we aren't seeing.)

Share this post


Link to post
Share on other sites

I don't have a particle effect editor for this, but if it was considered important, I could make one. My particle effects, being more complex, don't readily fit into a simple "load me from a file" format. They spawn actions, trigger on events, react to circumstances, etc. Thus, each particle effect is a piece of code. Of course, I try to keep the code as straightforward as possible, shoving the complicated bits into the engine instead of in the individual effects. Currently, one can make a new effect simply by copying, renaming, and modifying an existing effect.

 

UPDATE: I just looked at one of the existing particle system defs. Ouch, that's cryptic! The file doesn't even have a header. I can make heads and tails of most of the fields when looking at the loader code, though. Not all, but most. :whistle:

Edited by KarenRei

Share this post


Link to post
Share on other sites

Yes, I also don't think complex particle systems can be done with an editor. I think they should be done manually (in code) if we want the best results.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×