My game uses OpenGL, runs at about 25 fps on a first-generation G4 400 with an
ATI Rage 128. The characters use animations from my animation program and
interpolate smoothly between them.
The bottom-left picture shows the blue player turning invisible while stabbing
the red player with his swords. The green stuff is a group of alphablended
particles that swirl around when you turn invisible. You can see the invisible
guy because he blocks particles but you can see the background and other
characters through him. The background is slightly distorted when you look at it
through invisible people but it's hard to see that in this picture.
The top-left picture shows my muzzle flash and blood effects. The muzzle flash
is just a few yellow starry sprites that start out big at the muzzle of the gun
and then get smaller farther out with random rotation. The blood is red stars
that splatter out and fall and get smaller with time.
The top-right picture shows one of my skyboxes and the sword trails. Whenever
the swords are used to attack or block they leave a trail behind, this is with a
triangle-strip with two new vertices at the tip and base of the sword added
every 1/10 of a second or so. Here the black ninja robot guy's attack is blocked
by the yellow ninja robot guy.
The bottom-right image shows the red guy after being hit in the head with some
lightning causing it to start smoking. The smoke is made up of a bunch of
sprites with a smoky texture which slowly rise, spin, and fade out.
The center image shows my lightning effect which is made up of a lot of randomly
generated alphablended triangle strips which target various parts of the
target's body, make them start smoking and send the target flying across the
map. In this particular screenshot the yellow guy used to be invisible but has
just died and is now becoming visible again.