How do you show blood? [STAY AWAY IF QUEEZY]

Ok, so, in my game, you can see how lame the blood is. Just little blocks of red. So while thinking about how to redesign blood, I thought of asking how everyone else does their blood! So how do you do blood? It would be great if you could show a picture.
My current blood:

http://imageshack.us/a/img546/5453/upq.png

I know, it sucks. But then, that’s why I came!

I don’t have persistent blood splatter on the terrain in my game, but I do use a particle splatter effect.

The particles have semi-random size and colour and they all fly in random directions.

I think its the randomized colour that makes it work. Kind of breaks up the shape a little.

It might not end up being gore in the end. Depends on how kid friendly I’m feeling. :wink:

Edit: Just remembered this screen shot. There isn’t a lot of blood here but the yellow particles follow roughly the same logic.

Just make the “blocks” smaller and spawn many of them…so basically particles.

For daedalus I don’t use a lot of particles but each particle texture contains several blood drops. And I have 4 different textures, that I choose randomly when creating the particle.

Here are the 4 textures I use:

each texture is 32x32. I also have flesh particles to add a bit of gore :slight_smile:

Here is a result ingame:

I think the particles’ move direction is not completely random. For example if you’re being stab/shoot from from the there is huge splash from back going further, and from from front (hit point) but lesser and not long.

For my blood texture, I really just googled an image, found one that looked alright, I could modify it to make it look a bit better, but it does the trick.

Like ReBirth mentioned, if you want it to be more accurate, you want to make it go in the right direction, mine is just random, starts from the player, and gets pushed out, It doesn’t move for very long, and makes it look like its been pushed out a little.

To increase performance, you could check to make sure the blood is within the players view before rendering it, you could make the image fade away / disappear after a certain time, or after the player moves away from its view.

My game is pretty much the same concept as yours, so if you look how I do it, you may get a idea to improve it:

My Game

For Guardian II (and related), I just throw particles out at random angles, and then apply gravity.

It disappears within a second, but is a nice effect to show a hit. Could probably do better by changing the angles for different kinds and directions of attack.

If your performance is suffering, I’d say you have a problem somewhere else.

Have you checked whether you’re allowed to use this image?

Considering he’s not selling his game, its probably fine. The creator of the image will most likely never see the game and even if he does, he will most likely not care. People need to stop worrying.

I have had the texture for like a year or longer, If i remember right, it was on one of those free art sites.

and exactly what Opiop said, its not going to be used anywhere else then on here, and for my assignment, If I am going to sell a game, I would ask a friend to make them for me.

I am sure about 70% of the games in WIP, or more on this site, has at least one image that was found from google, another game.

There are tons of open source free graphics assets at opengameart.org . No need to use assets you haven’t got the rights to.

Here is the open blood effect I am using (you’re allowed to alter them):

Just open up photoshop(or pixlr\gimp which is free), add red (color overlay) maybe do some basic effects and you’re done. They have tons of assets there, not just blood effects.

for blood maybe do an animation then a selection of splatters of which one is picked. so setup an animation with multiple frames for the actual blood splatter animation then when that is over place a splatter on the floor of a random splatter texture.
in pseudo


int framenum = 4;
Animation bloodsplatter = new animation(framenum);
private image splatter1 = new image;
private image splatter2 = new image;
private image splatter3 = new image;
private image splatter4 = new image;
private image[] groundsplats = new image[20];
void setupanimation(){
       bloodsplatter.add(splatter1);
       bloodsplatter.add(splatter2);
       etc....

}
void groundsplatsetup(){
       for(int i = 0; i < groundsplats.length;i++){
                groundsplats[i] = sprite.getimage("/effects/blood/splatter+i+.png);
        }
}
void splattereffect(){
       bloodsplatter.run(x,y);
       addgraphic(x,y,groundsplats[(int)Math.random()*groundsplats.length]);
}

hope that helped. shouldnt be too hard to set up some of those methods you would just need an animation handler and a way of rendering them.

Perhaps your original idea was actually correct, but maybe there was something causing that lag?
I recently added death effect to my game and had about 200 or so particles go into the physics box2d and at first it lagged hard.

It wasn’t until I realized that I was checking some collisionLists and was checking the particles against a bunch of things they shouldnt be. Especially in box2D with ‘getFixtureA()’ being called (thousands of times) lagged my game out hard.

When I filtered out the particles, the game never even flinched, even at 100x the amount of particles.

How were you handling it that caused the lag?
Unless you are aiming at a very low end system(mobile), a few hundred, or even a few thousand particles shouldn’t be much of a problem at all. However when dealing with many particles, its easy to overlook an expensive method call.

Edit:
Also your current blood doesn’t look so bad, I would make the blood pieces much smaller, possibly circular, and have many more of them. Perhaps 1/10th the size and 10x the amount, so overall its about same, but itd look much more like splatter