Hadron++ Particle Engine

by Kats
Full-scale particle library
ID:1917218
 
The Hadron++ Particle Library was designed for modular use. It's a very solid particle engine, but there's just a couple things that I have to be up front with before we get started. First of all, it should be know that current particle physics in BYOND are EXTREMELY bulky for many reasons. Because of this, it's highly suggested that you don't attach this library to any multiplayer games. The server will simply not be able to keep up with all of the data required to handle particles properly. However, this library can provide excellent fluff to most single-player games wishing to add some "juice" to them.

Some of the particle effects in the demo are for just that: demonstration purposes. While it showcases the robust nature of the library, some of the effects such as the fire effect can consume as much as 50% CPU running at 30fps. Use effects like these very sparingly and in a smart way to enhance gameplay.

As I update the engine, I do plan on releasing "particle packs" that are essentially libs that include tons of definitions for all kinds of crazy particle effects that I can come up with. This isn't limited to me, though. The ease of creating new effects in a modular way allows anyone to create and share their particle effects. The emitter definitions are designed to be plug-and-play.

If you want to show me something really cool you made with the engine or have some feedback you'd like to give, feel free to message me! I also love seeing how projects are incorporating the engine into their design. If you have features like that you want to show me, go right ahead.
:D well done!
Updated version to 1.01. Minor change that utilizes animate() for fading functions instead of manual tweening. Slightly more efficient per particle.

EDIT: And I had to reupload the files because I totally forgot to make sure that the readme and tutorial files were included... FML! Not a great start. Lol.
Really nice. I may try and use some of these :) I wonder if you can help the cpu usage by getting rid of all the del statements, and just dereferencing everything. Del is supposed to be a bit of a problem...
The reason I had to explicitly delete things is because of mainly the image_object. If I don't explicitly delete it, dereferencing it would simply cause it to not get deleted properly and build up in system memory.

Unfortunately, the vast majority of the CPU requirements is actually position calculation, movement and animation matrices.
In response to Flick
Flick wrote:
Really nice. I may try and use some of these :) I wonder if you can help the cpu usage by getting rid of all the del statements, and just dereferencing everything. Del is supposed to be a bit of a problem...

Yeah, this plus particle pooling.

EDIT: Ah, I see.
That's one of the main reasons I plugged in the PARTICLE_ANIMATION_FIDELITY variable. I like to run the animations at 0.5, which is surprisingly smooth, but is far less resource intensive than at 0.33.

EDIT: Also, updated the lib for hotfix 1.02. I hate all of these tiny hotfixes, but they're kind of necessary. I broke a few things when I was converting the fade functions to use animation. They're all fixed, now.
Latest update doesn't include all the files. Lummox says you gotta compile at least once between opening the project and packaging it.
That's better. Hopefully that fixed it. Also updated it to 1.03 because I made some changes to the how the matrices are animated. They're slightly more efficient. Still wracking my brain on how I'm going to improve the movement system, though.
In response to Kats
It's still pretty empty...
I have no idea why it's doing that. I'm compiling it and it's compiling just fine. Why is the package getting screwed up? It's perfectly fine when I package it. That's weird.
In response to Kats
Dunno. It might be a coincidence, but it's been happening pretty frequently lately, so maybe Lummox actually broke it recently.
You could try zipping it manually and uploading.
Fixed another issue using alternate PARTICLE_ANIMATION_FIDELITY settings where fading was messing up. Hopefully this should be the last fix needed for a minute. Also double checked the zip file issue and this one should work just fine. I just downloaded it to test it out and it has everything.
It seems like the more I fix in this thing, the more I end up breaking it. Miscalculated the fade out function. It's fixed now. Update 1.05.
Looks fantastic but seems to max out performance wise on my computer with anything greater than that fire.

Amazing what you did but I feel like it's just the wrong engine to be doing this.
The fire is admittedly extremely resource intensive. It chews up 40% CPU at 30 fps on my machine. It's not perfect, but it's a starting point at least and it serves as an update from the much older particle libraries right now.

I think it's just the way it's being handled is still too hard on the system to be of more use than a few quirky effects here and there for single-player games, which is kind of unfortunate.

It has a lot of potential for the things it can be used for, but the projects it can be used for is an unfortunately shorter list than what I'd like to see.
so what is this "Hadron++ Particle Engine?"
In response to Alienx26
Alienx26 wrote:
so what is this "Hadron++ Particle Engine?"

Download it and find out. :)
In response to Kats
thanks
Page: 1 2 3