development update #36
Hello everyone,
Another busy week with lots of progress made. There is no new build today but we uploaded a new build at the beginning of the week on Monday. This had some very nice improvements which were not detailed in last weeks post because we were not sure we could get it into the build last Friday. But there was an unforeseen delay which meant we could only upload it on Monday. Thus giving us enough time to squeeze it into the build. We shall talk about that first.
The substrate sculpting tools were in dire need of improvement. The code that controls how the substrate deforms when brushed has been completely re-written. It uses less code than before and uses better mathematics. The results are much nicer.

The standard sculpting brush to raise of lower the substrate has a smoother falloff to it and the brush manipulator can hover across the glass and still affect the substrate. Before the brush was constrained to the substrate and if the player moved the mouse off the substrate it would stop brushing and generally be annoying.

Smooth brush is very much improved also. Smoothing results much.. smoother and they require less repeated brushing to get a smooth surface.

A new "noise" brush has been added. See on the left hand side we use the normal raise brush and the resulting shape is fairly smooth. Then on the right hand side we use the new "noise" brush and the resulting shape is much more jagged and uneven. Players will probably want to adjust the intensity using the intensity slider but it will be interesting to see if it is useful.

We have finally added a reset button for substrate which will erase all your sculpting and return it to a default state. The default state of the substrate has also been improved. It's shape overall is a bit more detailed and there are far less repeating noise shapes in it's sculpting surface.
Remember these are already in the current build so you can play with them now.
Lets take a look at what we worked on after that.

We already have a Cardinal Tetra species in the game but that needs to be improved. Fortunately the body shapes of cardinal and neon tetras are quite similar so we made a generic tetra model for both male and female that can be painted to look like different tetra fish species. Some other tetra fish, such as lemon and diamond tetras do not have such a similar shape and they will have different models.
We started with the neon tetra painted maps. Next week we will re-create the cardinal tetra variations and also the green neon tetra if we have time.
We also spent more time working on the animated shader for the fish. I might have explained this in previous posts but at the moment we have traditional 3d animated skeletons controlling the fish movement. Animating all the fish like this adds to the time it takes for us to create a new fish and gives more work to the CPU in game so it can calculate the shape of the fish based upon skeletal positions and rotations.
Now we do all the animation within the shader using hand tweaked mathematics on the GPU. The performance gains should be quite significant, especially for less powerful computers. It will allow for more fish to be on screen at once without causing the framerate to drop and we can create the fish saving around 2 days of work per fish.
There were also performance improvements made to the code that controls how players select any object. This was almost completely re-written and it is now much faster. The original code would run on a per object basis. For instance if you had 1000 glosso plants in your aquarium. Each glosso plant would ask "Has the player selected me?" each frame. Its not wise to program this sort of thing like that because the performance price increases with every new object added to the aquarium. To be fair it was written before we added the creation brush so it would have been very tedious and difficult to add 1000 of anything into the aquarium. The new code does things a completely different way and the time spent asking each object if it has been selected has gone away.
It is also important to make these changes to the selection system because it is the next step to having the multi-selection functionality that I and probably everyone else wants and needs.
But more on that next Friday. I am pretty confident that next week there will be an update to the build and fingers crossed it will include some new high performance fish.
We hope you all have a great weekend.
The Fishery Team
Another busy week with lots of progress made. There is no new build today but we uploaded a new build at the beginning of the week on Monday. This had some very nice improvements which were not detailed in last weeks post because we were not sure we could get it into the build last Friday. But there was an unforeseen delay which meant we could only upload it on Monday. Thus giving us enough time to squeeze it into the build. We shall talk about that first.
The substrate sculpting tools were in dire need of improvement. The code that controls how the substrate deforms when brushed has been completely re-written. It uses less code than before and uses better mathematics. The results are much nicer.

The standard sculpting brush to raise of lower the substrate has a smoother falloff to it and the brush manipulator can hover across the glass and still affect the substrate. Before the brush was constrained to the substrate and if the player moved the mouse off the substrate it would stop brushing and generally be annoying.

Smooth brush is very much improved also. Smoothing results much.. smoother and they require less repeated brushing to get a smooth surface.

A new "noise" brush has been added. See on the left hand side we use the normal raise brush and the resulting shape is fairly smooth. Then on the right hand side we use the new "noise" brush and the resulting shape is much more jagged and uneven. Players will probably want to adjust the intensity using the intensity slider but it will be interesting to see if it is useful.

We have finally added a reset button for substrate which will erase all your sculpting and return it to a default state. The default state of the substrate has also been improved. It's shape overall is a bit more detailed and there are far less repeating noise shapes in it's sculpting surface.
Remember these are already in the current build so you can play with them now.
Lets take a look at what we worked on after that.

We already have a Cardinal Tetra species in the game but that needs to be improved. Fortunately the body shapes of cardinal and neon tetras are quite similar so we made a generic tetra model for both male and female that can be painted to look like different tetra fish species. Some other tetra fish, such as lemon and diamond tetras do not have such a similar shape and they will have different models.
We started with the neon tetra painted maps. Next week we will re-create the cardinal tetra variations and also the green neon tetra if we have time.
We also spent more time working on the animated shader for the fish. I might have explained this in previous posts but at the moment we have traditional 3d animated skeletons controlling the fish movement. Animating all the fish like this adds to the time it takes for us to create a new fish and gives more work to the CPU in game so it can calculate the shape of the fish based upon skeletal positions and rotations.
Now we do all the animation within the shader using hand tweaked mathematics on the GPU. The performance gains should be quite significant, especially for less powerful computers. It will allow for more fish to be on screen at once without causing the framerate to drop and we can create the fish saving around 2 days of work per fish.
There were also performance improvements made to the code that controls how players select any object. This was almost completely re-written and it is now much faster. The original code would run on a per object basis. For instance if you had 1000 glosso plants in your aquarium. Each glosso plant would ask "Has the player selected me?" each frame. Its not wise to program this sort of thing like that because the performance price increases with every new object added to the aquarium. To be fair it was written before we added the creation brush so it would have been very tedious and difficult to add 1000 of anything into the aquarium. The new code does things a completely different way and the time spent asking each object if it has been selected has gone away.
It is also important to make these changes to the selection system because it is the next step to having the multi-selection functionality that I and probably everyone else wants and needs.
But more on that next Friday. I am pretty confident that next week there will be an update to the build and fingers crossed it will include some new high performance fish.
We hope you all have a great weekend.
The Fishery Team