Dice Balatro Demo
Farkle with some balatro mechanics. This demo is more like an interactable UI instead of an actual game.. but I want to move on to another project. Leaving this here in case someone finds the premise interesting and can do something better. My vision for this game was a kid playing with dice in his trapperkeeper during school. You can obtain and place stickers around the trapperkeeper to act like jokers from balatro. You can use school supplies to modify your die faces (the mechanic is very janky here).
Rules:
Roll the dice with the circle arrow button.
Click die to queue them for scoring. You can only score specific hands. If you roll no scorable hands, you'll "farkle" and lose all points for that bout. If you manage to score all dice, you'll get to roll again. Click the next bout button to reset the dice. You'll need to score at least 500 points to get to the shop screen.
drag the dice to the bottom to put it in the score queue. You can drag it back if you change your mind. Push the = button to score dice in the queue.
I became obsessed with Balatro and felt compelled to make a spinoff. I made a bunch of demos for rpgs that used a dice rolling mechanic. I salvaged that into this balatro-clone. It was supposed to be Yahtzee, but the scope for the scoresheet got out of hand. I changed it to Farkle which suits the original Balatro mechanics better. I tried using Chat-GPT to ask how I can implement an object dragging mechanic that takes advantage of object inheritance. It gave me an actual retarded solution to make a drag manager script for every draggable object (Dice, stickers, supplies). I ended up making 1 drag manager script and 1 draggable object that extends to dice, stickers and supplies to they do different things depending on where they're picked up, dragged and placed.
Lessons learned:
- Obsidian helps a lot to track ideas and changes for the game.
- I understand the main ways to to drag and drop systems in Godot. I think an invisible button node is the most efficient way. The control node mouse capture functions available in Godot are so much easier to manage than Area2Ds and tracking mouse enter and leave signals with an input function
- From my previous game I got so lost in the signals, but a global event trigger is AMAZING. I was able to communicate between node without having to pass an initial reference all the time. I got stickers to react to certain global events like "hand scored, dice rolled, die placed, die scored, dice rolled farkle, etc" by making a global script that could pass whatever data I wanted. The dice nodes, their values, current score, etc. I can't imagine tracking all that without a global signal bus.
- Better skill with aesprite. Besides the lazy copy and paste jobs, I enjoyed understanding how the dice rolls in 2D. I also recreated some of my favorite album's covers for stickers. I like the idea of creating a template and reusing for game mechanics like "jokers".
- Chat GPT is not good to use for actual game mechanic coding, unless its a well understood problem.. which I can find a better source elsewhere. However, with little effort, I was able to generate hologprahic shaders and a shitty "peeling" effect for the stickers. I'm not interested in understanding shader code after looking at what's required so i'll be using AI to generate those. I think it'll be useful for creating BBcode effects for richtextlabels too.
Leave a comment
Log in with itch.io to leave a comment.