Jump to content
Eternal Lands Official Forums
Entropy

Special effects

Recommended Posts

New video now with Remote Heal effect :P And i have request, if you can give me some cash in test serv :blush: I need ess for testing spells but ess in shop are not cheap heh. And how i said animation of spells : Remote Heal, Restoration, Heal don't work if you have full HP i think this is bug. And for the end link to video:

http://www.brein.ovh.org/RemoteHeal.htm

Share this post


Link to post
Share on other sites

New video now with Remote Heal effect :P And i have request, if you can give me some cash in test serv :P I need ess for testing spells but ess in shop are not cheap heh. And how i said animation of spells : Remote Heal, Restoration, Heal don't work if you have full HP i think this is bug. And for the end link to video:

http://www.brein.ovh.org/RemoteHeal.htm

Any chance you could provide the videos in a different format (mpg?)?

Share this post


Link to post
Share on other sites

New video now with Remote Heal effect :P And i have request, if you can give me some cash in test serv :P I need ess for testing spells but ess in shop are not cheap heh. And how i said animation of spells : Remote Heal, Restoration, Heal don't work if you have full HP i think this is bug. And for the end link to video:

http://www.brein.ovh.org/RemoteHeal.htm

Any chance you could provide the videos in a different format (mpg?)?

Sry but i can only convert to avi :hug: I promise i will try to convert to mpg too, but first i have to found applicable program.

 

EDIT: I found this what i looked for and i convered videos to mpg :wub: But i had some problems with upload one of them :cry: This is link to 3 videos; 2 wmv and 1 mpg:

http://www.brein.ovh.org/

I didn't know how hard is find good program to convert in net :w00t:

EDIT2: Tommorow second link with video in .mpg should work. You can download second video already but it is in .zip archive.

Edited by brein

Share this post


Link to post
Share on other sites

That looks so cool..

*takes deep afraid breath*

is there any possibility to compile the whole thing in an Windows Installer.exe??

im really too scared to work with cvs.. and my english skill are not THAT

good to read the cvs walkthrough here on forums..

 

i beg you :P

 

Greetings,

 

Fabi

Share this post


Link to post
Share on other sites

That looks so cool..

*takes deep afraid breath*

is there any possibility to compile the whole thing in an Windows Installer.exe??

im really too scared to work with cvs.. and my english skill are not THAT

good to read the cvs walkthrough here on forums..

 

i beg you :P

 

Greetings,

 

Fabi

See ttlanhil's posts in the General Chat forum. He has provided some recent CVS clients for download.

Share this post


Link to post
Share on other sites

I update every now and then, or when there's new features, or sometimes on request (depends who and why), in most cases it's enough for any windows users

(link is in siggy :P )

Share this post


Link to post
Share on other sites

What would i do without you all? :medieval:

 

*sigh* ttl :D:)

youre my hero :P

 

thx again.

 

Fabi

 

P.s.: The spells are looking way cool :):)

Share this post


Link to post
Share on other sites

Very good job on the video, ty Brein.

Np. I hope i show all magic effect, in test server i have only 26 lvl magic and i can't do all spells :)

Edited by brein

Share this post


Link to post
Share on other sites

Thanks for the videos. Could you perhaps modify the remote heal spell to replace those things with some particle rings or something?

Share this post


Link to post
Share on other sites

Yeah definetly replace them with particles. Also, the spell with the rings..think it's the shield, they look too opaque and geometric. Can you guys make them more translucent, and perhaps also add some particles in with it? The circle particle could work.

 

Also, I could provide textures for the particles, or for overlaying on the more polgyon style effects.

Share this post


Link to post
Share on other sites
Is it alright to make suggestions for animations here, even if we can't actually make them ourselves? If so, I had an idea for the shield spell, since the suggested shufflings would leave it without animation. A semi-translucent bubble which expands out from the centre of the player until it completely emcompasses them, then dissipates. Could change the colour of the bubble for the different shielding type spells. Would that be hard to do? Thanks for listening.

I will listen to all suggestions. I was thinking of doing something similar. :P I have some sphere/bubble code working right now (which I was thinking of using for invisibility), but I am trying to fix a LOD problem and properly scale around the actors.

Thanks for the videos. Could you perhaps modify the remote heal spell to replace those things with some particle rings or something?

Pushy pushy. ;) As Kindar and I were discussing previously, the remote heal will be modified to be more like a regular heal with particles and color changes.

Yeah definetly replace them with particles. Also, the spell with the rings..think it's the shield, they look too opaque and geometric. Can you guys make them more translucent, and perhaps also add some particles in with it? The circle particle could work.

 

Also, I could provide textures for the particles, or for overlaying on the more polgyon style effects.

The rings are being moved to teleport or invasion, but I have not decided which yet. Yes, we can make them more translucent, and that is something I have for the next commit. I am not keen on having every effect include particles though. I will have to think about it. When I get my texture mapping correct, I may need some nice textures for the sphere and other things.

 

I have a lot of code changes for moving effects around and what-not, but I have not updated to CVS yet. I want to get a few more spells/effects done and some bug fixes before I commit again. Please be patient.

Share this post


Link to post
Share on other sites

Just an FYI: I'm still working on EL special effects. I think people here will be pleasantly surprised. :D I should have a demo out in a day or two. I'll just say that textured, translucent point sprites backed by a good particle system can do incredible things. :)

Edited by KarenRei

Share this post


Link to post
Share on other sites

Okay, as promised, here's a tech demo of the eye candy engine I've been working on. Note that this is a tech demo, not a patch or client release. It is a standalone glut program designed soley to show off what the engine can do. The lamp is as would go into EL, but the "firework" spell is just to show a number of capabilities.

 

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

 

(Sorry, I don't have a convenient way to do video capture -- there's only stills there).

 

What you see in the demo: Columns represent objects in the scene (no, I didn't spend the time to make them look like people or objects; this is just a demo. They're matte cylinders). The red one represents a spell caster. The green one represents a spell target. The blue ones represent people or objects that are in the way. The gray one is a lamp. Note the flickering flame and smoke. It also allows for level of detail, so that people with slow systems can use fewer particles.

 

Next to the caster is a red sphere moving back and forth. This represents the caster's hand, solely to demonstrate the ability of particles to track a moving object. Particles are created (very briefly) in the shape of a Seirpinski's Pyramid:

 

http://www.geoaustralia.com/image/Gallery/...ski-poster2.gif

 

These are created by an IFS particle spawner. An IFS is a type of fractal generator:

 

http://images.google.com/images?svnum=10&a...amp;btnG=Search

 

Since this is a generalized IFS spawner, it can readily be made to spawn particles in any IFS fractal shape, and even morph between various IFS fractal shapes. This should be nice for making summoning circles appear on the ground in flames. Other spawners include filled and hollow sphere spawners.

 

The particles move around the caster's hand via gravitational attraction. Modelling gravity is surprisingly difficult, because unevenness between frames when a particle passes by the center leads to imbalanced acceleration. The gravity mover compensates by tracking a particle's energy level and renormalizing its motion vector. The result is true-to-life gravity simulation. You'll also note that the particles can flare up and die down. This is easily configurable, with all kinds of flare effects possible.

 

After a couple seconds, the fireball is launched forwards. You'll notice the particles changing as they fly forwards, kicking off sparks. If you pay attention, you'll notice a few things. The particles diverge around the obstructions that are in the way; this way, you won't get the silly-looking thing in some games where you cast a spell that moves through obstructions to get to a target. :icon13: Also, you'll notice that the spell particles actually make things glow. When you create the eye candy object, you can assign it any number of lights to distribute among all of the particles in the universe. It attempts to balance them out and assign appropriate glow levels and colors.

 

Once the particles reach the target, I have them first switch to orbit circularization (transferring their forward motion into circular motion), then gravitational attraction, and then collapse of that gravitational energy. At this point, I have them explode -- each particle spawns multiple other particles, larger, brighter, with high velocity and a different texture. Notice the shimmer on the particles; animated textures are really simple the way it's set up. The particles radiate out, fade, then cull themselves.

 

Off to the side, the main scene illumination comes from the lamp. The lamp effect is relatively mature and ready to be incorporated. There's a halo, smoke, flares, etc. It looks good with even LOD 1 (less than a dozen particles). Tomorrow, I'll be adapting it to be a campfire (which requires more complex obstacle avoidance than the current demo demonstrates for the flames to move around the logs).

 

The particle system is already partially accelerated (for example, I cache pow()), but there's certainly more I can do if performance is an issue. The particle system already has built-in limitations on the maximum number of particles that are allowed from all effects combined that can be configured in realtime.

Share this post


Link to post
Share on other sites

Seems quite interesting to me, what program was used for that ? Very, nifty looks like blender or something

 

No programs -- just openGL and glut. :) It's the power of textured sprites and a good particle system backing them up.

 

Check out the latest version -- I've added in a campfire, a teleporter, a fountain effect (with the water splashing when it hits the ground), and fireflies that dodge obstacles and stay within a bounds area that you can define (I kept their graphics relatively simple -- just a light flare -- but I can make it more complicated with little effort if needed). Next up: lava, magical swords, and summoning.

Share this post


Link to post
Share on other sites

KarenRei, those screenshots look very nice. Do you think it's possible for you to replace the current particle editor in the map editor with these ones eventually?

Share this post


Link to post
Share on other sites

KarenRei, those screenshots look very nice. Do you think it's possible for you to replace the current particle editor in the map editor with these ones eventually?

 

That's the hope. I'm working in a standalone program for now because it's easier to debug, but once I get all of the effects I want done, I'll work it into the game. If you look at the code, you'll notice that it's structured pretty cleanly: all that main() ever messes with is the EyeCandy object. It was designed with ease of migrating the code to EL as the goal.

 

EyeCandy is a top-level control object that handles all of the work of the particles -- drawing, moving, creating, destroying, etc. Everything related to the particles, furthermore, is in its own namespace, so there's no chance of collision with existing things in EL. The hardest thing about importing this system into EL will actually be figuring out what needs to call it and where. :)

Share this post


Link to post
Share on other sites

Good work!

 

I'm going to go out on a limb and guess you are using the nova and flare effects in GIMP to render some of the particle textures, right? (I used the same a couple of weeks back to texture the sun... Sun still needs a bit of extra flare so it looks bright when seen through trees and fog. ).

 

That's a neat use of Sierpinsky Pyramids. I wonder why you chose that system though. Collision detection sounds expensive. Are you updating on a timer, or frame by frame? Currently EL has its particles updated by a handler hooked into a SDL timer which produces a new particle event approx. every 42ms, or every third timer event (precise delay is recorded by the timer handler for animation motion vector adjustments).

 

I'm willing to bet you could wrap the current interface around your object/module and convert most of the particle definition files with a little effort.

 

Keep it up! (And don't let me put you off the work. I'm excited that it's getting done. Ignore me if that helps :) )

Edited by emajekral

Share this post


Link to post
Share on other sites

Yep. Gimp is my friend. :)

 

Collision detection is only with "objects" (which you define as needed), not between individual particles. Between particles would be quite expensive, but having them avoid, say, a tree or player, isn't that expensive. You start with a force gradient of zero in X, Y, and Z. You iterate over the list of "objects that it would look funny for a particle to pass through and are conceivably close enough that it would try and pass through", and subtract a normalized and scaled vector to the obstruction from your particle if it's within a certain distance. After you've done this for all potential obstructions, you take the final force gradient and adjust your particle's velocity by it.

 

As for performance, that's the reason why I've been accumulating effects instead of having them display one at a time. Since I don't have to deal with the rest of EL eating up computing resources, I make up for it by having tons of particle effects on the screen at once. ;)

 

I update using neither a timer nor a frame. Rather, the eye candy object, before it calls individual object draws, checks the current system time. It then subtracts the old time from the current time to get an idea of how much time has elapsed, and passes that to the particles. This way, it's framerate independent. Even probabilistic events make use of this time increment. Let's say that you have an event that you want to have a 50% chance of happening every second. Instead of checking "if (randdouble() < 0.5)", you check "if (pow(randdouble(), seconds) < 0.5)". Of course, pow is a bit slow, so I wrote a powf cache object. Raising 0.5 to an arbitrary power takes about 40% of the time as a regular powf function, and raising an arbitrary number between 0 and 1 to an arbitrary positive power (0 to infinity) takes about 75% of the time, with only a small loss of accuracy.

 

With a constant amount of time between frames, that would make it all the simpler. ;)

 

I got stalled in the past few days by a bug in the lava effect. I'm putting that off for now (EL lava looks pretty good already, so it's not worth the time just to have it bubble and smoke if it's going to hold up everything else). Last night I made the fountain have the backlight as optional (it's a neat effect -- now, when the fireball passes, the water shines red, and it flickers from the campfire next to it), and tonight I'm going to do particle effects on magical swords (you swing a sword of thermal, it trails fire and smoke, etc -- all magical sword effects should just take a single object with minor config changed depending on the sword type). After that, it's summons (all take the same object with config changes for color, IFS pattern, size, etc), then spells, then merging the code it into EL. :)

Edited by KarenRei

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

×