Does this work

In the game I’m currently developing I’m trying to contrast cute pixel graphics with excessive blood-spray when the player takes damage in an attempt to achieve some dark comedy.

I am not sure it works visually (although I like it and think it looks funny) and I’d appreciate any comments on whether it clashes too much.

Some examples:

The fall would look better if it created a well of a ton of blood. The second one is good though

Keep at it

Bahaha. I love the idea of it. But I think more narrow sprays would look better

Ew… I see dark, but no comedy. Maybe a cartoon explosion instead?

In my first attempt I screwed up the parameters for the particle system and got this:

Now that’s funny! I genuinely smiled.

Mixing cute and horror is a common theme for pixel art games. Go for it! :wink:

The last one looks best, although a bit overkill.

Ok, loads of blood it is!
I might have to turn it down a bit though, as it’s possible to take damage without dying and it would be difficult to play for the few seconds when the avatar is completely obscured by the excessive hemorrhage.

I think the biggest thing towards making it work would be making it look more like blood and less like pepperoni flying everywhere.

If you look at some of Rayvolution’s tech demos, you can see some pretty good absurd pixel blood, it sticks, drips, pools and everything.

EDIT: found some: http://www.java-gaming.org/topics/the-jgo-bar-sixtygig-open-world-retro-rpg/32172/msg/308920/view.html#msg308920

You also might want the source of the blood to come from, well, the source of the blood. Currently it looks like it’s coming from the bottom of the sprite, so it’s just bleeding from its foot?

Video for reference if you don’t want to download the actual tech demo, and if you do, the link is in the video description.

tVO9fJ3SJuc

But yeah, I’m a big fan of the “cartoony-but-violent” theme, one of the inspirational reasons to do blood and particles like I did in Retro-Pixel Castles was a game called They Bleed Pixels;

aMBmcAcoA9k

Agreed, the current version is using place-holder graphics for the particle system, I plan to tidy that up before release.

Right now blood sprays from the point of impact, so in the examples above; yes, he’s only bleeding from his foot :slight_smile:

That’s some impressive looking blood in that video, I like the way it sticks to the walls. I was considering having the blood collide with the environment myself, if I can figure our a neat way of getting libGDX’s particles to do that.

I don’t believe libGDX really has a clean way to do that, you’ll probably have to do what I did and write the entire particle system from scratch. It’s actually not that hard once you get the hand of it, but you’ll have to learn some things like pixel-perfect collision if you want the particles to look accurate.

Although, since your particles are not single-pixels like mine, you may not need pixel perfect collision, you could probably get away with some more traditional collision using geometry/intersects. But, I’ve found that oddly enough pixel perfect collision can be faster when dealing with thousands of tiny objects, as intersect checks can get very expensive when you have thousands of little collision rectangles all over the place.

I think you’re right, libGDX has a Box2D particle emitter, ParticleEmitterBox2D, but it’s not doing anything nearly as fancy as what I would require to get the blood to stick.

I’m not super-fussed about it (even though I think the sticky blood would look a lot cooler), mainly because this project is mainly about doing a game in libGDX.

2 things: 1 ADD LIMBS holy god that is always a good thing to have 2: centralize the blood in the first image I noticed that the blood was somehow spawning from below his toes.

Making the blood stick/drip can be as simple as heavily dampening the particle velocity when it’s colliding with terrain tiles.
How linear (or not) the dampening is will affect the pool/drip ratio.

Blood spawns from the point of impact, which is his toes in the examples above. If he had hit his little head, he would have been bleeding profusely from his head :slight_smile:

Agreed, that would probably work but I think it will be difficult convincing libGDX’s particle system to do that.

What I did in the current version of my particle system was give each particle various properties that are adjusted that have an overall effect on how the particle interacts with the world.

For example;

dripChance - the chance a particle will drip when it’s stuck to something. Basically making things drip faster or slower (Blood vs water, for example)
stickChance - The chance a particle will stop dripping even if it’s on a drippable surface. (Again, good for making liquids act “thicker”, like blood vs water)
friction - The rate the velocity decays, so something with high friction will slow down faster than something with low friction.
spread - The rate the particle tends to spreads out either on the X or Y axis just to have more natural looking movement.
decayRate - The rate of decay, for example, fire would have an extremely high decay because it only exists for a moment, and is destroyed. Where water or blood you may want to leave on the screen longer.

It’s just some ideas, but basically I have a master particle class that has a bunch of properties like this, and each child class adjusts them to get the effect I want.

Here’s a gif of a bunch of them all together in action in the new system;

The ParticleEffect, etc? Then don’t use it.

Just a couple vectors and a sprite is pretty much all you need, here’s a little bit from my current project (the TAFSJ thing), it’s a little over-engineered to be more extensible, but you get the idea hopefully:

http://pastebin.java-gaming.org/bf1b900691a1b