You can choose!
Read the article or watch the movie.
Both contain (almost) the same content.

I didn’t embed the video directly to avoid any tracking from Google and complications with the DSGVO.

Do you need a fish tank for your game? No problem! This brochure contains three different fish tank solutions and at the end you’ll find two extra fish tricks!

FlatFish 3000
Perfect for those who like it classic and simple.


Source: X:Rebirth

Fish tanks are nice to look at because you can add a lot animated detail and if something doesn’t look perfect you can hide it by adding some water-distortion. For example these fishes are flat (seen from the side) because they’re just moving textures on a cylinder:


Source: X:Rebirth

But as you see in the first video this disadvantage is covered by placing some algae. Really interesting: The abrupt bending of the fish when it hits a “corner” of the cylinder-polygons fits well to the “spontaneous” movement of real fish.

ThickFish 3500
For those who like it Thicker. Stronger. Better.

There’s another great way of bringing life into your fish tank! Here you can see particles which gives the fishes two directions instead of letting them just swim in circles:

Looking closer you’ll notive that they aren’t flat! The manufacturer Rocksteady made them out of tasty polygons:

You might ask yourself how these particles disappear at the end of their lifetime. We guess it’s to avoid sorting-problems that developers don’t like to to use materials which can fade out smoothly:

They just shrink – but don’t worry! The aquarium setting works to our favor again. Do you know when big round aquariums distort the view a bit?
If you look at the first video again it almost looks like the bent surface acts like a magnifying glass and shows the growing & shrinking fishes in the middle bigger as the ones on the border. That’s why we think that the behavior of these fishes will not confuse observers too much.

ParticleFish 4000
More freedom for happy swimming fishes.

That’s not the only way Rocksteady uses to bring fishes a nice home. The example below might look very similar but there’s a lot more free, random and happy fish-movement:

Even if the fishes try to hide a secret by not showing their flank to the observer when turning around (as you can see above) we must confess that in reality these fishes are flat like their brothers in the very first example:

(We blame the distortion for that some fishes have a small offset to their particle and overhang a bit.)

But the frosted glass hides that perfectly and the only question left is: How do these guys look at the end of their lifetime? Well, see for yourself:

The particles get scaled in one axis which almost looks like that at a last action in his life the fish shows his flat secret to the observer. An very interesting alternative to “just” fade the particles out smoothly.

XTRA #1
For those who like it big.

If you want to impress your customers with a real big fish crawling through your (non translucent water) like this one:


Source: Warcraft 3

You don’t need to get a fish with a complex rig doing crazy animations do show its back above the water:

It’s enough to get a simpler roll-fish with animated tail as long as nobody can look below the sea level and see what’s going on:


Source: Warcraft 3
XTRA #2
For those with open eyes.

Fishes with big eyes can be very interesting if they can dynamically look around:


Source: Fin Friends

At first this doesn’t sound like a complicated issue. Just put the fish and its pupils on different layers:


Source: Fin Friends

But when the fish can close his eyes you would expect that the eye lid would hide the pupil … which doesn’t work because they’re on the topmost layer!


Source: Fin Friends

It’s solved by removing the pupil layer for some animation states and render the pupils into the fish texture:


Source: Fin Friends

Here you see all possible animation states of the face texture and you’ll notice that some of them have pupils rendered into the texture and some don’t – the latter are the states where a extra pupil-layer is added to make the fish able to look around dynamically.


Source: Fin Friends

The code makes the fish look around but from where does the code know where the eyes “end” and avoids that the pupils move out of the eyeball? A very simple and clever trick: The pupils don’t move but only get rotated – with a slightly offset pivot point:


Source: Fin Friends

Thanks to our good friends at Claybox Games for supporting us with in-depth material!

I hope you found that stuff as interesting as I do and if you have questions or other feedback feel free to get in contact with me! :)

Update 1
The-Adjudicator mentioned in my reddit thread a really creative way of making an aquarium in Ultima Online:

“Basically it was made out of dyed “cloth”, stacked up into piles, then random dead fish are simply dropped where it overlays the cloth stacks. […] Ultima allowed you to stack items, so by stacking these square shaped pieces of cloth and coloring them in various colors people could create all kinds of items. Like this piano from cloths and a chess board.

6 thoughts on “Blubb! – Fish Tanks in Games

    1. Simon Post author

      Yeah I liked that game in general. It’s made by a friend and I think they did a great job with the graphics and how cute it is :)

      Reply
  1. mkvltra

    lol, very interesting insight on something that often goes by without any major afterthought. WC3 saw-fish is my absolute fav.

    Reply
    1. Simon Post author

      Good to hear that you like the Wacraft-Fish too! I really like it too – so simple, so effective :)

      Reply
    1. Simon Post author

      Hehe but at least it was a lot of work put into the game after the release and many patches improved the game in many areas.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *