Daily* Devlogs
These are my semi-regular updates about the progress with my projects and just general life thoughts.
133 topics in this forum
-
Working through the catalog system now. One of the first we need is for prebuilt kitties. These will be our friends like Moose and Bean. Because obviously they'll have a specific look. But other custom kitties will exist beyond this. I'll need to have the collection store both the cats themselves and some ID Artifacts for easily finding them in other work. This will require a bit of thought on my part, maybe I'll write something up tomorrow. For now you can find them via the unique IDs assigned to them, but that might not be entirely sufficient. I may also add in a getter lookup by string, or something else identifiable. If we do go the artifact route we can just inc…
-
- 0 replies
- 1k views
-
-
Welp, you can officially click new game, pick a name, a birthday, and then move into the main game proper. This is great but it does raise a few things that I need to overhaul. The first is our saving and loading system. Currently it is using interfaces in a way that should literally be impossible in C#, how I got it to work I'm uncertain. But it is impossible to breakpoint which is very annoying. This week we will update the saving and loading such that it is done properly and can be properly breakpointed. This will be very helpful and part of this will be creating checks for whether or not the loading data exists. You might be saying "Uh...how do you load at the …
-
- 0 replies
- 3.5k views
-
-
Alright, the next feature we needed to hook up was looking around. This is already squared away for controller but with KBM (Keyboard and Mouse) this was a little less clear. Initially we had the camera always looking whatever direction you were moving the mouse. But as my wife wisely pointed out to me "So I need to let go of the mouse when I want to stay looking in a certain direction?" Well, the moment she asked that I realized I'm an idiot and decided that today I would be fixing that. So now, we have a button mapped to looking. Currently it is the left mouse button, but I think by default I'd rather it be the middle mouse button. Regardless we will allow for bu…
-
- 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
-
-
Tonight we've added a few concepts. The first is the save data for a held item. The idea is quite simple, when you select an item on your action bar you can press the hold item button, which I think will be Y on a controller, not sure yet. After you are holding the item you can then press interact, if the item can be interacted with this will trigger the game actions associated with that item. If it cannot be interacted with then nothing will happen with the item. However, if you happen to be interacting with an item in hand that can't be interacted with, AND you happen to also be standing near something interactable, you'll interact with that item instead. So, maybe…
-
- 0 replies
- 635 views
-
-
Alright! First we've got good news, N number of cats is now working with the state machine. My individual cats all have their own behaviors and are walking around, eating, sleeping , etc, on their own time and personal needs. This is HUGE! I'm very happy with this and it will be a good stopping point for the night for me. A very, very large commit to be pushing. I've moved away from custom plugins for Guids and Dictionaries, I've just spun up my own solutions and they work without issues. This will also help reduce variables going forward in case anything breaks. Also for those of you playing the home game, I realize now my mistake on ID management for assets in th…
-
- 0 replies
- 860 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
-
-
An interface is a promise between scripts. In theory these cannot actually implement functionality. I say should not because I've found a gap in C# where you can implement functionality in your interfaces. I actually think this is a bad idea. But it is also a really interesting one. Perhaps we will start a coding guide section and I'll put how I did it in there. I still suggest you don't do it, as you can't breakpoint, but the fact that it works is fascinating!
-
- 0 replies
- 717 views
-
-
Vector math can be a bit of a pain in the ass sometimes. You do some logic that is probably higher than you ever actually finished in school and the damn raycast is going off in god only knows what direction. So naturally you throw in a gizmo to draw a line to where it is going. You adjust the logic in the gizmo until it is precisely what you want. Ok, fair enough, then you copy and paste that logic into your actual non debug code and...ok...why is it not working? I'm looking at this object and my debug log isn't printing? Then you turn and once you are at an angle that can only be described as "totally wrong" suddenly you see your debugs. Sweet, ok. Well, at this …
-
- 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
-
-
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
-
-
This weekend we'll be finishing up the adventure work I highlighted in the previous post. Then after that I've got a solid idea I think for items. We won't have "Collectible" Items and "Interactable" items etc, we'll just have "Items" and use interfaces to determine what cool functionality they provide. This will simplify the maintenance and really make it so we can add functionality at any time without needing to overhaul TONS of items, or create class after class. Obviously each item will have unique functionality (to some degree) but we won't be enforcing much at the base level. I forget the terminology but basically we'll code them through promised functionality …
-
- 0 replies
- 696 views
-
-
I've been battling with the dialogue system for a while here. I have repeatedly overthought the problem. So, thinking I need one less headache I bought a dialogue package off the store. I used it for a bit and realized it had way more than I'll ever need or want to use. I'm trying to enjoy myself developing and don't want to spend a bunch of time learning someone else's system. I'm sure it is great, I'm not going to spend this update complaining about it. Instead I want to talk about what I've got setup so far! We now have a dialogue system that can handle branching narratives. It also supports conditions for displaying information with a fallback message. So if you …
-
- 0 replies
- 4k views
-
-
Alright! I took a huge detour tonight to work on an EDH deck of mine, but we've got the kitties able to send themselves on adventures based on their needs. In this case I made my kitty tired and there are no available beds in the scene. So they go to the adventure node to leave on an adventure. They find and add themselves to the right kind of adventure and start it. Tomorrow we'll get the hooks tested for them pooling and unpooling themselves and finally handle the adventure actions which (I hope) will be much easier. So that's nice! Also yeah, I need to name my cats so they stop just showing their guids for their name... Huzzah!
-
- 0 replies
- 590 views
-
-
I forget if I mentioned this in my last update but I've finally got the project in Unity 6. This is my last planned update for the game engine. At this point I have everything I want and really any further updates are just me looking for excuses to delay work. As of today I've got a few weeks off from work and I want to make the most of it. The biggest challenge with these large delays is that you have to piece together where you were prior. I'm noticing that a past incarnation of me put together a system for finding a "valid" random point for the Moosecats. I don't think it was the best choice as designed. But it will get us to where we need to be. I just needed to …
-
- 0 replies
- 3.4k views
-
-
We had a stormy night last night, and tonight sounds like it will be as well. I can tell I'm getting a smidge older because golly is this just absolutely dunking on me. Not only that but I had a long workday that ran later than usual. So it was little sleep and even less time to get anything done with the project. But do something I did! The action bar needed one final bit of polish before I could move on. Namely if you have an empty field it would try to find data for an undefined asset in the item catalog. This is a no-no and my checks worked as they should. The request was blocked and the error print out I wrote before was clear on the mistake that had happened.…
-
- 0 replies
- 630 views
-
-
So! Sorted the bug that was giving me tons and tons of copies of the items to our inventory. It was actually quite simple and very silly. We might as well cover it really quick. The original code, first adding, and then removing. So the mistake here is very subtle, specifically how does equality work with Datum? For two datum to match they must be the same in ALL ways. Their name, their ID, and their count. But what if, lets say, you are adding a single copy of an item to your inventory and you've got...oh I don't know, 25 of them? Well congratulations you just got another entry in your inventory. Following this we increase the count of the orig…
-
- 0 replies
- 581 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
-
-
niceballs.webm I've begun work on the interactable logic for non-consumable items like balls, beds, doors, etc. I was feeling a bit silly after I added them so I gave them a bit of physics. This revealed a really amusing problem with the inverse kinematics in our fella. You notice that he just steps ON them instead of walking into them? That's because they are so short he knows he can hop right on up there. That's a definitely mistake and very amusing. I'll save that problem for later. For now we've got some nice shiny, somewhat bouncy (shockingly dense) balls. For now I'm going to have interactable objects set your needs that it can satisfy back to 100% instantl…
-
- 0 replies
- 817 views
-
-
Alright, names are pending possible changes in the future but we've got the following for the year: Scionur, Ghein, Auroht, Calia, Hidroen, Aten, Gefain, Phoen, Tartarune, Dimine, Chaine, Kalmine, and Thanine. Each month is 30 days long, which means we have a few more days than normal. Like many things with the project this will help make things feel just a little bit off, a little bit wrong. Sorry to say I lost some work from yesterday. But given that we didn't even have an update yesterday I think that was just how it works out.
-
- 0 replies
- 2.8k 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
-
-
The Front Today was a pretty slow day to get started. But once I got rolling it felt like a lot of things were coming together. Each new game that I start is saved in a separate slot. I've somewhat arbitrarily only given you 10,000 to work with. This may eventually change to just be however many your PC can manage. Just keep in mind that the UI I'll be designing might not be the most convenient when you've got far too many games running. Realistically I would think most people will only have one given all the collectibles and progress folks will have access to. I've also updated the artifact system so that my serialization updates from yesterday...or two days ag…
-
- 0 replies
- 4.5k views
-
-
Progress ticks on, the sands of time flowing down through the thin neck of inevitability. We've now got a simple object for handling dates, the primary use will be for birthdays. This is because DateTime in the real world and the date and time of this world don't actually line up. We could probably link them up in some way but I think this is the better path. The next thing I need to do is start hooking up the Handler for the Character Creation page. This will hook into a copy of the Datum Player class and once finished, save it to our open slots. But not for tonight, tonight I get some rest and hope I don't burn the entirety of my brain at work.
-
- 0 replies
- 3.4k views
-
-
At this point I think the food portion of the Moosecat AI is good. We'll need to hookup our interaction state but I want to wait for that until after we've put in a bed object and some kind of fun object. This will be my project for tomorrow and tuesday. Because at this point it is late on a Sunday and I'm kinda tired! I've been up very late the last few nights working on the game and I'm very excited to see where it is. kittygoesfoodhunting.webm Our little buddy got hungry and went searching for food. Obviously its a bit rudimentary, they are not set to stop at their interaction distance, nor do they call interact yet. But once they do it'll feel a lot …
-
- 0 replies
- 814 views
-