1. FISHERY
  2. News
  3. development update #18

development update #18

Hello everyone,

This was the first proper week back after vacation and we have a new build to upload. Unfortunately due to a small scheduling problem the build may not be online this evening but it will certainly be uploaded within the next 24 hours.

This release includes quite a few tweaks and bug fixes that were worked on this week and over Christmas. A more detailed breakdown can be found at the bottom of the post.



A lot of the work this week went into cleaning up some ui features. Specifically how we deal with lists of things. It is really quite uninteresting but essential for aiding in the organisation of an aquarium. In previous versions players could only see lists for plants and fish but now everything that the player has created will show up in one of these lists.

It can be useful if someone accidentally moves a rock inside another rock and cannot find or select it. Quite often there are lots of plants and decorations placed in an aquarium which cover up pieces of food or fertiliser that have sank to the bottom of the tank. This will make them hard to see or select but now players can just view all the food or fertiliser and select it from it's list.

The reason we chose to add this now was because the new career mode uses a lot of lists to display qualifications, courses, jobs, mails etc and we needed a better performing and more robust solution for creating ui lists. So it was written from scratch with that in mind and now they work must better than before.

There will be more on the progress with career mode and the plumbing system next week.

If any of you read last week's blog post you will remember that the fish ai was not functioning properly. Essentially the problem was that social fish would not execute the flocking behaviour unless they really really really needed to. Which meant most of the time they were not flocking.

The problem was tracked down to one line of code which checked for conditions to exit the flocking behaviour once inside it. It would check that the social need was above the minimum value and if that was so it would exit to another state like wander or idle. This meant that a fish would enter the flocking state when it's social need was e.g 100 and then the next frame it would exit because it's social need was above the minimum which was 10. This was not ideal behaviour at all and most likely a mistake made while tired. Social fish should just decide to flock when they feel like it so these conditions were relaxed and the way that the social need was calculated has been changed. Now if the fish detects more than itself in it's flocking group then it's social satisfaction is increased.



One simple way to help debug fish ai is to attach some text to each fish that displays the current ai behaviour that it is executing. In the above image it might look a little overwhelming but we get used to it and testing aquariums full of fish really helps us to debug all the behaviour. This will become more and more important as we add more complex behaviours in the future. For instance when a single fish becomes scared and panics we want the behaviour to propagate to surrounding fish.
Think of it as an emotional chain reaction. One fish gets scared and the fish closest to it also get scared and then fish near to them get scared. It is sort of like a stampede effect.

The scale of the fish in relation to each other has been tweaked to match real world scales a little better. A keen eyed player noticed that the scale was way off after we added the Betta fish. This was due to a a bug where the minimum scale of each fish was overridden to be quite small and we had also neglected the correct scaling of all the fish as we have added new ones. We will be paying more attention to this as we make more progress and it becomes more important as we update each species with genders because quite often male and female fish of the same species are different in size so there are multiple levels of scale that need to be correct.

Well that is it for this week. Time for a little weekend rest and then back to work improving everything.

The Fishery Team

// -------------------------

Release Notes:
- (code) fish food and medicine share more of the same code.
- (code)"CreationType" variable now makes things less tedious when something is created.
- (code+ui) more lists of things have been created to allow for more visual feedback of aquaruim contents
- (bugfix) double clicking over a ui no long causes the camera to frame in on an object that is behind the ui
- (tweak) ripples are generated when a object floats on the surface and when a fish breaks through the surface while swimming
- (code) plants now have more varied needs values based on their size. e.g small plants consume less nutrients and c02 than larger ones
- (code) interaction manager has been cleaned up
- (code) all living things share similar code in regards to their status
- (bugfix) conditions for fish to enter the flock behaviour are more relaxed and increases the chances of flocking even when they are not in desperate need to socialise
- (code) the way that social needs for fish are calculated has been modified to make more sense.
- (code) input manager has been simplified
- (code) old objective system has been removed to make way for the new one
- (bugfix) stick object now has better random rotations
- (bugfix) tablets, fertiliser and medicine now save and load properly
- (tweak) ranged needs test if their input values are equal to the upper and lower limits not just within
- (tweak) the size of all the fish relative to each other has been changed to reflect the real world better. Though it is still not perfect and will be changed more
- (code) rewrite of the save system. Code is now cleaner and been reduced by 50%.