Unfortunately we cannot make today's update to the build due to illness. I (Undercover Cheese) have been ill since last weekend with a pretty nasty cold. (No it is not Coronavirus) but even whilst on medication, the symptoms are strong enough to drive productivity way down and after testing and reviewing this week's progress with my colleague we decided that we need another week to get it ready. It is very disappointing to have to do delay this but we cannot in good conscience release this update in it's current form. I am going to take the weekend off to try to get well and then back to work Monday so we can get the update out later in the week.
The Fishery Team
development update #24
Hello everyone,
It has been an interesting week and we have made some quite important progress. This progress may at first glance appear rather underwhelming but it represents the last major coding problem that needed to be solved in order for the plumbing system to work properly and as you will read further down, it is quite important for the rest of the game.
There is no new build again this week but we promise that next week there will be a new build and it will contain the plumbing system. Then after that, weekly builds will return.
Yes, we have added the ability to pause the game. At first you might think it is not worthy of much praise since almost every game has a pause feature. However as with most things in Fishery it is not as straight forward as you might think and there are reasons we have not been able to do it until now.
For most games, but not all, pausing is achieved by making the main update code loop finish it's execution before it actually updates anything in the game. The camera can't be moved, sometimes the music stops, everything else in the game just freezes because the code to update it is never executed. This depends entirely on how the game engine is programmed of course so it does differ between engines but in the abstract this is more or less how it is done.
In Fishery it is not so simple. For photo mode players have requested the ability to pause the game but retain the ability to move the camera so they can line up the camera to get the perfect shot. We also decided that the music should continue playing whilst the game is paused.
Plumbing mode requires us to pause the simulation that is happening inside the aquarium whilst the player is tinkering with their pipes, regulators and filters. It would be extremely annoying if everything dies in the aquarium whilst the player is plumbing. We need to pause the simulation only for things that are inside the aquarium but keep everything in the plumbing area unpaused and updating correctly.
This requires us to have a few different types of pausing functionality. - Pause everything including plumbing objects when not in plumbing mode. - Pause everything except the plumbing objects when the player enters plumbing mode. - Pause everything including the plumbing objects when the player wishes to pause the game from within plumbing mode.
Then of course there is the unpausing functionality that does things in reverse. - Unpause everything including plumbing object when not in plumbing mode - Unpause everything but pause the plumbing objects when exiting plumbing mode. - Unpause only plumbing objects when the player wishes to unpause the game from within plumbing mode.
suddenly it all looks a bit too complicated. It is a bit complicated but these are the outcomes required for this game.
Each type of object functions in a different way. There is code specific for each object type. Fish, floatable objects like food and medicine are all moved via the physics system. Object velocity is calculated based on forces and collisions and then this velocity is used to move the object every physics frame. Stopping the entire physics system from updating would not be desirable because when the player enters plumbing mode we need the physics system to calculate inter-collisions between plumbing objects and detect if the player is trying to select an object or attach a new object to another. We put objects like fish, food and medicine to "sleep". The physics system then ignores objects that are flagged for sleep and only updates the awake objects.
There are still a few small things to polish with pausing/unpausing. We are still debating exactly how much capability players should have during a paused game. For instance when making big changes to the aquarium design or fixing problems it is probably a good idea that players can just pause things and do their modifications before things go super bad if they are in fact trying to fix a problem. The game is after all supposed to be relaxing. No doubt we will tweak things with your feedback as time goes on.
We are extremely excited to finally get this rolled out. See you all next week with the new build!
The Fishery Team
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.
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
development update #19
Hello everyone,
It has been a rather intense week and we have been focused solidly on one thing. The plumbing system. Because of this there is no update to the build this week but we can provide you with more info about this feature and show some progress.
Players are frequently asking for filters, gas regulators, power supplies and other utilities to be added to the game. We more or less always wanted to have such items in the game from the beginning but we were hesitant to do so because adding bulky filters and other similar items to a nicely designed aquarium made things look a bit ugly. We do however like the technical aspects of creating the right balance of filtration, c02 and oxygen regulation and temperature controls and more.
The tricky part is putting together these two different game ideas. On the one hand there is the placement of decorations and plants to create a nice habitat for the animals that also looks nice. On the other hand is the utilitarian task of putting in place all the machinery to support this creation. These two concepts cant really exist in the exact same space without stepping over each other. Of course in real life there are perfectly fine aquariums with smallish filters and other devices inside the tank doing their jobs but our vision for fishery is to take things much much further.
The solution that has been discussed in previous blog posts is to have what is called a "Plumbed Aquarium". If you search for that term in a search engine and look at the all pictures you will see that it is a real thing and holds a lot of potential for interesting gameplay mechanics.
In the example you can see we are just joining up a pipe. What this is doing is connecting the pipe that is bringing the water out of the aquarium to the pipe that puts it back into the aquarium. Not very exciting but imagine adding all kinds of devices in between these pipes such as filters and gas regulators and lots of other things that can alter the water chemistry in interesting ways.
Each aquarium will have a plumbing area equal to it's width and depth dimensions. This means that smaller aquariums have a smaller plumbing area than larger ones. This will work as a sort of built-in difficulty factor. The water chemistry is easier to control in a smaller tank because there is just less water to deal with. Small, less powerful devices can easily change the conditions inside a small aquarium but larger aquariums need larger/more powerful devices to make changes to it.
As players become more skilled and experienced they will be able to handle creating and maintaining the plumbing for larger aquariums. In the beginning of the game players will only be able to access the small aquariums until they have made enough progress to unlock the larger ones. However we cannot talk about that until we have some of the career system in place which we will be working on next week.
Here is a picture showing the debug info. Each green ball represents a correct connection made between two plumbing objects. Each plumbing object has an input connector and an output connector. Water enters the object via the input connector, it is then modified, e.g oxygen is added to it and then it leaves this object via the output connector. In this case water is passed from pipe segment to pipe segment without being modified.
You can also see some little coloured lines attached to each pipe segment. These represent the orientation of each pipe. There is a bit of tricky maths happening to get these objects to properly line up and then allow for them to be rotated by the player. furthermore there is some logic that prevents the player from accidentally attaching an output connector to another output connector or an input connector to another input connector. We want players to freely express their ideas without worrying about making technical mistakes like this.
Our next steps are to add logic that detects when an object goes outside the plumbing area or intersects with existing plumbing objects. There will also be some logic that figures out if the water actually makes it's way from the water intake pipe to the water output pipe. Much like an electrical circuit it actually has to all be connected to work. There are a lot of less interesting bits of code to write and then of course there is the UI. Players will be able to see the current state of the water chemistry and clearly see how each plumbing object modifies the water at every step. This will allow players to finely tune their ecosystem to remain stable and balanced.
Next week we will be working on the plumbing system and the career system. There may or may not be an update to the build but there surely will be a post showing what we have been working on.
The Fishery Team
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%.
development update #17
Hello and happy new year to everyone,
This post will be a bit short but there are more pictures to look at than last week so hopefully that makes up for it. There is no update to the build this week but for sure there will be one next week.
Not everyone is back from holiday so it was just me sitting at the computer and typing for the past two days. I spent today and yesterday fixing lots of little things. Mostly code related. I am always looking for ways to simplify game logic. Every so often I leave myself little notes in the code when I see something that can be simplified or rewritten in the future. I fixed quite a few of these little tasks and it feels really good indeed.
One of these tasks was to add back water ripples to objects that are floating on the surface. This also works for fish now. When a fish swims up to the surface it will cause a ripple. If it pokes it's head out of the water entirely then there will be a little splash. Very small detail but it adds to the magic.
I have also added some more lists in the inspect mode ui. These show all the food and medicine that is present in the aquarium. There will be more lists added as time goes on so players can have full knowledge of all that is in their aquarium. This will help to select things that might be accidentally hidden inside another object or obscured behind thick vegetation.
Here is the latest from the work being done on the plumbing system. It wont be visible like this in the actual game but it serves as a visualiser for us so we can make sure all the numbers are correct. This system is grid based, objects will snap together cleanly so connecting up pipes and devices is simple and not tedious. If any of you have played the game "Besiege" it is similar to how their mechanisms are constructed. There will be lots of progress made with this system this month.
There is not much to show for the career system. Most of the work done for it has been on paper and we have played around with UI design ideas. There has been a little code written too. It is quite different that other parts of the game because it operates similar to some business software. In the way that the player accepts jobs via a sort of website and corresponds with clients and storyline characters. It feels work to work on but so exciting to see it coming together.
I have also been spending far too much time on youtube watching let's plays of games. Specifically the parts of games where it shows the in-game tutorial. I am not sure that there is even a fun way to teach players how to play a game in this fashion without becoming boring. Even when I play a game for the first time I always skip the tutorial and then after ten minutes I go back and do the tutorial because I understand nothing. I hope it is not just me that does this. Stealing Taking inspiration from other games in this fashion is incredibly helpful. It serves to help us figure out what does not work well. Fishery will be a game with a lot of things to learn and it is going to be a challenge to teach players all they need to know without becoming boring. Watching how other games do it is a good way to quickly figure out how things should not be done. Once we eliminate most of the bad ideas what is left should be quite good. It also allows us to try and innovate in this area if possible.
I also managed to break the fish flocking some time this afternoon so I must fix that asap. I am sure it is just one weird line of code that did it. Thank goodness we are not uploading a new build this evening.
Well I hope you are all feeling relaxed and optimistic for the year ahead. I better get back and fix the damage I did to the flocking system.