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