Sign in

17

@dyseath.bsky.social
1.2K followers 2.9K following 43 posts

Indie gamedev crafting games with Godot store.steampowered.com/app/5149380/… Former Game Director on Synergy, Lead Game Designer on Rogue Lords & Wakfu MMO

PostsRepliesMedia
17 @dyseath.bsky.social · 11h
J'ai bel et bien écrit en anglais ! J'imagine que bluesky a ajouté de la trad automatique
000
17 @dyseath.bsky.social · 15h
Follow for more tips! Let me know if you like this format and what you'd like to learn next.
030
17 @dyseath.bsky.social · 15h
Here's the shader code (for Godot), with comments explaining each step. Feel free to play around with the sliders to find what works best for you!
The following shader code:

shader_type canvas_item;

uniform float desaturation : hint_range(0.0, 1.0) = 0.8;
uniform float darken : hint_range(0.0, 1.0) = 0.5;
uniform float contrast_reduction : hint_range(0.0, 1.0) = 0.25;
uniform float overlay : hint_range(0.0, 1.0) = 0.15;
uniform vec3 overlay_color : source_color = vec3(0.3);

const vec3 luminance_magic_number = vec3(0.2125, 0.7154, 0.0721);

void fragment() {
	// base color
	vec4 color = texture(TEXTURE, UV);

	// compute perceptual luminance
	float luminance = dot(color.rgb, luminance_magic_number);
	vec3 luminance_color = vec3(luminance);

	// desaturation
	color.rgb = mix(color.rgb, luminance_color, desaturation);

	// darken
	color.rgb *= (1.0 - darken);

	// reduce contrast
	color.rgb = (color.rgb - 0.5) * (1.0 - contrast_reduction) + 0.5;

	// gray overlay
	color.rgb = mix(color.rgb, overlay_color, overlay);

	// apply
	COLOR = color;
}
181
17 @dyseath.bsky.social · 15h
- Darken the image by 50% - Reduce contrast by 25% - Add a subtle gray overlay (a grey 4d4d4d at 15% opacity)
A comparison showing two objects (a hand-drawn red ticket and disk) in its original color, in grayscale, and in the “disabled” state (the effect is explained in this thread)
150
17 @dyseath.bsky.social · 15h
Here's a more user-friendly approach, combining a few simple effects: - Desaturate by 80%. I like to keep just a little of the original color.
A comparison showing an object (a hand-drawn sticky hand) in its original color, in grayscale, and in the “disabled” state (the effect is explained in this thread)
130
17 @dyseath.bsky.social · 15h
The middle example shows what happens when you simply turn the image to grayscale. It still stands out too much and doesn't really look disabled. If the original item is already gray, it can even be hard to tell that it's disabled at all.
A comparison showing two objects (a hand-drawn birtday hat and a rock) in its original color, in grayscale, and in the “disabled” state (the effect is explained in this thread)
140
17 @dyseath.bsky.social · 15h
Today, I'd like to share a method for making your UI elements look properly disabled, whether they're items, buttons, or anything else. #godot #gamedev
A comparison showing an object (a hand-drawn watch) in its original color, in grayscale, and in the “disabled” state (the effect is explained in this thread)
2224
17 @dyseath.bsky.social · 10/10/2026
Reporting for duty! bsky.app/profile/dyse...
010
17 @dyseath.bsky.social · 10/10/2026
Reporting for duty! bsky.app/profile/dyse...
010
17 @dyseath.bsky.social · 09/10/2026
Follow for more tips! Let me know if you like this format and what you'd like to learn next.
020
17 @dyseath.bsky.social · 09/10/2026
- Some scale randomness, combined with a "Scale Curve" to control particle size over time.
Showing a scale randomness from x0.8 to x1.2, and a scale curve over time going rapidly from 0 to 1 at the start, then rapidly from 1 to 0 at the end.
120
17 @dyseath.bsky.social · 09/10/2026
Here are a few other settings I used to complete the effect: - A nice gradient in the "Color Ramp" to change particle colors over time.
Showing a gradient transitioning from yellow to orange, to dark red, to black, in the "Oklab" color space.
120
17 @dyseath.bsky.social · 09/10/2026
Godot will set the "Emission Shape" of your "ParticleProcessMaterial" to "Points" and generate an optimized "Emission Point Texture".
Showing the generated texture which has a size of 2048x2.
120
17 @dyseath.bsky.social · 09/10/2026
Choose "Border Pixels" to spawn particles along the edges (as in this example), or "Solid Pixels" to spawn them across the entire shape.
Showing the settings described in the post.
120
17 @dyseath.bsky.social · 09/10/2026
Select your "GPUParticles2D" (or "CPUParticles2D"), then click "Load Emission Mask" at the top of the 2D viewport.
Showing where to find the "Load Emission Mask" button.
120
17 @dyseath.bsky.social · 09/10/2026
First, you need a mask texture to define where particles should spawn. For this example, I created one from the card's background. The color doesn't matter. Unused areas MUST be transparent.
An image illustrating an arbitrary pink shape.
120
17 @dyseath.bsky.social · 09/10/2026
How to spawn particles at specific locations on a texture? #godot #gamedev
2195
17 @dyseath.bsky.social · 05/10/2026
Thanks! I'll share some more in the next few days!
110
17 @dyseath.bsky.social · 05/10/2026
Let me know in the replies if you like this format and want more tips like this. You can also suggest topics!
180
17 @dyseath.bsky.social · 05/10/2026
For the noise, I used a simple gradient generated with a NoiseTexture2D, with the settings shown here. It's pretty wild how many effects you can get from Godot's default noise options. You can also use your own texture. Try different textures and see what you get.
The image shows the noise settings.
180
17 @dyseath.bsky.social · 05/10/2026
The final trick is to use a noise texture to add an offset to the UVs. This makes the rainbow look more irregular instead of moving as one block.
The image shows the same rainbow gradient with noise in the transitions, still running diagonally, using the described settings.
171
17 @dyseath.bsky.social · 05/10/2026
Then, move the UVs over time. Make sure the gradient texture has "repeat_enable" enabled.
The image shows the same rainbow gradient, still diagonal, with the settings described
150
17 @dyseath.bsky.social · 05/10/2026
First, rotate the UVs with this method. For convenience, expose the angle in degrees and convert it to radians in the shader.
The image shows that the rainbow gradient is now diagonal, with the settings described.
160
17 @dyseath.bsky.social · 05/10/2026
First, add a ShaderMaterial to a CanvasItem (ColorRect, TextureRect, Sprite2D, etc.). Expose a sampler2D for your gradient and assign a gradient texture to it. Here, I'm using Godot's built-in GradientTexture1D, but you can use your own texture, or even a 2D gradient.
An image illustrating a horizontal rainbow gradient and the settings described.
150
17 @dyseath.bsky.social · 05/10/2026
How to create a nice-looking rainbow effect in Godot?
28014
Reposted by 17
17 @dyseath.bsky.social · 02/10/2026
If you vote for the Godot Showreel, you might get a glimpse of the game I’m currently working on, called Catch A Pack! As a little offering, here’s a card from the game. #godot
2154
Reposted by 17
MrEliptik 💀 O.B.O.L is out 🔥 @mreliptik.bsky.social · 04/10/2026
Wanderburg is a really cool game but its UI... is not great 😅 I made a UI review and a small redesign, watch it on Youtube 👇️
291
17 @dyseath.bsky.social · 03/10/2026
Here is a simple Common card for comparison
061
17 @dyseath.bsky.social · 02/10/2026
If you vote for the Godot Showreel, you might get a glimpse of the game I’m currently working on, called Catch A Pack! As a little offering, here’s a card from the game. #godot
2154
Reposted by 17
Mickaël Newton @mickaelnewton.bsky.social · 27/09/2026
Mon appel aux créateurs JV français : je dois sauver la Bourse Jeux Vidéo d’ici la fin de l’année. Pour cela, je veux monter en 1 mois, un bundle de jeux vidéo dont les fonds iront à la BJV. Le plus de jeux possibles et trouver comment mettre en place cela de façon optimale. Pouvez-vous RT svp ?
13162324
Reposted by 17
Woum - DreadHaven @woum.bsky.social · 20/09/2026
WHAT Yesterday Dreadhaven made more wishlists in ONE DAY than all my work for my previous game in 1 year I guess the demo launch is going pretty damn well 👀
0182
Reposted by 17
Xavier - Binogure Studio @binogure-studio.com · 18/09/2026
🎉🎉🎉 #FortuneAvenue is leaving Early Access! 🎉🎉🎉 v1.0.0 hits Steam Sept 18, 2026: new rules, reworked cards, a calmer helicopter, 10+ boards, team play, ELO & rock-solid controller support. buff.ly/9v9ktDs #godotengine #gamedev #indiegame #tabletop
0226
17 @dyseath.bsky.social · 18/09/2026
I've just played the demo of Void Nebula and I think it's a very promising game. It's a deckbuilder roguelike with a card fusion system at heart of the gameplay and it's brillantly executed. I encourage you to check it out! store.steampowered.com/app/5211460/... #godot
store.steampowered.com
Void Nebula Demo on Steam
Create, customize and fuse every card in this sci-fi roguelite deckbuilder where you battle foes, stack absurd items, and drag your handmade deck to the heart of the Nebula.
021
Reposted by 17
MrEliptik 💀 O.B.O.L is out 🔥 @mreliptik.bsky.social · 17/09/2026
O.B.O.L is out on Steam and Itch 🔥 Our horror game where you bet your life on a coin flip is available now! It's the first horror game we fully release with @habibsaher.bsky.social and we hope you'll enjoy 💖
23618
Reposted by 17
Adriaan @adriaan.games · 16/09/2026
We optimized draw calls by 99% (lol) in Hidden Folks 2 by writing some tools to find all textures used in a level, generate a level-specific atlas, and replace individual texture references with atlas textures. Thread below 🧵👇🏼 #godotengine
Two side-by-side screenshots showing before and after we applied a texture atlas optimization to our game Hidden Folks two, the before showing 13318 draw calls and the after showing 113 draw calls
1351678
Reposted by 17
˗ˏˋ Jeanne ˊˎ˗🥵☀️ @janeprigent.bsky.social · 08/09/2026
est-ce qu'il y a des gens qui voudraient faire une petite game jam pour les élections 🥺 (mood barrage à l'extrême droite) je sais pas quand/comment, mais ça me plairait beaucoup ✨
3010036
Reposted by 17
Mina Pêcheux 🔶 GET Locktale on Steam! @minapecheux.bsky.social · 07/09/2026
Well, here we are! Today, after 9 months of prod, my puzzle game about ciphers Locktale is finally out on Steam ⭐️ Go grab your copy (15% OFF the first week!) 😉 store.steampowered.com/app/4304820/... #indiegame #indiedev #indiegaming #madewithgodot #steamgames #puzzlegame #cipher #fantasy #storytale
42813
Reposted by 17
Millennium Slumber @desmodusgames.bsky.social · 31/08/2026
Millennium Slumber Demo is out now for the Steam PvE Survival Crafting Fest! Loot, craft, set traps and build defenses to survive 400,000 years on a hostile alien planet! Play here : store.steampowered.com/app/4174420/... #gamedev #indiegame #indiedev #godot #godotengine #survival #NoAI
22311
Reposted by 17
Millennium Slumber @desmodusgames.bsky.social · 27/08/2026
Millennium Slumber demo will be available on monday during the Steam PvE Survival Crafting Fest! Get ready to survive for 400,000 years on a hostile alien planet! Steam page : store.steampowered.com/app/4174420/... #gamedev #indiegame #indiedev #godot #godotengine #madewithgodot #NoAI
1168
17 @dyseath.bsky.social · 22/08/2026
Thank you for sharing! Very appreciated.
010
Reposted by 17
Robin Ward @eviltrout.com · 21/08/2026
I wrote up tips for saving and loading games durably in Godot. It's stuff I wish I'd known before shipping games on PC: eviltrout.com/blog/2026-08...
eviltrout.com
Tips for Saving Game Data in Godot
How we made save games in The Roottrees are Dead and The Incident at Galley House resilient to full disks and failing hard drives.
512230
17 @dyseath.bsky.social · 19/08/2026
Hi, You can play multiple sounds in parallell with AudioStreamPlayer Stream set as Polyphonic. The documentation wasn't clear enough; I spent a long time looking for it when I needed it. I hope this example helps!
code description of an example extension method

// ====== 1) CREATE THE AUDIO STREAM AND KEEP A REFERENCE ======

// create and reference the AudioStreamPlayer if it doesn't exist yet
if (!GodotObject.IsInstanceValid(audioStreamPlayer))
{
    audioStreamPlayer = new();
    nodeParent.AddChild(audioStreamPlayer);
}

// setup the AudioStreamPlayer to Polyphonic if it's not correctly setup yet
if (!GodotObject.IsInstanceValid(audioStreamPlayer.Stream) || audioStreamPlayer.Stream
is not AudioStreamPolyphonic)
{
    audioStreamPlayer.MaxPolyphony = 32;
    AudioStreamPolyphonic streamPolyphonic = new();
    streamPolyphonic.Polyphony = 32;
    audioStreamPlayer.Stream = streamPolyphonic;
}

// start the audio stream player if it hasn't started yet
if (!audioStreamPlayer.Playing)
{
    audioStreamPlayer.Play();
}


// ====== 2) USE IT TO PLAY AS MANY SOUNDS AS YOU WISH ======

// get the AudioStreamPlaybackPolyphonic started by the Play
AudioStreamPlaybackPolyphonic streamPlaybackPolyphonic = (AudioStreamPlaybackPolyphonic)audioStreamPlayer.GetStreamPlayback();

// setup as you wish and play the stream
float volumeDb = Mathf.LinearToDb(audioStreamConfig.GetVolumeLinear());
float pitchScale = audioStreamConfig.GetPitchScale(pitchIncrease);
long streamId = streamPlaybackPolyphonic.PlayStream(audioStreamConfig.AudioStream, audioStreamConfig.FromTime, volumeDb, pitchScale);


// keep the streamId in case you want doing stuff later on this stream
// in this example, a volume fade in
if (audioStreamConfig.FadeInDurationMs > 0u)
{
    // progressively increase volume on the targetted stream of the AudioStreamPlayer
    Tween fadeInTween = audioStreamPlayer.CreateTween();
    fadeInTween.TweenMethod(Callable.From<float>(FadeIn), 0f, audioStreamConfig.GetVolumeLinear(), audioStreamConfig.FadeInDuration);

    void FadeIn(float volumeLinear)
    {
        float volumeDb = Mathf.LinearToDb(volumeLinear);
        streamPlaybackPolyphonic.SetStreamVolume(streamId, volumeDb);
    }
}code usage example

public partial class TestPlaySeveralSounds : Control
{
    private AudioStreamPlayer _audioStreamPlayer;


    public override void _Input(InputEvent inputEvent)
    {
        base._Input(inputEvent);

        if (inputEvent is InputEventMouseButton mouseButton)
        {
            SoundConfig randomSound = MathExtensions.GetRandomInRange(1, 1) switch
            {
                0 => Game.SoundOnCardDropMoney,
                1 => Game.SoundOnCardEchoTick,
                2 => Game.SoundOnCardLevelUp,
                3 => Game.SoundOnCardStarUpFlippingEnd,
                4 => Game.SoundOnCardStarUpFlippingStart,
                5 => Game.AchievementSoundOnHover,
                6 => Game.AchievementSoundOnPressed,
                7 => Game.DonationButtonSoundOnForcedStop,
                8 => Game.NopeSoundConfig,
            };

            this.ExampleMethod(ref _audioStreamPlayer, randomSound.GetAudioStreamConfig());
        }
    }
}
010
Reposted by 17
Goomboo @maplegecko.bsky.social · 15/08/2026
#Asemulator v1.0.0 releases on August 28th! 🎉 The Top-down and Side-scroller templates will be available on the same date. Get ready to preview, test and share your characters' animated sprites in context, directly in @aseprite.org! Reposts highly appreciated~
262319820
Reposted by 17
Spades @spadesdsn.bsky.social · 29/07/2026
Et il est aussi antivax, conspirationniste, trumpiste, anti inclusion... La liste est longue.
0154
Reposted by 17
Gonorrhée de Ballsack @charliminal.bsky.social · 28/07/2026
Pour les gens qui aiment les jeux à énigmes comme moi, y'a le créateur de The Witness qui va sortir son prochain jeu, Order of the Sinking Star. BOYCOTTEZ cette grosse merde d'extrême-droite qui pense que les femmes sont biologiquement incapables de résoudre des énigmes.
1617399
Reposted by 17
Rémi Verschelde @akien.bsky.social · 22/06/2026
I see some concerns raised about Godot's policy on contributions using AI. TL;DR: Godot isn't vibe-coded. As a whole, the Godot foundation and maintainers are fairly critical of AI usage, and don't make nor accept vibe-coded contributions. Godot doesn't include AI features nor intends to add any.
Godot's current policy on AI-assisted contributions reads like this:

"The use of AI to contribute to Godot is discouraged, and contributions made entirely by AI are prohibited.

We acknowledge that AI can be useful, but we are convinced that human effort results in better and more relevant contributions.

If you do use AI, we expect that you put in effort to proofread and improve anything it generates, and that you disclose what you used AI for. As maintainers spend significant time reviewing your code, please make sure that the code you submit is well-tested and functional. Please be respectful of their time and only submit something you have put thought and effort into."
441961469
Reposted by 17
Godot Engine @godotengine.org · 18/06/2026
#GodotEngine 4.7 is here! 🎉 Like a cult classic movie, Godot 4 has only gotten better with age; the 4.7 Director's Cut offers colors of never-before-reached intensity, helming a bevy of new features to eliminate any remaining friction between you and your vision! godotengine.org/releases/4.7/
godotengine.org
Godot 4.7 Release: Lights, Camera, Action!
Like a cult classic movie, Godot 4 has only gotten better with age. This brings us to Godot 4.7. With 3 years under its belt, the 4.7 _Director’s Cut_ offers colors of never-before-reached intensity.
311264357
Reposted by 17
Skorvaltz @skorvaltz.bsky.social · 15/06/2026
Yeaaah! We're so happy to present the demo of our first game at #SteamNextFest ! InCowMental is a tiny incremental game about milking cows, growing wheat, selling milk, and playing mini-games to boost your production between upgrades.
282
Reposted by 17
Millennium Slumber @desmodusgames.bsky.social · 16/06/2026
Survive 400,000 years on a planet infested with an alien calamity! Gather resources, build a base and defend against hordes of nocturnal monsters in this rogue-like with cryostasis mechanics. Coming 2027. Wishlist now! store.steampowered.com/app/4174420/...
store.steampowered.com
Millennium Slumber on Steam
Survive 400,000 years on a planet infested with an alien calamity! Gather resources, build a base and defend against hordes of nocturnal monsters in this rogue-like with cryostasis mechanics.
052
Reposted by 17
Mina Pêcheux 🔶 GET Locktale on Steam! @minapecheux.bsky.social · 17/06/2026
Feeling decode-y? Solve this secret message to learn more about Locktale, my #puzzlegame about #cipher s - it’s in the Steam #nextfest! 🚀 Go wishlist+try the demo 😀 👉 store.steampowered.com/app/4304820 #indiegame #indiedev #indiegaming #madewithgodot #fantasy #cipher #storytale
1104