1. FISHERY
  2. News

FISHERY News

development update #23

Hello everyone,

Another week has passed and some very nice progress has been made. All our focus has been on getting the plumbing system ready for "end of month big-ish update". Needless to say there is no new build this week but we can of course still share the progress that has been made.

The models you see in these pictures are all only for testing purposes with the exception of the pipes. None of the colours and shaders are final either so keep in mind the look of these objects is all very "work in progress".



The water can now be modified by plumbing objects. The latest code goes through a list of connected plumbing objects and asks each one to modify the water in some way. Simple pipes only pass the water along to the next plumbing object in the chain. If the next object happens to be a filter, the waste component of the water will be modified and then passed to the next object for modification.



We have started making the UI panels. The most important aspect of these UI panels is that they need to show players exactly how each object modifies the water. Above you can see how much the oxygen content of the water is changed by this oxygen regulator.



One aspect of the game that we have been scratching our heads about has been power, specifically electricity. There will be objects inside the aquarium as well as inside the plumbing area that are powered by electricity. In the above image you can see that this slightly ugly test object is in fact a hydro-electric turbine. The water passes through it and generates electricity. This is much more interesting than just having a finite power supply come with each aquarium, as we had in the first release of the game. Doing it this way means players will have control over just how much power is available and allows for more problem solving in the plumbing area.

Daisy chaining waste filters.


The plumbing area's main constraint is space and we intend to add many many plumbing objects. Each object will have it's strengths and weaknesses. For instance a very basic waste filter will be able to reduce the overall waste in the water by e.g 20 points. If you need more waste removed then you could attach another filter to the output connector of the previous one and so on. This results in a daisy chain of filters that remove a lot of waste when combined. If space and cost is not a problem then you could just buy a larger, more powerful filter instead but this requires more space and may also require electricity to work.

The plumbing system will be expanded over time to include many more devices and the water chemistry will be upgraded to handle more components like salt, PH and disease.

The first release of the plumbing system will come with only basic objects. Pipes, a waste filter, oxygen and c02 regulator, algae filter, power turbine, heater. This will be enough to allow things to work but as was said above this is just the beginning. Over time we will keep adding new objects that modify the water chemistry in useful ways.

For instance too much oxygen in the water can become toxic to fish. This problem could be a result of having lots and lots of plants producing all that oxygen. One way of solving the problem would be to simply remove some of the plants or add more fish, however this might conflict with whole creative idea for the aquarium. There will be a device called an "Oxygen Scrubber" which can be placed into the plumbing that absorbs oxygen from the water at a fixed rate. This would allow you to solve the problem without compromising your creative intentions as long as you have enough plumbing space.

Now of course players don't actually need to to use the plumbing system if they don't want to. There will be career mode qualifications and jobs that require players to make aquariums that are completely natural. Later on there will also be achievements for creating natural self-sustaining aquariums. Like most things in the game the plumbing system is just a creative tool but it also allows players to push the boundaries of what is possible in the game.

80% of the most important code is working at the time of writing this. Most of the programming that is still needed is UI coding and robustness coding. We spend a lot of time playing the game whilst trying to make things go wrong and break. It also helps us get an idea of what performance is like across a range of computers. Time is spent testing on older, lower powered computers. This helps us see what is slow, if we can improve performance for the slowest machines it automatically improves performance on anything that is faster.

We hope you all have a good weekend, We shall be back next week with more juicy progress.


The Fishery Team

development update #22

Hello everyone,

This post is being written earlier in the day than usual because we are on such a role this week with adding features and functionality that we want to spend as much time as possible making more progress before the weekend, although we will probably find some time to get work done on the weekend too. So this might be a little shorter than usual but its due to our excitement for making things better. We did say that we would show some more designs for filters and other devices this week but we just got carried away with improving the plumbing functionality. That is also the reason we have no new build this week, everything is in various states of being finished and tested and it would not be wise to release it just yet.

Here is a quick rundown of some of the things we added so far this week.

Plumbing area bounds:


There is now a proper graphical representation of the plumbing area which is beneath an aquarium. The graphics are not final of course and the background environment has not been made yet but it is coming together. Players will never actually see it like this in game. The plumbing area is only visible when actually modifying the plumbing system.

Out of bounds testing:


Objects placed outside the plumbing area will become invalid and stop working. The whole point of this is to encourage creative problem solving. Fitting things into a small-ish space that has to function is always interesting. Of course with larger aquariums there is more space so the challenge varies depending on the chosen aquarium's size and the players idea for what is actually in the aquarium.

Water flow overlay:


It is important that players can actually see the direction that water flows through their plumbing system. For example if a filter needs maintenance or runs out of power it needs to be very easy to see exactly where the water flow is obstructed. The overlay can be turned off. This is the first of many helpful diagnostic features will be added in the plumbing system and in the aquarium itself that will help display important information quickly and simply.


Collision testing:


Objects that are placed either partially or fully inside another object will cause them to become invalid and stop functioning. This will make it easier and faster to identify where players have accidentally moved an object into another object.


Camera framing:
When switching between the plumbing mode and an aquarium mode the camera will quickly and automatically orient itself accordingly. It is a small detail but important to prevent tedious camera movements from players. When hitting the reset camera button it will automatically reset to frame either the aquarium or plumbing area depending on the current mode.

Saving and loading:
We also started adding functionality for saving and loading plumbing objects. The data is quite similar to all other object data in the game with a few differences in how it is interpreted. The position and rotation data goes through a small process to ensure it stays precisely in a 3d grid for instance.

Manipulation:
The input and output pipes can be moved but constrained to the ceiling of the plumbing are. This is done automatically so the player does not need to worry about keeping them in the correct position.

Bug fixes and robustness.
The usual small bug fixes and code tweaks have been done to prevent instability. A lot of time goes into making sure that certain operations happen in a very specific order.

Alerts:
The 2nd version of the alert system is coming together and that is what is making some of the test pipes in the above images go red. Some objects can have more than one reason to alert the player to some problem. For example a pipe could be out of the plumbing bounds and be out of power. A similar thing will happen with plants and fish but players can turn on or off the diagnostic overlay so plants and fish dont turn red unless players want to quickly see what has problems.


The next set of features and functionality that we start working on today are related to actually modifying the water chemistry and making the user interfaces that allow players to see exactly what each plumbing object does to the water. There is a lot of data that needs to be displayed to players so they can make tweak the ecological parameters to perfection.

A lot of work also needs to go into freezing the simulation in the aquarium and sending a snapshot of that data to the plumbing system when players switch to plumbing mode. This is done so players can experiment and tweak their plumbing without worrying that the aquarium above is descending into chaos.
It is not just as simple as telling everything to pause updating because we need things like the physics system to continue updating in the plumbing area, why?, because we piggyback off the physics system to detect connection points between pipes and other objects and collision detection for when a player might move an object inside another. It is a little complicated to say the least.

The Fishery Team

development update #21

Hello everyone,

We will have a new build uploaded tomorrow (Saturday) rather than tonight because we want to do more testing to make sure the changes we made this week are not causing trouble but rest assured that it will be uploaded.

We were hoping to have more of the career system done this week and into the build but we just did not have time. The aim was to have first parts of the "Aquarium School" tutorials ready. For instance basic tutorials that teach players how the cameras work, selecting, de-selecting, creating objects and fish, caring for plants etc. There are going to be pre-made aquariums that are to be used as teaching aquariums which are loaded when players decide to try and gain qualifications and complete these tutorials. These aquariums will be loaded much like normal aquariums that the player creates.

However sharp eyed players might have noticed how long it takes to load an aquarium or make a new one. It is not horrendously slow but it's not super fast either. It can take anywhere from 8-15 seconds depending on the computer it is run on. The reason it takes this long is actually nothing to do with the aquarium it is loading. Every time an aquarium is loaded the entire gameplay scene is reloaded along with it. That means all the art assets and code is freed from memory and reloaded again. This is quite nice because it ensures that everything is loaded and setup afresh but it is not how it should be when players want to switch rapidly between aquariums.

The solution therefore is to just delete only the contents of the aquariums that were created by the player before recreating the aquarium to be loaded. It sounds easy bit it is actually quite tricky because so many of these objects connect to other parts of the game so they can simulate correctly. Removing all these connections has to be done quite carefully so parts of the code are not accessing memory that has been made invalid because an object has been deleted.

We finally managed to get it all working correctly and now the loading times that previously took 8-15 seconds now take around 1 second. Which is great. We also managed to increase the stability and reduce complexity of the main gameplay scene's loading code and greatly increased the stability and robustness of the aquarium manager where players actually manage their aquarium files.

In reality loading times, reading and writing files are quite uninteresting to most players but wasting 10+ seconds every time players want to load an aquarium is just not good enough. For instance if we manage to sell 100,000 copies of fishery and every player loaded one aquarium after the game booted and loaded itself once. That is approximately 1,000,000 seconds of loading which translates to approximately 11.5 days collectively spent just loading. If you extrapolate that over the course of the game's lifetime it quickly adds up to tens of thousands of years spent on loading.

But anyway, now that it has been fixed up and made more robust we can start adding the more interesting gameplay stuff so stay tuned for that in next week's update.





We have also been working more on designing the first art content for the plumbing system. Our research into the subject has found that it is common to have plastic pipes for such systems. However plastic is not the most interesting of materials so we have spent time trying to make the models themselves quite interesting and not just simple cylinders.



We have also made more progress with the design work for a few basic devices like filters and gas regulators but they are not quite ready for showing just yet. We will be able to show something next week along with a few other things.

January has gone by quite fast indeed. Although we have not got everything into the game that we wanted in this month, what has been added is quite important and we are glad they are off the to-do list. We wish you all a good weekend.

The Fishery Team

development update #20

Hello everyone,

It has been quite an interesting week with lots of things being worked on. There is no update to the build today but there was one at the start of the week we made a patch update that fixed a nasty bug that effects some players. Most of the small tweaks that would have gone into a build today from previous weeks ended up being part of this patch.

The bug occurred when loading older save files into more recent versions of the game. It should have been something that we found during testing and has given us ideas on how to make the loading code more robust. The person who found the bug would like to be known as "King Rensu". Well done your majesty for finding the bug and blessing us with an email with the saved files attached.



This is still very much a work in progress showing only the colour texture map. We are calling this a "blue mosaic fancy" guppy. It is really difficult to figure out the correct naming terminology. There are lots of sources of information on the internet from which to research but quite often there are differences in specifics. No doubt any fish experts among our players will be very vocal when we get a name wrong which will help.

This guppy model is brand new. It is the base female guppy model. As we said a few weeks ago all fish we make from now on will be gendered to prepare for when we add the breeding features. A slightly different animation rig will be applied to this model with the aim of getting better movement in it's tail fin as well as a bit more articulation in it's dorsal fin.

Once we have finalised both male and female models we can paint many different skins for any particular body shape. This is in anticipation of players wanting lots of different types of guppies because having lots of colourful fish that are all different is fun.

It will also allow for players to become guppy experts in the career system. Breeding guppies, collecting guppies etc. This will be done with most fish species. For instance there are a lot of types of goldfish body shapes and many different colourings for each body shape so it might be easy to imagine that we could have over 100 fish in the game just because of all the variations. Molly fish have a few variations of body shape but many variations of colours for instance.

Unlockable Modes:

Unlockable shop inventory items.


We have made progress adding features specific to the career system. Unfortunately it's a lot of rather boring stuff but quite important.

Unlockable items and modes. The whole point of a campaign/career mode in most games is so that it serves as a mechanism for limiting the availability of items and features to players. It is done like this usually because it makes more sense to start with nothing and then as the player increases their skills and is better educated in the game's mechanics they are given new things to play with.
However it is not our plan to make players spend hours and hours grinding to unlock new features and items. Because there will be lots and lots of things to unlock, unlocking items will be quite frequent and given as rewards for gaining qualifications, completing jobs, discovering secrets and more.
The modes will not take long to unlock because they will be part of the initial "aquarium school" tutorial.

Before:

After:


A minor change we made was to incorporate the aquarium selection interface into the main shop interface. This was simply because it was inconsistent with how all other items are created in game and no longer made sense.

inventory before:

inventory after:

The inventory itself has been modified slightly so it takes up less space on screen.


Players will need to define how the system treats any new aquarium that is created. Either sandbox or career. At the moment career mode is not available so the game will play just the same as before. Changes like this modify how the game is saved and loaded for each mode. As was said before this is boring stuff but extremely important to have in the game before any of the fun things can be added.



More progress has been made with the plumbing system. Manipulators have been added into the plumbing mode so it is possible to move and rotate each piece after it has been placed in the world. There have been some changes made to how manipulation is handled in this mode because everything sits in a 3d grid. Therefore rotation is limited to increments of 90 degrees and when an item is translated (moved) it does so at increments equal to the size of each grid cell. Hopefully the .gif clarifies exactly what that means.

The system now calculates the flow of water through the pipes as seen by the blue line in the gif. This will automatically detect if the water coming into the plumbing system from the aquarium actually makes it's way back to the aquarium.
This code calculates all the connections and water flow has to be executed in a very specific order and synchronise with the physics system so all the components are updated with the correct positions. It all seems to be working at the moment but much effort will be made to break it during testing.



Here are some images of prototype plumbing pipe pieces. The valves dont have a purpose at the moment other than just creating some visual interest. We are still figuring out the correct diameter of the pipes and what is an optimal polygon count for each piece. The rest of the aquarium will be hidden whilst the player is in plumbing mode so that means these items can have a few more polygons than usual.

It's a matter of weeks, not months until the first versions of the plumbing and career systems will be in the game. We will see what we can squeeze into the game build next week.


The Fishery Team

bug fix patch 0.2.38

Hello everyone,

We start this week with a slightly serious bug fix. There were some reports that the game was hanging when loading a saved game. This seemed to be quite a rare occurrence because there has only been one forum post about it. This bug was a bit tricky to track down but it turns out it was because of a misinterpretation of some saved data which was then processed incorrectly because the system recognised it as a different type of data.

We can only fix these sorts of bugs when we can recreate their conditions. Fortunately someone else experienced the bug and was able to send us the file they were trying to load. When we loaded that file in our debug build the bug showed up instantly.

This sort of bug is good to find because it tells us what we need to do to increase the robustness of the code so that if something like this happens again the game will not crash or hang. We have been quite lucky so far because this is the only serious bug that we have found that actually causes the program to fail. It is of course possible that there have been crashes that players have not reported. So we urge anyone who experiences a crash or hang in the program to get on the forums and tell us. That is what early access is all about and it helps us make the game better.

The Fishery Team