
Now just to do expressions.... and maybe more tweaks if i have time!
I've solved a few more issues now, so I took a break to work on sprites now I know who these people are.
Some are getting big changes!


After spending another week on comms, I whipped into a frenzy on polishing coding & UI.
Most of it i did in the last 24 hours! How productive I am when I forget my painkillers! Sob.

So, for an update:
I'm gonna avoid any more reworks for now. Art! writing! Huzzah!

Small update!
Took a break to do a little bit of re-drawing between art comms. Doing a bit of writing made me realise that I wasn't 100% happy with the original sprites. There's a lot of wonkiness and at least one character's body language is entirely wrong for how I've ended up writing them. The heads are also a bit big, making everyone look younger than my intent.
And some of the sprites are down right ugly :3
So, I busted out my "good" pen and started redrawing them! The originals were drawn with the standard round brush on clip studio. The new ones are drawn with my favourite lining brush. It's more like a calligraphy brush really.
I don't know if these will be in however-much-I-release for the jam (I'm aiming for an intro, a few bridging scenes and ~3 "ranks" with each character).
Let me know what you think?
After over a week of trying to make all my bits of code agree and finding out my VBA experience was actively screwing me over on something in GDScript, My saving system works!
It's objectively terrible, so I won't talk about it much, but I used a lot of Packed Scenes. to save the scenes for various things whole.
Some of these can easily be saved with less data, but I fear the whole thing will topple down soon.
My reward: WRITING!
I'd already written a little bit during breaks, but it's now a good time to talk about the VN/dialogue plugin i'm using: Dialogic!
It's very user friendly and clean, and exports everything in plain text files for external editing if needed.
All the components are drag-and-drop! so once you have your UI set up, the rest clicks into place.
My biggest niggles with VNs are things I'm trying to write against:
Number 2 has been partially informed by me mulling over a title
But then a cursed though flew over my head
Which is really funny to me. I'm not sure if I'll stick to it, but it informed the vibe.
These cats are immortal, abandoned, magical familiars stuck in a Sanctuary. Of course they will get bored. Of course relationships will form.
I just think hitting this with the "fuck it, we ball" laser is... fun! I love it when relationships form in the background of the player's, so I think this will add a layer to this.
What the hell am I making???
Oh beans. I wrote a whole update andddd it's gone.
ANYWAY:
I'm at the point where I need to think about saving... and that means Resources! Resource-type objects are what I used for the inventory system, so I was already sort of familiar with it.
We can treat each catboy similarly to inventory items and make Resources (sorta... tiny little code-dictated forms) to manage them. We then only need to tell each instance which resource it needs to be. We can also use this to give them a primitive personality!
This is what the code looks like:

And when saved and loaded as a resource, it looks like this:

Snowprint here walks a little slow, sleeps in short bursts and jumps at an average frequency. We've also included a string to call a specific dialogic instance when right-clicked on, like here with Longnight:

Deffo need to tweak some colours. You can just about see the cats are all different colours as a placeholder now.
Finally, this also minimises code for altering relationship status, as we can just pull the name of the familiar and write their current status to the resource:

Bit grafted on, but it works.
I can clean up code a lot from here -- I've found out that the "with" command i'm used to in VBA doesn't seem to exist? so there's a lot of repeated bits of code. Surely there's an equivalent.
Next up: Saving! I hope.
I'm here!
Clawing out of the mines of a tough pair of commissions and a few... interesting bugs!
Since last, we've gotten a drag & drop inventory system. I couldn't quite get it to work the way i envisioned it would and it deadass took 3 real life days BUT it functions. It also lets you drag out of the inventory into the game (WHY was that so hard to make???)
Fun bugs along the way:
Eventually I pulled in a sprite of Longnight to debug with. I mean, it helped!

Second issue was that I really REALLY wanted the cats to swing after the mouse cursor.
This was also something I knew how to do in theory... but in practice it went... interestingly!

Hiya! It's late here in the UK, but I can still squeak out an update.
I've fixed almost every issue above & added some new quirks:
I've also put in a new dummy "map" with a bit more detail to help test their new locomotion! It's also now it's own "scene", so I can swap them out if needed. This also stops the cats clipping on top of the UI!

I'm looking at relationship systems, and need to work in a gifting system... Once I've built one cat, I can iterate the same code across all of them and then work on art and dialogue. I've learnt a lot over this first week and I'm beginning to spot areas for improvement already...
But for now we forge onwards!
Quick update today! By now, cats:
Fab, ok. It's not much, but they are doing things. I want 7 cats in the end, so lets see what that looks like:

Few issues here:
I need to find a way to get cats on different layers, and have cats able to move between them. This will probably also involve me learning pathfinding... Which means changing how they move entirely.
Such as learning a new engine!
Today was two fold: 1) make cat grabbable and talk-to-able and 2) redraw the cat sprite for the third time in as many days--
Oh, right. the Catboys! I didn't talk about the CATBOYS.
Slightly prior to the jam, I did what I do best: throw things at a page and try to make some nice designs. I decided from the get-go that they would all have silly names and settled on [word][word] as a format. I also have a personal bugbear with a lack of skin-colour diversity in anime media, so it was important to me that they all had different shades even if it was subtle. I have this fab skin tone palette (here) that I use with every piece of art to help get a good, lively skin colour and generally the build out the rest of the palette from there. You can see where two of them swapped skin-colour to better compliment the kind of colours I wanted them to have. I think they both look more alive now! Another rule I had was that they all had to be doing something with their hands to help root a personality. I thought about giving Lemon a snack to hold, but I didn't want snacks to be their personality.
I also built out the body shapes and clothes better: Candy has muscles, Lemon is rounder and has a new jumper (courtesy of a friend), Puppie got completely redesigned and Snowprint has a new pair of shirts. Oh, also Bookworm spawned in (courtesy of the same friend! Thank you Mimi <3). I've also-also tried to make them look less baby, but still cute.
Bear in mind - NO writing has occurred yet. This is all vibes. I play a lot of TTRPGs (mostly Pathfinder 2e these days) and this is generally how my character writing goes; vibes first, character later. It's been a long time since I’ve done cell shading and anime eyes like this, so it was a learning process to get it looking right. Trying reaaaally hard to avoid same-face.

So anyway: Cat sprites!


So, first order of code-business is to build out a Cat and it's State Machine. If you've coded before, you should know what an If Statement is. "If [this] is true, make [that] happen"
You will also know that stacking if statements quickly becomes an evil tangled mess. Never fear - this is where we build a State Machine to categorise ideas so they don't get messy and don't overlap.
With Godot, what we'll do is use it's Node system to break up our code into chunks for what our cat is doing. First we build a cat (once "scene)", attach a Animated Sprite2D to give it a picture, throw in a Collider and then throw in our State Machine and some nodes for each interaction. Tidy!

When we make our code, we'll staple the relevant scripts to each node to keep it clean. This isn't fully necessary, but it makes it easy to work with.
We then give our state machine some code to tell it how to think about it's children-nodes and a template for how to think about it's States (I'll be real, I'm so new to Godot I used the tutorial here).
I'll avoid explaining it all (as the tutorial above goes over most of it - go give them views!), but we can use this to have our Cat do things.
The code below is for wandering about, but it will randomly take a nap and if the cursor gets near, it'll follow the cursor.
Not pictured: me trouble shooting the cat floating into space when the cursor hovered above it, and the cat vibrating instead of sleeping.
Well lets see...
My art background is digital painting.
My coding background is VBA for excel.
And, my writing background is exclusively playing TTRPGs.
Flawless credentials!
I'm looking to make a small desktop pet-style thingy and build out a plot. All of the catboys will be represented as little cat sprites and mill around a window. You can interact with them and talk to them to advance individual stories.
Will this work? No idea. But it's something I've wanted since my teens so I'm making it for teenage me! Always make things for teenage you!

Ok that's a bit chunky. How about smaller--
Sure, Godot. That's exactly what I wanted you to do with a 400x250 window -- make it 300x188
Developer: Me :)
Themes: Vaguely fantasy, Moving on after loss & somehow.... Catboys.
Blurb: After the passing of his long-distance boyfriend Lars, Fynn moves across the country into his late love's sanctuary for displaced familiars. Even though months have passed, the place is strangely clean...
...I'm honestly writing, coding and drawing this as I go. Pray for me.