Ludum Dare 59 April 18–21, 2026

15 random games LD59 #3

Hi all! again I made the third video where I play 15 more random games.

🎥 Video: https://youtu.be/pJQmE3rXvfc

P.S. If you like any game and wanna try them yourself, I have add links all of them in the video description.

☆(>ᴗ•) Artist on a game jam ☆(>ᴗ•)

Hello everyone!

I’m Saitoni, 2D artist on the Drum -n- Ice project https://ldjam.com/events/ludum-dare/59/drumnice

In our team, I was in charge of the visual 2D style and keeping the mood light and positive!

I also learned the hand paint technique for the first time at this jam —I’ll share more details about that in my next post.

Now, let me show you our characters up close!общий.jpg

A small UI trick that saves time

Hello!

If UI feels like a confusing and difficult area to you (as it does to me), here’s a simple trick I’ve been using in my games for years.

I create one core element (in this case, an ornament) and reuse it across the interface wherever it fits. It helps keep everything visually consistent and makes the overall process much easier.

123.png

It may sound simple, but it really saves time and mental effort, leaving more room for more important tasks.

Thanks for reading! If you’re interested, here’s my game:

https://ldjam.com/events/ludum-dare/59/fellowship-of-the-signal-fire Timeline 1 (1).gif

DECODER: My First LD Jam Experience

Intro:

In this post, I want to share my experience participating in my very first game jam. I’ll talk about how I built the game, what went well, and how the whole process felt. I actually found out about Ludum Dare from my gamedev teacher, and I felt so inspired that I decided to dive in and see what I could create.

The Beginning:

As soon as the theme was announced, I started googling every possible meaning of the word "Signal." From the start, I wanted to do something with deep space signals. Part of the inspiration came from playing Voices of The Void a few days before the jam, where you find and process signals. However, I wanted my game to have a manual decoding process, forcing the player to actually decipher the encrypted data. That’s when the name DECODE was born.

The Mechanics:

The first thing I implemented was the frequency slider and the "garbage text" effect. When you hit the right frequency, the signal becomes clear. Видео-18-04-2026 20em03/em38.gif Originally, I also thought about adding a search for the signal’s coordinates, but it felt too complex to add. So, I focused on the core loop: signal tuning, Morse code, and Caesar cipher decoding.

The Challenges (and the "Input Box" situation):

The feedback I received highlighted one major point: the input panel. I wanted the game to be challenging, so I intentionally made the input box overlap the frequency slider. Initially, the panel opened with a manual button, but during testing, I found it annoying to click back and forth. I decided to make it automatic: it pops up when the signal is perfect and hides when the signal is lost. Combined with the long satellite names in Morse code, this became a "irritation point" for players, so to complete Day 2, you actually needed to make everything perfectly. ,_,

The Future:

After the jam ended, I didn't stop. I’ve already uploaded a slightly updated version to Itch.io, adding the music I didn't have time to implement during the 72 hours and fixing some visual bugs. Here's some screenshot of before and after: Скриншот 24-04-2026 191605.jpg СкриншотNew 24-04-2026 191656.jpg Скриншот 24-04-2026 191910.jpg СкриншотNew 24-04-2026 191716.jpg But I’m not stopping there! The feedback has been amazing and truly motivated me to keep going. A friend sent me a massive list of ideas, and another player suggested adding a story twist. I’m definitely going to work on a more polished version with better UI and maybe a small plot. If you’ve played the jam version, I’d love for you to check out the future updates! :D

Fun Fact:

While playing other entries (which actually feels very cool, seeing what people created in such a short time), I found a game with almost the same name: Decode. It’s a great project, you should definitely check it out too!

Let's talk about AI

What do you think about the number of games using AI around here? I confess it makes me sad and I think it's unfair, especially since it's not mandatory to disclose that you used AI in the development of your game.

I honestly think this takes away a large part of what makes a game jam a game jam: being creative and creating visions, ideas, and feelings from scratch. Not to mention the socio-environmental impact. We don't need more people consuming tons of water and environmental resources to generate an image copied from somewhere else.

You may disagree with me, and I can't say I respect that, but that's my opinion!

To everyone who worked hard and did everything by hand, congratulations! I'm very proud to be part of a community that still makes games the way they should be made. I love you all and tell me what you think about this! I think it's an important discussion for the future of Ludum Dare.

dC_twitter.png

请求大家评价我的游戏111

新人第一次做 有点粗糙🥹但是还是很希望得到评价!我会继续改进的 是一个心理恐怖类叙事的游戏 带有循环机制

How to draw a sprite from scratch in 2 or 4 steps (tutorial)

Step 1: Use a big brush to draw a blob that roughly resembles a silhouette of the shape that you envisioned. At times use eraser to shape it up a little, but not too much. Here I erased bits inside to give it some sense of what the outline will be.

In this case it was a 16th-17th century horseman, I am happy enough with the resulting blob considering I used no reference.

screen1.png

Step 2: Now create a new layer and draw the rest of the damn sprite.

First the outline, 1 pixel width - do not blindly stick withe the blob's exact shape, make adjustments where needed. Then grab the bucket and add some color fills.

screen2.png

Step 3: Animation! If you do not wish to skip this step then you are a bit of a masochist.

Here I only relocated a few pixels to create slight impression of wind doing its work on this person's clothes and hair. That's 15 minutes spent on something no one will notice, but it will make their subconsciousness see the sprites as something alive, hopefully.

horseanim.gif

Step 4: Notice that something is missing, like the 4th leg. Try to add it, but conclude it is impossible to do so without making a mess, considering the resolution and the horseman's right leg. Abandon any idea of the fourth leg. In your imagination, proceed to defend yourself against accusations that only an AI generator could get the number of horse's legs wrong. Then calm yourself down with the notion that no one will bother to make such accusation against art this trashy.

Some hours later, notice an even bigger issue. In this case perhaps you forgot that horses have tails. You did had a feeling that something is off with that horse's butt. It somehow resembled a human's butt, and now you know why. At least no one will accuse you of AI generation now, for even the computers know that horses have tails.

screen3.png

I hope this humble tutorial will help some programmers who are aspiring artists to reach their goal of drawing a sprite.

Alpine: only possible thanks to LDtk

Hey all! I'm RenD and my entry for this event is called "Alpine":

alpine3.gif

The pitch

It's a 2D puzzle platformer where you must re-connect houses after a storm has swept through the valley. You route signals from cabin to cabin, up to the summit of the Three Peaks mountain.

As you can see, I did have a look at some Celeste screenshots when researching the mood and the art direction :smile:

The tool

For this jam I wanted to try a tool I've discovered recently, LDtk by Deep Night (who has been participating in many Ludum Dare in the past). I was previously using Tiled and while the integration with Unity was pretty seamless (thanks to the Super Tiled2Unity project), I found the editor to be a bit cumbersome at times. So I thought to myself, let's try this nice-looking tool and attempt to have a cool retro 2D pixel art side scroller.

And LDtk did not disappoint! If you're making a tile-based game (top down or side view), this is a must. The world/level partitioning, the auto rule system, the entities with custom fields. It's all super intuitive to use and thanks to the fantastic LDtkToUnity project, the integration with Unity is made super easy. You have all the callbacks you need from the importer to customize all the prefabs according to your needs.

How it helped

Once the tileset was up and running (there's a template so you can reuse some existing auto-tiles rules), I created all the entities (prefabs) that would be needed: the pylons, the houses, the triggers for dialogues and hints, the collectibles... Then in Unity I associated the tiles to specific layers (for collision, one way platforms, deadly spikes) and associated entities with prefabs. Et voilà! Now all the work was happening in LDtk and I just had to layout the collisions, place the entities, design the puzzles...

LDtk.png

It made me gain so much time that I was able to focus more on the polishing and the visuals. I did overscope the level design and the mechanic progression big time (I had designed at least 3 additional uses of the cables and the signals) so the experience might feel pretty short, but I'm happy with the result and I'll certainly use LDtk again in future projects.

Thanks for reading, I'd be super thankful if you could try the game and maybe even drop a comment!

Cheers!

This wants to be a finished game!!!

Defeat enemies, catch signals and steal abilities! survive a little longer!

we didn’t expect this much feedback, but a lot of people told us they really enjoyed our game! so now we’re pushing it further and the goal is not to make it bigger, but to make it whole, short, sharp and complete.

if you try it, tell us what breaks, what feels good, what you’d push even harder.

play it here: nadiapixel.itch.io/agents-rhythm-and-raid

agentsemR&R/em13.gif

agentsemR&R/emrhythm1.gif

Lets Squish Zombies to Squish the Orange Triangle

Screenshot 2026-04-24 181903.png We only need 6 more ratings to get a final score. If you've worked in an office, are a zombie enthusiast or dream of using office chairs and bookshelves as weapons (we promise we don't judge), please try our game. It's a fast-paced action game about surviving a zombie attack by using office furniture as weapons, such as launching chairs at zombies, or squishing them with a bookshelf. OfficiallyDead-ezgif.com-resize (1).gif

I promise to personally play as many games as possible from the people who give feedback, and hopefully, by tomorrow, the triangle will be vanquished.

A game with rhythms, but not a rhythm-game

For this jam I had the idea to create a rhythm game, but instead of pressing keys to the music as the main mechanic, it would be about recognizing rhythmic patterns by ear and without any speed-based time limit.

Gameplay.gif

How difficult do you think the task of recognizing rhythms from multiple instruments would be? What do you think about this idea?😅

Try it: https://ldjam.com/events/ludum-dare/59/telepathy-rhythms-fingers

Cute cat and data packets

Our mascot kitten turned out to be so cute that many people mentioned it in their reviews
We even received a lovely fan art! :scream_cat: fankitty.jpg

So, I'm here to invite you to try our game with a very cute cat!
https://ldjam.com/events/ludum-dare/59/packet-loss-1

like.gif

Btw, also try clicking on the cat on the title screen :cat:

BASH and GASH!

GameLogoLongBigger.png MassiveHorde_compressed.gif

Finally getting around to posting. This was my first Ludum Dare, and I have to say - it was an incredible experience. The pressure of that ticking timer, ruthlessly crossing out features just to get a working build in time, it's a wild ride. And those goosebumps when you finally hit "Publish"…

So glad to join this amazing, cute, and warm community!

Feel free to give it a try here :point_right: : https://ldjam.com/events/ludum-dare/59/bash-and-gash

Hidden part of my game

I used asimple trick to add style to my game by limiting the color space. This is how it looks without it and with it.

Screenshot 2026-04-24 at 21.08.38.png Screenshot 2026-04-24 at 21.08.23.png Screenshot 2026-04-24 at 21.08.17.png

```gdshader shadertype canvasitem;

uniform sampler2D SCREENTEXTURE : hintscreentexture, filternearest;

uniform sampler2D palettetex : filternearest; uniform int colorcount : hintrange(1, 256) = 16; uniform vec4 basecolor : sourcecolor = vec4(1.0, 1.0, 1.0, 1.0); uniform float blendamount : hintrange(0.0, 1.0) = 1.0;

uniform sampler2D dithertex : filternearest, repeatenable; uniform float ditherscale : hintrange(1.0, 128.0) = 1.0; uniform float ditherintensity : hintrange(0.0, 1.0) = 0.1; uniform bool ditherenabled = false;

vec4 palettesnap(vec3 color) { float u0 = 0.5 / float(colorcount); vec4 best = texture(palettetex, vec2(u0, 0.5)); float dist = distance(color, best.rgb); for (int j = 1; j < colorcount; j++) { float u = (float(j) + 0.5) / float(colorcount); vec4 c = texture(palettetex, vec2(u, 0.5)); float d = distance(color, c.rgb); if (d < dist) { dist = d; best = c; } } return best; }

void fragment() { vec4 color = texture(SCREENTEXTURE, SCREENUV); vec4 original_color = color;

if (dither_enabled) {
    vec2 screen_px = FRAGCOORD.xy;
    ivec2 dither_size = textureSize(dither_tex, 0);
    vec2 scaled = floor(screen_px / dither_scale);
    vec2 wrapped = mod(scaled, vec2(dither_size));
    vec2 dither_uv = (wrapped + 0.5) / vec2(dither_size);
    float dither_val = texture(dither_tex, dither_uv).r - 0.5;
    color.rgb += dither_val * dither_intensity;
}

vec4 palette_color = palette_snap(color.rgb) * base_color;
COLOR = mix(original_color, palette_color, blend_amount);

} ```

A grave injustice

For all those out there not giving Uplink Defender a rating in humor, I would like to point out that the jellyfish sometimes wear hard hats.

test 3 (14).gif

Thank you for your attention in this matter.

DRUNKENLY TRYING YOUR LD GAMES LIVE :D

Please don’t submit games made with generative AI! I will not play them! The submission form is on the stream, no need to put your games in the comments

https://www.twitch.tv/pomothedev

I am enjoying seeying familiar people games

It's like having friends. I am excited which games they are going to make this time. I really enjoy this socializing aspect of the jam. We're growing together :)

Leaderboard Update: Survival is Key!

Hey everyone!

We’ve been hard at work tweaking the game, and I have some news regarding how we track the best players. I’ve just re-deployed the Leaderboard, and there’s a major shift in how you climb to the top!

From now on, the rankings are all about endurance. Instead of just quick scores, the top spots will now be held by those who can survive the longest and stay in the game the most. It’s time to see who has the best strategy to keep the lighthouse glowing through the night!

What's new:

Time-based Ranking: The longer you play, the higher you climb.

Reset: Since the logic has changed, it’s a fresh start for everyone. Go grab that #1 spot!

I'm still keeping a close eye on the balance, so keep the feedback coming. Let’s see who can hold out the longest in the Twilighthouse!

Play and compete here: https://bobanko.itch.io/twilighthouse

https://i.postimg.cc/26CrjGxX/Updated-Results.png

Leaderboard Update: Survival is Key!

Hey everyone!

I’ve been hard at work tweaking the game, and I have some news regarding how we track the best players. I’ve just re-deployed the Leaderboard, and there’s a major shift in how you climb to the top!

From now on, the rankings are all about endurance. Instead of just quick scores, the top spots will now be held by those who can survive the longest and stay in the game the most. It’s time to see who has the best strategy to keep the lighthouse glowing through the night!

What's new:

Time-based Ranking: The longer you play, the higher you climb.

Reset: Since the logic has changed, it’s a fresh start for everyone. Go grab that #1 spot!

I'm still keeping a close eye on the balance, so keep the feedback coming. Let’s see who can hold out the longest in the Twilighthouse!

Play and check out the new changes!

It's Friday!

wine.png

Send your favorite music in the comments and have a nice weekend!

Reflections on Robo Phone Home

I’m really proud of this one! The fundamental idea behind Robo Phone Home is that signals take time to get from point A to point B. With this as our guiding light, @Wuppos and I started the dev process with a morning brainstorming session coming up with a game mechanic and theme.

gif1.gif

Our early ideas focussed on spaceship—mission-control dynamics on a long interstellar mission, with signals between the two transmitting at the speed of light. But we decided that we wanted to keep both parties on one map where the on-screen visual distance between them corresponded directly to the signal travel time. This didn’t quite feel right for interstellar distances, so we scaled the theme down to a robot and a control tower.

We immediately ran into a challenge: a time delay between input and response is inherently unfun. Our game must have a control scheme that feels like more than just controlling a robot character with lots of input lag. We realised we could get the perfect blend of responsive controls and meaningful signal travel times by centering the game around aiming instructions at the robot. The rest of the game sort of just designed itself.

gif3.gif

We spent most of the first day implementing the robot/tower/signal mechanic, and making sprites for the robot, tower, and walls. We tried the mechanic on a test map with just walls to get a feel for what we were making. We discovered that we were making a puzzle game with an aiming mechanic. Perhaps we could call it a dexterity puzzler or a puzzle shooter (please let us know if you have a good idea for the genre name!). We had a second brainstorming session coming up with lots of different types of obstacles and interactable map elements, a small fraction of which we implemented and added to the six levels in our jam entry.

gif4.gif

This was my first time making a puzzle game. Now that we’ve gotten some feedback, I’ve learned that it’s far too easy to make puzzle games a tad too hard. Testing your mechanic throughout the dev process through all its iterations actually makes you somewhat good at it and you lose sight of what it’s like for someone who’s just picking it up for the first time.

I want to say a quick thank you to all the folks who played Robo Phone Home, and left us kind words and useful feedback! Another quick thanks to @Wuppos for jamming with me again and lending his unique soulful pixel art style to the game (I have it easy)!

How we visualized signal waves in Echo

Hi everyone! I decided to write a small post about the things I learned while implementing a shadow and signal occlusion for our bat-themed puzzle game.

Before this jam I've never dealt with 2D lighting systems so the task was new to me - I needed to make a circular wave and a point light that can be occluded by the environment around the player, specifically tiles and props (like columns). Luckily after a bit of digging I found this great post about a dynamic 2D lighting system in GameMaker.

The idea of using diagonal quads and moving their marked vertices away from the light source in the vertex shader was exactly what I needed. However since I needed shadows for multiple purposes I didn't use the depth test, instead rendering them into the first channel of the RG8 shadow mask texture. The second channel is then used for color information to make the colored glass mechanic possible.

I then wrote a simple shader that multiplied the shadow mask, the preset color based on the information from the second channel and the texture output together. This same shader is used to render both the player light and any of the signal waves.

Of course, the next challenge was that I couldn't just fill the entire scene into one vertex buffer for shadow and color calculations at the start of the scene and reuse it, because of doors that can be opened or closed dynamically. So those are writted to a dedicated vertex buffer that is updated every time any door changes it's state. The rest of the scene is static and is recorded into vertex buffers at the start of a new level.

Wave objects get initialized with a shadow mask texture upon creation, which is copied from the player's own shadow map (or rendered from the point of view of the reverb statue). These maps are then redrawn in response to any change in the dynamic geometry.

On the gif the opacity of the objects is lowered so you can see what's happening behind them. You'll notice especially in debug color view that colored glass doesn't exibit the same "triangle artifacts" that the shadow casters have. This was necessary to fix since the glass is a bit transparent in the game itself and was achieved simply by adding another quad to the vertex buffer that matched the glass sprite shape and has no vertices marked for move in the vertex shader.

And that's pretty much it, not a perfect system, but it works well enough for the levels we designed. I wanted to do some filtering on the mask so that aliasing would be less noticeable but unfortunately any blurring makes the tips of the shadow quads peak out from under the tiles in a distracting way and the quads can't be offset further into the tile because this introduces holes in the coverage. I'll have to think of some alternative approach that hopefully will still let us use the tiles for walls.

Hopefully some of you found this useful!

We'll be very grateful if you check the game out here https://ldjam.com/events/ludum-dare/59/echo-2

test.gif

Guess what

2D artist on the line! I'm letting you know that we've fixed some of the engine issues and released a demo version for you to play on Itch. Io!

https://iwant-pizza.itch.io/vox-ab-extra

Untitled-1.png

Over 30 Ratings!

Thank you very much!

We spontaneously decided to do our first Ludum Dare (finally) and we achieved way more than we thought we would! Let alone having other people to actually play our game too and giving valuable feedback. You have no idea how much fun we had creating our game (there were also brief breakdowns, lol) and interacting with this positive community!

Now we hope we can participate in many more Ludum Dare iterations and of course we believe in a solution beyond 2028.

Just some random screenshots we did when creating the game:

Saturday, the phone works (pink ball for scale) Godotemv4.6.2-stable/emwin64_2V7iHE3UIL.png

Monday, the scary sign, so the player knows whats up Godotemv4.6.2-stable/emwin64_D6VG7dJpRw.png

Saturday, figuring out the brushes, since we need a textured landscape blender_Ox0MtasV7Q.jpg

Monday, the forest seems to be done now Godotemv4.6.2-stable/emwin64_EHqSSyATH7.jpg

Sunday, Rigging is harder than we thought blender_ULdbLvKjl1.png

STREAMING LUDUM DARE GAMES!!!!!

YEAH WE'RE BACK AGAIN DOING THE SAME SHIT COMMENT YOUR GAME AND WE WILL RATE AND PLAY YOUR GAME ON STREAM

https://www.youtube.com/watch?v=dC3E6MlUF9E

Got inspired to make some pre-rendered 3D UI

Thanks for another fantastic LD jam, with lots of cool submissions! For our game, I decided to make some 90s UI goodness, by rendering out some metal from Blender. And recording videos to have in it. Of course this had to be a last moment kinda thing, and we had so much UI this time!! But I think it turned out pretty neat. Screenshot 2026-04-25 014923.png

image1.png The UI in all its glory! And AFTER spending a few hours switching out the Text. Was when it became apparent to me the font just didn't have the number 4 or 5.. which we end up displaying quite a lot in the game. Who makes a font without those?!

Our game Marsacre is a boomer shooter with infinitely stacking upgrades and one hell of a ride, especially when you reach new game+++ 727a7 (1).gif Thanks Palvel for making this wild gif!

I'll keep gaming your games! And I'm already excited for next time!!

Plume Tactics Now Out!

Play it now: https://ldjam.com/events/ludum-dare/59/plume-tactics

I initially failed to finish my game for LD59 initially, submitting only gifs:

bows2.gif

gameplay2.gif

But now: a basic version of the game is now completed!

Also I’ve changed the category of my entry to “Extra” now!

The U.P.L.I.N.K Initiative Needs YOU!

Many residents are reporting unconnected internet, and your the only person they can count on!

output-onlinegiftools.gif

Uplink 2026.04.21 - 09.29.27.01.gif

Play now! :

https://ldjam.com/events/ludum-dare/59/u-p-l-i-n-k

Glarble's Journey for More Ratings!

Play Glarble's Journey to Home-Ownership

^^ Try it out now to see if Glarble can buy his dream home.

Glarble.png Hey Jammers, it's Glarble here. Did you know I've only got 70 credits left until I can afford my dream home on Terra? My job is super hard, but I reckon I should have enough by the time my contract is up.

Boss.png huh?... Hmmmm... Oh, no Glarble's job isn't hard. All he has to do Is match the signal of a planet and find what resources it has. He's been doing it for years so he obviously knows how to do his job... Although... I did find this on his desk the other day. Glarble Instructions.png

Go play Glarble's Journey to Home-Ownership now to see how the story ends (there's more than one ending!)

Play Glarble's Journey to Home-Ownership

The resources/lights randomise every time so you won't get bored tryna find all the endings!👽

Rejected names, art timelapse, projection mapping, and a postjam version

logo.png

How Birds Is Made

We thought it would be fun to show some of how the art for Coo-Coo, Chef! was made.

Our 2D artist (@lexu) drew a bunch of neat birds.

bird_sheet.png

bird_timelapse.gif

Then I imported them as references into Blender and modeled them. A very easy way to model organic things is by using metaballs to get the general shape, then convert them to a mesh, apply subdivision surface (iterations 2) to get finer geometry, and use the sculpting tools (mainly Grab) to get the general shape.

birdemsculpting/emfast.gif

Then, I use QuadRemesher to get a reasonable topology and "Project From View" to get a UV map that I can align with the base image.

projection_mapping.gif

Rejected Names

We are not good at coming up with names and this jam was no different.

badnames.png

Postjam version

We've added a postjam version to make the controls easier and remove some confusion with the input scheme! Please use the original version for rating, but the new version makes the "Move" command move the birds forward instead of randomly, as well as an intro cinematic and fixes some other QoL issues.

Thanks for everyone who played and provided feedback, and we're really enjoying playing all of your games!

How to make art for a game when you have only 2-3 days?

Hey, everyone! I would like to share with you some tips and tricks I used to do art for our game.

I thought that it could be helpful for everyone who doesn't know where to start but wants to improve the art side of a game. I know that my style isn't everyone's cup of tea, but I can say that these simple rules have never failed me (so mb you can find them useful).

At the end of a day we have very limited time and the one big lesson I learned through gamejams: cut the scope

guideemto/emstyle_01.png

The secret isn't skill but decisions that were made early.

  • First and most important: find your mood and references of art the moves you, games you like to look at and try to captivate not a particular style, but mostly mood and atmosphere. It's not cheating, it's your style compass. I collected ~30 different images from Pinterest what helped me a lot to lock our style and also helped our composer to start working on music.

  • Second is: find a nice palette that would give you an extra kick on a style. You can go on Lospec (what I personally do a lot when I don't have much time) or take 4-5 colors from game you like, photograph you find beautiful or even pinterest. A restricted palete makes everything looks intentional (even if it isn't xd).

  • Third Pillar: Strong shape and silhouette. As a 3D animator I can say that nothing helps your work more than a very nice, pushed and clean shape. Silhouette is a structure that will work as a nice glue for your art.

  • Simplification - and we are on the 4th stage of making good art. When we don't have time let's use flat art, bold outlines, minimalism and treat them not as a shortcuts but like a deliberate style.

  • The last but not the least rule I put on the wall in front of me: CONSISTENCY. One asset that is different from the whole style hurts the perception of a game more than just a simple clean style. Keep everything the same from the moment you made first asset - the brush, palette, the outline's thickness, level of details, scale of items on the screen etc. If it's hard for you to keep consistency - work in the same file or use your character(main point of interest) as an anchor of a style.

These rules saved us during this jam and I hope they could save you on the next one :3 If you have any questions OR you have your own secrets how to draw art for game and not become insane - share them in the comments below!

Shell_02.png

And if you're curious to see how I applied those rules to our game you can check it here >

OUR GAME

Power of wrappers in Unity (ig)

Have you ever tried to serialize a matrix in the Unity Inspector or other complex data structures? Initially, Unity will not serialize fields like List<List<T>> unless we use a wrapper!

That’s the key idea: we don’t serialize List<List<T>> directly. Instead, we create a brand new serializable class with a property like List<T> values, and then serialize List<WrapperClass> instead!

Example:
Our wrapper class: csharp [Serializable] public class ListOfStrWrapper { [TextArea(3, 7)] public List<string> values = new List<string>(); }

and the fields in another object:

```csharp public List listOfStrWrappers = new List();

public List listOfListOfStrNoWrapper = new List(); ```

listwrapper.png

It's might be not very clear, but our second structure hasn't serialized!

But what is the actual use of it?

I came up with this approach to create relatively complex dialogues conveniently and quickly (very useful for jams! (ig, since I don’t have much experience, haha)).

In my project, each single dialogue is represented as a List<DialogueNode> (which is basically a container for the actual text of each node, speaker portrait, their name, etc.).

However, I need my entities to contain several dialogues, which would mean using List<List<DialogueNode>> — and that is not serializable!

So, this is exactly where a wrapper becomes useful. csharp [Serializable] public class DialogueContainerWrapper { public List<DialogueNode> values = new List<DialogueNode>(); } and create List<DialogueContainerWrapper> instead! Result:
dialogueWrapper.png
And dialogue example:
wrapper dialogue.gif

Pros and Cons

Pros: Fast, easy, and convenient for small data structures!

Cons: It may become messy when working with grotesque objects and containers. It is fine for around 10 objects with a small number of attributes, but as that number grows, things can get very inconviniet.

For bigger containers, it would be better to create a ScriptableObject container and assign a list of them instead, or load them from resources.

Hope you found this small article useful! I’m still learning the engine, and advice from more experienced people would be greatly appreciated, haha!

My very first jam entry

How important is build size to you?

How important is build size to you?

I noticed something: about one third of the people who visit my page download the game. Why is that? The obvious answer is that this is normal, or the page presentation isn’t engaging enough, but almost all traffic comes from Ludum Dare. So that likely isn’t the reason, and the next assumption is that the build size is the issue.

Загрузки.jpg


Unreal Engine problem

I work in Unreal Engine, and it has this thing where builds can’t really be small. Even an empty project weighs around 300 MB. When trying to reduce the build size, you have to use some tricks (besides standard settings like built-in compression and packaging only necessary maps without engine content).

Сайз мапа.jpg

Сompression

For example, compressing textures. Their size can be reduced almost without noticeable quality loss. Since lighting is volumetric, most of the visual appearance is created not by the texture itself but by its normal map, so you can reduce the size of all textures except normals up to a certain point without losing quality. But even that has a limit you don’t really want to cross.

Сравнение качества текстур.png

There’s also a thing with audio: for example, the size of an audio file inside the engine increases almost 4 times (because the engine converts it into a special format so it can process it faster at runtime).


The trade-off

I can reduce the build further - smaller textures, simpler audio, more aggressive compression. But will that start hurting immersion for you? Especially considering I won’t be able to get the archive size below 400 MB anyway (compared to the current 600 MB).

So the question is - is it even worth it? How important is build size to you? How much does environment quality breaking down affect your immersion?

And also, I’m curious: what is your view-to-download ratio?

Untitled-8.png

▶ RAT SIGNAL

Map

This is how my world map ended up:

world.png

I went for 5x4 = 20 rooms, trying for a balance between "big enough to be interesting" and "small enough for compo".

The six rooms at the bottom center with the lighter colours are a sort of "tutorial area". There's no explicit tutorial, but you can't leave this small area until you find 3 triangles, and the mechanics in there are limited to just a couple of simpler things.

The map wraps around because it's easy to implement and reduces the time players need to spend schlepping across the world. It's like having fast travel, except you barely have to write any code.

I wanted to get about half the map filled in on the first day, and finish it on the second, but was behind schedule for most of the time.

30 hours in (map still barely started):

map-30h.png

35 hours in:

map-35h.png

Would have been cool if I'd done regular PNG exports from Tiled so I could do a timelapse of the map filling in. Oh well, it's an idea for next LD if I do this kind of map again.

You got mail!

gotmail.png

Seems legitimate, I think you should click on the attachment...

What you see is a sneak peak of an upcoming post jam update to our game with various QoL changes and extra functionality to mess around with and solve!

You can play the current Ludum Dare version of Mission: Stop Transmission here! Works on Windows and Web (computers and phones)!

The Hunt for Red April

the-hunt-proto-6.gif

How about taking a few minutes to try to sink the Red April?

https://ldjam.com/events/ludum-dare/59/the-hunt-for-red-april

If you have a game you'd like for me to try, leave a comment and I'll give it a go and rate it as well!

Can you beat my Highscore on Fire Support Survivors?

We created an arcade-like survivor game where the player tries to survive as long as possible in an enemy infested world.

  • Avoid enemies by moving tactically and knowing your surroundings
  • Build your arsenal and unlock new signals by destroying enemies
  • Upgrade existing signals for different play styles: Weaken the enemies with area control signal or aim directly at the enemies with missiles
  • Game gets more difficult the longer you play!

I made it to level 19 today by focusing on Fire Strike and Missile Strike.

Check out Fire Support Survivors and play on Itch.

highscore_survivors.png

How we made assets in New London 3D Turbo 2000

:one: First of all we grabbed an image off of Google Street view (We searched in the streets of London for a cool looking building facade).

:arrow_right: Lets take those cool buildings for example : Street View

firefox_ulewthBIbo2.jpg

:two: Then in Krita we cleaned it up, scaled it down and added a palette effect with our specific color palette

building6.jpg

Perfect !

:three: Now let's go in Blender to make a simple building, the idea here is to simply project our image on a surface

build1.gif

:four: Once this is done, we'll add some 3D depth to our building by simply cutting and moving some parts of the facade

build2.gif

:five: And finally we'll transform our surfacer into a cube ! Here I duplicate my facade and rotate it until it makes a full building!

build3.gif

:tada: And now, here's the building ingame!

firefox_uuxPaJa08j.jpg

:red_car: If you are curious about our game, check it our here New London 3D Turbo 2000

15 random games of LD59#4

Hi all! More games were played, so here is a new video. Enjoy watching!

🎥 Video: https://youtu.be/Ws5lvAST0aU

P.S. If you like any game and wanna try them yourself, I have add links all of them in the video description.

Web player now up!!

After the jam deadline, our team had a pretty busy week with various IRL things, and didn't have a chance to get our itch page fully gussied up.

04.gif

But our game A Short Flight is now available to play in-browser!

02.gif

It's like Tail Spin meets... uh... video games. Fly a seaplane around a beautiful atoll, running errands and cargo for the island residents.

03.gif

And use your rewards to upgrade your plane for daring maneuvers!

01.gif

🌴🛩️ PLAY & RATE 'A Short Flight' here! 🛩️🌴

Flag Fanatic Post-Jam Update Preview

Banner.png I've been cooking up a post-jam update for Flag Fanatic that'll make it a lot more user friendly as an educational tool while still keeping its challenging core gameplay!

The update will include a new practice mode that shows the semaphore symbol chart while you play, although it will disable score saving. The game will also now show you what the word you got wrong was and loop through its signals for you to reference!

Practice Mode

Practice Mode.png

Word Display

Incorrect Word Display.png I've also made some improvements for 16:10 aspect ratios to make sure the UI works correctly on Steam Deck.

I'm really excited to share the update once the jam's rating period ends!

I'm also taking suggestions for more words to add with the update, so if you have any feel free to leave a comment here or on the game's page!

Traffic Signals & Sirens

71909.png

Check out our game, Traffic - Signals & Sirens

https://ldjam.com/events/ludum-dare/59/traffic

Control traffic signals to get ambulances and police cars to the hospital or police station. Clear any car wrecks to avoid bottlenecks. Manage the chaos and have ambulances and police arrive on time, or get an X. 3 Xs on a vehicle type and it's game over!

We just need 5 more reviews to make it past 20! I'd be happy to review your games too, throw them in this thread!

Trippin' Ballz - A Post Mortem

My 13th Ludum Dare submission is called Trippin’ Ballz and I think it came out much better than expected… considering I didn’t expect too much!

I think “Signals” was a great theme… I always have zero ideas for each theme, but audio signals was something that came to me right away and I wanted to explore that. I also like developing shooters and arcade-like games so I naturally moved in that direction.

I actually started putting something together Friday evening (a rare occurrence). I wanted something that can be “listened to” for audio clues and then shoot them. I eventually decided to use colored cannons to shoot “something”, and decided to use colored balls. Since I previously created a game where balls were bouncing around (The Pongs) I didn’t want to repeat that game mechanic, but reluctantly I decided to go for it.

It seemed like most of the features were added ad-hoc, and very late into development:

Originally, you selected which cannon you wanted to use, and I changed it to automatically select the cannon when you hovered over a Ballz to reveal its color, and kept that mechanic going for most of the development weekend. About 2 hours before submittal, I determined that it was better the first way, and changed it back to allow you to select the cannon before listening for audio clues. After all, auto-selection of the cannon defeats the purpose of listening for specific tones the Ballz broadcast. If felt I needed something more, and decided on a Power-up. But what to use? How about a Magic Mushroom? I coded it where the Magic Mushroom only worked when you hit a Ballz with the color of the active cannon, but it works so much better when you can just use it without hitting a Ballz. I am glad I made that change, but unfortunately, it was about 1 hour before it was time to submit. Luckily that change wasn’t hard to implement. Late Sunday, I had a working game, but I didn’t know how to end the game. Just blasting Ballz is fun, but how do you win or lose? Let’s add an asteroid to protect. Why not? During the weekend, I was trying to come up with a name and decided on Trippin’ Ballz (child-like humor, for sure). Well, now that the name has been decided, I got to add some trippy features.

Without the time to develop shaders (my shader skill is passable at best) I simulated some screen shakes when you pick up the mushroom and use the mushroom power-up. Some on screen text, trippy background effects, chiptune, and Ballz expressions fill out the effects.

What Went Well

  • The theme was very good. Usually, it’s tough for me to get an idea I am happy with, but this time it was a pretty easy process.
  • Godot made this so easy! I’ve been using Godot for about 2 years now (former Unity developer), and I just love working with this game engine.
  • Playing the game gave me additional ideas to add effects and sounds, albeit at the last minute. Changing the game mechanics at the last minute was stressful, but successful.

What Didn’t Go So Well

  • Man, changing game mechanics during the last few hours is stressful! Luckily it worked out. I was contemplating just leaving some things as-is. Glad I went for it.
  • Some reviews indicate that you can shoot the Ballz without really listening for tones. This is true (somewhat). I know that many LD players check out a game for a few minutes at max, and then move on, so I decided to have the player jump right in without the length build-up. You do have to listen for tones at some point (to maximize power-ups, for example), but this will be addressed in a future (perhaps full release) version.
  • I guess a Macintosh build isn’t going to be as easy as it used to be. Gatekeeper was choking on it so I had to remove it. Luckily a Web build was much easier.

What’s Next?

As with every LD game I submit, I’m thinking that I want to expand this into a full release. I guess it depends on my final rating to see if it is worth it. I like it, I like shooters, and I have some additional ideas that I want to implement.

I am curious if there is anything you would like to add/remove/change.

I1.jpg

Is my game too hard?

Gif4-ezgif.com-video-to-gif-converter.gif

Hello everyone, I’ve received a good amount of positive feedback since the release of my game, and something that people mentioned frequently is that they played multiple times and still weren’t able to receive the good ending (my game has multiple endings). Even I was only able to get the good ending once, even though the rules for getting it are very fair.

My question is: is that okay? The game is short and the genre (Papers Please) calls for multiple playthroughs to figure things out. Or is it better to adapt to the median player and shift the balance in favor of making the good ending easier to get?

Department of Safe Communication

Playing your games on Twitch.tv !

Hello hello, me and a friend are streaming Ludum Dare games now! Wowie.

So if you have a game you want us to check out and get some live feedback! Especially if you have a multiplayer game :3

Join Here

https://www.twitch.tv/poweranze

niremaussenweser/emroteremsand/emgesamtemmit/emmeeremAndreas/emGraefem1/em765x715.jpg

Little process pics from our game

My friend flew over to visit me for ld59 and we spent the weekend making this. We thought it would be super cool to use physical art in the game, so he brought colors and painted all the art in watercolor 👨‍🎨 Here's some pics of what we had saturday morning through to monday evening. Was super satisfying to add the art to the game at the end, hope you enjoy trying it too!

| ld1.png | ld2.png | |:---:|:---:| | ld3.png | ld4.png |

A cartoonist’s first Game Jam!!

Hiii everyone!

I’m Kroko :crocodile: The 2d artist and additional writer on Cadence of Glob!

Thank you to everyone who have played our game,
and a BIG thank you to everyone rating and leaving comments!
I’m reading every comment, and I’m taking in all of the love and feedback.

A lot of the comments are mentioning the art style and the characters,
so as a thank you I wanna show you guys a little more of our silly little characters!

I wanna start with a fun fact about their names!

Minerva is named after the Roman goddess of intelligence,
which explains her ~~way too many~~ correct amount of fun facts

Yuri got his name from Yuri Gagarin, the first ~~astronaut~~ cosmonaut in space!
Our Yuri is taking the name’s legacy further by becoming the first human
to interact with extraterrestrial life

Ricky… Ricky just looks like a Ricky…

IMG_2307.png

An emotional roller coaster

Our little scientists goes through a few emotions throughout the story, and here is a close up of all of them!

IMG_2297.png

IMG_2296.png

They are also quite the yappers…

IMG_2299.gif

Even when they are faced with humanity’s biggest discovery…

IMG_2298.gif

And our mysterious and dreamy hunks in blue

IMG_2295.png

Here is my messy sketching process!

Characters-ezgif.com-optimize.gif

And what the sweet little scientists almost looked like…

IMG_2306.png

This has been my first time om Ludum Dare, and my first time on any game jam ever!

I am actually just a lucky cartoonist and tattoo artist who got to make a silly game
with my partner, Ørjan. An incredibly talented programmer and game dev!!

Thank you to Dan for the juicy music and to Rachel for super cute 3d modeling

It has been amazingly fun to make a game, and to play all of yours! I am baffled by all of the great games you have made in only 72 hours!!

Here is the link to Cadence of Glob:

Cadence of Glob

Btw… has anyone bounced the ball… 200 times… yet?

Future for the game.

Hello everyone! The game's development continues. All future versions will be available on Itch.io. By the way, I switched from Windows to macOS, so I had to reinstall all my programs, but I'm very happy. In fact, I'm noticing excellent performance compared to my old PC, which didn't even support Vulkan.Screenshot 2026-04-25 alle 18.47.56 (2).png My Ludum Dare Page

Itch.io Page

Low-poly modeling and how it was used in Drum'n'Ice.

Greetings, fellow Ludumdearers!

It is I, the Spirit of Groove! Coughs Or, the voice of the spirit, to be precise. xD Name's VenomousMouse and it's nice to meet you all here. This is my, and my teams, first time on Ludum Dare and we are glad to be here with you. I'm the 3d artist of my team and today i want to talk to you about our process of making low poly assets. For 3d artists that work in the industry it can be not a big thing to read about, but for those who just start as 3d artist, or 2d artists that want to master 3d, it can be interesting.

As for me, i'm working as 3d artist for 5 years. Worked on different projects, and had a chance even to work as a tutor. So, let's start! The main thing in creating low poly assets is to not overdo it.

When doing low poly asset, always check the silhouette. 2d artists also know how important silhouette is, and same goes for 3d medium. If your model from a far looks readable and recognisable, than you are doing it right. All edges that do not benefit silhouette and overall form can be discarded. And do not be afraid of making a tris. If you see a polygon with a strange shading, cut it in half and see how it looks.

Next step is adding detail to your low poly model. And for that part, again, silhouette is your best friend. If those details benefit overall shape and readability, than it's good. If not, better to discard them.

And last, but not the least, is how to add those details. Lat's imagine that you have a cylinder and you want to make a mug out of it. You want to attach the handle and you start to cut, or do boolean and so you will need extra edges to hold it together, etc. That's one way. Or you can just take a donut, cut it in half and move the over half to the cylinder, so it looks like a handle. And voila! If it reads as a mug form a far, then its a mug. Just don't forget to unite the cylinder and the donut.

That will be it for today! I was glad to meet you all, hope my post was interesting for you. And I will see you again!

3D tu-tu.jpg

P.S. We would like to play your games, so feel free to drop links in comments. Also, if you want to check our game, here is our link:

https://ldjam.com/events/ludum-dare/59/drumnice

Signal Automation Now Working

Unfortunately my jam entry was missing this central feature from its design since I spent too long struggling with the track editor and getting the trains to actually follow them properly.

I have now added it and a bunch more improvements to a post jam version available here automation.png It also has a fancy town generation system to import and export goods rather than the nasty last minute hack in the original, and a bunch more GUI elements to show supply, demand and inventories.

I realise the signal colours I used are actually for the reverse side. Real semaphore train signals are directional. I quite like it like it is though as it makes the game more of a puzzle.

There is still much more to do to turn it into a decent game, but this is what I had hoped to submit to the jam.
Have fun making ridiculously complicated railway networks!

The Cutting Room Floor ~

One of the things that we are excited to hear, is how much players are liking the art and music in our game!

So we thought it would be a good time to share more of it with you! (Also, while we're at it, props to @Camjo for the tracks/SFX on the Jam Build!)

There were actually a good number of things made that were either wip or left on the cutting room floor last minute, for the sake of making the Jam in time, including, but not limited to:

  • 1 other easy mode song (by our other musician @Yukon)
  • 1 medium mode song (also @Yukon)
  • and 2 hard mode songs (by @CamjoZ and @Yukon, respectively)

...all completed, but not able to be implemented in time for the Jam Build.

There were also backgrounds and assets that were made that were not implemented in time, that we will be adding in an updated build post-jam, such as:

emGame/emTrees.png

These lovely trees, by our artist/animator @Gropthor, who did the final tie-downs for the train and also made the signs and clouds.

We also have:

  • Already animated backgrounds for the missing four songs,
  • Passengers you would pick up on certain notes or obstacles that you would successfully avoid on other notes.
  • And quite a few other ideas (particularly unlockable secrets) that also had to be put aside for the sake of hitting the deadline.

We are more than excited to add those things in, and excited as well that people are enjoying our game (and also noting things to update in a post-jam checklist!)

We'll continue to share more process/dev notes in future posts, but more than anything we wanted to say - thank you for playing our game, and stay tuned for more updates!

Post LD59 Jam Update: Improved Visuals & Audio

Icon 2 update.jpg

Signal Path — Post-Jam Update

This update focuses on presentation rather than gameplay.

What’s new

  • Improved visual effects

  • Added background music and sound effects

The core gameplay remains exactly the same.

No new mechanics or levels were added - this update is purely about improving how the game looks and feels.

What’s next

We’re currently thinking about:

  • Creating an interactive tutorial

  • Improving the movement input system

  • Adding a movement preview

You can play the improved version here: https://caelestial.itch.io/signal-path

or visit our entry on Ludum Dare's site:

https://ldjam.com/events/ludum-dare/59/signal-path

Thank you all for playing and sharing your feedback, it really helps <3!

This one is really massive...

GameLogoLongBigger.png CoolGif_Compressed.gif

You can smash hordes of zombies here:point_right:: https://ldjam.com/events/ludum-dare/59/bash-and-gash

Many signals have already reached the Earth

AND WE OWE IT TO YOU! 💓

We didn't expect so many comments and ratings for our first game jam. 🤗

We're really excited to play your games, so feel free to leave links to them in the comments! ⬇

post-cover.png

And if you haven't sent a signal to the Earth🌍 yet, head over to this link 🚀: https://ldjam.com/events/ludum-dare/59/last-frequency

Keep the Signal Alive — STAY ON AIR!

Ready to keep a fragile signal alive in a collapsing network? In STAY ON AIR, you take control of a complex system of interconnected nodes, towers, and transmitters. 📡

⚙️ Stabilize the signal, route it through the network, and keep every transmission alive before everything falls apart. Each node behaves differently, forcing you to constantly adapt your strategy.

⚠️ Tension builds as the system grows unstable — adjust power, frequency, noise, and phase to maintain balance… or lose the broadcast entirely. Can you keep the network running until the end?


📡 Features:

  • Signal-based gameplay across interconnected nodes
  • Dynamic systems that react to your decisions
  • Increasing complexity across 3 unique maps
  • High-pressure gameplay where small mistakes have big consequences

Join the broadcast and see how long you can stay on air. 🔊

imagenem2026-04-25/em201431479.png

👉 Play it here: STAY ON AIR

V for Vision

IMG_9023.PNG

Good afternoon! This is my first time on this website, and I wanted to share a bit about what we’ve been working on.

In the city where I live, they hosted an in-person game jam. To everyone’s surprise, they chose the same theme as Ludum Dare 59, giving us the chance to participate in two jams at once. (it’s been held several times before, but this was the first time doing this)

I was the game designer in a randomly assigned team of eight. Our group was made up of four artists, one musician, two programmers, and me. The theme was revealed at 2 AM on Saturday in our time zone, so we all met at the venue at 8:30 am to brainstorm over breakfast and narrow down the concept for our game.

Captura de pantalla 2026-04-25 192901.png

In the end, we went for a board game that blends elements of a visual novel and classic RPG, with both 3D and 2D art, and situations where you have to make choices each with its own consequences. These decisions ultimately determine whether or not you can win the final battle. One of the core mechanics and the one that is based on the jam's theme is using echolocation to navigate across the board and uncover hidden objects. We would have loved to expand on it or give it a bigger role, but in the end, time was tight.

echo.png

The story follows V the vampire, who loses his sight after someone replaces his eye drops with holy water. While he’s recovering from the burns in his coffin, a group of vampire hunters invades his castle to finish him off (tipped off by the same person who swapped his drops). V must awaken from his restorative slumber and stop those who are trying to destroy him. But there’s another problem: he’s been asleep for so long that even the people living in the castle no longer remember him.

This is just a sneak peek of the narrative, which mixes a dark, eerie atmosphere with touches of humor and satire.

IMG_9018(1).JPG

Development ran from Saturday morning until 3:00 PM on Sunday for irl jam. We were a bit disappointed we didn’t have time to include some of the art and sound we created during the event, so we decided to spend a couple more hours polishing and adding that content for Ludum Dare 59.

In the end, we won 1st place 🙂 for Best Game (out of 11 teams), as well as the award for Best Art Direction. We’re obviously really happy with the result especially since for six out of the eight of us, it was our first jam ever. We had an amazing time (even if it was pretty stressful), and we’ll definitely be joining future editions.

That’s everything I wanted to share. I’m not sure if I did the right thing turning this into more of a blog-style post instead of focusing only on the game, but I figured it might help reach more people and hopefully get some feedback whether it’s what you liked or didn’t like about the game.

And of course, we believe and support artists, so no form of generative AI was used in the creation of this game.

Thanks a lot for reading, and a big hug to everyone! <3

If you’d like to try it, you can download it on Itch.io: https://angelosz.itch.io/v-de-vision And feel free to leave us a comment here: https://ldjam.com/events/ludum-dare/59/v-de-vision

Sin título.png

Minor visual changes

Screenshot_31.png

Movie_005-ezgif.com-optimize (1).gif

Movie_005-ezgif.com-optimize (2).gif

Would be glad if you play it if you like it https://ldjam.com/events/ludum-dare/59/beacon-bound

Custom engine is a pain in the ass

Hey everyone!

This was my first game jam, and also the first game I made using my own game engine, ve. I spent a ton of time developing the engine - about eight months. One of the reasons I built it was pure curiosity. Graphics rendering has always felt like a mysterious and obscure thing to me. Writing the engine helped me break open the black box and finally understand how everything works behind the scenes. Once I finished the engine, I wanted to test it with a real project. That's when Ludum Dare came along just in time. I had heard a lot about the game jam before, so I signed up without hesitation. A week before the jam started, I only had a renderer and input handling, but no music. Without thinking too much about it, I decided to use miniaudio for audio loading and playback. I also added some cool visual effects like dithering, and borrowed some math functions from Raylib.

vulkanemodin/emve.png

To make myself even happier, I decided to develop the game on Arch Linux. Unfortunately, this approach led to a bunch of bugs in Windows. One of them was related to physics. As we all know, you should always use a fixed time delta for physics calculations. However, this time, due to haste and carelessness, I completely ignored this golden rule. In Linux, everything worked fine - moving or resizing windows did not pause the game. However, on my beloved Windows, the opposite happened: any interaction with the window paused the game, causing the time delta to spike and, in an instant, sending objects flying into space with massive force. I did not manage to fix this bug before the deadline because it appeared late, and I simply ran out of time.

As a result, my team and I ended up with a difficult game about microwaves, complete with an eerie atmosphere. We even published recipes.

Either way, it was a really interesting experience. I'll keep working on the engine. If you've played Crude Food and it didn't run on your machine, I'd be super grateful if you could send me the console logs and your GPU information at areg.krdian@gmail.com.

Finally something finished after ages

https://youtu.be/D2rSloUYIVk?si=9Rhdtt9gvC7QiEgl

Too bad we couldn't make it for the jam, but the effort was worth and fun though.

We came up with a simple but engaging idea (the original idea was way broader but we decided to cut it off if we ever aimed to have something deliverable). Basically in this game your mission is to keep a network of interstellar satellites online by aligning signal frequencies while you watch out for potential alien network attacks.

Game idea brought by @samuelsam

More info here: https://ldjam.com/events/ludum-dare/59/ld-59

RATING MORE GAMES LIVE (DAY 2)

IF YOU COMMENT WE WILL PLAY YOUR GAME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! https://www.youtube.com/watch?v=PaOLipDfFu8

Been a busy week

Haven't got round to playing much yet - am gonna speed run a bunch this next week.

Did a quick recap of last weekend. Think this is the first time I've managed to avoid circling the drain of indecision and regret trying to work in vastly over-complicated mechanics into a game and failing to deliver the 'game' element. :smile:

Play GigaHurtz here ( Web )

Use down arrow to carry the satellite dish around. Level 2 is easier than it looks, drop the satellite on the conveyor and run left - you'll make it through :thinking:

https://ldjam.com/events/ludum-dare/59/gigahurtz

Video Recap :

https://www.youtube.com/watch?v=4zlgM2-NRAw

Chill audiovisual flavors for your enjoyment

Grapple your way through the jungle by listening to its sounds.

  • Find fireflies by listening for the hum-like audio signal they produce.
  • Fireflies will show you how to progress.
  • Use your grappling device to move through the jungle
  • Reach the exit portal to advance to the next area.

2026-04-2413-43-04-ezgif.com-optimize.gif

2026-04-2413-40-30-ezgif.com-optimize.gif

Play Canopy

If this sounds like your vibe, please give it a try!
I hope you enjoy. Please drop a link to your game in the comments and I'll be sure to give them a playthrough too!

SFX Tips and Tricks

Hello everyone, Jungledorf here.

As the dedicated "sound guy" for our LD team, I figured ill share some tips and tricks for recording/producing sound effects, without bogging you down with the "nitty gritty" technical details.

1. You don't need a fancy microphone or gear

All the (non-synthized) sounds in our entry this year were recorded straight from my phone. All of the edits I made were done in FL studio, but that's only because I forgot to install Audacity on this PC (oops).

2. Record more than you need

Preferably way more. Need to record a door closing? Record yourself closing a door 10 times, you'll thank yourself later.

On top of giving you a lot of options to choose from, it also gives you the ability to have multiple samples of that sound effect in the game. "Footstep.ogg" might sound great, but if the player is hearing the exact same sample every 2 seconds, its going to get grating after a bit. You don't need to make a million different footstep sounds, but having 3-4 different samples play at random is going to make the player less likely to feel like they're hearing things over and over again.

3. LAYERING

all caps, because it's probably the best tip I've got. Say you've got a sound effect that's a metallic clank. You can add a lot of character to that sound effect by simply mixing something else in. Stack multiple different takes (another reason tip #2 is helpful) together and mix/pan them around, mix in a completely different sound effect (i.e. A stomp, or a metallic groan), or even take the exact same sample, and add effects onto it and mix it in to the original. Layering is what turns "guy kicking a trash can" into "robot landing on the ground".

4. The curse of knowing

Speaking of "guy kicking a trash can", you would be surprised what you can get away with. Remember, the player has no idea what you recorded, you do. What sounds like "obviously someone biting into a Pringle", becomes "a robot freezing" when presented to a player that just watched his robot walk into a block of ice. Especially with a little bit of editing. Don't immediately write off a sound effect for being "obviously wrong", until you put it into context.

5. Mind your transients

Or in English, your sound should start when it starts, and end when it ends. Sounds simple enough, but in the sleep deprived haze that is Ludum Dare, sometimes it's less obvious than it seems. If you have a "thunk" sound effect, you want the "thunk" to occur at the very beginning of the sample. A little bit of lead up to the sound can make things feel unresponsive.

On that note, "silence" is rarely silent. A tiny bit of background noise in the sample can feel like "silence" in your audio editing software, but it can become obvious when it suddenly "cuts out" at the end of the sample in-game. The old Minecraft PE "Ooh" damage noise is a great example of this:

https://www.youtube.com/watch?v=b6KlyBV2lOI

For this reason, I usually add a little fade-out to most of the samples, even if I'm only fading out "silence".

sfx.png

6. Putting it all together

One last tip, mind your mixing. Again, obvious, but LD is the perfect storm to "burn out" your ears. Even following best practices, it's hard to make every single sound effect a consistent/appropriate volume for your game. Personally I suggest setting the volume of the samples inside the actual game engine/IDE itself (Most will have some way to do this, but I guess YMMV if you're one of those masochists doing LD in pure OpenGL and C or something). If time allows, give yourself a rest from working on the audio, and THEN do an actual in-game mix. Psychoacoustics are a pain in the neck, and you'll likely find that something is way to loud or quiet, even though it sounded perfect an hour ago.

Those are my 2 cents, feel free to ask me any questions in the comments, and I'll try to get back to you at some point with an answer.

And if you enjoyed this, found it helpful, or want to play a platformer where you control a robot using the most scuffed control scheme we could muster, give our game, Do-roidhicky a spin!

(assuming the embed works, otherwise, click the profile :) )

TellyBuddy ALL FMVs!

https://www.youtube.com/watch?v=_2vq-mHqdHc

For years the boys and I have been wanting to make an FMV game for Ludum Dare, but the stars never aligned, and we could never manifest a properly-scoped idea that would ALLOW for us to dedicate nearly an entire day to filming.

This jam, that all changed. :sunglasses:

We were able to film OVER FIVE MINUTES of FMV footage (over the course of approximately 8 hours...) and put it into our quirky little puzzle game TellyBuddy

To preserve our efforts, we've put together a compilation of all the videos in the game (MAJOR spoilers inside)!

Which one is your favorite? :wink:

If you're confused, consider playing TellyBuddy for yourself! We promise it'll all make at least 10% more sense once you know the context. :smirk:

Linux version is available!!!

Many folks have been asking for linux version, after some time fighting with unreal, its finally done and available to play! LinuxUpdate.png

We put our game on our website!

social-media.png

Our game Combo Cooker is up on our official website!

(Don't forget to rate in on the LD page if you check it out!)

https://wobbleblocks.com/combocooker/combocooker

Making a web game engine when time is measured in hours

For LD59, I knew we were going to make a web game. I don't like frameworks and engines, so I knew I'd be making it from scratch. So once we settled on our game idea Saturday morning, I put an HTML5 canvas on the easel, installed a Typescript compiler and got to work.

Our game was going to be just a matter of clicking on buttons to navigate between screens. Mouse-only input. It could probably have been as a regular HTML page, no canvas, but I anticipated some basic animation which seemed like it would be at least equally annoying to code in CSS. So I opted for the direct control of a canvas.

The asset loader

I knew from experience that the easiest way to get images into your canvas game is by embedding them into the HTML page as <img /> tags, and then drawing them with drawImage(). The problem is, those img tags need to be finished loading by the time the call to drawImage() happens. So you always need some kind of "loader" code to wait for them to load before you actually run anything.

What we want is a little object called, say, the image manager that we can tell about all the images in the game. It'll keep track of which ones are loaded, and only let the game start once they're all ready. Usage will look something like this:

typescript const images = new ImageManager(); for (let image of document.querySelectorAll("img")) { images.add(image as HTMLImageElement); } images.onComplete = startTheGame; // set a callback images.finish(); // that's all the images!

The logic needed in the class is pretty obvious, and mine looks like this:

```typescript class ImageManager { nLoading : number = 0; complete : boolean = false; onComplete : Function;

add(image : HTMLImageElement)
{
    this[image.id] = image;

    if (image.complete)
    {
        return;
    }

    this.nLoading += 1;

    image.addEventListener("load", this.onLoad.bind(this));
}

finish()
{
    if (this.nLoading == 0)
    {
        this.complete = true;
        this.onComplete();
    }
}

onLoad()
{
    this.nLoading -= 1;

    if (this.nLoading == 0)
    {
        this.complete = true;
        this.onComplete();
    }
}

} ```

The one extra little flourish in there is the line

typescript this[image.id] = image;

This just provides a convenient way for me to get at my assets in the game code. All I have to do is give my image tags an ID, like <img id="princess" src="princess.png" />, and I can get them from code via images["princess"].

Dimensions and coordinates

One thing you gotta know about HTML canvases is that they have two sets of dimensions. They have the dimensions of the actual HTML element, and then they have the resolution of the canvas itself. The latter is set using the width and height properties on the canvas. So for example:

html <style> canvas { width: 800px; height: 600px; } </style> <canvas width="100" height="100"></canvas>

If I draw a 100x100 test image on this canvas, it won't sit in the top left corner of an 800x600 canvas, as you might expect. It will fill the 100x100 canvas that you've requested in HTML, and CSS will then scale that to 800x600.

To avoid this, you need some code like this, to make the resolution of the canvas match its true on screen dimensions at all times:

```typescript function onResize() { canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; }

addEventListener("resize", onResize); ```

The game is going to be 16x9 aspect ratio. So if the user resizes the window, the canvas needs to scale to be the largest 16x9 box it can within that window. Probably the simplest way to do this by far is just to use CSS, I did something much, much more complicated. I told CSS to make the canvas fill the screen, and then computed the largest 16x9 box I could within that. So now my onResize looks like this:

```typescript function onResize() { canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight;

let widthRatio = canvas.width / 1920;
let heightRatio = canvas.height / 1080;
let ratio = Math.min(1, widthRatio, heightRatio);

width = Math.floor(ratio * 1920);
height = Math.floor(ratio * 1080);

x0 = (canvas.width - width) / 2;
y0 = (canvas.height - height) / 2;

} ```

This code is setting the global variables x0, y0, width, height which define a little box within the canvas that the actual graphics code will draw into. I think I did this because I imagined I might want to draw a border around the game if there was extra room, sort of like what the Super Gameboy used to do. But it adds a bunch of complexity. Not really worth it.

The simplest thing for a short game jam is to set up your code so that your actual graphics and gameplay code can simply assume that the drawing area starts at (0, 0) and is always exactly 1920 by 1080 pixels. So if you want to draw something at, say, the middle bottom of the screen, you can just hard code the coordinates 1920 / 2 and 1080. To make this possible, you need a piece of code responsible for resizing the canvas, like above, and then a layer wrapping the drawing API that basically converts the gameplay code's "virtual coordinates" into physical coordinates.

The "engine"

Now we need to get our event loop set up, kind of like if we were making a Raylib or SDL game. So the top level code of our game looks like this:

```typescript function onResize() { // same as before }

function onMouse(event : MouseEvent) { let mouse = {}; mouse.clicked = false; if (event !== undefined) { if (event.type == "mousemove") { let canvasX = event.clientX; let canvasY = event.clientY; mouse.x = (canvasX - x0) * (1920 / width); // convert physical coordinates into "virtual" coordinates for the gameplay code mouse.y = (canvasY - y0) * (1080 / height); }

    if (event.type == "click")
    {
        mouse.clicked = true;
    }
}

gameSpecificOnMouse(mouse);

}

function render() { gameSpecificRender(); }

let x0, y0, width, height : number; // globals to store canvas dimensions

addEventListener("resize", onResize); addEventListener("mousemove", onMouse); addEventListener("click", onMouse); setInterval(render, 1000 / 60); ```

Substructure: individual screens

Since the game involves moving between several different individual "screens", it's nice to be able able to code each screen with its own, separate render and mouse event handler functions. So we introduce some types to represent this:

``` enum ScreenType { LETTERSCREEN, PERSONSCREEN, DEATHSCREEN, FAILURESCREEN, VICTORYSCREEN, TITLESCREEN, TUTORIAL_SCREEN }

interface Screen { enter() : void onMouseEvent(event : Mouse) : ScreenType | null render(context : CanvasRenderingContext2D, x, y, w, h : number) : ScreenType | null } ```

The purpose of the enter() function is that it'll get called when we first enter the screen. After that, render() will get called once per frame. Notice that the screen's onMouseEvent and render functions return a ScreenType enum. This lets the gameplay logic in those functions decide whether or not it's time to go to a different screen, and report that back to the top-level engine code:

```typescript // in the top level render function

let nextScreen = screen.render(artist, x0, y0, width, height);

if (nextScreen != null) { switch (nextScreen) { case ScreenType.LETTER_SCREEN: screen = letterScreen; break;

    case ScreenType.PERSON_SCREEN:
        screen = personScreen;
        break;

    // etc
}

screen.enter()

} ```

And that's basically it!

Common Pitfalls and How to Avoid Them

Hey folks!

I'm working on a presentation about game jams.

What they are, where you can find them, what do you need to participate, what are some common pitfalls to avoid and what is something I wish I knew from the start.

Is there something you feel like it is definitely worth mentioning for new folks?

A strategy game about detecting bluffs

A poker game where emotions matter more than cards. Watch your opponents’ behavior, catch the signals of their bluffs, and use them to win.

+свет.gif

This game takes about 5 minutes to complete and has a definitive ending.

I’d really appreciate it if those who have already played the game, as well as those who are planning to try it, could leave a rating on itch.

https://ldjam.com/events/ludum-dare/59/poker-face

https://t4ran.itch.io/poker-face

A convenient and simple static content management system for Unity projects

In the Defend The Radar game, I used several plugins for unity. And today I want to share one of them. Perhaps you will use it or do something of your own))

AssetsPlugin is designed to manage static game content.

*The main feature: use the key to get data that relates to a specific object. *

For example, the key is "hero", the data is "prefab", "sounds", "visual effects prefabs", "health", "speed" and more.

You can also store information about improvements, skills, or even the scripts themselves.

But keep in mind! That all this is used only for immutable data! (Not for Runtime)

An example of how to spawn an enemy

```csharp // Spawn Enemy var prefab = assetsService.Get(GameAsset.Enemy).As().prefab;

   Instantiate(prefab, Vector3.zero, Quaternion.identity);

```

More details on GitHub

An example can be found in the sources of Defend The Radar.

I will post other plugins later.

Hack my Signal

👇 I’ve fixed all the major bugs, so please check out the game if you have a moment!

👉 https://ldj.am/$425642

Gif.gif

Updated Cover & Thank You!

Decided to replace the cover with something a bit less boring and directly from the game. I always feel weird doing any changes, even 'outside' the game, but it seems like cover is fair game? I'm not sure, how do people feel about that?

demoemcover/emldjam2.png

A big thank you to those that have rated my game! I'm only just getting around to returning the favor properly! (Also isn't it strange how having an image first in a post makes it off center?)

We need more Agents for our mission!

ezgif.com-video-to-gif-converter.gif

🕵️ ACEspionage Playtest Update

Agents,

HQ has received your playtest data!!

First of all: thank you.

Your mission was dangerous, highly classified, and only slightly ridiculous:

Protect your signal from an enemy hacker trying to breach your connection and access the most valuable digital archive known to humankind…

Your homework folder.

We know. Terrifying.

During the ACEspionage playtest, you bravely entered the field with only:

  • 7 cards
  • 3 slots
  • And the kind of confidence usually seen right before someone places a defense card in exactly the wrong position

You Surveilled.
You Hid.
You Interfered.
You right-clicked with purpose.
You left-clicked with mild confusion, but eventually… also with purpose.

And most importantly:

You helped us gather valuable intel.

Thanks to your playtesting, we learned what was missing, where we should apply some super-secret powerful polish, and what we definitely shouldn’t change.


What Your Feedback Helped Improve

Sound Effects

We added additional sound effects to strengthen the overall old-school PC vibe.

UI Animation

We added a proper resolve state for the UI.

It already existed in the background, but you know…

Time.

We also added:

  • Card draw animations
  • Resolve animations
  • Additional visual feedback
  • More satisfying UI polish

ezgif.com-video-to-gif-converter (6).gif

ezgif.com-video-to-gif-converter (4).gif

Minor Bug Fixes

We fixed several smaller issues, including:

  • Card slots being removable at times when they should not be
  • Card modifiers resolving incorrectly
  • Other suspicious bugs that have now been safely contained

Clarity and Controls

You can now click cards with both:

  • Left mouse button
  • Right mouse button

Because every agent deserves options.


Awaiting New Mission Reports

We are eagerly waiting for your new mission reports so we can analyze the playtest footage and feed all suspicious bugs into a secure containment server named:

Definitely_Not_Homework.zip

To everyone who played:

Thank you for helping us test ACEspionage.

You protected the signal.
You defended your extremely important homework data.
You helped make the mission better.

Your service has been noted in the official agency records.

Unfortunately, those records were saved in the homework folder.

Sooooooooooooooooo, uuuh....

Please stand by.


End Transmission.

👉 PLAY HERE!

We updated the game!

We pushed a more polished version of our game, if you're curious about it (or if you didn't try it yet :eyes:), it's available here:

https://ldjam.com/events/ludum-dare/59/we-come-in-peace

Jam version is still available too!

4.PNG

RAVTZN - The Techy Stuff

We're a week into the rating period, so it's time for my customary deep dive into my game RAVTZN, and how I was able to develop it. First of all, I'd like to say a massive "thank you" to everyone who's played and rated the game so far! I will, as always, get round to rating and reviewing the games of everyone who leaves feedback on it.


Decryption

I expected RAVTZN's decryption algorithms to be much harder to implement than they actually were. Well, two of them, anyway. I had to take an Affine decryption method I found online and translate it from Python into Lua because trying to figure it out by myself made my eyes glaze over.

The game stores both the encrypted and unencrypted versions of each signal. Each time you make a change to your selected decryption, the game selects the relevant algorithm, applies the relevant decryption logic to each letter of the cipher text in turn, and combines the outputs into a single "output" string. Finally, the game compares the output string to the unencrypted string and, if they're the same, marks the signal as having been decrypted.

I won't paste all three decryption algorithms here, but to give you an idea, here's the entire code for the Caesar cipher decryption algorithm:

``` function try_caesar() output="" local c=ciphers[cipher][2]

for i=1,#c do local char=string.byte(c,i)

if char>=65 and char<=90 then local newChar=char-rot

if newChar<65 then newChar=newChar+26 end

output=output..string.char(newChar) else output=output..string.char(char) end end

if output==ciphers[cipher][1] then --mark signal as decrypted end end ```

Speech

The game displays dialogue in a similar manner to my LD54 entry, Six Seats Left: one letter at a time, with a static sound effect played as each letter appears to sound like radio static. The sound effect is randomly pitch-shifted a little each time it's played, to better approximate speech, and isn't played if the character being displayed is a space, to approximate short gaps between words. The delay until the next character appears also increases if the previous character was a full stop, approximating a longer gap between sentences.

video248.gif

Visualizer

I've always wanted to try programming some sort of waveform visualizer, and RAVTZN gave me the perfect excuse to finally do so. Of course, RAVTZN's visualizer isn't actually "visualizing" anything - it's just an approximation.

I start with an array of hardcoded values between 1 and 15, indicating how tall each segment should be. On each frame, I loop over each segment and generate another number between 1 and 15, calculate the difference, and move the segment up or down by a fraction of that difference. The result is that the waveform jitters up and down in what is, hopefully, a convincing imitation of an actual visualizer.

video249.gif

Originally this was only going to be visible during dialogue scenes, but I liked the result enough (and thought the UI looked too bare without it) that I made it a permanent part of the background.


And that's everything I can think of to talk about! If you've made it this far, I hope you enjoyed this peek under the hood of RAVTZN's code, and I wish you good luck when the jam results come in!

Signal Girl just dropped for Ludum Dare 59!

Снимок экрана 2026-04-21 014908.png Nighttime. Tiny bikini. Green-haired beauty answering every SIGNAL. Clients call — you run. “Play” with eggs, peel bananas, grow mushrooms... all while trying not to get photographed by nosy neighbors. Earn $1000, buy the iPhone, don’t get exposed. Simple, right? Stealth + spice + strong SIGNAL theme. Come play before the whole town finds out what she’s doing after dark~ 🔥 Play Signal Girl now -> https://ldjam.com/events/ludum-dare/59/signal-girl