Daily* Devlogs
These are my semi-regular updates about the progress with my projects and just general life thoughts.
133 topics in this forum
-
For you this image might not spark much. A few test assets in a world where a lot of the logic is invisible. But for me this marks a moment that I should have done ages ago. Actually building to device! The good news is that my new systems for serialization and referencing across items is working. We generated our player at the right location, our item, and our Moosecat. So my progress while making the game actually saves and loads properly when I open it up in builds. That's pretty cool for me. Starting tomorrow we should be able to do some cool gifs of the cats searching out food and gobbling it up. No animations for now obviously but all of these systems provide t…
-
- 0 replies
- 2.3k views
-
-
Unity doesn't let you serialize Guids without a lot of headache. Odin Inspector makes this easier on serialized monobehaviors and serialized scriptable objects, but guess what? Did you guess? Yep! You can't use the monobehaviors in prefabs. And that's what I'll need them for 99% of the time. So I had to get sneaky, smart, devilish even. Ended up finding a wrapper for Guids and doing some seriously heavy edits on it. The original was fine but it could be finer. I've now got it so the "serialized" part that we see in editor doesn't actually get built at compile time (since it won't matter anymore). I'll test it out on a build this weekend but I'm optimistic. Every…
-
- 0 replies
- 1.3k views
-
-
We've officially got a container of all the supported needs in the game. These come with a decay rate, and urgency cutoffs. Even cats made before this work was introduced will work with it, which is a design scheme I'm planning to keep carrying forward. This should mean as we move into alphas and betas we might not need to clear data unless we want to. Tomorrow we'll start work on having the cat searching out their needs. I'll make a "bed cube", we'll have them try to eat, and then I may try to have a cat meet up with another cat to talk. But we don't have emotes yet for that last bit, so I suppose it'll be in a debug log once they reach one another.
-
- 0 replies
- 1.3k views
-
-
Tonight I found myself wasting a lot of time on two things. Oxygen Not Included (market research, I swear) and editor scripts. The latter was definitely a genuine waste of time. What I was trying to do is not urgent or necessary as I'm the sole engineer on the project. Once I broke out of that hole I started working on the status update action for the state machine of our kitties. We've now got a container within the cats that houses the state of their needs, what that particular cat thinks is urgent or critical, and how quickly their rate decays. What I haven't decided on yet is how long an in game hour will be. This will likely dictate the true update frequency of …
-
- 0 replies
- 1.4k views
-
-
Alright! We are getting into it! I needed to work on a few things today. The first was the container for needs. This will house the identification for that need, and then the various stats required to track the needs progress. We have three levels, fine, urgent, and critical. Anyone that has ever taken care of cats knows that this is already one to two stages too many. With the container created, tomorrow we will create the various need artifacts themselves. These artifacts will then be housed inside of a collection that helps us connect those need IDs with the ones on our cats. Because of this somewhat loose connection it means that we can add new features to the …
-
- 0 replies
- 1.6k views
-
-
Alright, I'm sick today which is fun. But I wanted to write an update regardless. Tonight I began designing the AI for the Moosecats. Now this isn't AI as it is being used currently in marketing. I'm literally trying to build up a wants, needs, and problem solving system for the Moosecats. The end goal being that if you don't give them dedicated things to do they'll act a bit like a little living critter. There are currently 8 obvious states that we will need. I'm working through the truth tables and what we need to track to keep this all sensible. The ultimate goal is that each state is fairly dedicated. We want actions to not be enormous and we want everything to m…
-
- 0 replies
- 1.4k views
-
-
I'm reminded today of a Stephen King book and film called "The Langoliers" as I stare off into the distance and wonder what is approaching. It could be a great many things. A friend, a foe, something beyond mortal comprehension. I stand and wonder. Squinting a bit as the objects grow bigger. They are moving quite fast...which does leave me wondering. Have...have I fed the cats today? Oh god... inthewrongpartoftown_50Percent.webm Run while you can! Also, I suppose I should mention. Individual state machines for actors is up and running. In this example we have five Moosecats that have initialized and then switched to "wander". …
-
- 1 reply
- 1.7k views
-
-
Tonight was VERY productive but it is also very late. So I'm going to just keep this brief. Our state machine has been updated for both the game and the Moosecats. It is considerably better than it used to be. I'm very excited. I also made it so I can just select the kind of action I wish to add, it will find it, create one, place it in the right folder with the state that will be using it, and add it to that state. No more searching through an asset creation menu, in fact I am likely to remove them from the menu altogether. This is just so nice. I'm going to likely do the same with other systems that need some "kind" of thing! bythepowerofgreyskullSmol.webm
-
- 0 replies
- 1.6k views
-
-
Now that we've got Adventures completed it is time for me to start up on the next operation. The first step towards the upcoming journey was to clean up my code. I went through and added precompile flags where I was missing them. I also updated some attributes that weren't doing what I needed them to do. All the while looking for places where I was missing code comments, or where I could improve an operation. These are really nice ways to relax, especially when work is hectic or exhausting. One of the last things I did for the night was I added an editor function to generate a Moosecat near the player. This way I can test our the upcoming state machine work and oth…
-
- 0 replies
- 1.5k views
-
-
I didn't think the day would ever come but we are finally here. The systems are in place for adventures. In the following short video (which is 1.4 mb dear god, I need to start uploading these to YouTube or something), you'll see the following happening. We load the player's data. This moves them to their last position. It spawns all their cats and moves those to their last positions. It updates the player's inventory and updates the adventures that are unlocked. From here I pick 3 cats at random and add them to the adventure. I then click "Start Adventure" this then starts the timer for the adventure and sends our three kitties off. Currently that's signified by jus…
-
- 0 replies
- 1.5k views
-
-
I was deeply happy to see this message tonight. We still have work to do but the system now can do the following. It can add a kitty to an open spot, choosing an empty one if you select none. It will naturally not add the same cat twice, if somehow the UI is goofed and allows for that. It allows you to remove cats from the adventure just as easily. We'll have that setup in the UI to be handled either by clicking the slot or just clicking on the cat icon. It saves and loads properly. Storing the currently selected adventure and all the data for all unlocked adventures, as well as their states. So when you quit the game and return you'll be looking at the same adventur…
-
- 0 replies
- 1.5k views
-
-
I don't have much to add for today. I found a bug in the loading code for the Moosecats which was resulting in them all loading the same few colors. It took a bit of work but I ended up tracking it back to the prefab. Something I forgot to do is make sure the prefab is cleared of any predefined data, in the off chance that I edit it by mistake. Because of this I had 6,5,1 as the first three colors of any cat. This was a good example of taking a step back when looking into a problem. Because at first I was break pointing. But really I should have asked myself what was the very first stop in this code chain? The answer is the instantiating Prefab, I should have looked …
-
- 0 replies
- 1.6k views
-
-
I'm sorry to say that it isn't fully working yet. Not for your sake, by the time you read this I'll likely be done with much of the game. But for me this is an unfortunate night. There is something about my adventures that is serializing differently from items, Moosecats, or even the player data. They look to my tired eyes to be exactly the same. But clearly something is unique. I'm curious if the problem is the self contained classes and their location. Tomorrow I'll try splitting out the classes so that they match the same design scheme as everything else I've done. At this point we can select an adventure, add adventurers to that adventure, remove them, a…
-
- 1 reply
- 1.6k views
-
-
You might not know this but Unity has some pretty strict serialization rules. It's a very lean system that is designed to be very very quick. Unfortunately as you get further and further into C# you'll find yourself wanting to use systems that aren't supported by Unity. You can achieve this through Odin but it does have some quirks. The first is that serialization will ultimately be a bit slower. I've never noticed the difference but we'll see if at scale it becomes much more noticeable. If push comes to shove I can always write an editor script to save all my data to disk, then swap back to the default unity serialization and have it apply the settings again. …
-
- 0 replies
- 1.5k views
-
-
Today was something of a day of hope for me. I went to the doctor and I might be on a path to help reduce the pain I'm always in. I don't mean this in the metaphysical sense, yes, I have serious anxiety issues, but actual literal pain. It is likely that lucky me caused some serious damage to a nerve. This happened about three years ago now I believe. Time has both been moving and frozen this entire time since it happened. The pain at times can be so intense that it erases all thought from me. But we'll see if I can overcome it. After meeting with my doctor I had a glimmer of hope and I channeled that into the project. Each node was a fair amount of work to…
-
- 0 replies
- 1.5k views
-
-
I discovered a pretty amusing bug while working today. If you interact with something like an apple and make sure not to move after you collect it, you can continue to mash your interact button and keep collecting it forever. The solution for this was quite simple, after an item is collected I needed to clear it from the player's "what am I trying to interact with at this second?" parameter. But moments like that are really refreshing while you work. Reminding you of all the interesting things you need to think about while working. I spent the majority of my time today working on both Excursions and upgrading our "keying" system. Instead of using arbitrary things l…
-
- 0 replies
- 1.6k views
-
-
With each passing day I find myself playing less and less games. You might think that's a bad thing, and I guess on some level it is, but for now I'm really feeling it. The more progress I make the smoother things go. Will we hit hurdles? Absolutely, will this game sell 3 copies? At least! But in the meantime I keep trucking forward. The initial implementation of Excursions is going to be a bit like the "Story" titles on mobile. Or honestly a bunch of other games you've probably played. We'll have status screens that show where your kitties are and how they are doing and then after a set amount of time they will return with something. Supplies, new friends, or p…
-
- 0 replies
- 1.6k views
-
-
Whenever I post the change count for a day you can generally divide it by half and remove the fractional data to know how much work was done. In this case we edited or added 21 classes and assets today. That is wild to me. But what exactly happened? Well I was having a problem with serialization and reached out in the Odin Inspector help discord. A particularly helpful power user noticed a flaw in my implementation logic and provided me with a suggestion for a considerably better alternative. Something I've learned over the years is to not get too emotionally attached to my code. If I'm doing something in a less than optimal way and someone can convince me as much,…
-
- 0 replies
- 1.6k views
-
-
Alright! We've got our mock AI in. This will handle our predicted UI boxes for now. I'm hoping that our menu will eventually look like the notebook featured in the story itself. The menu tabs will be notes sticking out of the book out of the left side likely, maybe left and right depending on how it looks? Ultimately I'm excited to have this in because now I'll be able to add mock buttons as we are moving along. Maybe do some test work for various display options. Tomorrow we'll see about putting in that grid layout group, I don't workout tomorrow so that'll be a lot easier to do.
-
- 0 replies
- 1.6k views
-
-
This morning we took a fairly long walk. I don't know what it is about that activity but sometimes it can genuinely just take everything out of me. However I managed to muscle through the exhaustion and get our menu system upgraded. The current plan is to have our player menu be one large UI element with tabs on the left side. You might think that this is a trivial thing to implement and with enough caffeine all things are possible. When we think about our function paths there are some things that are happening. The first is that you are selecting a page to open. But we need to ask, is there another page open? If the answer is yes we want to hide that page, refresh…
-
- 0 replies
- 1.5k views
-
-
Alright, we've gotten to the point where I can pretty trivially add a new item and be able to add it to my inventory just by interacting with it. Is the implementation how we'll ultimately do it? I don't know, but it works and I think that's the most critical goal for now. I also like to think the implementation is efficient and easy to edit. But generally most people like the smell of their own toots. Now that I've got saving and loading working for my player, the Moosecats, and my items, that means I can start storing progress for all of these things. But, what it doesn't mean, is that a player could easily interact with this data. Indeed, you can store things in…
-
- 0 replies
- 1.6k views
-
-
I did some cleanup today of the Moosecat Spawner. It now applies the data to the cats properly, shaved off some unnecessary data, and I've split out the "spawning" and "skinning" portions of cat creation. This way my different objects have specifically dedicated functionality. The end result is working just as well as the original. Additionally I noticed that the mesh renderer reference was inside of the saved data and that's pointless. I've moved that up a layer and now it is part of the prefab instead. The next thing that we need to establish is the room objects, specifically the logic for spawning and placing them. I'm still up in the air if I want to just provi…
-
- 0 replies
- 1.5k views
-
-
Alright. Another productive day. So we've moved into building up our skinning toolset. We use color replacement in order to take a few simple designs and give them a great deal of potential variety. Obviously for this vertical slice work these are all just variations on the original, a 1 color, a 2 color, and the original three color design. We've updated the generation and skinning process so that it can randomly pick a particular pattern for the cat and then it will choose colors from our color library to texture it. This texturing process actually stores the data inside the saveable data of the cat. So when we go to save the cats that information will be stored.…
-
- 0 replies
- 1.5k views
-
-
Tonight was another one of my workout nights. After a fairly challenging workout I was then greeted by a kitten that really, really wanted some cuddles. I happily acquiesed and just played BG3 until she was done getting her cuddles. With that out of the way we dived into using a few of the working assets that we currently have. My very talented wife made me a Moosecat texture a while back. That's more fun to look at than a cube, sorry cube, and with this introduction I'm able to do some more work. Here we can see a number of texture types. The first is "one color", the second is "two color", and I bet you can figure out what the third one is called. Na…
-
- 0 replies
- 1.6k views
-
-
I stress in advance that I'm a bit tired so this particular update is probably going to read like garbage. Another productive night. I wanted to accomplish a few things tonight. The first is I wanted to be able to spawn anything. I might not know what those things are yet but I wanted the system for adding new spawners to be convenient. I also didn't want a lot of casting to be involved, so these spawners would at least be dedicated to the object they will be spawning. The next challenge was to make sure that these objects pool. We don't want to just be creating and destroying a lot of assets. So the major first step was adding a pooling system to the spawn…
-
- 0 replies
- 1.6k views
-