Community Challenge: Recreate Balatro card effects in Defold!

I wouldn’t compete anyway as I lack the required abilities but it’s not a fair challenge since whoever owns the game has plain access to the game’s shader code(GLSL) and the game itself is written in Lua/Love2D with no obfuscation.

I’m sorry you feel that way. (Did you watch the linked content in the OP?)

And as an organizer of the challenge, I can assure you that we intend to have these challenges as a lighthearted and easy-going event to spur our users to learn more things about various concepts related to game making (and how to do them in Defold).

Think of it as an impromptu mini game jam. Our hope is that most users will feel like it’s a nice opportunity to create something and learn at the same time, while at the same time not commit to a full game jam.
I wouldn’t expect most users to enter just because they can win a gift card, but as an exercise and an opportunity to learn and share the results.
Another goal with these challenges is for our community to build skill, and also produce more assets in the long run, and perhaps blog posts about what they did. We’ll simply see how it turns out!

14 Likes

Mathias answer is spot on. I hope members in the community do it to learn something new and to share their learnings with the community. I also hope the gift card is not seen as the only reason to participate.

Decompiling the game to get access to shaders and code, and the adapt it to Defold and share it as open source, is most likely illegal and not something we encourage.

6 Likes

I see it as a nice challenge for myself, a chance to learn shaders. It is something I’ve wanted to dive deeper into. A small idea to make the card burn effect is a perfect opportunity to research and try to build by myself :slight_smile:

9 Likes

I came here to say the same thing. Unfortunately I’m traveling right now so I probably won’t be able to enter the contest. However, I love balatrto and I think this is a great idea to help me learn how to polish my graphics. I’ll just have to do it later.

2 Likes

With the help of Shadertoy I’m getting somewhere! Still needs some tweaking, but so far I’m really impressed with the result already! Thanks again for the mini-challenge.

12 Likes

https://twitter.com/jhonnygoransson/status/1788898305595920779

12 Likes

It’s great! Keep it up!
and can you share a little code? I’m starting learning shader

3 Likes

Of course; you can find the fragment program here: https://github.com/appsoluut/defold-balatro-card-burn-effect/blob/main/materials/burn.fp

With speed you can change the burn speed effect, 1 is really slow but a nice demo to see how it reacts. I still have to figure out how to get the actual size of the card in the fragment program instead of hard coding it.

6 Likes

Amazing work. Thanks for sharing.

2 Likes

I want to learn how to do these two effects. Especially the oil slick/rainbow poly card.
Holo_ace

2 Likes

This is a fun idea, some great implementations already!

For me, it’s a great exercise for learning the engine without needing to be creative. My agonisingly slow progress is @ GitHub - prismglue/balatro-fx but I probably won’t get around to shaders.

I’m finding this video at 0.25 speed helpful for seeing the gameplay animations: https://youtu.be/9agt18c_V1U

5 Likes

This is a good initiative! Not as lengthy or time consuming as a game jam, and builds skills that can be applied to more important projects. I hope these challenges will become a regular thing, even if no prizes are involved.

4 Likes

Yes, that is our plan! This challenge ends on Sunday. Please post what you’ve created here!

6 Likes

Hello again!
A small reminder that there’s two days left (i.e. the weekend) of this challenge.

We (the Defold team), will go through the open source examples posted here on monday, and choose three top picks who gets a steam gift card!

Have fun!

4 Likes

Well. Here is my one:

Upd:

HTML5 Demo: cards-fx-kit 0.1

My goal was to try to make card distortion effects exactly in the GUI system, which in its current form, though it got new features such as individual materials for individual nodes, but remains completely 2D orientated. I encountered some problems in passing parameters to the shader, in particular the local coordinates of the node. However, it was interesting.

22 Likes

Well, I got back from Japan with 2 days to work on this. I have never ever worked with shaders on any platform before. These are pretty basic but I wanted to get them posted before the end of the contest. I think I’ll continue to work on these to learn more about shaders.

You can get the publicly shared code here:

Right click on the card changes the shader. Left click drag moves it. I wanted to get the shimmer effect when it moves and still may get it in before you pick a winner. But to be honest I already won as I have learned about shaders and I’m not so intimidated by them any longer. Thanks for having this challenge.

9 Likes

I didn’t make cards or neat shaders / effects, so this isn’t as eligible as the other great entries. It was still a fun way to learn the basics of Defold and simple animations. Hopefully I get time to tinker more tonight.

Try it @ balatro-fx 1.0.2 or see silly commits @ GitHub - prismglue/balatro-fx
(now published on tag with GitHub Actions: GitHub - prismglue/defold-builder-simple: Build a simple Defold project using GitHub Actions)
(Update: added card counts this morning, May 22nd)
(Update: added hand counts this morning, May 23nd)

8 Likes

I updated my shader. This is fun…I can’t wait for the next community challenge.

Github has been updated (I think). If it doesn’t work let me know.

schlista/Defold-Card-Shader-Sample: Created for the defold contest to encourage users to learn shaders. (github.com)

5 Likes

Ok, final I update I swear. (I hope). I wasn’t happy with the diamond effect. So I put some motion on it. Ideally if I had more time I’d make it move as the card moves. But instead I just have it move based on time (like the rainbow effect). Both would be better served with a motion changing them but this works as a good example.

3 Likes