Dev Diary [#32] Pets
Hello and welcome back, my frens.
I’ve focused on one big area this time. Pets. I made some changes before and described them in the previous Diary.
It's been almost a month already, oh. I was very busy with my job and other irl stuff and wanted to post this only once it made sense (it is kind of complete). So basically, that's the reason for it. The good news is, though, I have progressed with Pets implementation, and it looks good. I mean mostly the backend part; there are still some animations and small details that need to be done or tweaked. But anyway, here's the progress:
Progress Report
Wild Pets
Wild pets have a catch difficulty parameter now, so we can differentiate them and make some rare ones more challenging to get. However, the logic counts with the player's tool stats and other bonuses from buffs and potions. You, as the player, should be motivated to craft new items, make potions, etc, related to pet catching by this.
When you target a pet, you can see your “catch chance” and current bonuses above the main action toolbar.
Wild Pets got new catch effects and, most importantly, new states. These states are only temporary states when you catch them. In summary, wild pets can enter the following:
- Idle (the pet stands and chills, you can interact with it)
- Wander (pet moves either on defined routes or completely random)
- Catch attempt (during this state, it deducts energy from the player, starts animations, calculates the probabilities, etc.)
- Catch successful (it removes wild pets, drops the collectible item for the player, etc.)
- Catch unsuccessful (it switches pet back to wander state)
The Real Pets
If you have caught a wild pet or animal (creature) and have it in your inventory, you can release it as your “real” pet in your home zome. You know, to keep them safe and practical.
I have changed some things from the last Diary, so if you read it, don't get confused, please. Pets have Traits instead of Moods and Needs. Traits can be anything. Basically, it combines both of the previous categories.
If you release the pet in your home zone, a new Trait is calculated on a new day. I’m testing two different ones now.
- Hungry; Feed the pet so the Trait is removed.
- Tired; You must wait until the pet is awake again and can’t do anything about it.
You can only interact with the pet when there is no active trait that needs to be solved. For example, you cannot catch it again if the pet is hungry.
Why dis?
Well, it prevents you from putting the pet back into your inventory and releasing it over and over again with the premise of getting preferred traits.
In the future, there can be more traits, such as “Happy,” that give the pet some bonuses. And much more.
Pet Feeding
Speaking of pet feeding and hunger. I’ve implemented a pet food category. Initially, I wanted you to feed pets with exact resources like carrots, corn, etc. However, to support resource gathering and its usage even more, it will be done differently.
Also, it should be slightly easier to understand and manage.
You will craft/cook pet food from other resources.
For example, as it was implemented in this version:
I added pet food called “Le Granule.” It is basic pet food but fancy, with a noble name.
You can make them using two different recipes. *recipes can change later
- 2x Carrot -> Le Granule
- 2x Corn -> Le Granule
You can cook this by using a campfire. Hip, hip, hooray, finally (!), the campfire has a use case!
So it doesn't matter what crops you prefer/need/want to grow and farm. You can still craft the same pet food. Of course, not all of them will give the same result but there will be options. Always.
To feed the pets, you just have to come to them when they are in the Idle state and press “E.” And, of course, they must be hungry.
Video Showcase
This video showcases the current status, including pet food crafting and pet feeding. Besides that, you can see how the pet's trait changes when the player enters a new day.
Catching pets is not part of it; for that, you can check our Twitter for previous sneak peeks.
Keep in mind that currently, we have only two of them, so they repeat very often.
Pets Saving and Loading System
For wild pets, it only stores their location. For pets, it also saves pet's traits.
Saving traits is crucial, so you cannot cheat by reloading the game and hoping for better traits.
Navigation Improvements
I managed to improve the pet navigation. Now, if they are stuck somewhere, the game calculates their last position vs. current position, and if it’s not changing for a couple of seconds, they will switch their state to idle or recalculate their path.
This applies to real pets, enemies, and NPCs as well.
In short, they can still stuck but if they do, it’s for a very short time, and they will be unstuck automatically.
Bugfixes
- If the player cut down all trees in a zone while they were mushrooms to spawn, the game was crashing. Fixed. Mushrooms will wait until there are fully grown trees and only spawn afterward.
Conclusion
Well, first of all, I hope that the next diary will be released sooner than this one. The next one will probably be a more general one, with cross topics and smaller improvements rather than one huge area.
There is still some work around the Pets module, and it must be done before I will start adding more and more content, such as more pets, more traits, more food, etc. So that's the main thing I will be focusing on.
Thank you for reading that all, and see you soon!