1. FISHERY
  2. News

FISHERY News

development update #40

Hello everyone,

It has been an eventful and tiring week indeed. A lot of work has been done to improve the behaviour of the fish. We had very much hoped to be able to to have a new build showing it off today but we sort of ran out of energy. The last few builds we managed to upload really took a lot of brain power and I am personally fairly exhausted when it comes to coding. Excellent progress has been made but I would really like to refine things further before showing it to players

Not that I am complaining and this is not some sort of crisis. I just need a change of task to rest my brain a bit. So next week and probably the week after I will focus purely on making fish art. My esteemed colleague is busy working on some lovely new backgrounds which we should be able to show soon.



Most of the fish in the game are fairly old. You should be able to easily figure out which ones are old because they have very cartoony eyes. Our latest fish designs are much more refined, the models are much more detailed and our ability to paint these fish has improved greatly. The changes we made to the animated fish shaders in the last few weeks actually require the models to be more detailed so the animation looks smooth and lovely.

We have already shown in previous posts the progress that has been made on the Tiger barb fish, platys and guppies. My first tasks next week will be finishing these off and adding them to the game. It is important to replace the old fish before we add any more entirely new species just so the art style stays consistent among the fish and does not cause any confusion to new players.

The fish list on the forums keeps growing and over the weekend I'll check out more suggestions made by people and add them to the list. Each species requires a little bit of research before adding it to the list. The main thing we look at is the size of the fish. Adding really large fish, for instance a fully grown bluefin tuna would be quite difficult because we don't currently have an aquarium big enough to put them in and we need to experiment with how the physics system deals with such large objects interacting with smaller ones. We don't want smaller fish being accidentally blasted into orbit because a tuna swims into it.

We are actually writing a set of career mode objectives where players will need to raise bluefin tuna until they are juveniles to help increase the numbers in the ocean.

Sorry again that we could not get a new build out but good things are coming very soon and there will always be a new post every Friday detailing our progress.

As usual we wish you all a good weekend,

The Fishery Team.



development update #39

Hello everyone,


This week has been a very good week indeed. Very significant progress has been made in the areas that deal of fish performance, animation and time taken to add a new fish into the game. A new build which includes these changes will likely be uploaded on Monday. There are also some long overdue improvements to the fish behaviour that we would like to squeeze in over the weekend.

Non-Floppy:



Floppy:



Fish floppiness. It sounds silly but it is a very important part of making the fish movement feel nice and fluid as they change direction while swimming. It is now calculated entirely within the fish shader which runs on the GPU rather than using a traditional bone based method. The code that calculates the direction and intensity of the floppiness has also been improved to be more accurate and faster than previous versions.




Animating each fish's swim cycles was also done using traditional skeletal animation but now runs entirely in code on the GPU too. By simply tweaking the numbers we can tailor the movements to match the body shape of each fish so it's movements look natural and less generic.




Now that we have all of this stuff running on the GPU, the CPU does not need to run as much code. This will allow us to have more fish present in an aquarium at one time and they can be more detailed. Fortunately we have already been remaking the fish currently in the game as well as making new species. The above gif shows a test scene. Before we made these changes we could handle around 150 fish before I became annoyed at the performance cost. Now we have around 400 and performance is still very acceptable. Of course there is still work to be done to squeeze every last bit of performance out of this.


Bit of a short update this week. Completing these changes has taken a major weight off of our minds. Now that it is much faster and less tedious to add new fish into the game it will save us around a year's worth of work. Once we have sorted out a few more things in the game we are aiming to be in a position where can add a new fish species every week along with new decorations and plants. We are not there yet but we are close.

The update we will be releasing on Monday will include the new Neon tetras, Cardinal tetras and green neon tetras. Six new fish in total because each species has a male and female which are separately painted and their models differ in size and shape. Then in the coming weeks we will replace the old fish still in the game like the tiger barb, sunburst platy and common goldfish etc with their new versions.

Once that is done we will then start adding fish from the incomplete list of fish that you can find on the forums. People have given so many suggestions that the list has grown quite large indeed. Rest assured we are going to try and add all of them into the game. Be sure to check it out and submit more suggestions.

As always we hope you all have a lovely weekend.


The Fishery Team

development update #38

Hello everyone,

It is the end of a very intense week but we have achieved much. A new build is ready to be uploaded to steam. We want to spend few more hours testing it during the day time after a good nights sleep so any obvious mistakes can be detected but for sure the new build should be available this weekend.

In the past few weeks we have re-written how players select and manipulate objects in the game. These changes specifically deal with the ability to select and manipulate more than one object at a time. In versions of the game before this one it has been rather tedious to decorate the inside of an aquarium by moving objects one at a time. Making complex plumbing networks was just as tedious. This update represents the first of many updates that will reduce tediousness and allow players to be creative at a speed they will enjoy.

What is the same?



A single left mouse click will replace the entire selection with the object at the position of the mouse.



right clicking or left clicking over empty space will clear the entire selection.


What is new?



Left click while shift is held to add objects to your selection.



left click while control is held to remove objects from your selection.

Clicking on empty space while holding shift or control will not change the selection. This is to avoid accidentally not clicking on something and clearing the entire selection.


Now that more than one object can be selected we need more capabilities in the area of manipulation.



The real point of multi-selection in my eyes is that ability to move, rotate and scale things as a group.



Moving multiple objects according to their coordinate space is where the code got way more complicated. This may not be something used often but it is good to have in the toolbox.


Rotations have even more options. The pivot point of the rotation suddenly becomes more important.



Rotating with a group pivot allows players to use the object selected last as the centre of rotation.



Rotating with the centred group pivot will put the pivot in the centre of the selection. Technically it is the averaged position of all the objects in the selection but quite often the position is close to the centre.



Rotating without a group pivot is still possible of course.



Scaling is more or less the same except we can now scale as a group.



Individual scaling still works the same.



Moving lots of objects in the plumbing system is also works and is robust enough to keep all the network's connections. Changes like this would previously require a lot of mouse clicks and sanity.



These new abilities also work with duplication.



And of course deletion.




Even if players select objects that are not supposed to be manipulated it wont screw things up. For instance we cannot move, rotate or scale fish but if you occidentally select a fish while selecting a large number of decorations the manipulator will ignore the fish and you wont be required to deselect it in order to make the manipulations work.


This seems like a lot of progress but it is just scratching the surface of what we are going to add over time to improve this set of systems.

Marquee selection:
One such improvement will be to add a drag selection marquee tool. This requires some clever programming because it would allow players to select the entire contents of an aquarium with a simple click and drag of the mouse but that could mean selecting thousands of objects in a single frame and there are performance considerations to take into account. But rest assured it will be in the game.

Selection sets:
It may take a while to select a large group of objects such as a tree stump covered in plants. Players may wish to move, rotate, scale that selection often. To avoid painstakingly re-selecting these groups of objects over and over again there will be the possibility to save and name that selection as a sort of bookmark. This means the player only needs to select this selection set from a menu in order to select that group with a single click.

Selection layers:
Sometimes when selecting things in an aquarium full of stuff it is very easy to accidentally select something that was not meant to be selected. Choosing which layers of objects can be selected will help reduce this frustration. For instance you might only be interested in selecting plants. But there might be a lot of fish swimming about in front of the camera. Turning off the selection layer for fish will keep the fish visible but disable the ability to select them. this will also work well with the drag marquee selection tool. If players want to select only the plants in the aquarium they could turn off all the selection layers for everything except plants and drag select the whole aquarium resulting in all plants being selected.


Prioritising work can be a bit of a challenge. A few weeks ago I wanted to get the first version of aquarium school into this update but multi-selections was just more exciting to work on and I think its probably better for players to have changes like multi-selections instead of tutorials at the moment. Not to mention that we should focus on more art content for a while. Great progress has been made with new fish in the past few weeks and more progress is still to be made. I can't say for sure what will be in next week's update but it will be interesting and fun.


As always we wish you very good weekend.


The Fishery Team

development update #37

Hello everyone,

It has been another productive week indeed but again we do not have an update to the game build itself.

Lots of large, slightly complex changes are being made to the game which require more testing before we let players use it. One of these changes is "multi-selection" which is the ability to select and manipulate more than one object at a time. It will reduce how tedious it is to move things around in the aquarium and in the plumbing area. Quite often when creating a plumbing network a large group of objects need to be moved one position over. Currently this means players would need to select an object, move it, select the next object, move it etc etc. The new system will eliminate that. Players will just hold shift and, select, select, select, select, select and then move the entire selection of objects all at once.

Time has also been spent painting new fish!!



This week two more types of tetra fish were painted to add to last weeks neon tetra (right). On the left is a Green neon tetra, in the middle is a Cardinal tetra. We already have a Cardinal tetra in the game but it's using an older model and texture and will be replaced with this new version.

It has taken around 6 hours to paint both male and female variations of each of these tetra fish. It will probably be longer for more complex fish. The Boeseman's Rainbowfish which I have been procrastinating about painting is going to be hard. However I don't think speed is import. If I can paint a fairly complex fish in 1 day then that is a good result but if it takes 2 days and looks good then I am fine with that too. Quality has to come first and even though our art style is stylized and simplified it does not mean it is easy. Furthermore it is important that players can see that we have really tried hard to make this game good.



Here is a fun little gif of them swimming about. This is a test scene that we are using to test new swimming features and techniques. It also helps us judge the fish textures if the fish are moving about. In this particular scene we are testing the performance of the fish shader and techniques to get the fish to bend nicely when they turn whilst swimming which is already present in the game but needs improvement.


Bit of a short post these week but work shall continue into the night and through the weekend as we are determined next week to update the build with some much needed features, bug fixes, quality of life improvements.

Hope you all have a great weekend

The Fishery Team

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