1. FISHERY
  2. News

FISHERY News

development update #14

Hello everyone,

We are in fact early with week's development update. Quite a lot is being worked on but a good portion of it wont be ready until next week's update. That will include the new fish we are adding and more realistic eye textures for all fish. We wanted to get the fish eye textures into this week's update but we need to spend a bit of time modifying the models of each fish to accommodate the new eye shapes.

We have also been making significant progress in the planning stages for the career system. The career system will be the answer to the question that people rightfully ask, "what the heck do you do in Fishery?". The main thing that is missing at the moment is some sort of progression coupled with tasks and other things to do. This will be one of the first things added to the game when we come back in January and it will significantly change the game for the better.

A quick reminder that next week will be the last update we do this year that will accompany a new build of the game. There probably will be a development update post like this one every Friday over the Christmas season. It will probably talk more about certain ideas and plans we have for the first weeks of 2020 and later on in the year.

But more of about all of that next week. What have we been working on that has made it into this week's update I hear you ask.



The treasure chest item now looks and behaves much nicer than before. This has been something that has bugged us for a while. We built this lovely little treasure chest but the treasure inside looked like it was from a game made in 2002.



The treasure has been made with more polygons and made the shader has been modified to look shiny. We have also animated the lid to open and close every 10 seconds and when it opens it emits bubbles. Players can have the same amount of control over it's gas balance and rate as they do with the air stone. From a computer code point of view the treasure chest is a type of air stone.



Changes have been made to the scale manipulator so it's visual appearance is more consistent with the translate and rotate manipulators. Changes have also been made to the rate in which objects scale when the manipulator is manipulated. It was quite sensitive and hard to make precise changes to an object's scale. This has now been reduced so things scale at a rate that hopefully does not frustrate players.

All items that can be scaled have had their maximum scale limit removed. This means players can scale things to be as big as they want. The minimum scale limit is still in place. This is to prevent the physics system soiling itself when physics colliders are scaled too small or even inverted.

A fair few quality of life fixes have been made to how manipulators and creation brushes react when players switch game modes. For example being in the shop mode whilst having an object selected and manipulated whilst switching to inspect mode and then back again would not see the translate manipulator re-appear but the translate button would still be turned on. That is a bit of a mouthful to say but it's goofy and annoying behaviour which does not create a pleasant creative experience. Similar fixes were also made for the brush creation tool.

Well that is it for this week. Next week's update post will probably be quite long because there will be much to talk about. As always feel free to ask questions, talk about features you want in the game, request new fish, plant species etc.

Have a great weekend,

The Fishery Team

development update #13

Hello everyone,

It has been a monster of a week and there is so much to tell you all about. There is a new build of the game that should be uploaded to steam now-ish. It has quite a few tweaks and improvements, some of which shall be explained below.

The 19th of December will be the last upload of a new build this year. We will be going on Christmas break until some time in the first week of the January 2020. Which means there are 2 updates left this year and we want to make them special. We will focus on polishing some visuals and adding a very nice new fish. The species of fish will be kept a secret but it is one that is requested often and I think we can do a good job making it in the time we have left. So I hope you all look forward to that. On top of that there will be the usual tweaks and re-writes of code and features.



But now a little about this week's build. We have finally added the skeleton fish. It was planned that it would be added on October the 31st. As can be expected with software it was slightly delayed. The reasons for it's delay were that the fish AI system was not ready to expand and accommodate it's needs. Most fish in the game are social fish that can die and are more or less friendly. The skeleton fish is none of those. So a large amount of the code that deals with fish and fish AI had to be re-written to allow for more possibilities. We are pretty much there. The only thing missing is the correct skeleton fish AI behaviour. At the moment it just swims around and occasionally rests. The actual behaviour that will soon be added is a sort of scavenger behaviour. It looks for dead or dying fish and then eats them. Which could actually be quite useful. It also requires we create AI behaviours for the victims of the skeleton fish. Fish need to act fearful and panic when pursued by this beast and we simply ran out of time to write and test this sort of behaviour this week but rest assured it will be in the game soon.



We have made progress with changing the textures for the fish eyes. They are not in the game yet since these are version 1 tests but we think they are going in a much better direction for the art style in the future. The only slight problem is we have to change the models. Each fish's eyes stick out more than they should to accommodate the previous version of fish eyes. This will need to change before we put the new textures in the game but it is a very minor problem.



We have made quality of life changes to the sculpting brush and the placement brush. They can no longer scale to be bigger than the area of the floor. Sometimes they got a bit too big and things felt very clumsy. We have also made changes to how the scale of newly created objects work. When brushing or dragging a new item into the world they should never be so big that they are bigger than the aquarium itself. That sort of thing is horrible and we are slowly eliminating issues of that kind. This does mean though that the scale of objects in your saved scenes will be somewhat different. Sorry for that but this sort of thing will have to happen from time to time as we iron out these things.

We have made progress with the new plumbing system. It can hopefully be expected to be in the game by the end of January in it's early form. We dont have anything to show just yet but soon we will.



Here is an interesting bit of performance optimisation. The numbers in the two images are not quite accurate because the tool that measures the CPU performance does slow things down quite a lot in order to record detailed information about how long code takes to execute. They show how much CPU time it takes to update several hundred plants. They update once a second. The first images shows these very tall spikes. This shows that all plants update at the exact same time every second and it takes rather too long to do so. around 56 milliseconds. (Remember this number is higher due to the profiling tool itself). One way to simply try reducing how long it takes to update the plants is to stagger their updates. The second image shows smaller, more numerous spikes taking around 32 milliseconds. All I did here was to randomise the start time of the update timers, which means that the plants still update once a second but the exact time that each update timer reaches one second is different, which means we won't end up having hundreds of plants update at the exact same time. This is a very simple way of reducing performance spikes and much more complex things can be done. I can already here some people looking at this and screaming "multi-threading". Yes, I know but multi-threading is not a silver bullet.


Slightly more detailed release notes:

Fixes and improvements:
- Objects created from the shop should no longer be created too small or too large for the chosen tank.

- Brushes for substrate and item creation have their maximum scale adjusted to never be larger than the floor are of the chosen tank.

- New Fish: Skeleton fish has been added. It's behaviour is simple and not final but that will come soon.

- Inheritance hierarchy for the fish code has been re-created to allow for a wider choice of fish types, social, unsocial, living, undead etc. this has reduced complexity and reduced code.

- The part of the fish aAI that allows a fish to decide which state it wants to transition into has been completely re-written. It is now far more simpler, robust and capable of supporting more complex behaviour. There is also a lot less duplicated code and it is faster than ever to put together the brain of a fish.

- Small optimisation for plant AI updates. All plants updated at the same time every second. This caused spikes in performance. Plants still update every second but the starting time for each update is a random float between 0 and 1 thus staggering the updates of plants across many frames.



Next week's roadmap:
- Start making a special new fish (details coming soon)
- Final tweaks to new fish eye textures
- Refactoring of selection code for all interactable objects to reduce redundant function calls
- More asset creation
- Make a better shader that represents shiny metallic objects. So we can create shiny treasure
- Add the new fricking algae system already


Next week's update should have some quite interesting things added to the game if all goes to plan. So keep an eye out. Thanks for all your continued support!


The Fishery Team

development update #12

Hello everyone,

It has been another rather intense week. We were determined to get back to releasing on a Friday and we are very happy to say we have succeeded. A lot of changes have been made. Bug fixes, optimisations, improvements to code robustness. We have also added some new art content, changes to the manipulators, fish ai and more.



These are objects that have been requested by players and since we need to test out some new code for these sorts of objects it was the perfect time to add them. This is just the beginning for these sorts of devices. There will be more ornamental objects that add gas into the water like the typical treasure chest that has bubbles coming from inside it to mini volcanoes.



This is a glimpse of the type of controls players will have when we add the plumbing system. There will be lots of devices like gas regulators, filters, heaters etc. that will be controlled by sliders that change that devices operation. It will be possible for players to have very precise control of water chemistry. Just as long as the devices are well maintained and have enough power. Power is not present in this example because that is being remade completely for the new plumbing system.



Here is another player request. The ability to change the coordinate space of manipulators. In a nutshell this means players can have the manipulator orientated towards the world or towards the object in question.



Switching is very simple. Click the little arrow in the bottom corner of the manipulator buttons and then choose a coordinate system.


We have made updates to the fish AI and added a new AI behaviour. Fish can now idle. Yes, they stop and contemplate digital existence for a while and then move on to something else. This was a much requested AI behaviour from players and it is high time we added it. This comes after we made huge changes to how fish are programmed and how the AI is programmed. It is now easier to add behaviours than before and takes less time. There is still work to be done to get things perfect but it means in the near future we can add more fish behaviours on a more regular basis.

Below is a slightly more detailed set of release notes and a roadmap for next week.


Fixes and improvements:
- Changes to the way fish AI is coded. Making it easier to add new behaviours without doing too much boiler plate code.

- Added an a new fish AI behaviour idle.

- Removal of lots of duplicate code shared between delectable items. This is part of a large reorganisation of the code so more creative item types can easily be authored without duplicating code.

- Translate and rotate tools now have the possibility to switch coordinate spaces.

- The first set of air stones have been added. Players can choose the ratio of C02 and oxygen released as well as the overall amount of gas released.

- Fixed a bug where the selection UI would appear in game modes where it shouldn't.

- Fixed a bug where renaming a fish to a name with an "f" in it would to the camera going into frame mode.

- Optimised the code for computing wander positions.

- Flock group target positions are not calculated every frame for groups that have no fish in the flock AI state thus reducing calculations where they are not needed.

- Flock AI steering direction will be re-computed based on the number of fish in the flock state and not based on the overall number of fish in existence.

- Added more robustness to the code that creates objects via the brush or drag placement mode. Objects that cannot be scaled will have their scale set to 1.0

Known Issues:
- Food and medicine still may not save and load properly. This is due to changes being made to their core code. We could not finish all their changes and could not make them savable at this time. This does not cause program instability. The items will simply not appear when loaded but players can still create new ones.

- Info UI for some items still don't work, this is being fixed soon.



What are we working on in the upcoming week?
- Experimenting with painting more realistic fish eyes
- Starting to make the new plumbing system
- New algae and waste textures
- Additional tweaks to fish AI
- Start coding for more interesting types of fish food. Like chunks of broccoli
- Cleanup more of the core item code


It has been a very intense week but we cannot wait to continue working on this stuff next week. Very exciting times lay ahead.


The Fishery Team

development update #11.5

Hello everyone,

Big thank you to everyone who came to visit us at HeroFest in Bern over the weekend. We collected a lot of valuable feedback and had a lot of fun meeting you all. It was especially fun to see those of you who were inspired by the video from GrayStillPlays and decided to fill the aquarium with fish until the frame rate was around 2FPS. Amazingly the game did not crash.

The update schedule is a little bit out of rhythm at the moment. We seem to be updating the game on Mondays instead of Fridays for various reasons. This is mostly my fault. I (Undercover Cheese) get a little too ambitious at the beginning of the week with changes and then have more bugs to fix when it is time to upload it to steam. It is much better for players if we update on a Friday because nothing is more fun than to have the weekend to play with game improvements. I want to try to get back to our original schedule of Friday updates so this week the changes will be less large but nonetheless important.

Version 0.2.19 is uploaded and should be downloadable shortly.

Fixes/Improvements
- Majority of the water chemistry code has been modified to make things less confusing and less annoying for players. The amount of C02 and nutrients that plants consume is very low. This will enable players to have thousands of plants (like Glosso) in their aquariums and not have constant C02 and nutrients problems. More variation will be introduced to this system when the water plumbing system is added to the game. Then players will have better and more nuanced control over the whole ecosystem.

- The way that water chemistry is displayed via UI to players has been made much less complex with much less data on display. This is not the final way that the data will be displayed but this serves as an intermediate step towards showing only the meaningful information to players so things can be easily understood.

- Inanimate objects like rocks, wood etc. now contribute something to water chemistry. Organic objects like wood will add a bit of nutrients into the water whereas rock based objects will emit a very small amount of C02 or Oxygen into the water. This whole point of this is to add more variation to the water chemistry so every time players create a new aquarium the ecosystem will always behave differently based on it's contents. This core feature will also be expanded upon in the upcoming weeks/months.

- Minor changes have been made to some UIs. Descriptions are back for inanimate objects in the shop. In the next few versions item descriptions will make a complete return.

- Minor changes to item selection UIs. Removing the displayed number value of a status slider and a few more minor cases of redundant data.

Known Issues:
- Saved games loaded in this version which were saved in a previous version of the game may not load in exactly the same way. This will not result in a crash but some status values may largely differ. This is due to changes we have made in this new version which no longer read data from older files in the same way. This sort of thing will happen from time to time as we make changes to existing systems but we will try to make it an uncommon occurrence.

- Medicine and fish food may not be saved properly at the moment. This is because the changes we have made this week are only an intermediate version of the final state of this system and not all the pieces are in place. All it means is that food and medicine will be absent when loading game files but it can of course still be created during normal gameplay.

- The info tab for some item's selection UI displays incorrect data.


What we plan to work on this week:
- Configurable local and global coordinate systems for translation and rotation manipulators.
- Reduction in complexity of fish AI code to allow for easier modification and reduction of bugs. This will aid us to more easily and quickly add AI behaviors to fish on a weekly basis.
- More modifications to the water chemistry code allowing for more variation in plant needs and outputs.
- Preparing/designing new fish food content.
- Create the first set of air stones. (much requested content from players)
- Reduce more clunkiness associated with the creation and editing of objects in shop/creative mode.
- General cleanup of certain UI code to reduce memory allocation for strings during run time. (will result in less stuttering in frame rate in certain situations)
- Create new art content for algae.

The Fishery Team

development update #11

Hello everyone,

This week went by very fast indeed but we have made significant progress in the water chemistry code. We are also exhibiting Fishery at HeroFest in Bern, Switzerland starting today (Friday) until Sunday. Due to this we have not had enough time to properly test this week's build before we upload it so it looks like it will be uploaded over the weekend or at the very latest Monday. I can however detail what has been worked on this week.

As I said earlier the previous way water chemistry was calculated was not done in a way that makes things fun for players. This is due to me over engineering certain aspects of the code design and having too many numbers displayed to players which ended up being confusing and not very informative. Most of these numbers are now gone and we have simplified how the water data will be displayed and calculated. Most of this will be fully fleshed out when we add the "plumbing mode" where players will have precise control about all aspects of water chemistry in a way that is not overly complicated or confusing and very soon there will be proper algae in the game.



Plant life is now more stable. In the above image you can see several hundred plants not dying. To anyone who has played previous versions of the game this is a rare occurrence indeed especially if I tell you that no pills have been added to the water to supplement C02 or nutrients. Lots of numbers are being adjusted and the way that data is calculated is quite different from before. When we have completed these changes we hope players can spend less time adding c02 pills into the water and more time being creative.

The next step is to propagate these changes to the fish related code so they don't die so much. Then we will re-work their ai so it can be modified and expanded with ease. The next few releases of the game should really change things around so players can have more fun and it hopefully starts to feel more like a game. We promise we will get there.

On Monday we hope to be posting a preview of some future art content. We are playing around with improving the art style whilst at the same time simplifying the maths inside the shaders. This reduction of complexity in some areas means we can add more complexity to other areas. This all sounds a bit cryptic but hopefully all will be explained in the next few updates. Exciting times are ahead.

The Fishery Team