The plein air challenge - or how to not make a game in 48 hours

Ludum Dare, which is a competition where you make a game in 48 hours, was on this weekend. I'm usually participating in this competition but this time I couldn't find a good idea. Instead I decided to do the plein air challenge where you do a landscape painting. But I'm not really into physical painting so luckily there's a digital version of the challenge where you find a landscape by using MapCrunch and make a digital painting of the landscape. After looking at a few photos I found this photo:

These fishes are very colorful so I thought it was good practice to learn a technique called texture painting. The idea behind this technique is to simplify the texture and not try to make it as realistic as possible. A game that's using texture painting is the newly released Sea of Thieves. One of the developers of the game gave a GDC talk where he explained how they did it: they simplified and this can best be explained by showing one of the slides from the talk:

I also watched a GDC talk by a developer from the game The Witness, which has a similar style. So I made the models in Blender and then I used Blender's built-in paint tool to paint the fish textures. The first fish I made was the Yellowtail Surgeonfish, and it ended up like this:

The other fish in the reference photo is called King Angelfish, and it ended up like this:

But the reference photo also include some reef rocks, which I thought would take a lot of time to make. But then I recalled a GDC talk by one of the developers of the game Firewatch, which is by the way also using painted textures. She said that you can make a few assets, like a few rocks, and then you can use them several times in the same scene. If you place them differently no-one will notice that they are the same rocks. So I decided to make one rock and then use only that rock. It ended up like this:

To make the texture for the rock I decided to test a technique called gradient mapping. It's easy to get a black-and-white image by baking the ambient occlusion to the rock texture. To color it you can use a gradient with the color range you want the rock to have, and you will automatically get a basic colored rock by using gradient mapping. Then you can paint the details you want the rock to have.

With two fishes and a rock, I put the scene together in Unity, and the final scene ended up like this: