As usual its time for another dev log. I did a bit of looking and actually it has been a year since I announced I would be remaking the game in a new engine. I didnt think that I made the announcement at the end of February 2023 but apparently, I did. Looking through a few of the subsequent logs though it seems I didnt really start coding until May. So, its sort of been a year, sort of not.
Im happy with the progress so far, but obviously I wish things were going faster. However outside of giving up sleep I dont think there is any additional time left in my days. The progress of the game is sort of hard to judge, but I think I have more done than it feels like. It just seems strange because the world doesnt exist at the moment. Its just a few test rooms where I just implement systems. I remember when the old version of the game was like that and once I actually built the in game world it felt much more complete.
This month in particular was dedicated to animals, and basically wholly animals. Im close to done at this point, but not quite there. The remaining work should be pretty low effort though. For a quick summary of what was done Ill make a short list of the notable stuff below.
- Animals now naturally catch disease under certain conditions
- Chicken coops have a new internal structure that collects eggs
- Fowl now spawn feathers that you can collect
- An entire system to make pastures work is now in place (This is so much more complicated than this one sentence implies)
- Animals can now actually die and that is managed properly
- Animals can be hatched or born depending on what type of animal it is
- A new animal status screen has been made to display animal stats as there is now more to track with animals
- Because there are multiple things that affect an animals happiness each day a system has been made to record what effects them and how much they are effected
- Animals can be sold
- Animals can be relocated from one building to another
- Animals now appear outside or inside depending on pasture settings for the building
- Added the ability to trash items
- Fixed a few bugs
So basically, everything revolving around animals was done this month. Ive also setup the Silo UI. The last things to do are make silos distribute food, which is easy, and then these things need to be replicated across all animals. At the moment, chickens are the only things that work. That may sound like a huge deal but all animals function off the same parent object. So basically, I have to copy and paste code and then make a few minor changes to the specifics on each one. This is all pretty simple and shouldnt take more than a few days I would think, if that.
I dont like that animals have taken as long as they have to setup, but looking back I guess it makes sense. I believe Ive mentioned this before but most systems in this game are fairly simple, mine a rock, make a potion, cook an item, etc. All these things dont involve much in terms of system design. These types of games are often the combination of a lot of very small systems rather than a few large ones.
Animals are more of a cascading problem though. Before you can even have an animal, you need a building for them. This is in and of itself a giant system to build, move, upgrade, and destroy buildings, not to mention handling all the internals of each. That was what took up most of January if I recall. Then once you actually have a building for animals you have to be able to buy them, name them, store all the relevant data, handle feeding, disease, grooming, health, happiness, product creation, pastures, selling them, transferring them, aging, player interactions, etc, etc. So, it makes some sense that it took a while, I just dont like it when the end of the month comes and it feels like I did one thing.
Pastures were the biggest difficulty of this month. They were probably the system that took the most time to make. Effectively a system was needed that calculated where you put the building and (without lagging the game) found all the tiles that surrounded that building to form that pasture. Then store that data in a usable way and allow for on the fly adjustments if a player changes the pasture layout. All that said, Im happy with how it turned out. Its far more stable and compact than the system that exists in the live version of the game.
The only other real change to mention is the structure in the coop that holds eggs. Anyone playing the live game will know that eggs just sort of drop on the ground and you pick them up. I didnt really like this. Feathers make a bit more sense as fowl would just drop feathers on the ground in real life (I think). Im not a farmer but I believe chickens lay eggs in their nests, not just randomly on the floor. With the amount of tasks you have to do for animal care increasing I thought this might be a nice little addition to make daily chores a little easier.
Most of the other things that I mentioned were fairly self-explanatory. As mentioned before, I have just a few things to clean up with animals, most of which is just replication for more animals.
Then of course I have to decide what to do next. This is something Im a bit unsure of. A lot of the UI for the game is currently in flux as Im having a lot of it redone to make it more consistent. Since I dont have all the sprites finalized setting up UI is, well, not entirely pointless, but it is sort of annoying. Anything I setup without the finalized UI will likely require me to go back later and adjust a bit. It isnt hard to do but its just an extra step when I could just wait to have the sprites and then do it right the first time.
This is a bit problematic because a lot of systems rely on UI. At the moment Im debating between building out the world, or maybe getting some of combat in place. Im hesitant to do too much world building as there are also sprites being made for the overworld and I think it would be better to do that work when I have all of the assets at my disposal. However, I could start laying out zones in basic ways with temporary sprites and notes.
Ive likely mentioned this before, but I do want to put out versions of this game again prior to a 1.0. I think getting that feedback helps immensely so I dont want to just make this entire thing in a vacuum and then let it loose. Ive got a sort of unofficial list of things I want in the game before I put anything out onto Steam though. Combat is on that list because its something entirely different from the other systems and I want to make sure its enjoyable.
I think it will likely be implemented sort of piecemeal along with the mines. While there is combat related stuff outside the mines they sort of serve as a more traditionally leveled area where it gets more difficult as you go deeper. So likely in one of the first uploads of this new version youll maybe be able to go down 2 levels or so (remember there are only 10 very large hand crafted floors instead of 100+ random ones). Ill likely also add some sort of level cap that Ill raise as more mine floors get added. This way I can focus on balancing combat in smaller chunks rather than trying to get the whole range of combat right at once.
Aside from balancing I have a general goal of complete systems. Im trying to make it so that anything a player would see in the game is done. A good example of what I want to avoid is the health bar in the current game. In the live version you have health, food and potions can give you more health, there are buffs for combat too. Despite all of this there is no combat and not even a way to lose health. Thats jarring. Maybe not to someone who has been playing for a while or is watching the development but someone coming in would likely just find it confusing.
The other obvious example of an incomplete system is NPC dialogue. In the current version NPCs have the bare minimum dialogue. Id like to write everything for a character all at once to keep them consistent in tone. The one caveat here is that while I might write everything all at once, some of the dialogue for each character will be dependent on other things in the game happening. So, while it will be done it may not be accessible right away. The general rule of thumb though is to have things be as complete as possible when they go into the live version. Id like to avoid uploading a version of the game and having to say hey, theres this part of the game that makes no sense right now because I havent implemented the other system that feeds into it. To bring this all back to topic, adding combat is necessary to avoid that issue.
I think thats mostly it for now. I feel like this was more of a ramble than a dev log. Unfortunately, there isnt much to articulate about animals unless I start going deep into code talk. I figure this stuff is a bit more surface level, but its probably more informative about what is going on with development. The other option is me explaining the use of recursive functions to trace the tiles that make up a pasture and compiling them into an array of structs that can be easily referenced for calculations. Seeing as that sentence was boring even to me, I have my doubts about it keeping other peoples interest.
So, thank you all for your patience. As time goes on Ill hopefully have more definite info on when you can expect an actual upload of this version of the game. I think I said this a long time ago but what I might do is upload it as an opt in beta so people can try it if they want but retain access to what currently exists. Ive also said this before but just as a reminder, if you own the game now youll own the new version too, no repurchase required. Alright, Im going to go finish animal systems. I hope you all enjoyed February 29th, it only comes around every 4 years after all. Ill have more updates in a month.
[ 2024-03-01 02:27:46 CET ] [ Original post ]