The big thing I did this month was implementing all the pouring systems for each of the characters, as well as their card appearances. A reminder that each character pours different substances that behave in different ways to make the gameplay feel more unique between each character. I don't want to reveal too much yet so you'll have to wait a while longer for all the juicy details on how they work, but I can say I did decide to make them a little easier than initially planned, playing turns was taking a bit too long for my liking even if you knew what steps to take so I simplified the requirements on cards (eg, if something previously required 3 Red, 2 Green, 1 Blue, it might now require 4 RG and 2 GB, meaning it could be satisfied by 4 Red 2 Blue, 6 Green, 2 Red 2 Green 2 Blue, etc) to give the player a lot more latitude in how they decide to play a card. The result is a UI that is slightly more confusing to players at first encounter, but they understand quickly and seem to be having a much better time getting to their desired end states each turn, which I'd call a success.
I started by adding glow to the text on the cards to highlight the state. Eg if the card was filled perfectly the associated card text would have a green highlight outline, yellow if too much for the tier 2 effect, and red if insufficient for any effect. It didn't look perfect but it was a definite improvement over having nothing. Additionally the fill bars have their color and numbers change to indicate the future state after a pour takes place. Play-testers were far less likely to pour randomly for inspiration on their way to an end state while not wanting to do math after the inclusion of this feature, which is certainly preferable if you ask me.
I also created some rudimentary versions of the necessary assets for the cards of each of the characters, and grabbed a few things from the internet to make the cards look nicer. The updates include
Card art - with multiple versions based on fill level
Card boarders - each element of the card now has a boarder around it, looks a lot better than plain squares now.
Top left cost container - each character has a different shape for their energy cost UI, As example the first character has a raindrop style container.
Added the status bar, only works for vulnerable at the moment since I don't have any other statuses yet, but it's a start and will be easy enough to add things from there. Currently the order of statuses will be fixed, as everything is always there but only visible when present. I don't think that'll be a problem, but players may expect it to behave more like a stack, with the most recent status effects on the right. I can fix it later pretty easily if that proves to be an issue though.
Got the pile (draw/discard/deck) view working. By default the Godot scrollbar is not smooth. I do not like that. Thankfully there is an addon which provides a fix (Find SmoothScroll here if interested for your own projects). Shout out to all the folks who work to develop Godot and those who publish their own plugins/addons to add features, the community is a better place for having such people in it.
Otherwise known as a regular Tuesday.
I have a concern that a player may spend an undesirable amount of time trying to get to an optimal state which is impossible to achieve while not knowing that. I wanted to create a tool where the player could input a desired state and be told whether it can be achieved. This is very hard, it might actually be np-hard, but I didn't really look at that possibility in detail because I thought it would be fun to try anyway for awhile.
Surprisingly, I actually made pretty decent progress, there are no doubt better ways to go about this and I considered building a neural network for it but I thought it would be more fun to treat it like a path planning problem, each configuration of cards/fill amounts is a node, and any possible pour is an edge leading to the next state/node. You may notice that this balloons quite quickly, as there are at most 12 cards in hand and therefore 12*11=132 max edges from any given node. In the vast majority of cases it isn't that bad, but still, not the most encouraging figure. Oh, I also want this tool to find the answer for the player in less than a second ideally. The main task with my approach was determining good heuristics to guide our search towards the desired state. To my shock, I got it working pretty easily for the simple 1 mana type case of the first character, but it grew much more difficult for other characters. I actually made decent progress there too, getting a few dozen test cases to all be <2s but I'd eventually always find a new possible case which would take 20s to 5m to solve, fixing those cases often hurt the times on my existing cases.
I eventually abandoned the system, the UI/UX of it wouldn't have been the best either which troubled me even if I could get the system working perfectly otherwise. As an alternative I'll simply have a simplified game mode wherein it plays like a lot more of a standard deckbuilder for people either not interested or bored with the pouring (ie, just a toggle for whether you want tier 1 or tier 2 and it'll just play it for you that way). This does have it's own issues, as many of the games systems are designed around pouring and interact with it, but I have some ideas for how to port them to this game mode without losing too much of the games soul in the process.
Regardless of the outcome, this was an entertaining diversion for a few weeks so I don't really regret the time spent, I'm in no rush. That said I definitely wouldn't recommend spending this much time on something unnecessary like this if you are in a rush to finish your project for whatever reason.
The bugs this month were as follows:
Annoyingly, I cannot make use outlines on images in richTextLables, which is how I have the glow working at the moment. Emojis do work so I'm using them for now as a temporary solution
Bug where hp bar color change when entity has block applies to all hp bars
Fix some highlighting bugs on the different characters
Added borders for all of the card elements, looks nicer
Added UI to indicate future state after pouring while hovering a pour
Added more/better feeling lerping for the card movement when in hand and transferring between states.
At this point on development the in engine prototype was just beginning to form.
And no, 2024 is not a typo, this was the state of things just shy of a year ago at the time of writing.