A new physics demo, simulating a cable coiled around a winch:
after days of study, research and a lot of effort, here is a prototype of a flame thrower.
In the video you can see the following features:
- Enemies are constantly regenerating over time.
- They have a numerical health indicator on their heads and change color to red to view the damage caused by the flames.
- The flames go out after a certain period of time by changing the color of the enemies to gray.
- The flamethrower is discharged using it, see the ammo info at the top left of the game screen.
- The rotating red boxes represent ammo that can be collected by walking over them.
Let me know what you like and what you would do differently.
I used the particle system already integrated with the engine. Let me know if you have ever used other libraries for particle effects.
I hope to see your works soon. Keep the flame of your creativity burning
Great job , i was planning to use toneg0d emitters for similar artistic work (a car nitro) but didn’t find the opportunity, but i still think its still better to defer the time and the work to the stock emitter.
Which aspects required the most effort?
You asked for nit picks. Here is my (TWO CENTS)
When someone is standing right behind the person in front. the flame only hurts the person in front but the particles (APPEAR) to be going through the person in the back. So I would either stop the particles if it hits something or hurt the person behind.
It appears it should be getting the person because their are standing in the flames and the flames around around them but they are not hurt until (HP) hits 0 on the person in front.
At the start of the sequence, the person catches on fire before the particles (APPEAR) to hit the person. The detection seems to be on the first particle but (VISUALLY) it is a bit soon.
looks great, i would just generally:
- make that 2 characters at once can be burning(in line, because i see it burn only first one).
- Add smoke from certain areas like (like burning/burned person and flame itself, also a weapon ending)
- make characters more-slowly gain color/burn
and thats all
I’ve recently been using the ParticleMonkey library and am liking it better than the engine’s stock emitter. The stock particle emitter works well for certain types of things but overall isn’t as versatile or good looking as Particle Monkey I’d say.
With particle monkey I think you could make the particle emitter have physics, and then if the character also has a physics body, then the particles would naturally bounce off of the character and would prevent the particles from going through them.
I’m not sure, maybe @glh3586 could answer though since he made the Particle Monkey library.
Thanks everyone for the feedback, I really appreciate your sincerity and your ideas. I will need some time to answer everyone, there are a lot of technical details that I would like to discuss with you. I will create a dedicated thread for this topic.
Would be go for somethings, but fire bouncing off an object, doesnt’ work. now if you could not make it bounce and just turn like fire would do. that would work.
I tried the library ParticleMonkey. I appreciate the contribution of the author. Many things can be learned from his design, such as physical particles and much more. However I don’t know if it is still maintained. The latest release is from 2020. The wiki is present, but the author has deleted the examples, which makes it difficult to understand how to use it. Do you know where I can find examples? It does not have a graphic editor. This is a big deal. Do you know if there are any?
This might be a bit of a tangent, but you might find it useful.
A little while ago when I started working as a junior VFX artist, I did a comprehensive check of various particle systems in jme, so I could do some experiments in my free time. And the results were… not great. Sadly there were problems with most of them.
- Stock system: well integrated into SDK, but SDK is a couple versions of JME behind and buggy. I had problems with glow on materials. It might be solvable by using a custom shader, but I didn’t get that deep into it at the time.
- ParticleMonkey: couldn’t find documentation on it, nor a graphical editor. The promised features sound amazing, but I couldn’t set it up
- GitHub - destroflyer/jme3-effekseer: Library to load Effekseer particle effects in jMonkeyEngine 3. Uses an external editor (Effekseer) which takes time getting used to, but is the best graphical particle editor available for JME in my opinion. Sadly the linked library only supports files from an older version of Effekseer, as they changed the save format recently, so I couldn’t use it.
- GitHub - riccardobl/jme-effekseerNative: This is a library that uses EffekseerForMultiLanguages to load and render effects made with Effekseer in jme. The same as above, but uses native Effekseer runtime to render the effects and thus supports the latest save file version. The way it gets the image data into jme feels a bit hacky and may cause problems in bigger projects, but in my short testing it seemed fine.
Overall, to a VFX artist used to Unity on Unreal editors for particles, I’d say the last option is the only one that is at least semi decent.
In general it was all complicated. It was difficult to design a test case. I searched for reference material for flamethrowers, but found no interesting examples, not even in Unity. Particle effects are probably a weak point of the engine. There is still an open bug that I reported some time ago.
I hope that interesting food for thought can arise from this topic to promote some updates and / or for everyone to learn something from a difficult challenge.
Weirdly enough I cannot find the examples in the github repo anymore, everything else looks in-tact in the github repo still, so IDK if there’s a different repo I got them from and cannot remember, or if the examples were intentionally removed.
My local copy of Particle Monkey I have downloaded has an “examples” folder with all the examples so I must have got them somewhere, I could share them if anyone ever needs them and can’t find them.
Yeah this is the only big downside to Particle Monkey. It’s unfortunate because I think the author spent a lot of time working on a particle editor that was intended to work with a new JME scene editor that another dev started and didn’t manage to finish before quitting jme.
I have been able to get by using Particle Monkey without a visual editor, but I also am used to working with the stock particle system with code and not the editor too. The main thing I was looking forward to with Particle Monkey’s visual editor was the tool for editing curves, since it can be a bit of a trial/error process to tweak a curve with numbers and no visual representation, even though it is possible.
Particle monkey is based on the stock jME emitter as far as rendering goes so it should work.
On my local branch, I’ve finished reworking the particle monkey project to separate out the examples into their own project so there isn’t a weird dependency. I haven’t pushed the changes because I need to figure out the best way to publish the library these days. It’s been on the back burner, mostly due to limited time.
The particle monkey editor (4th or 5th editor/integration attempt?) works but still has a lot of needed work so I haven’t released anything. I have a somewhat working curve editor using lemur but its lacking a lot of polish. It’s taken a lot of time because it basically requires you to reimplement a scene editor. I was hoping a better scene editor would emerge from the community over the last few years that I could make use of.
GitHub never forgets:
At leat it wont work with TranslucentBucketFilter as it looks for
What do you think about adding a new utility method
makeSoftParticleEmitter(Emitter emitter) inside the ParticleHelper class?
Can you outline a few improvements you would like the existing one to have?
Or maybe, what you would expect from a ‘better’ one?