Jump to content
Eternal Lands Official Forums
Entropy

Special effects

Recommended Posts

Isn't there a little poison icon that comes up in the corner?

Sure there is.

I would not support coloring the ENTIRE view area at all, any shade.

Make it configurable. Some people might like the "magic mushroom" color effects.

Share this post


Link to post
Share on other sites

Poison: I have a somewhat subtle but nice looking poison effect already created. Little bits of green and black float around your skin. When it damages you, there's a faint puff of it.

 

Status: Website work is winding down, but I'll be working on it intermittently for the next week or two, I'm sure. Tonight is the first chance I've had to go back to EL effects. Working on the wrapper right now.

Edited by KarenRei

Share this post


Link to post
Share on other sites

Good news, which I think this screenshot sums up:

 

http://www.daughtersoftiresias.org/progs/e...ts/ec_pic01.jpg

 

That is, to say:

 

1) I've got the eye candy system building with EL

2) I've got the start of a wrapper for the eye_candy system

3) I've got the effect (mostly) merged into the EL world -- enough that I can tell it to spawn a teleporter effect at an arbitrary point in the world, and, well, you see it there :)

 

Oy, this was tricky. Lots of segfaults early on due to trying to make the C and C++ mesh properly. Had to work all weekend to get it to work out. :P As for #3, luckily I already had the effects scaled properly for the world :) Unfortunately, I used different axes than EL -- the world was the XZ plane in mine, while it's the XY plane in EL. A bit of playing with a glRotatef and some tweaking of the coordinates passed to the wrappers did the trick.

 

You may notice that the FPS in the upper right is funky (so is all text). Also, I think I messed up the lighting somehow, so I'll need to track that down. After those bugfixes, I'll wrap all of the other effects based on my teleporter wrapping, and then it'll be a case of calling the wrappers where they belong. I'd probably want to do a few "extras" as well -- for example, when a person teleports, shift their model's alpha to fade them out and then back in.

 

Anyways... encouraging news right now. :)

Share this post


Link to post
Share on other sites

That's excellent news. I am working at integrating Schmurk's collision code in the server, that will allow not only for missiles but for new spells as well, such as icebolt and fireball (I didn't implement them because it would be stupid for them to go through obstacles).

By the end of the year EL will be so much better, hopefully :)

Share this post


Link to post
Share on other sites

Just a big heads up: tomorrow night or the day after, I should be releasing a (very big) patch to add preliminary support for the eye candy. All FX are wrapped, the aforementioned bugs (and others) are fixed, and only two (out of many dozens) of effects -- only those which have multiple targets for spells -- have anything left to do with them (and that, only because I'm too tired to finish tonight). I just need to finish them up, then clean things up for release and diff it all up. Todos that will remain:

 

1) Build systems other than Linux: I have no way to develop the Makefiles for them, as I only run Linux.

2) the libeye_candy library needs to be installed into a lib path, either systemwide or temporary. I've been setting my LD_LIBRARY_PATH for now.

3) Incorporating the textures into the binary distribution.

4) The biggie: having the special effects be triggered at the right times. I'll undoubtedly need some serverside help with this.

 

There are two big (commented out) blocks of eye candy test code in multiplayer.c. You can try out a given effect and see how it's called just by uncommenting a line or two.

 

Anyways, as I mentioned, either tomorrow night or the day after I'll be releasing this, and we can go from there. :( I'm very pleased how everything is looking. Especially the fireflies and blowing leaves effects; it's really nice ambiance, and I can't wait to see them hooked into appropriate maps.

Share this post


Link to post
Share on other sites

It's C++, and so I found it easier to wrap as a library, based loosely on the cal3d wrapper. I imagine I probably could link it without it being a library, but I'd have to play around with it. I'll try it out.

Edited by KarenRei

Share this post


Link to post
Share on other sites

Yeay -- I got it done tonight :P Patch is up on the website:

 

http://www.daughtersoftiresias.org/progs/e...candy.patch.bz2

 

It no longer builds eye candy as a library, so that issue is taken care of. The necessary eye candy graphics files are in eye_candy/textures, and need to be in your EL binary directory/textures/eye_candy. As a sample, to see some effects at the beam location, go into multiplayer.c, and you'll find two comment blocks -- one starting just before line 500, and the other just before line 600. Uncomment effects, and they'll spawn at the beam point. As an example, uncomment ec_create_breath_fire (~494), ec_create_bounds_list (~583), and ec_create_wind_leaves (~609). Leaves will dance around the beam point, and every minute, you'll get a dragon's fire breath.

Share this post


Link to post
Share on other sites

Sounds great ;)

Just one thing though, to stay consistent with the directories..can the texture files be put in the particles folder?

Share this post


Link to post
Share on other sites

Sure, if that's where you'd rather they be. It just takes changing (in eye_candy_wrapper.cpp):

 

eye_candy.load_textures("./textures/eye_candy/");

 

to:

 

eye_candy.load_textures("./particles/eye_candy/");

 

However, the particles directory has a bunch of .part files, while these are literal textures (PNG files loaded by SDL), so I didn't think that was the right place for them.

Share this post


Link to post
Share on other sites

Out of curiosity, what is the gameplan here? Since I can't access serverside code, I can't really finish this on my own. If there was a signal that was sent to the client for when to create each effect (and when to recall them if necessary), with where to center everything and the like, I'd gladly hook it into the client.

Share this post


Link to post
Share on other sites

That's really good because soon (a few weeks, maybe?) we'll have a working collision detection code integrated in the server. Right now, it is in the server, but not tested at all, whatsoever.

So after we do some extensive testings, we can start implementing spells like fireball that will have a collision detection, and maybe you can implement that on the client with your special effects.

 

As for the things already existing, can you please make a list, if possible with screenshots, of everything you did, so we find some use for them, so that the server will send a message?

Share this post


Link to post
Share on other sites

Oy, that took a long time! But here we go -- documentation with screenshots of pretty much everything (didn't get shots of the sword FX because they require moving swords, and I didn't want to take the time to hook them up to a moving object just to get screenshots). Also, since these FX are all about motion, you don't really get the full effect -- but you should get an idea.

 

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

 

I also improved/bugfixed some effects (part of the reason it took so long; the rest of the reason is that there are just so darned many effects!) I made a new release of the patch; it also contains the documentation, so it's bigger than the previous patch:

 

http://www.daughtersoftiresias.org/progs/e...-1.1.0.diff.bz2

 

In case the diff is too hard to use, this time I included a tarball of my entire EL source directory:

 

http://www.daughtersoftiresias.org/progs/e...-1.1.0.tar.bz2

 

Remember: I only have a Linux testbed, so that's the only makefile I've tweaked.

 

Need anything else, just ask!

Edited by KarenRei

Share this post


Link to post
Share on other sites

Oy, that took a long time! But here we go -- documentation with screenshots of pretty much everything (didn't get shots of the sword FX because they require moving swords, and I didn't want to take the time to hook them up to a moving object just to get screenshots). Also, since these FX are all about motion, you don't really get the full effect -- but you should get an idea.

 

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

 

I also improved/bugfixed some effects (part of the reason it took so long; the rest of the reason is that there are just so darned many effects!) I made a new release of the patch; it also contains the documentation, so it's bigger than the previous patch:

 

http://www.daughtersoftiresias.org/progs/e...-1.1.0.diff.bz2

 

In case the diff is too hard to use, this time I included a tarball of my entire EL source directory:

 

http://www.daughtersoftiresias.org/progs/e...-1.1.0.tar.bz2

 

Remember: I only have a Linux testbed, so that's the only makefile I've tweaked.

 

Need anything else, just ask!

 

Woo...ho...hooo... OMG thats look awesome!!! Really great work, at least we will have normall fire ;p (Sry for this little spam but i had to say it :w00t:)

Share this post


Link to post
Share on other sites

Effects look great!

 

Tho I must say some of them look a bit exaggarated, might be wrong because we see only 1 frame. Also it would be nice if you post your system specs, some of the effects really drop your FPS way down.

 

Anyway, nice work, can't wait to see it in game.

Share this post


Link to post
Share on other sites

Thanks for all the comments; I really appreciate it!

 

FPS:

 

The graphics card of the system that I'm testing on is pretty lousy. It's an Intel 945GM, using the i810 driver. The 945GM is already not a very good card (it uses your system's ram), but the driver doesn't support it well, either. From my Xorg.0.log, I get all kinds of warnings. Eg: "(WW) I810(0): Bad V_BIOS checksum". Tons of things like "(WW) AIGLX: 3D driver claims to not support visual 0x23". Etc.

 

Net result, I get like 14 fps in tuxracer, some opengl programs segfault when I fullscreen them, etc. Performance was much better when I tested the standalone eye candy on my other laptop, but that runs RHEL4, which doesn't have all of the libraries need to build EL, so I had to switch computers. I really should be using poor man on this card (which cuts the max number of particles fivefold), but I'd rather have nicer pretties than a good framerate. The system is designed to reduce the level of detail (LOD) when you near your particle limit. Note that a LOD change doesn't just reduce the particle count; it also adjusts their size and transparency to try and keep the overall effect as close to the same as possible.

 

If the current LOD system isn't good enough, I could have it base level of detail on framerate instead (not all particles are created equal; a huge translucent particle covering the whole screen will take a lot more time to draw than a tiny one in the distance)

 

No matter what, I'll make sure that we'll have nice FX without a significant hit to frame rate when in use ;)

 

Exaggerated FX: A number of the FX, if you look at the description, take scale arguments. For example, the dragon breath examples are at scale=2. For the ones that don't take a scale argument, it's not a big deal to adjust them in the code. So, when seing them in practice, any of them seem too big, they can be adjusted -- most fairly easily.

 

Also keep in mind that, as you noted, you're seing a split second. Due to the pace of action in the game, I had to keep them brief. For example, if you look at the mother nature screenshot, you can see the whole body blasted in bright light. What you can't see is that an eigth of a second later, that light has spun outwards and upwards, away to nothingness. The longest of the harvesting effects, the cavern wall, lasts only for about two seconds. Most spells are about 1 1/2 seconds between appearing on the caster's hand and finishing up.

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

×