Ludum Dare 56 October 4–7, 2024

I'll Play Ludum Dare Games On Stream.

I'm back in the saddle playing the games you link in my chat.

at @ColtonPhillips on Twitch https://www.twitch.tv/coltonphillips

If I'm waiting for games to be posted, I'll be just chatting and keeping productive too! AMA about: Rust Development, Software Engineering, Game Dev!

dUntitled.png

The Music of Pom Planet Pt 2

Here’s a 2nd post about how I made the music in Pom Planet!

You can read part one here: ldjam.com/events/ludum-dare/56/pom-planet/$405620

pomplanet_lrg.png

If you haven’t checked it out, Pom Planet is an action puzzle game where you have to guide tiny creatures. (ldjam.com/events/ludum-dare/56/pom-planet)

Having a unique track for all of the elements in the game, I knew I had to have some track for the Poms themselves. However, the Poms are in every level, visible at almost all times, so I had a difficult time deciding what I wanted to do.

Untitled.png

Initially, I wrote a calm percussion track and a fast paced percussion track. The idea was for the calm track to play once all of the tiny creatures were born, and for the fast paced one to play when you completed a stage.

Both of these ideas didn't really work. From the player's perspective, the calm track started playing at an arbitrary time and was invasive on the ambient, cerebral mood. The fast paced track generally only played for a couple seconds before the player moved on to the next level.

Untitled2.png

My conclusion was to remove the calm track from the game. The ambient music could set the mood on its own, I didn't need a track representing the Poms at all times just for the sake of it.

For the fast paced track, I made it play when you scored the first Pom in a level. This infused the levels with a 3 act structure. The music is ambient and scary when the level is unknown and you haven't achieved any success yet. It becomes triumphant when you score your first Pom, and remains that way until finally you complete the stage.

I've hosted ldstats.info fork

Hey folks

Some may remember that a few years ago there was a website called https://ldstats.info (created by @pjnovas) which was pretty nice. Now it's offline but source code is still available. So I hosted a fork of it with version made by @sibi and also applied patch from this pull request by @ajayajayaj not to hardcode jams all the time. I am not promising you I will host it forever but for sure for some quite time :)

Took some time to find all those forks, pull requests and people who made all that nice stuff, but here we are:

https://ldstats.home.yogurtthehor.se

Oh, and a picture to get your attention of course

attention

Streaming our assignments

and any other LD56 games that get stacked on the work pile. https://twitch.tv/funbasealpha ytbanner.png

Show Don Sluggotti who's boss in Deck Derby, a real-time racing card game.

[Mobile Friendly] [No Download] [Global Leaderboards] deckderb.png deckderby.gif

[Play Here]

Come play Deck Derby, a real-time racing card game where you play cards to control your racers and compete for the best leaderboard time! It was our first in-person jam and we had a ton of fun creating this, we learnt a ton about in-person collaboration, and honed our skills in Game-Ai and Ui.

deckderby1.png deckderby2.png

Let us know what you think of this silly little game! :id:

Thanks for playing! https://ldjam.com/events/ludum-dare/56/deck-derby-sluglords-speedway

You've seen Episode 2, now get ready for Episode 1.

The first episode for Lily Adventuresses! is now fully out; and while it has an entirely different cast and story, it has some call-forwards to the second episode, not to mention both being set in the same world. It's an entry to another game jam, Safe in Our World Mental Health Game Dev Champions 2024.

https://dagitabsoft.itch.io/lily-adventuresses-episode-1-she-who-lost-everything-but-her-name

And Episode 2 Prologue is just one vote shy of being fully eligible for scoring (in the Humor category, since I snuck in a few jokes in the game). Play it and vote away.

https://ldjam.com/events/ludum-dare/56/lily-adventuresses-episode-2-rise-of-the-arcritters-prologue

Why player feedback is important. Tiny story of Stolen Colors

On Ludum Dare 56 among others appeared a game called Stolen Colors about tiny creatures that try to return, well, stolen colors from angry predators and make the world colorful once again.

For those who forgor or didn't played yet: in this game, you need to draw runes (similar to the pattern lock screen on smartphones), which summon and upgrade the little creatures that the player helps on their adventure. They fight off waves of enemies and gradually bring colors back to the world by collecting orbs at the end of each level.

фаза подготовки.png фаза боя.png

While most of the players liked the concept, there was a lot of fair critique in its address.

UniOwl here, Stolen Colors' game designer and technical artist. Today I'll tell you, how did we improve our game, why we did some of the decisions, and what we have now.

In-game tutorial

Tutorial often is a big problem not only games that we do with our team, but of a jam games that we see. There's little time for development, and to succeed in gameplay, make a pretty graphics, some of the things must be thrown out, and tutorial is usually got rid of in the first place.

Despite that you can add tutorial on game page, usually players try to play first, and only after that they read everything trying to understand why they can't do anything. And that's very bad, because lack of tutorial and unintuitive gameplay frustrates the player and make its perception of the game worse (remember, no one likes to feel stupid while playing). We handled that, added short hints on how to play the game:

Pasted image 20241014213232.png

Difficulty

The second most mentioned thing was game's difficulty. Its fix is a lot harder as it requires a lot of hard work fine tuning various parameters.

And while it technically completeable (one of our artist made it to the very end!), it is quite a challenge, and most of the players didn't see colorfullness of the world.

Balance

First on our table was balance of the creatures. We understood how to fix that from the very beginning, but as for the tutorial we just didn't have time for that. We remade base characters stats and their progression over time.

Now one enemy is stronger than one ally (after all, predators are bigger and scarier than our tinies), and you have to counter every enemy with two or three allies.

warriors-ezgif.com-optimize.gif Warriors beat tanks

tanks-ezgif.com-optimize.gif Tanks beat mages

mages-ezgif.com-optimize.gif Mages beat warriors

Boss atacks were also changed. I accidentally made a mistake, where bosses had powerful attack that dealed a lot of damage to all allies. And if the player is unlucky, boss could use this attack three times in a row and destroy every possible squad. Now it is fixed.

Pasted image 20241014212423.png Oh hell nah 💀

Fair random

One of the comments lead us to a thought that too much random in runes cast must be reworked as player's success should not depend on luck. While we tried to avoid random in game (this is why you see the same exact enemies every try), it is difficult to do something with runes. So we tried to make it in such a way that if one of the runes don't spawn now, its spawn chance is raised (as described very well here https://www.charliecleveland.com/types-of-randomness-part-2/).

Chance for comeback

As we initially planned, after losing a wave, player is thrown back, which reminds a bit of tug-of-war game. And if enemies managed to capture all the castles or player is defeated in boss battle, level restarts. Instead, in jam version, player get sent to the main menu (uh-oh), and enemy capture raises the error, after what player gets stuck.

All of that were fixed, and now player also has two castles intead of one, which allows him to make a comeback on the beginning.

Feel of progression and available information

In jam version player sees drawing board and field where creatures spawn and fight. That's it! What should he expect from the wave? How much actually he gains from the bonuses?

There were no answers... Till now! Now player sees tinies' current stats and enemies on the following wave. Despite this, game doesn't show all of the info (for example, he doesn't know the strength of the enemies or what to expect from reinforcements).

Pasted image 20241014215748.png

Drawing phase

At first, player is given with some time to draw the runes. There's very big drawback: player's success depends not only his strategic and conscious decisions but on how fast can he draw.

Fun fact: our another, somewhat similar game, Circle of Life, suffers from the same flaw. Why I didn’t fix this issue right away is a mystery to me.

We removed the timer entirely. Now, instead of being rushed, the player is given a set number of drawings they need to complete before each wave.

Narrative and Visuals

Even the narrative got a small but interesting change. The game’s page tells a short story about how evil predators stole all the colors, leaving the world dim black and white. At the end of each of the three levels, the player returns one of the colors to the world.

To better illustrate the conflict between the creatures and the game feel, we decided to make the predators and the boss always colorful. They didn’t just steal the colors — they kept them for themselves, refusing to share with others (how mean of them!). We wanted to implement this idea during the game jam, but modifying the effect for this turned out to be technically challenging (Unity works in quite a peculiar way sometimes). It took a lot of time after the jam, so we probably wouldn’t have been able to finish this feature within the short three days anyway.

Pasted image 20241014220550.png Predators that stole the red color are now always red themselves.

Mages now actually fire their projectiles, as you saw earlier. And we replaced the locks with crosses so that players wouldn’t mistake them with something unlockable. Additionally, we played around with the bonus colors to make them more distinguishable.

Technical Challenges

All this didn’t come without technical difficulties. We were told that in one browser the game wouldn’t launch at all. Also, there were some bugs in the original version (luckily, no one seems to have noticed yet, or at least no one’s mentioned them), and we fixed those.

A lot of time went into refining the effects (and our genuine confusion about why the game behaves differently across platforms), as well as dealing with the jam site, which refused to play the music for some reason.

However, now all those issues are behind us, and you can try out the new version on the jam site or on itch. We’re very happy with the result and hope to delight you with more interesting games in the future! We’d love to hear your thoughts on what we’ve created.

Game on ldjam: https://ldjam.com/events/ludum-dare/56/stolen-colors

Game on itch: https://thespinningsofa.itch.io/stolen-colors

Stuart's Colors

Written by @fooorsh

After a few fun sessions with the jam last week, we’ve felt inspired! My mind keeps going back to the little world we created with our prototype.

We went for a rather distinct and minimalistic style, and I’ve been testing out some alternatives. What do you think?

68cc5.gif

It was very tempting to test a night-time direction as well. It’s cozy for sure, but it might stray too far from the initial style.

68cc6.gif

Play the game online here: Stuart's Perfect Day

Welcome to the story corner...

Hello everyone ! How bout' a little story ? :book: :pen_fountain:

Here is the one of 5 friends whom had the wish to accomplish a tremendous goal ! Facing the fearsome ennemies that are sleepiness, hunger and blank page syndrom, even tho they had strong opponent, they were animated by passion and love for their unique project ! Creating a video game in 3 days... :fearful:

At first, they reunited ! Happy, excited to start that race against time ! Many ideas were given but only one remained... The want to use Isometric 2D !!! A peculiar one, for sure BUT it was theirs. The chief of those little adventurers, Perkaholic The Mighty, the most experienced of them, guided them throught doubt and dread and convinced everyone of that great idea, at his support Chipsy The Sly and Fei The Wicked drew for hours and hours to create the perfect supports ! Capture d'écran 2024-10-15 105628.png

They would themselves create the story of a simple ink stain that was brought to life and decided that the fate it had wasn't the one it had chosen ! An idea created by the clash of minds of our great adventurers, Kyuz The Unhinged gave life to that idea through numerous intervention !

But we were talking of our stain, whom would face thousands of ennemies !

IMGem1766.gif IMG/em1765.gif

Those knights and eyes were the creation of the nasty author that didn't wanted the stain to interfere in their story ! :crossed_swords: Main.png

The Little Stain would then rebel fight over and over again to be freed from that fate !

Ourselves, The creators of that story grew it with love and care, making its real hero stronger and stronger, giving it some friends to fight with ! It had the ability (by absorbing its authors powers) duplicate itself to smack harder ! :scream:

With all of that said, Tarisma The Fool shall let you enjoy the rest of your day, but before you leave me ? How about you come play with our favorite stain ? We, The Five Tiny Adventurers would really enjoy to have some feedbacks on how to improve ! :smile:

In hope that if you try it, you'll like it and try to beat the records that are engraved in our stories :trophy: (That's a leaderboard allegory)

Click here to play Ink Rebels !

First Blog Post

I've been so focused on making my game and then playing others I didn't think to make a blog post. This is my first Ludum Dare and I have to say it's been great! Really cool to see the different interpretations of the theme and see all the community interactions!!

Recording2024-10-07165654-ezgif.com-video-to-gif-converter.gif

Wanna save some slugs ?

logo.png

Slug Sprooch (don't judge a game by its name) is a game were you throw slugs and other animals to the other side of the road, so they can feed!

Try it out if you haven't already!

https://ldjam.com/events/ludum-dare/56/slug-sprooch

cover.png

Waddle Post Jam Version 1.1 Released

Despite the overwhelmingly positive feedback on our duckling guiding puzzle game, we did notice some patterns in the comments about what could be improved. So we went and improved it!

The new version mostly contains various fixes for things we missed when we were frantically trying to hit the deadline (floating rocks, anyone?), but also a much requested mouse based camera movement system and our game designer even snuck in a whole new level.

Haven't played Waddle yet? You can check it out here: https://ldjam.com/events/ludum-dare/56/waddle

Waddle Screenshot.png

They Didn't Stop Cheating!

Well... I didn't want to make this post as I already confronted them in the comments of their game and gave a huge TedTalk on our streams but here I am. Because they didn't stop cheating.

If you are not aware of what has been going on with this game, https://ldjam.com/events/ludum-dare/56/laverino , they have been copy pasting the same messages to everyone's games but not rating them. (and other sussy and shitty things other devs complained)

Screenshot 2024-10-08 221854.png

In the comments of their game, you can find all the discussions and screenshots of my proofs and their team's confession and acceptance of them cheating the system. When I sent that message, they had around 200 karma from feedback, now they have 400+. Incredible!!

Screenshot 2024-10-15 151720.png

Perro said that they stopped doing it and clearly didn't. So, here I am making this post for the ones who are not aware. The judgement is yours.

A few people DMed @pov , Mike, on Twitter for it. He said he will look into it. But I am not sure if they will be banned or not, if something will happen or not. So I personally took the justice in my hand, unliked their feedback (so took their feedback points away from their comments on our game) and gave them a 1 star. They are already the most rated Jam game, so it doesn't change anything at this point. It's already out of control.

But that is my sense of doing it, you may or may not agree with me. That's OK. Leaving a message and flooding their comments without rating them would work too I guess. Or something else. You can have your own critic and judgement if what I did doesn't sit right with you. I am sure there is someone(s) smarter and wiser than me lol

Screenshot 2024-10-15 151105.png

Thank you for your attention. Despite this, let's keep on jamming and enjoying LD! :v:

Do we need a way to deal with spam?

Today I saw people talking about this entry, where at least two team members where spamming comments to farm karma (and somehow they even managed to accidentally (!?) spam links to the wrong game at some point).

Coincidentally, around the same time I got a comment from another, unrelated user, on my own entry: "Nice game!!!Very interesting aspects in game !!! Looks Wonderful 10/10!!!"

I decided to check the top graded games just in case and lots of them have a comment by this person. The most common is "Nice game,very interesting plot!!!!Nice job!!!!", but I also saw one or other entry with that same message posted on my entry.

Although this behavior doesn't affect me directly, it still kinda sours the experience...

(edit: by time I finished writing this, @burchyn wrote a more complete post about the issues with Laverino: https://ldjam.com/events/ludum-dare/56/fry-quest/they-didnt-stop-cheating)

Yeah, I'm dealing with spam ratings too :(

Screenshot 2024-10-15 102042.png

wow, that's an awesome review... too bad my game literally has no story whatsoever, so I clicked to see his profile

Screenshot 2024-10-15 102130.png

Is playing and rating games this guys full time job???

You got any of them small/quick games?

Due to a very hectic schedule I am being subjected to (for example, I'm booked solid for the next 12 hours), and since I refuse to spam - I need to rate games, but am seriously pressed for time. I'll have a few hours later where I can squeeze in some rating time. If you got a small game that can be experienced in 5-10 minutes and has a Linux or HTML version it would mean the world to me if you dropped a comment on this post and I'll try to throw a rating your way today or tomorrow.

Post-mortem for Play With Me

Movie_034.gif

Game

It's a Tamagotchi with 3 monsters you can play with and feed. They each have their own minigames.

(Spoiler) !> One of the monster is jealous of others and kills and replaces them when you are playing with them.

So this game has horror elements.

Development story

I'd normally participate Ludum Dares as a solo dev. I wanted this to be different than my usual, I started a "looking for artists" thread in the unofficial Ludum Dare Discord server and met @Merulon there, whose artworks I admired.

She had the idea of a Tamagotchi with multiple monsters and maybe like (spoiler) !> Doki Doki Literature Club.

We developed this idea further. And a game much more successful than my solo entries was created during LD 56.

What went right?

Most of it :)

  • Game was well scoped. There are a few things that can be added or fixed, but in the end it was "good enough" when I reached exhaustion on Monday.
  • It attracted great attention for a jam game. We have over +5K plays right now, it even got featured in Itch's blog page. Players got surprised by its twist and they liked it. There is a "Warning: Horror Elements" text at the beginning, I'm glad that our twist still worked despite the warning. Such a warning is completely necessary for a cute game like this by the way, it's a matter of player consent.
  • The "jumpscare" was liked as well. I especially worked on avoiding the jumpscare playing instant and loud. Instead, the volume and sprite alpha fades in. I personally despise loud and sudden jumpscares, they are cheap.

What went wrong?

Only a few things.

  • The story ended abruptly and vague.
  • The game can be controlled either with ZXC keys or simply pressing Tamagotchi's keys. I thought the entrance Tamagotchi screen was prompting ZXC (intended controls) good enough. As far as we watched people play, nobody used ZXC at the start, and almost nobody noticed game could be played with keyboard.
  • Not everything could be finished. We had the idea of robotic speech in the style of FAITH (who can ever forget "MORTIS"?) in certain parts. I learned it can be made with "SAM Software Automatic Mouth" easily later.

What's next?

We have some ideas for the post-jam version of Play With Me.

Play With Me is available for WebGL and Windows

https://ldjam.com/events/ludum-dare/56/play-with-me

Attention, Monkepok creators!

We’re brewing up something wild for the most dedicated mad scientists: a Creature Dex that tracks every monstrous piece of your creations! Each creature in Monkepok is made from four parts — head, arms, body, and legs—and this Dex will record each piece you’ve encountered. It's your ultimate guide to every abomination you’ve stitched together!

But here’s the catch: some creatures and their parts will only be unlocked through currency or achievements. Think you’ve got what it takes to cath- eeeeeh... collect them all?

💡 What do you think? Would tracking the pieces of your creations in a Creature Dex make your lab work even more exciting? Let us know!

https://ldjam.com/events/ludum-dare/56/monkepok

(Mock - Will change during development) Screenshot 2024-10-15 180013.png

Playing your games / Day 7

https://www.twitch.tv/xpmonsterx

Ready to play more of your beautiful games :)

*I was forced to end stream prematurely due to OBS disagreeing with the engine I use which created insane frame drop causing delay, stuttering and general drop in quality :/

Games played count: 45

Last games:

  1. https://ldjam.com/events/ludum-dare/56/terrariumsim

  2. https://ldjam.com/events/ludum-dare/56/solo-hamstering

  3. https://ldjam.com/events/ludum-dare/56/cyber-critter

  4. https://ldjam.com/events/ludum-dare/56/multimorph

  5. https://ldjam.com/events/ludum-dare/56/chumini-tiny-army

  6. https://ldjam.com/events/ludum-dare/56/lets-eat-grandma

Making some Boba Tea

BanneremLD56/em02.jpg

Humble Beginnings...

At the start of this jam... I struggled a bit coming up with some decent ideas I felt excited to work on TBH. I knew I wanted something small in scope. But the ideas weren't flowing as I would've liked on Friday night into Saturday morning...

Then I hopped on Pinterest to find some reference for a few ideas... and came across some images of the cutest food 'creatures'. I loved it. I mean... look at this stuff! It's TOO adorable! :openmouth: :hearteyes:

Boba_Ref.jpg

That springboarded the idea of controlling these little 'Bobas' in some Boba Tea... trying to avoid getting sucked up in a straw? I thought it had a nice simple element to it, could be fun, and had a bit of surprise. So as with most things Ludum... had to just go for it, as I had already eaten too much time coming up with an idea. :grimacing: :stuckouttongueclosedeyes:

Mistakes were made...

I had just come across this really neat lattice tool for Unity by Harry Heath... it allows you to create, animate and manipulate lattices in-engine.

https://assetstore.unity.com/packages/tools/animation/lattice-modifier-for-unity-293850

It looks amazing, and doing the jam, thought this might be a fun idea to mess with it. (I promise this post is not an ad for that tool :wink: :stuckouttongueclosedeyes: ) But definitely worth checking out if you get the chance!

So I went the 3D route... (even tho most jams I do pixel art as it's just a faster workflow for me overall and I enjoy it).

BobaTeenyem3D/emLattice.gif

I had to just try it, and it looked really promising, so I got a prototype mocked up as fast as I could to prove it out. Then when I went to make my build, I had all kinds of issues getting a webgl build to work without crashing, and various shader errors etc. I just didn't have the experience/knowledge to figure it out in that time.

I love learning new things during LD... it's one thing I love about doing this jam, but maybe learning a totally new workflow is a bit much in that time. :grimacing:

Time to panic and redirect...

With a whole day down... I had to pivot. And just focus on what I knew. The process became fun again. This had a lot of opportunity for juicy bits and fun character animation. I'd love to continue exploring some of that polish post-jam. I wish I had more time to add further levels and better progression etc too. But it was still a fun experience and I learned a lot!

BobaTeenyemGameplay/em04.gif

My fav part may have been making slurpy noises at my desk. :joy:

Feel free to check it out here when you have a moment! :smile:

https://ldjam.com/events/ludum-dare/56/boba-teeny

Been playing some amazing games this jam. :raised_hands: Cheers.

Slurp'em all --- behind-the-scenes

https://youtu.be/eZq2KxMexZw

.

hi all

.

what's kinda gooey but also cuddly, mischievous, cute, black, and has a tail?

...

well, cat got your tongue? --> a CLIME!

.

... you don't know what a clime is? it's a cat-slime!

.

better get up-to-date with Slurp'em all, one of the 2 games we created for the LD56!

.

meet the team behind the game in this behind-the-scenes video!

.

  • https://ldjam.com/events/ludum-dare/56/slurpem-all

.

happy testing, yall :-)

A Brief Post-Mortem for The Last Swarm Warden

I often forget to write a "we did it!" post these days, and I regret that because back on the old website I was hugely enthuisastic in sharing my jam journal. Unfortunately part of my reticence comes from my having moved onto using Unreal, and sharing UE5 gameplay of any tsubstance in the 4MB limited gifs is extraordinarily difficult. I hope someday the imgur embeds work as intended!

Still! I just wanted to chat briefly about The Last Swarm Warden, the game @smartwilliam and I made! It's a light mix of narrative and puzzle, I suppose, but ultimately the goal is to provide a slightly creepy, immersive vibe, using the light of fireflies to guide your way.

ld56screenshot.png

I went into this jam with an additional limit on my head. As a gameplay programmer, I've found I most tend toward gameplay-heavy, system-heavy jam games if I can. Something that makes moment-to-moment gameplay satisfying and fun. If possible, that often means combat, too. Most of all, I never made games with a proper level environment to explore, for neither myself nor any of my past LD partners had experience with level design. So, I promised myself this time that I would not do anything with combat, and would try to make something with an actual narrative.

My friend and I took some time to brainstorm every idea we had. Eventually, we workshopped an idea together, in the form of using fireflies to light your way somewhere, with your character being injured. The fireflies would dim, and it was up to the player character to keep them lit. In addition, we wanted the darkness to close in at the end of an area, forcing you to back track without the ability to explore with the fireflies, who would become locked to your position. This is where my friend had the idea to make the player wounded in the story, so as to leave behind a trail of blood to follow on the return journey.

With the idea settled, we set about implementing. Thankfully, the majority of the gameplay systems were done by day one, and that's almost always my goal. The fireflies light was done quickly, though redone slightly on Monday evening. The lever/door system was all quite modular. Indeed, the beacons you encounter to refresh your fireflies were simply another kind of "lever" under the hood, defined as any actor that could be interacted with in close proximity.

Ultimately, I achieved the goals I had with regard to being easier on myself gameplay-wise. If the only responsibility I had was gameplay development, this would have been the easiest jam for a while! And yet, we still had all of the environment to do. In the end, we each took responsibility for a "branch". I'd hoped to have more than two, but over the years you get a good sense for how much you'll ultimately get done.

In the end, it was the level design that really proved the challenge. I am quite terrible at it, and with using the tools to our advantage. But it was a great learning experience, and I'm glad I finally forced myself to try it, because in the end I'm pleased with what we created, that sense of loneliness, and yet... not.

ld56screenshot2.png

My voicework was hardly my finest, but I'm very proud of the audio I made in general. I had about two hours to make all the audio, write the entire script, record it, and implement the whole thing, but I never let audio go missing from my game. Can't stress enough how important it is!

So there we are! Word salad, but this is The Last Swarm Warden, a game about a priest in a temple of FIreflies - once full of glowing light and warmth, now plunged into darkness, your brothers fallen. There's plenty of superficial metaphor in there, but don't think too hard about it, I'm not terribly clever!

Here's a low quality gif! Blast the 4MB limit! :laughing: ld56c.gif

Play it here! Thank you! Please let me know what you thought, if you do!

We made a short movie of our game.. and a translation 4 our french compatriotes

Hello again.

I am glad to share with you the short movie we made on The drunk Bassist of Hamelin. Hope you will find it fun to watch. If you like it, please take some time to play it and to leave us a feedback. We will definitively go to your page to play you game.

The EN version : https://www.youtube.com/watch?v=8QL9t8TGi2g

The FR version : https://www.youtube.com/watch?v=PNrbke_eOsQ

66a26.gif

Kisses from France

rect1030.png

Help the ants find their queen

worriedant.png

As you can clearly tell, this is an ant. And it's obvious from its demeanor and the sorrow in its eyes that this ant is quite worried. Help the ant ease its worry by finding the ants' missing queen now in a miniature sized roguelike adventure with upgrades and a boss fight!

Play Ants Save the Queen in your browser

Snail Typing Post-Mortem

Seeing developers' afterthoughts on their entries inspired me to shed some light on mine, on the process of coming up with the idea, prototyping, and what I think of the result. Hopefully this will be concise lol.

So, about the idea...

I wasn't really gonna participate in LD 56 due to the theme and just not having any ideas altogether. I then saw a comment of someone (I wish id gotten their username) saying they were gonna make a game abt a snail. This reminded me of something:

7b6473a15c526220f713cef9a2c8c93e6130c80f_00.gif

Thus an idea emerged: a snail racing game. Problem is, even for a weekend-long jam, Undertale's Thundersnail was way too simple. So initialy I had decided to implement 3 mechanics:

—* Type the keys shown as fast as possible

—* Random Obstacle would appear requiring to spam Space

—* A fail condition causing the snail burning on fire like in Undertale.

So how was the implementation bit?

You see, the thing is...

I only got around implementing the 1st mechanic, due to time constraints and design decisions. I actually had implemented it on the first day! The system is really simple but it was a surprise to get it down that early. The other features though never came to fruition. You see, the snail would burn on fire if you typed lots of letters wrong, but like, you don't rly need that, since you'd lose the race anyway. The obstacle I never implemented because the game loop was already 'working' and I got lazy :stuckouttonguewinkingeye:

One remark I got about the game was just how you barely look at the race and more on the characters at the bottom of the screen. I wholeheartedly agree and actually I thought of changing it so the letters would show up on the top of the player. The reason I didn't do that was related to:

—* How much time there was (don't fix what's not broken lol)

—* Game's difficulty (with nothing going on at the bottom, you can show multiple letters, allowing for anticipation and therefore an easier game. Putting them directly above the player restricts both space and thus predictability)

Bold 'nd Brash?

The sprites took most of the time, if i'm not mistaken. After implementing the letter system, I drew this ugly fella (i had sworn it looked better after finishing it 1 hour later). I later changed it to make it more similar to Undertale's and added white outline to make it stand out better against the finish line that is the same color as it.

snail_player.gif

Btw I decided on a whim that I'd choose a random pallete on lospec, so I got this ExpandedDreamland Palette. It was definitely a challenge making a cohesive design with limited colors lol.

So what's next?

I got a bit 'burnt-out' by the time constraints. It wasn't my first entry to a 48-hour jam, but it was nevertheless tiresome. I was making a 3d game before hoping in and man I kinda missed not having a deadline. Got frustrated a bit with my tilesets both artistically (wish they looked better, specially the water puddle), and on adding them to the Scene, as Godot's tile system is not streamlined. The sfx was a pain to make it feel decent. I just wanted to submit the entry and be done with it, that's why there is no music (plus I wanted to focus on testing the game and allat). Later I got motivation to make a decent thumbnail.

With that in mind... :snail:

I'm kinda bewildered at how many people liked it. I think I got the mechanic right but I wish I'd made more interesting levels. They feel same-y and could've been exploited to make something more in depth. Nonetheless, I'm content that people played and enjoyed it more than me. I'm also relieved that I'd toned down the difficulty a notch, since that meant more people finishing the game.

If you haven't and you're interested in playing it, you can play it here.

sayonara.gif

Ant-ique lovers, try out RomAnts!

I made a small tower defense/resource gathering game about RomAnts trying to protect their temple from the BarbariAnts.

eO_0E1.png

the dangers of going 'ooh that looks cool!' when you're on the main feed...

after being overwhelmed by all the games I opened over the jam and rating period, plus the notifications from the developers I follow and the games i've yet to play from those who have commented on our game, I decided to take a page out of the various streamers' books and made a spreadsheet 'queue' for myself lol

it has a grand whopping total of 130 games on it to play :skull: :skull: :skull:

i'm gonna have to set a time limit per game to get through all these! either way the next ~9 days is gonna be super busy for me it seems lol

gonna have to stick to notifications & comments first in the future, 130 is waaaay too many :skull:

Been tweaking the game

Helped my programmer de-float the physics, and replaced the text UI with a more modern, icon-based UI.

Not to worry, though! The lame, older version is still the version playable on the jam page.

test2.gif

More games and talking

at your talking and gaming destination, Fun Base Alpha https://twitch.tv/funbasealpha fbaemotemedium.png

Tiny Paws: Its WarioWare, with cats!

tinyempaws/emcover.png

Welcome to the Tiny Paws Adoption Centre! Get ready to juggle the joys and challenges of caring for all of these adorable feline friends as you tackle a whirlwind of quirky minigames. How long can you last?

:videogame: :joystick: Play now! :joystick: :videogame:

Stream Starting - Week 2

Week 2, time to try the games finished in a weekend! Come by my stream at https://www.twitch.tv/vorceshard if you want to see fresh games in action made for Ludum Dare 56. If you want to see your game played, let me know your username in the chat so I can look your game up.

Thanks LD Community

If you've been on Twitch at all this past week, you may have seen our game being played by creators in the community.

We've gotten a lot of helpful feedback, and it's been great to see players enjoy their time with Poppet. If you’ve got a moment, check out these links to hear what some awesome creators have to say about their experiences: - ColeSlawski - Ategon - RookRules - Tobugis

Poppet was a big undertaking for our small team, and it definitely came with its challenges. But we’re really proud of what we’ve created. We're truly grateful for the incredible response from this community and appreciate all the feedback from our players.

There is still time to rate, so please, If you haven't had a chance to play our bite-sized survival horror, be sure to give it a try. You will not be disappointed.

PLAY POPPET Poppet_SocialMediaImage.jpg

What a wild time!

I was out of town most of last weekend and so couldn't help my team with our game as much as I'd have liked...and I also haven't been able to start playing and rating everyone else's games until yesterday! Usually I alternate between the danger zone and whatever blog posts I read. There's been a lot of creative entries, with more logical takes on the theme than some previous years. Also, the community has been awesome.

In any case, if you want/need some plays, leave a comment and I'll try to knock it out over the next couple of days. If you have time, try playing Slime King, too!

https://ldjam.com/events/ludum-dare/56/slime-king

Our friends are precious

Sadly, I didn't have the time to play others' games and promote our own Backpack Dungeon yet, so I was kinda shocked when one of my friends told me today they've cleared the whole thing!

Here's the screenshot they've sent me:
firefoxem2024-10-16/em14-04-35.png

(And yes, that's the maximum depth one can reach in the uploaded build)

Anyone else with similar experiences?

Cute game with tiny creatures!

We made chaotic garden adventure with tiny creatures as entry for Ludum Dare 56! Prepare for Winter and check out the game here: https://gamejolt.com/games/my-crazy-little-garden/930392

Crazy Little Garden.gif

More games to play

Aiming to get more people's games out of the danger zone. Play a few more games so we have more who place in Ludum Dare 56 catagories and more who can potentially find and play We Love the Boys!

Showing Thousands of Entities While Keeping the Game Smooth

fast.gif

Play the game here: Karma Keepers

In the late game of Karma Keepers, you’ll see thousands of entities on screen. Each entity is made up of several components, like clothing with specific colors, shadows, and more. One of my main goals was ensuring the game runs smoothly no matter how many elements are being rendered, so I put a lot of effort into optimizing the game to handle this without sacrificing performance.

The game is built with Rust using a custom engine that exports to WebAssembly and WebGL2. This, by itself, makes it very performant compared to alternatives using interpreted languages.

But often, the real challenge is not the language, but the game’s logic. In Karma Keepers, there are four main elements to render: parallax backgrounds, sprites, geometric shapes, and text. Each element has its own transformation matrix and color properties, so it's crucial to handle how they’re drawn and in what order.

I'm using a technique called Sprite Batching, which I apply to everything: parallax patterns, sprites, text, and even shapes. Batching means sending all elements to the GPU at once, avoiding multiple draw calls. This matters because communication between the CPU and GPU is slow. By telling the GPU to draw 100 elements at once, instead of issuing 100 individual draw commands, performance improves significantly.

Each batch is defined by certain rules. Usually, if the resources differ from the last, you need to create a new batch. In our case, a new batch is required if the shader changes, the texture bound to the GPU is different, or the projection matrix is updated. Karma Keepers uses the same texture for all sprites. They are packed into a single texture atlas, and each sprite knows the coordinates of the element it needs to draw, so there’s no need to switch textures for each sprite. Text, on the other hand, uses a separate texture that updates based on the text to be rendered.

As for matrices, all transformations are computed on the CPU. While this is slower than doing it on the GPU, it allows us to bundle all vertices into the same batch more easily, simplifying the rendering process.

To optimize further, I divided the rendering into two phases: the game world and the UI.

Game World:

  1. First, the parallax background is drawn. This is a single draw call since it's the only background on screen.
  2. Next, all the sprites (souls, their clothes, and shadows) are rendered. For each, I calculate the transformation matrix and apply the appropriate color.

UI:

  1. The Blessings and the progress bar are rendered as sprites.
  2. Then, shapes like background rectangles for the Blessings are drawn.
  3. Finally, all the text is rendered.

By organizing the rendering in this way, the entire game is drawn in just five draw calls, which is a very low number.

To avoid drawing off-screen elements, I also check the camera bounds. Anything outside of the view is skipped, saving processing time and avoiding unnecessary data being sent to the GPU.

CPU side optimization:

The main CPU challenges are handling transformation matrices, colors, and collisions. But within reasonable limits, this is relatively fast. I'm using simple AABB (Axis Aligned Bounding Box) collisions, which aren't very complex. They keep souls from overlapping and allow entities to push each other when you're guiding them with the mouse. The collision system is based on simple rectangular bounds, with entities having a "force" to determine their push strength, guiding souls have a bit more force so they can move others.

And that's it! No magic, just organizing the code to make it easier for the GPU to process. There's still room for optimization, but it's more than enough for this game at this stage.

Thanks for reading, and don't forget to play the game! Appreciate the support!

Try Sailing with Stuart!

Here are some concepts from our game about Stuart. Created by @fooorsh.

You can play it here: https://ldjam.com/events/ludum-dare/56/stuarts-perfect-day

68d89.gif

Appreciate your thoughts and feedback!

Nice games with yet few ratings received

I browsed through some games, which at the moment haven't got a lot of ratings. So I thought I present some of them to you. They are very different from each other, so maybe you find something to play. :)

  • Animal Arcade: Short game and very fast pace. (13.1 ratings received / by @jakob-meier, @5hin3, @acid) https://ldjam.com/events/ludum-dare/56/animal-arcade GIF_Animal Arcade.gif

  • Backpack Dungeon: Relaxing, chill gameplay. (just 3 ratings / by @dragonayzer, @tabera, @neon-glass) https://ldjam.com/events/ludum-dare/56/backpack-dungeon Backpack Dungeon low GIF.gif

  • Tiny Flings (COMPO): Shooting a person using gravity to get to the goal. (13 ratings / by @shoalmuse) https://ldjam.com/events/ludum-dare/56/tiny-flings GIF_Tiny Flings.gif

  • Luck of the Draw (COMPO): Multiplayer mode! Board game with dices as weapons. (12.7 ratings / by @cruise-elroy) https://ldjam.com/events/ludum-dare/56/luck-of-the-draw GIF_Luck of the Draw.gif

  • 1D-Puzzle (COMPO): Imagine the ball is a bug, so it fits the theme. ;) (13.4 ratings / by @a-bond) https://ldjam.com/events/ludum-dare/56/1d-puzzle GIFem1D-Puzzle/emDesktop2024-10-1613-54-45-ezgif.com-video-to-gif-converter.gif

WE HAVE RELEASED AN UPDATE :)

Group 1 (2) (1) (1).png

FINALLY, our hands have reached the bug fixes. We spent so much effort (no) and time (no) to fix these problems (in fact, we just rested and appreciated the wonderful games).

Group 2 (1).png

Here is a list of all the changes:

  1. Fixed a bug with the board, now it is possible to chop all kinds of vegetables that are still available.
  2. Fixed a bug with orders, now after the delivery of the order, the old plate / bowl is successfully deleted.
  3. Fixed a bug with the appearance of a mouse, now the player on the stage will be disturbed by the mouse (so far only visually).
  4. Added decor to the order scene (the designer can finally celebrate).
  5. Added a trash can that removes unnecessary vegetables.
  6. The chance of getting cut was slightly reduced.
  7. POTATOES WERE ADDED.

This was our first experience in developing such a project and I hope everyone enjoyed it.

You can also try the new version of the game and write comments about new bugs :) Thank you all for your attention. Component 221 (1).png

WE HAVE RELEASED AN UPDATE :)

Group 1 (2) (1) (1).png

FINALLY, our hands have reached the bug fixes. We spent so much effort (no) and time (no) to fix these problems (in fact, we just rested and appreciated the wonderful games).

Group 2 (1).png

Here is a list of all the changes:

  1. Fixed a bug with the board, now it is possible to chop all kinds of vegetables that are still available.
  2. Fixed a bug with orders, now after the delivery of the order, the old plate / bowl is successfully deleted.
  3. Fixed a bug with the appearance of a mouse, now the player on the stage will be disturbed by the mouse (so far only visually).
  4. Added decor to the order scene (the designer can finally celebrate).
  5. Added a trash can that removes unnecessary vegetables.
  6. The chance of getting cut was slightly reduced.
  7. POTATOES WERE ADDED.

This was our first experience in developing such a project and I hope everyone enjoyed it.

You can also try the new version of the game and write comments about new bugs :) Thank you all for your attention. Component 221 (1).png

WE HAVE RELEASED AN UPDATE :)

Group 1 (2) (1) (1).png

FINALLY, our hands have reached the bug fixes. We spent so much effort (no) and time (no) to fix these problems (in fact, we just rested and appreciated the wonderful games).

Group 2 (1).png

Here is a list of all the changes:

  1. Fixed a bug with the board, now it is possible to chop all kinds of vegetables that are still available.
  2. Fixed a bug with orders, now after the delivery of the order, the old plate / bowl is successfully deleted.
  3. Fixed a bug with the appearance of a mouse, now the player on the stage will be disturbed by the mouse (so far only visually).
  4. Added decor to the order scene (the designer can finally celebrate).
  5. Added a trash can that removes unnecessary vegetables.
  6. The chance of getting cut was slightly reduced.
  7. POTATOES WERE ADDED.

This was our first experience in developing such a project and I hope everyone enjoyed it.

You can also try the new version of the game and write comments about new bugs :) Thank you all for your attention. Component 221 (1).png

Tiny Tribe Postjam update!

I made a cozy sim game about a tribe of tiny creatures developing their village while you interact with them. Sadly I didn't have enough time to add much challenge and I wanted to have more player interaction involved.

The post jam build has an added challenge and goal:

-There is now a rival tribe you must defeat by raising an army!

-More characters, items and interaction.

-Tweaked sim behavior and other fixes.

​-Additional polish

postjam.gif

Jam and postjam versions can be found here: https://ldjam.com/events/ludum-dare/56/tiny-tribe

Playing your games / Day 8

https://www.twitch.tv/xpmonsterx

Bring on stream more of your amazing games :)

Tiny news: I began making highlights and preparing for Youtube release. 16 games from the first day were already highlighted. I also took the liberty of making thumbnails for some of them that didn't have one. You check my highlights to see them. I hope everyone will be satisfied, but if not - you can send me your own to support@empyreans.net

Games played count: 49

Last games: 1. https://ldjam.com/events/ludum-dare/56/neckmeats-tiny-adventure 2. https://ldjam.com/events/ludum-dare/56/my-tiny-friend-and-i-went-on-a-puzzle-adventure-in-the-forest 3. https://ldjam.com/events/ludum-dare/56/monkepok 4. https://ldjam.com/events/ludum-dare/56/tiny-h-o-c-s-pro-creator

Creating a Window Based Game

In the past my jam team had worked together on a game called Window Crawler for the brackeys jam, this was a game where you go through a dungeon but every time you exit a room a new room is generated in another window. (And then rooms can disappear leaving space for another room to generate)

m2EzeQ.png

After making it me and some other team members have wanted to do another Window based game and the theme for this jam seemed like a prime opportunity for doing so. After brainstorming for a bit we settled on an incremental type game where you take care of creatures in enclosures with each enclosure being a computer window.

Working with windows ends up causing some issues since its not a common workflow people deal with for games (especially for jams where everyone wants ideally a web build). The closest thing that people make to this sort of game are desktop companions, aka things that walk around your screen such as Desktop Goose. This means that there are at least some things to look at when making window based things but for things more oriented towards creating a game based around that there's not much help.

w1D3ES.gif

The primary game engine I work in is Godot and Godot ends up simplifying things a bit by providing a Window class you can use to create and manipulate Windows. For the enclosures I would first create a scene (aka prefab for those of you who work in unity) with the type set to Window and then spawn in a new instance of that scene every time I want to spawn in a new enclosure. Windows don't like having their position set before spawning in so the first thing a window does after spawning in is adjust its position to the correct spot.

This ended up bringing me to a set of windows that looks something like this. With one main window with the UI (and that would have creatures spawn in) and some enclosure windows that are spawned in (currently from a button press but eventually from an upgrade).

Screenshot 2024-10-16 120701.png

One person who was hanging around my stream chat then had a great idea which was to make the main window be the background of everything else. This was possible through making it a borderless window the size of the screen and then lets the ui sort of float in midair with the UI on the left and the buttons on the right. I then made this have a transparent background so that you could see the computer behind it.

Screenshot 2024-10-16 121335.png

One issue that arose that I ended up spending too much time trying to fix was getting the player to be able to use their computer while the game is running even with the large transparent window covering it. There is nothing currently in Godot that allows windows to completely pass through input and instead currently it just allows you to pass input to another window in the same application. This wasn't always the case though since in Godot 3 you could pass input and it ends up being a bug caused by a recent addition in Godot 4, mousepassthroughpolygon. This is a property on the Window class where you can define a region of the window that accepts mouse clicks. For some reason the addition of this completely broke the behaviour of passing through input to other applications so to fix it I ended up downloading the source code for Godot, removing that feature entirely and then recompiling the engine (as well as build templates so that it works on export). Compiling took around an hour which left me not able to do much other than art until that finished since it was overly laggy to run the game. But once it was done the issue was fixed and you could now use the computer while the game was running.

Interacting with another application would move that to the foreground covering the game so all windows that were part of the game I set to be always on top through the alwaysontop property in the window class.

Screenshot 2024-10-16 123512.png

To allow creatures to be dragged between windows I essentially duplicated the creature to every window whenever the creature is picked up (and then removed it from all apart from one when dropped). This allows the mouse to move to any possible window and it seem like its the same creature you are holding with it never going away (especially with the large transparent window in the background to cover the space between the enclosure windows). I also created the existence of a "wild" window that creatures would spawn in to replace my main window having that behaviour.

There would be some issues with picking up and dropping creatures in windows since letting go of the mouse over a window does not count as focusing on that window and focusing on a window eats up a click to do the focus before it lets you interact with stuff on it (aka pick up creatures). This had terrible UX since you then had to select on a window before being able to start moving a creature so all windows I made detect when they started being hovered over (godot has a signal for this) and when they are they auto focus.

Screenshot 2024-10-16 123001.png

I then ran into yet another issue. Since the main background window passed through all clicks to the applications behind it you could no longer click on the UI buttons in the top right. (These were buttons to pause, quit, and open the upgrade screen). To fix that I moved them to their own small borderless window that did not pass through clicks. This ended up causing a small bug in the final version of the game where that entire region could not have interactions behind it (which was mostly a problem for trying to close out of applications since it was over top of the x button in the top right). I likely would turn that into a non-borderless window in post jam and then allow it to be moved around to wherever the player wants.

Players could also minimize windows which would cause some bugs with the game mechanics relating to creature position. (By minimize here I mean minimize to the taskbar, not make smaller) You cant outright disable minimizing behaviours but you can maximize them again when it detects its been minimized which is what I did by checking its current state every frame.

At the end of all that I had a functioning Window system and could then expand on it a bit more with the actual game mechanics to make it more of a game.

67c8b.gif


There are a couple bugs that still remain in the game that I have to figure out solutions for. One of which is the fact that the background is black instead of transparent for many people (I have no idea what causes this) which then makes it so that they cant actually use their computer in the background. A second one is the fact that you can interact with all windows at the same time. What I mean by this is you can make a giant stack of all of the windows and interact with every single one on the stack, either with picking up creatures, collecting coins, etc. This ends up causing a duplication glitch which sticks a creature to your mouse and never lets you get rid of it (and making it so you cant use the quit button to quit out of the game)

I still want to make yet another Window based game so might try that in a future Ludum Dare or in another jam I participate in with the things I learned from this one. Especially since I only had a day to code things in this jam instead of using the entire 3 days.

For people who want to play the game made for this jam it is Window Creatures

And if you want to hang out on my streams I stream over on twitch at https://twitch.tv/ategondev and multistream to youtube at https://www.youtube.com/@Ategondev (will be streaming the Ludum Dare Score Chasers tournament when that occurs on Saturday)

Have you looked out for the Tinies?

Capture3.PNG

That would be criminal not to hang out with these cuties right? :eyes:

Our game is still playable and waiting for your feedbacks, check it out if you have some time :smile:

Link: https://ldjam.com/events/ludum-dare/56/tiny-world-mayhem

When Cosmic Critter Chess became Bug Chess

Before I go into detail about what went wrong with our game, rest assured: we did actually submit our game and we're proud of the result. We'd love for you to give it a try and leave us a rating, a comment, or both! No web build available unfortunately (more on that in just a second), but you can download the Windows and macOS builds right here.

v64ccA2.gif

The game is absolute hopping (if you catch our drift)!


Beware all Godot users, we want to hear your experiences! This is the third time we're participating in Ludum Dare as a team, and the third time we're using Godot. We always run into one problem or another, but usually we manage to sort things out. This time though, the end of the jam put is in a bit of a... jam I suppose. No matter what we tried, the web build just wasn't working. We're both C# engineers from experience, so we're using Godot 3.5 Mono so we can get the web exports (Godot 4.x only supports the web platform when using GDScript). While the Windows and macOS builds worked as expected, the web export runs into an absolutely mind baffling bug: a static class field gets reset to its default value (null) and well, given that this is our central singleton object, everything breaks! Maybe our code name for this project - Bug Chess - had become a bad omen.

We spent several hours debugging and searching online to no avail. Unfortunately, this ate into our time for getting the extra bit of polish out in the end. Even post-submission we spent a few more hours, but we've head dead ends everywhere. Combine this with the editor becoming unstable and crashing regularly, and we didn't end the jam weekend on the high note we were hoping.

For next time, we're considering how to address this. If web builds become a "maybe, maybe not" affair, we might as well switch to the latest Godot and get all of the great new features. We're also considering finally making the plunge and switch to GDScript, which may be more reliable to begin with.

This is why we'd like to hear from you! Have you ever had trouble with web exports in Godot? Maybe even had this exact same issue? Have any of you switched from C# to GDScript in Godot and if so, what were your experiences? Does anybody use the mono version of Godot in the first place?

ew68msf.png

Once you're done answering, don't forget to still play and rate the game.

P.S. The web build is published right here in case you're a bit weird and love to see a dev console full with errors :smile:

Enemy pathfinding, collider hell and post jam updates

banner

Hiya! TinyTaunters team here. We’d like to share our experience with LD56 and some news.

Building everything from scratch including audio and hand drawn artwork was super exciting and we loved all the feedback we got. Most of us are really inexperienced in game dev and have only joined a couple of jams and figuring stuff as you go bears its consequences.

We were thinking of doing a post-mortem for Tiny Taunters but… the game is simply not dead. It’s just getting patched… rather slowly due to all of us having to go back to our banal non-jam day-to-day.

Good news is we’ve got our first major UPDATES. So let’s talk about the major issues we encountered with the game and how we solved them.

Enemy Pathfinding

Our original pathfinding algorithm for the enemy AI was naive to say the least. We just calculated a vector towards the player, raycast and if there were obstacles in the way you stayed put, if not you went towards the position where you last saw the player.

This resulted in some very fun exploits where you could just stack enemies in corners and spam them with taunts

bad_follow

In order to fix it we moved to an A* solution. It was fairly easy to implement and with some fine tuning … the enemies were too smart. You could literally not get away from them even if they were slow as a turtle.

Also we had to abandon moving their transforms and try to use the physics engine through rigidbody which took some time to work into the scripts.

After some more tuning we found a decent balance of stupid vs fun. Now you can still sort of trick them but it is harder and kind of fun to try out.

follow_good

Box collider hell

We also tried to do tile maps and sprite colliders for the first time. Our first plan was to put everything in tilemaps and then draw colliders on top of it. It turned out… fine. But when we started messing with the scales or positions of objects we had to manually move all colliders around and wall colliders were a mess.

A bigger problem surfaced when we added animations to the enemies. Since our art was all hand drawn, their sprites were all over the place leading to really messy interactions.

First approach towards a fix was a polygon collider. This fixed the problem with the animations but the generated colliders had a lot of edges and the enemies got stuck all over the place. This also applied to a lot of the objects.

Our second approach was adding simpler colliders on enemies and composing them into shapes with good round edges. Then we discovered that we could add tilemap colliders while making custom physics shapes for our tiles. Splash a composite collider on top and you have a minimal polygon that looks exactly as you designed it. We separated the tiles that had collisions with the tiles that were just the ground and we were good to go.

colliders walkable

Tiny Taunters version 2! What’s next? We published a new version of our game yesterday. This includes major fixes such as: - A* pathfinding for enemies - Better colliders - New artwork - New animations - Various quality of life fixes - 🥳A public Leaderboard!🥳

leaderboard

We really liked the idea of having a leaderboard in order to interact with other players worldwide so we used https://danqzq.itch.io/leaderboard-creator to set it up.

We are thinking of doing some major reworks and adding some exciting new features. Namely, we are considering collectibles and alternative scoring system, different character powers and more beautiful artwork by metaksonio

Play the game and leave some feedback here!

Test

Test

A postmortem about a platformer where you can't jump!

So, I had a blast taking part in this Ludum Dare and haven't written a postmortem yet, so here we go!

Let me introduce you to Snail away, the platformer where you can't jump!

logo.png

Day 1

A chaotic start: who needs a CI/CD pipeline :sob:

The jam started very chaotically for me. I recently learned about CI/CD pipelines, which, for those who don't know, allow you to automate the process of exporting and publishing a project. So, like, 2 hours before the jam, I thought, let's give it a go! (Spoiler: that was a mistake...)

I had no experience in making such pipelines, and it was way harder to get them to work than I thought, with many examples being either outdated or needing tweaking. So I was hard at work on that when the theme dropped. My two least favorite themes of the round were Strange Machines and Tiny Creatures, so when I saw Tiny Creatures on Twitter while working on my half-broken CI/CD pipeline... man. :sob:

On Saturday morning, I woke up obviously very uninspired by the theme and thought I'd try to fix my CI/CD pipeline. It took me a lot of trial and error, but after a few hours, I got it working! Man, the feeling of just doing a git commit and having your game actually playable online felt incredibly good. The only thing was... there was still no game to play, not even a concept, and I had already burned the entire morning of the first day.

cicd.png

Brainstorming time! :gun: or :boxing_glove: or :snail:

Earlier I said I didn't like the theme, but taking a step back, it wasn’t so bad after all. After some brainstorming, I had three game ideas:

:gun: A first-person shooter where you play as a mosquito trying to take down a (giant) human. I liked the idea and thought it would make for interesting gameplay, but at the same time, I felt the success of the game heavily relied on the AI and animations of the giant human, which seemed too difficult to get convincing results within the time frame. Plus, I'm more of a 2D artist than a 3D one, and I thought it would be too challenging to make the game look good.

:boxing_glove: A 2D, first-person fighting game set inside an anthill. Making a 2D first-person fighting game was something I already had in the back of my mind. In the end, I didn’t really like the idea of using an old game concept and just slapping a Tiny Creatures theme on top of it.

:snail: And lastly, a 2D platformer where you play as a snail. The idea quickly stuck with me (pun intended) because I thought there was something really cool to do with how a snail moves—sticking to surfaces or rolling inside its shell. So I eventually picked that idea. And I think I made the right choice!

Making good platformer physics!

Since the game was a platformer, my main priority on the first day was movement and physics. For anyone making a platformer out there, please, good controls and physics should be an absolute priority—this is the core of the game.

From a technical point of view, my snail is a CharacterBody2D in Godot that always tries to stick to the ground. When rolling inside its shell, the CharacterBody2D despawns, and a RigidBody2D spawns instead. Since the sprites stay in place, it’s impossible to tell that the collision object actually changed under the hood. But it works great.

snailproto.gif

Procedural animation?

Once I had that working, the snail's graphics were another priority. I knew it just HAD to be procedurally animated because that’s how a snail’s tail should look like. So, I used a Line2D in Godot and animated the points with code.

I used raycasts to anchor the tail's points to the ground. For the head, I made some basic damping physics. For anyone interested, the math is very straightforward: it's basically just, every frame: position += (target - position) * speed * delta, where delta is the time between two frames, and speed is a parameter to control how fast the object should follow. Very simple, but it looks nice and satisfying.

snailgif1.gif

Once I got the physics and procedural animation somewhat working, it was Saturday night, and I started playing with it a bit. And I realized: wow, this is actually pretty cool! I didn’t know how good it was going to be, but by the end of the first day, I was surprised at how good it felt to play with the snail. At that point, I just had a simple snail controller... but still no real gameplay, or levels, or graphics, or any sort of complete game.

Day 2

Throughout day 2, a lot of things got done! I started by fixing some bugs on the player physics and animations. I made a few mechanics, like plants that bend as the player walks. I also worked on graphics—the snail’s shell, some leaves, and a few decorations.

snailgif2.gif

Level design time!

Then it was time for level design. And I realized that being a snail means... you can walk anywhere! Like, literally anywhere. For example, if I put a wall to stop the player... well, the snail can just walk on top of it. There’s no stopping a snail. So I added a new mechanic: spiderwebs, which you can’t stick to, and block the player. This mechanic turned out a little buggy, but it worked well enough for most playthroughs.

I was finally ready to design some levels. The trick I used was to make the levels within the engine itself with basic polygon shapes. This way I could prototype very quickly, and the game still looked okay without needing to create more art. Very handy. I also used Godot's feature to automatically generate collision polygons from sprite—again, super handy!

polygon.gif

Extra stuff! :heavyplussign:

I still had to cut the scope down and make the game much shorter than expected, though. I spent a bunch of time at the end polishing the game: adding a parallax background, sound effects, music, and collectible ladybugs. And that was it! Before the end of the jam, a friend tested my game... and really liked it! At the end of the jam, I played it a few more times and realized I was super happy with what I had made!

snailgif3.gif

That's a wrap! :clapper:

Now it’s been about 10 days since the game was released. So many people have played it, and most really liked it! The response has been overwhelmingly positive—the best response I’ve ever had for a game I’ve made! I’ve made quite a few games in the past (this is my 12th Ludum Dare!), and it’s so cool to see I’m still making progress and creating better and better games. There are still some things that could use more work, like certain aspects of the level design, and the game is very short. It’s obviously not perfect, but that’s not what it’s all about. For me, it’s about trying to make a better game than last time, even if it’s just a little bit better. And I think I achieved that.

Anyway, thanks for reading my postmortem, and thanks to everyone who gave feedback. You can still play the game if you're interested!

Can you beat the top 3?

What makes a game difficult?

When creating our game Gnomin' we took inspiration from games like Getting Over It and Get Out Joey. These games are usually quite difficult, but should still be fair. We hope to be both, and would like your opinion! Is our game difficult enough? Is it too difficult? Are there any aspects you find unfair?

The leaderboard

Similar to our other games, Gnomin' has a leaderboard to motivate players to compete with each other. At this moment, I am still first place, I'd like this to be changed! Help Ink the gnome get to the end of the cave as fast as you can and beat me, Korcalius and Meep out of the top 3!

You can play Gnomin here: https://ldjam.com/events/ludum-dare/56/gnomin

thumbnail.png

Mystic Mites 1.1

Screenshot 2024-10-16 232421.png

It wouldn't be game development if we didn't ship with some bugs. We did - like Mites creating a small moshpit. But do not despair, now you can play a 1.1 version, that forbids moshpit joy!

All the changes:

-Fixed Mites doing a moshpit in the play space

-Fixed issue with missing font

-Fixed issue with text appearing over the hand

-Fixed the wrong portal color

-Improved optimization

-Added controls reminder to playspace

Of course, the old version is still available, if you would like to put some Gojira on and party with the Mites!

We have released an update :)

Group 1 (2) (1) (1).png

FINALLY, our hands have reached the bug fixes. We spent so much effort (no) and time (no) to fix these problems (in fact, we just rested and appreciated the wonderful games).

Group 2 (1).png

Here is a list of all the changes:

  1. Fixed a bug with the board, now it is possible to chop all kinds of vegetables that are still available.
  2. Fixed a bug with orders, now after the delivery of the order, the old plate / bowl is successfully deleted.
  3. Fixed a bug with the appearance of a mouse, now the player on the stage will be disturbed by the mouse (so far only visually).
  4. Added decor to the order scene (the designer can finally celebrate).
  5. Added a trash can that removes unnecessary vegetables.
  6. The chance of getting cut was slightly reduced.
  7. POTATOES WERE ADDED.

This was our first experience in developing such a project and I hope everyone enjoyed it.

You can also try the new version of the game and write comments about new bugs :) Thank you all for your attention. Component 221 (1).png

Streaming your Ludum Dare Entries! (Day 4)

Currently live at https://twitch.tv/ategondev playing games from the jam! Feel free to stop by and watch me play your game

Behind the Scenes of Miku's Minion Madness: Before the Jam

Hi, Misa here, one of the developers on Miku's Minion Madness (https://ldjam.com/events/ludum-dare/56/mikus-minion-madness), and I wanted to talk about the making of the game! This one will be a bit long, so we'll split it into multiple posts. This one is the Before the Jam edition.

2 Days Before the Jam

@poco0317 and my fiancée @miku had decided months before this point that we would participate, but with the looming weekend, no ideas, and all of us facing general exhaustion, we were just going to see where it would go. Maybe we’d get a shell of a project out, or maybe we would just be one of the unfinished entries. We were ready to face any possibility. We had also recruited our friend @jason-woerner, who like myself and @miku, has extensive experience in the gaming industry. After thinking about it, Miku decided we simply couldn’t waste the talents of this team!

It only took a moment for our team lead to go from "Should we do this?" to "We should do this!" Miku took point and in 30 minutes, wrote up a card rogue-like adventure. We decided to head into the weekend with this general plan, but otherwise we had no specific ideas until the theme would be revealed.

1 Day Before the Jam

We were all feeling a bit of anxiety the day before - we had a solid base idea, although it was a pretty large scope, if we included everything we'd like to achieve. We decided to downscale it further after the theme came out. We knew we wanted some elements of playing cards, inspired by Slay the Spire and games of that genre. We were constantly chatting - the jam was soon, but we had no idea how the project would go.

Miku reached out to @emiri, our producer friend (check him out here: https://www.youtube.com/channel/UC1f-lKIatUwQBLzHuf98s0g) and asked:

emiri.png

Miku sent him the proposal and showed him the rules of Ludum Dare. He was in, and even though we didn’t know anything else at the time, we knew that the music would be a banger. Miku spent some extra time researching previous game jam entries that were card games, to make sure we were all on the same page as to what made people want to play these games to completion.

When the countdown timer hit 0, our team excitedly hit refresh, only to be met with a syntaxerror. Oops! Refreshing again, we finally found that it was the Tiny Creatures theme. With so many thoughts racing through our minds, we started our meeting about 15 minutes past the theme reveal. We were ready to discuss how we would interpret this theme. The game has only just begun.

The Meeting

After exchanging the usual pleasantries, we headed right into it with a Discord Whiteboard. Although the controls weren’t perfect, we found a way to make it work. We simply needed a place to quickly write down ideas and iterate. We began discussing how our game proposal would work into this, how to interpret the tiny creatures, further ideas, and most importantly: how do we down scope our game so it would be completable in a weekend?

An important reminder to designers everywhere: It’s fun to design in a vacuum, but the most important part of this process was to design with the capabilities of our team. None of our designs, even if it was the most elegant, would mean anything if it wasn’t going to get implemented. After an hour of discussion, refining and cutting ideas, we ended up with four buckets to organize our ideas: - Confirmed Ideas – These ideas are priority #1 on implementation - Stretch – We will get to these ideas if we have enough time after the jam - Idea Pool – Extra ideas that we could add or not add. - Rejected – We simply did not pursue these ideas further.

Discord’s Whiteboard feature was helpful in allowing us to move ideas around, as well as providing some sketching tools so that we could have a bare bones idea of what the game would eventually look like. Using the feature to move ideas around, we were able to tighten the list of what we must do. We got an estimation from our engineer as to when each feature would be complete, and we started to march towards our goal.

We knew we wanted to make an accessible game, playable on mobile and browser, so with that in mind, we got ready for the first 24 hours!

miku_portrait.png

I need ratings

I just realised there was only just over a week left and i haven't gotten close to enough ratings

The Evolution of Tinygotchi Creatures!

It's funny when we look back at the first sketches and early ideas for this game, and then see how the final result turned out! 😄

42c9ebbf-4db3-4cd7-bd3e-e07f18474511.jfif Sem título.png 123312.png

PLAY NOW: https://ldjam.com/events/ludum-dare/56/tinygotchi-creatures

Blobs are back with yet another patch!

Give it a try and let us know what you think!

If you missed our previous "Blob, To the Top!" post, you can read it here: https://ldjam.com/events/ludum-dare/56/blob-to-the-top/blob-to-the-top-is-now-even-blobbier-than-before

Highlights of this patch!

  • New max power indicator, which subtly shows to what extent the blob launcher can be charged. The charging mechanic should be less confusing now. You won't overshoot this time, right? Right?

blobsemnew/emindicator_4.gif

  • Blobs are now properly synchronized with the camera regardless of the frame rate. Developers were crying when it finally started working...

blobsemcamera/emopt.gif

  • Blobs will no longer get stuck in one-way platforms and will fly through them correctly from below. No blobs are left behind!

blobsemplatform/em2_opt.gif

  • Blobs now bounce off bouncy walls properly and in a more predictable manner. Check the wind, adjust the angle, and finally make stylish and mathematically correct blob shots!

blobsembounce/em2_opt.gif

  • ...and even more bugfixes, difficulty adjustments and performance boosts.

The full changelog can be found on the game's page here:

https://ldjam.com/events/ludum-dare/56/blob-to-the-top

Once again, thank you sooo much for all the feedback you left under our little blobby game :heart: Your words gave us the confidence we needed. We are now fully committed to continue working on "Blob, To the Top!", with the goal of releasing it as a full-fledged game in the future! And because you are the first to read this post... tell us what you would like to see in the full game, we will see what we can do :wink:

This is the last patch for "Blob, To the Top!". Now we would like to fully focus on playing your games! We have a very long list of games that we want to try before the voting period ends. We probably won't be able to play everything before time runs out (working on this patch and real life stuff took all of our free time).

First, we want to play all the games from people that commented on our game (just to thank for all the fantastic feedback - we appreciate every little bit of it). But for those of you who made it to the end of this post... link your game below so we will play it first right after that :grin:

And finally, a small bonus for fellow Godot developers. Our work on the blob shader synchronization (so that their position is always correct relative to the camera regardless of the frame rate) has taken our sleep away last weekend. We want to share a small tip for you so you don't have to go through the same thing we did. In short... if you want to get the camera position in the canvas_item shader, don't send it by uniform. Instead, read it directly like so:

varying vec2 v_camera_coords; void vertex() { vec2 camera_pos = vec2(CANVAS_MATRIX[3][0], CANVAS_MATRIX[3][1]); vec2 camera_zoom = vec2(CANVAS_MATRIX[0][0], CANVAS_MATRIX[1][1]); v_camera_coords = -camera_pos / camera_zoom; }

Detecting the Perfect Circle ⭕

One of the interesting problems we faced when programming Bunny Wrangler was adding the ability to determine what the player had outlined. We had decided to only recognize circles as it simplifies the problem a lot, and because we wanted to make it western themed, so it made a lot of sense for a lasso.

gameplay.gif Figure 1: Bunny Wrangler gameplay

I have already somewhat answered this as a comment on the game, but I figured I would post it here too with some more information as people seemed to like it!

Detecting a circle

Perfect circles always have the distance from the center to the outside edge the same length. I figured I could use that fact as a simple test for our case. But what's the best way to figure out the center of our list of segments? The segments in our rope are just some points in space.

I started of taking the average point of all given segments. This worked pretty well in most cases as seen in Figure 2.

averageempoint/emgood.png Figure 2: Average point represented by the big red dot

One big flaw I ran into, is that because of limited frame rate, the average point would shift dramatically based on the player mouse speed. Notice the segment sizes on the left vs right in Figure 3.

averageempoint/embad.png Figure 3: Average point (red dot) shifted all the way left

So instead I wanted to find a way to find the center that doesn't rely on the segment sizes. Eventually I ended up calculating the bounding box of all the segments. This gives a way better center point for our use case. It's the big green dot in Figure 3.

Now we have a good center point, the next step is to figure out if the segments are roughly the same distance away from the center. I'm keeping track of the minimum and maximum distance. In the case of a perfect circle, these values should equal. minimum / maximum = 1

circle_calculation.png Figure 4: Calculating the minimum and maximum distance from the center

In practice, these minimum and maximum values never equal. But we can see how close we are by dividing these values. The result of this can be compared against some threshold that we experimented with. In case of Figure 4, it would be roughly:

minimum = 175 maximum = 210 circleness = 175 / 210 = 0.8333

A higher than 0.8 we consider a Perfect Circle in-game. So the shape in Figure 4 we would consider as one. Because we have a value that approaches 1.0, we can give more points depending on how well a circle was made. Values closer to 1.0 are generally better circles without much variation from the center.

circleemcalculation/emtriangle.png Figure 5: With a big difference between minimum and maximum, the shape is likely not a circle!

minimum = 75 maximum = 258 circleness = 75 / 258 = 0.2907

Anything lower than 0.6 we don't consider circle enough. So it correctly doesn't approve the shape in Figure 5. We couldn't be too strict with the thresholds as it would be frustrating to play. This results sometimes in non-circular shapes being approved, but I think in most cases they take more effort compared to a normal circle.

circle_wrong.gif Figure 6: Wrong shapes being detected

This isn't a perfect solution, but I think it works very well for our case I think. Especially with the huge time pressure, I'm happy I could come up with something that worked so well. How would you have solved this? Are there any other (better) ways I'm not aware of? I'd love to know! :cowboy:

A peek under the hood and some messy concepts

This is how my game looks like in the editor.

Though it's been only a bit more than a week since I last touched it, I probably would need some time to make sense of the project myself :sweat_smile:

When I'm developing I usually go to a weird creative trance and might forget how I implemented some of the stuff. But I guess that's not entirely unheard of the bigger the project-tree is.

Editor1.gif

Events2b.gif

The source is available for any Fusion-developer daring enough to take a look at that horrible mess!


And here's the concepts I made during COMPO when planning the game.

The first one I drew very early on. I planned the character to have an extendable limb as well as a full body, but the floating hand was more practical choice.

IMGem20241005/em031338.jpg

output.gif

kihvi2.gif

srpout_concept.png

Concept_Small.jpg

Hopefully I'll find the time and energy to develop the game further. I didn't have time to finish the "sprouting-mechanic" pictured in the concepts.

The creatures do start sprouting but they don't produce a flower that the player could eat.

The game is also missing a goal/finish-states so as of now it's essentially a playground/sandbox.

concept.png

Had bigger plans for the music-player/HUD so it would affect the gameplay-attributes in different ways.

(and speaking of that; for anyone interested I made an in-depth write-up about audio-production earlier.

hud2.gif

gameplay_b.gif

Keeping my hopes up that there'll be a post-jam version and/or updates at some point.

But don't be holding your breath, tho!

:mapleleaf: :fallenleaf:

The Maze is lit!

bandicam2024-10-1722-39-34-957-ezgif.com-optimize.gif

Hey everyone!

We’re excited to share some new updates for our game, Turn of Taurtarus!

Since the original submission, we’ve made some quality of life improvements. Here’s what’s new:

  • Character Animations: Both forms of Humans and, of course, the Minotaur now have animations to make them just a little bit more alive.

  • Lighting: We’ve introduced a new lighting system to make the maze even more atmospheric. The shadows and flickering torches are mostly for visual purposes only, but we believe, add quite a bit of vibe to the maze crawl.

  • Score Popups: To make your scores easier to understand, we've added the popup clarification of the point formula, helping you understand how to get better outcomes!

ToT_beforeAfter.png

If you haven’t played Turn of Taurtarus yet, now’s the perfect time! We’d love to hear your feedback!

Nebulate.me

The Pasture – Play & Rate!

920x600_Logo.png

Hey guys!

If you haven't already, we would really appreciate it, if you take your time and test our game, leave a comment and maybe some rating. Bunnies are waiting for you :smiley:

Play & rate our game: https://ldjam.com/events/ludum-dare/56/the-pasture

Thank you so much! :hearts:

Best regards @nivbeth, @fis & @johncoffee

Playing your games / Day 9

https://www.twitch.tv/xpmonsterx

Bring more of your cool games :)

Games played count: 54

Last games: 1. https://ldjam.com/events/ludum-dare/56/exter-meh-nator 2. https://ldjam.com/events/ludum-dare/56/crabs-on-the-island 3. https://ldjam.com/events/ludum-dare/56/particle-wars 4. https://ldjam.com/events/ludum-dare/56/swamp-axe 5. https://ldjam.com/events/ludum-dare/56/window-creatures

Meet the Greenies !

The Greenies are some kind of Tinies, the creatures of our game.

As their name implies, they are green, but like SUPER green. They are active ecologists and do all the little actions they can for their planet.

Some say they also have green thumbs :eyes:

Greenies.PNG

You can try Tiny World here

* We're waiting for your feedbacks :smile: *

Score Chasers Game Lineup

Voting for score chasers has ended and the competitors have voted on the 5 games that will be played in the tournament! Here are the 5 games in order of when they will be played.

#1: Mooovement Game (around 4:15pm UTC)

A speedrunning game where you need to slide down slopes and strafe to build up your momentum (aka yeets/hour). The 100% category which involves collecting all optional collectibles currently has a high score of 2:28.602 by the competitor @nertsal while any% and genocide% (not collecting any collectibles) has a high score of 2:18.588 also by nertsal

  • By @markais

| | | | --- | --- | | | |

https://www.youtube.com/watch?v=56E9xwXb4jY

#2: Adelie - When We Were Young (around 4:45pm UTC)

A score based game where you collect fish and drop them into a zone to feed baby penguins. Dropping more fish at the same time (including more than is required) increases the amount of points you get for each subsequent fish. So the first fish in the chain might be worth 10 points while a 6th fish in the chain of what you dropped will be worth 60 points. Hitting obstacles that spawn on the map will make you drop all your fish and also turn them into more obstacles. The record is currently 6640 points held by competitor @kuviman.

  • By @meep

| | | --- | |

#3: Boroporo (around 5:15pm UTC)

A score based game where you control arm movements and whether or not to grab. You need to recover and bring back small creatures to your cave while preventing them from getting eaten by larger creatures that spawn in. The current record is 64, held by competitor and dev of the game, @pomo.

  • By @pomo

| | | | --- | --- | | |

#4: Da Eg Hatcha (around 6:00pm UTC)

A foddian where you need to boost yourself around and touch eggs on the map to hatch them. There is also optional money collectibles you can find and collect. The current record for no money is around 50 seconds and is held by one of the competitors, @meep while the record for all money is around 1 minute 30 seconds held by @osh-studio.

  • By @itsboats

| | | | --- | --- | | | |

#5: Sammich (around 6:30pm UTC)

Score based game where you prevent a sandwich from falling over while collecting as much food onto it as you can. The current record is 7393 held by @jenkinz94.

  • By @brainoid, @ruddiculous, @ruddgasm, @coleslaughter

| | | | --- | --- | | |

Interested?

Score chasers is a tournament where people compete to get high scores in games submitted to this Ludum Dare. This includes things such as completing a game in the lowest amount of time, getting the most score in a game, or other ways a game can be competed in. The tournament is taking place on Saturday, October 19th, 2024 4:00 PM UTC at https://twitch.tv/ategondev.

Qualifications for joining is still open until 24 hours before the tournament starts. In order to qualify for the tournament you need to submit an impressive score in any game submitted to the jam. To submit you can join our discord at https://discord.gg/FhP4jaZ7KS and post a screenshot of your score in the entry submissions channel.

Hope to see you there!

Cellspace: fun with programming cellular automata

Cellspace is a cellular automata based rule system that can be used to create games. I developed it some time ago. My goal for LD56 is to start on a graphical user interface for Cellspace. I tried to "gamify" it by defining some levels you can play around with by defining rules. There are no clear goals, though some levels suggest concrete goals.

I want to develop this into a full fledged graphical IDE in which you can make your own games. This would require at least a level editor and win/lose conditions. Note that it is already possible to control rules using the W,S,A,D keys, using the "playerdir" option.

Cellspace is based on the classical 3x3 cellular automata, but is more complicated, because the output of a cell rule is not just the center cell, but can be any of the cells in the 3x3 grid. This extra complexity makes it possible to specify various games, including a full implementation of Boulderdash. The system handles complex cases meaningfully, such as blocking rules that have output that overlaps with a rule that is already applied, handling competing rules, and randomizing rule execution order to avoid bias. Also, it tries to animate moving sprites smoothly.

>>>Play CellSpace here!<<<

Here are some examples of nice looking rule systems.

Example 1: different animated cells

multiple-moves-optimized2-ezgif-2-f1dc84976e.gif

At the bottom left are moving cell colonies (cyan) that propagate and die with random probability. This can be described with two rules:

CellSpace-example-propagation-propagatedierules.png

rule5 indicates propagating the colony to a neighbouring spot with probability 0.33, while rule6 indicates dieoff with probability 0.2 when a colony already has a neighbouring cell. With the rot4 option, the rules are rotated in all directions, creating four competing rules that are randomly selected, resulting in random propagation in all directions.

At the bottom right are "pacman" (red) cells that move around and propagate randomly. This can be described with two rules:

CellSpace-example-propagation-pacmanrules.png

rule_0 indicates that the "@" (pacman) should move right when there is an empty spot there. Again the rot4 option rotates the rule in all directions. Note there is also an outdir "R" defined, which sets the direction of the new "@" to the right. This means the sprite will face right.

rule_1 again indicates that the "@" should propagate with low probability, that is, create a new "@" in an empty spot without removing the old one.

At the top left are moving cells (blue) that leave trails behind (green). They prefer open space over already laid trails, so that they try to explore new areas. This can be described with 3 rules:

CellSpace-example-propagation-trailrules.png

rule_2 indicates that an "o" (the blue circle) should move left when there's an empty space ("-"), and should leave a trail behind (":"). With the rot4 option, rule is rotated in all directions, resulting in four competing rules that are randomly selected, resulting in random movement.

rule_3 indicates the "o" moving across an already laid trail, but this rule has lower priority (1 instead of 2).

rule_4 indicates that the "o" should spawn (create a new "o" without removing the old one), when there is an empty spot, again with low (1 in 10) probability.

The self-generating maze (yellow Xes) in the middle can be specified with a single rule, given in the next example.

Example 2: Harvey Wallbangers in a self generating maze

Harvey Wallbanger is a robot that can find the exit of any labyrinth (= maze without loops) by just following the leftmost wall.

harveys-in-maze-optimized-ezgif-2-319bc2d392.gif

The Harveys (cyan) are controlled by the following rules:

CellSpace-example-harveywallbanger-rules.png

Rule_3 generates the maze, the other rules govern the Harvey Wallbanger movements. Note it keeps track of the center cell direction via conddir, which specifies that the center cell should face in that direction.

Example 3: self eating maze

selfeatingmaze-ezgif-optimized.gif

The following rules specify the self-eating walls:

CellSpace-example-selfeatingmaze-eatrules.png

Come and grapple with your problems

Thumbnail.png

Artwork 1 resize.png

Screenshot 4.png

Have you tried our game yet? if not you should consider giving it a try! https://ldjam.com/events/ludum-dare/56/small-problems-to-grapple-with

Tiny aliens still not rated enough

Hi guys Just 8 days left and I still can't get enough review =( Can you please play my game (or just give me some rating!) I really want to be ranked this time. I really hope I will be in top1000! ld56gif.gif

https://ldjam.com/events/ludum-dare/56/tiny-aliens

eye.png The triangle alien is waiting for your help!

How we used Blend shapes, Gradient Maps, And Procedural animation in our game!

Hey there here is an art breakdown on how we made some of our art in our silly little game it's the last week so we would love your feedback! https://ldjam.com/events/ludum-dare/56/a-fish-based-game

66749.gif

In our last post for the game jam, we broke down how we made each fish have its individual behaviours. However, I said I would do a post for each additional feature that made our fish more unique, which was the blend shapes and gradient mapping. However, I ended up getting quite busy and never posted that so here it is now!

Here are some of the blend shapes responsible for the different fish shapes in the game most of them are based on some kind of fish like guppies, goldfish, eels, and a few variants of just large finned fish.

Screenshot 2024-10-09 204542.jpg

You can see the different blend shape models, and they're quite exaggerated because the blend shape values end up being fractional when implemented in the engine. The fins are different colours because we used the vertex colour to determine what UV sets the fins and tail would use. We were planning on having more fin varieties, but we ended up not having enough time, partially due to my inexperience in Unreal and in making art.

We wanted to use different pattern textures as well but did not have enough time to make them and test them out I'm also sure that I didn't end up making full use of the gradient mapping technique but it was a solid test!

Capture.PNG

As you can see I used the unreal nodes to just map the greyscale texture onto different points and that ended up mapping all the grey values with the colours, then we created an unreal material instance and would randomize the colours when the fish spawns in and here are the collapsed nodes I ended up using! you can see a lot more and better applications of this technique here https://www.patreon.com/posts/40192059 and https://joyrok.com/2D-Tech-Art-Chronicles-Gradient-Mapping

Capture2.PNG

here is a picture of the collapsed nodes btw!

and here is what they end up looking like in the game with the randomized colours! without it, they would all be just grey!

Capture3.PNG

I will say though it's very difficult to actually see the texture which is a shame because I spent a lot of time on it! oh well, a lesson for next time for sure!

FishemColor/em1.png

raw fish texture if you want to try it out yourself! but it's honestly not a very polished application of gradient mapping definitely needs more tuning!

the next thing I want to break down is the procedural animation which is really really simple and definitely gave some positive results for the time spent!

Capture4.PNG

these are the nodes we used to make the fish move pretty basic the body follows the rotation of the head and using unreals trail bones the body the fins and the rest all trail-making for fairly solid movement animations. Quinton added some wiggle by adding some rotation when the fish moves in the blueprints and it plugs into the rotation variable as you see there!

FishRig.PNG

this is the rig of the fish it ain't pretty and I would have liked to add another joint near the head/neck but didn't do it until it was too late so it's not in the build and so it's not in the post!

Thanks for checking out our post and I really hope you give our game a try!

Our first ever post-jam version is live!

Our game released with performance issues and we missed our chance to make a patch in the first few days. So now we're coming back with a full-fledged post-jam update instead.


67b42.png

Code Bunny is a top-down wave based slasher about literally slaying the bugs in a program. Here's what the first update brings: - Performance fixes. Game no longer slows down to a crawl after playing for a while. - Various bug fixes and QoL improvements. - Character is now much faster: basic movement, dash and movement from regular attacks all received a buff. - Idle energy drain is much slower. Upgrade perks associated with the mechanic were removed completely. - Overclocking upgrade now affects damage of spin and dash attacks. - Visual improvements: environment and HP bar now change color based on the blade power, menu got a new model.

Animation.gif


Play the Post-Jam update here!

# Original LD entry page

Looking for Play and Rate; Will Play and Rate your game!

Hello everyone!

Hope that you are doing well! Only ~7 days left for rating games and I'm currently working on playing and rating others games. Need a little help? Let's streamline the process by scratching my back and I'll scratch yours!

A little about our game:

We made a creature battling game using a move triangle that works like "rock, paper, scissors". Each move a creature has will have a special effect based on whether they win, lose or tie. You have 6 moves to choose from and only 4 you can have equipped at one time. This adds some depth to the moves and playstyles.

matchup.png

KNOWN BUGS: Unfortunately the multiplayer screen will not pass to the second player and will just loop. So single player is the only available option as of right now.

We are open to constructive criticism as we do want to make this a finished game.

Here is the link: https://ldjam.com/events/ludum-dare/56/tiny-lantern

Here is some art! Tiny Lantern.jpg

Post-Jam Version Ready For Testing!

Here is the LD56 version: https://ldjam.com/events/ludum-dare/56/rpigg gif.gif

Add here is the new post-jam version! https://weirdbitgames.itch.io/rpigg

2meg.gif

We’ve finished the update!

Link: https://ldjam.com/events/ludum-dare/56/vortex-of-life

We’ve finished the update! This time, we’ve improved the storyboard display, fixed text overlap and speed, and adjusted the bottle values. We’ve also added the option to skip the opening animation. Since many players understood the interactions but were unsure about the meaning of certain elements, we included explanations in both the opening animation and the game, such as audio guides. These will help you quickly understand what the cards and bottles represent!db221287a0ddcdf39b9db8451039d557.jpegd73f9feba778c1238e0eb3f858775ff7.png

Behind the Scenes of Miku's Minion Madness: The First 24 Hours

Part 1 located here: https://ldjam.com/events/ludum-dare/56/mikus-minion-madness/$406164

Misa here again, from Miku's Minion Madness (https://ldjam.com/events/ludum-dare/56/mikus-minion-madness) with another behind the scenes dev blog!

The First 24 Hours

Our engineer @poco0317 would be the one to start the major implementation. His goal was to get the base game up and running by the end of the night.

For @miku, she opted to contribute with the art. When we homed in on the idea that this would be a game that has a big focus on the cards, she felt eager to take on this challenge. Even though she is professional a game designer by trade, she also had just gone off a fresh streak of drawing Hatsune Miku every day for a year. Drawing little creatures like this shouldn’t be hard! Or so she thought…

She honestly had some difficulty with the initial iteration of the cards - we had no idea what size it should be, nor what the creatures should be based off to make them tiny. Should we think of these cards as basic playing cards, or something more elegant like the cards of Magic: the Gathering or Yu-Gi-Oh?

We simply needed to move forward, and as our engineer shared the first draft of the battlefield, Miku shared with us the first draft of our most basic minion.

first scene.png

first minion.png

If you’ve ever been a fan of VOCALOID, this drawing was based off the derivative of Megurine Luka known as Tako Luka. Long story short, the tiny creatures theme made us think of mascots! This would also be our first placeholder card. Miku made sure to keep in mind that this is a card game, so we need a lot of cards, so all the cards must be relatively simple while also being visibly distinct in the UI.

And that's what gave birth to Miku doodling us all as mascots, starting with poco's t-posing Agent Lemon, and then my Mipaka.

first lemon.png

We knew we wanted to make the game work on mobile, but did we want to go portrait, or landscape? We opted to go portrait, and @jason-woerner would start to work on some effects in the engine so that we could have an indicator of when units would attack.

Eventually, we were able to get the UI in a state that looked like it made sense. We took major inspiration from games like Clash Royale for how we would place our cards and UI elements. Our base UI used a lot of Godot progress meters, but we knew we wanted more diegetic UI, so those would just be placeholders for the prototype. Although our final implementation of it for the jam was not perfect, we wanted to make it feel more organic when you play the game.

first battle.png

We started to consider how the UI would display information to players, thinking about three specific elements: attack, health, and speed. These elements were used to inspire some of the mascot art, as well. At the same time, poco was working on optimizing the game code so it could support a lot of entities at once. Behold, the Miku Army!

first crash.png

Our game was finally coming together, but we needed more cards. Miku was hard at work, mocking up art for the rest of the cards, based on folks working with us on a Miku RPG and the rest of our dev team.

first mockups.png

We were cookin' with gas, but... we were also all exhausted, so it was time to turn in. You'll have to come check back later for the next Behind the Scenes!

miku_portrait.png

"Feeling Lucky? Roll the Dice on 268 Million Monkepok Mashups!" :D

Here’s where things get really wild haha: you’ve got 16 unique creatures, each made up of 4 distinct body parts—head, arms, body, and legs. But that’s just the start! For each of those body parts, you can unlock one of 8 possible colors. The result? A staggering 268,435,456 possible creature combinations and this is just the beginning! 🤯

From fierce to funky, every new creation can be a total surprise :D. Whether you’re building the ultimate battle beast or just concocting the weirdest combo you can dream up, the possibilities are endless!

💡 What’s your craziest combo idea? Dive in, start splicing, and show us your monstrous creations! 💥

https://ldjam.com/events/ludum-dare/56/monkepok

Base_Creature.gif

Discovering Stuart's Home

https://ldjam.com/events/ludum-dare/56/$402995

Since creating our little prototype for Ludum Dare, we have been obsessed with Stuart.

HomeNarrow.gif

Over the last few days, we have been imagining more about his world. Where does he live? What does he do when he is not busy out at sea having the time of his life?

@fooorsh has been having the time of his life putting these imaginations down on paper.

Here are some renditions of his Stuart's cosy abode during the day and night. Maybe these will be able to be experienced in game one day? photoem5805655247492859683/emy.jpg photoem5805655247492859682/emy.jpg

Play the jam version here and let us know what you think! <3

https://ldjam.com/events/ludum-dare/56/$402995

We're Rating Games on Twitch

Join us and we'll rate your game on Stream! https://www.twitch.tv/aaghgames

Color Critters - Post-Mortem

First of all, I'd like to say a massive thank you to everyone who's played and rated Color Critters so far. I'm running out of time to get to 20 ratings, so if you haven't played it yet, please do! I promise, as ever, to play and rate the games of everyone who leaves a review!

For now, though, it is once again time to take a look back at Color Critters' development - the high points, the low points, and what comes next for it.

What Went Well

ld56_9.gif

  • With my last entry having been such a tough act to follow, I went back to focusing on gameplay over storytelling this time round, and it's worked a treat, with most reviewers saying how enjoyable they found the gameplay and nobody seeming to mind the non-existent plot.
  • This is my first Ludum Dare since being diagnosed with ADHD. Despite my continuing struggles with the condition, and other medical issues (more on those later), I was able to comfortably finish the game within the compo window, with the exact number of levels I wanted and even adding in mechanics that I hadn't originally planned. Judging from the reviews, I got the difficulty progression spot-on as well. It helped that the game was coded in a way that allowed me to easily shuffle the level order around.
  • Fearing that the gameplay might feel slow or arduous, I tried to streamline the gameplay experience as much as possible to avoid slowing it down further, by stripping out things like menus, "level complete/failed" messages, level transitions, and so on. Again, I feel it's worked, as I've received only one or two minor complaints along those lines; for the most part, people seem to be breezing through the game without it feeling like too much of a slog.

What Went Badly

ld56_11.gif

  • I have been, to put it mildly, suffering from various chronic aches and pains ever since the second day of the jam, which forced me to wrap things up early (more on that later). It wasn't as bad as LD45, where I was throwing up at my desk, but unlike LD45 where I was fine the next day, that chronic pain has persisted ever since, and for the past week it's been compounded by a nasty cold. All this has meant I haven't been able to put as much time and effort as I would have liked into advertising my game or playing other people's, and my chances of hitting the 20-rating mark are in jeopardy. There's not much I could have done about this, I suppose, but it's still not ideal.
  • Each critter was intended to have an active ability, activated by pressing Z. In the end I couldn't come up with any before the compo ended, and they were left with just their passive immunities. As well as messing up the control scheme, since Z was reserved then never actually used, this meant the critters didn't feel as "unique" as they should have done and significantly reduced the game's intended complexity, leaving me struggling to scrape together enough puzzles to hit my target number of 15.
  • I had plenty of time left to compose some music for the game, but again, I couldn't come up with anything and just left it. There's at least a rich selection of sound effects to make up for it, but this is still my first entry in quite a while that feels musically lacking.

What Comes Next

ld56_8.png

The general consensus regarding Color Critters seems to be "this is great, but it has the potential to be so much more". I agree. Therefore, my intention at this time - although it's not set in stone - is to expand Color Critters into a full-sized game. I'm undecided as to whether it will be a free release on Newgrounds, or a paid release on Steam and itch.io, but the following is definitely planned for inclusion:

  • Many more levels (I'm thinking 60 is a good number), grouped into sections
  • Active abilities. Yowler will be able to attract and repel metal crates, which are too heavy to be pushed; I envisage Roart and Blute being able to respectively melt and freeze certain objects but I'm not 100% certain how that's going to work yet
  • More level mechanics/gimmicks (and a complete overhaul of the game's code to let me add them more easily, as the compo version's code is a clusterf*ck).
  • A save system
  • Music
  • Some sort of color-blind mode - while nobody has requested one, I expect the number of color-coded elements in the game will make it difficult to play for anyone with color blindness

I will try to post dev updates to my social media profiles, which you can find linked in my LD profile. Again, though, I don't know when (or even if) this full-size version will be released, and I have various other projects in the pipeline at present, so please bear with me!

That's all for now. My focus for now will be on getting to the magic 20-rating mark, and once that's done I can start working on the full-size Color Critters. It'd be good if I could get it finished and out of the way as soon as possible so I can get back to working on Prism Warriors, which is lagging well behind where it should be.

Well done to everyone who managed to get their entries done on time, and I wish you all the best of luck for when the ratings come out!

Version 1.25 is out!! NOW LESS BORING!!

45yw4256h.png

Desktop-2024.10.07---13.48.50.01.gif

9.png

11111111111.png

There were few complaints in the feedback; one of them was that the game could feel a bit slow. To address this, I’ve added new, more practical controls, and more control improvements are on the way. I’ve also made some tweaks to difficulty and balance, though I’m unsure if that’s a good thing, it might affect the game's lighthearted feel, which is one of its charms. I might change it in the future. I also made a variety of small adjustments.

1.25 - The sound when enemy bullets hit the monster was changed

1.25 - You can now hold the left mouse button to pick multiple pixels at once

1.25 - You can now use the scroll wheel to reposition black pixels

1.25 - There is now a pixel counter on the screen showing how many pixels your monster currently has

1.25 - You now receive one black pixel for every four colorful pixels placed

1.25 - Black pixels are destroyed when they hit and destroy enemies

1.25 - You can now hold the left mouse button to place multiple pixels at once on your monster

1.25 - Changed cursor appearance

1.25 - Your monster loses pixels when they come into contact with enemies

This is a windows only game:

Version 1.25: NOW LESS BORING!! ~

Compo Version ~ Itch.io ~ Game Page ~

Want to learn 2D shaping with shaders?

We have good news for you!

Recently in Blob, to The Top! we added a subtle circular indicator that shows max power while charging a shoot. We mentioned it in our latest update post (check it out here; yes it has gifs :D)

This indicator was made using shaders and here is a quick step by step guide how we made it.

To start.. create a new Godot Sprite2D, put there a default icon.svg texture and create a new shader material with a code (not a shader graph!). And now it's time for code!

1. First we need a function to draw a simple circle:

c float circle(float radius, vec2 uv) { float len = length(uv); return len < radius ? 1.0 : 0.0; } We can replace ternary operator with built-in step function to simplify it, like that: c float circle(float radius, vec2 uv) { float len = length(uv); return step(len, radius); }

2. Now let's make a ring function to draw a ring.

The plan is simple.. we will draw 2 circles and remove inner circle from outer circle. To simplify some math later, instead of just subtraction operation we will use multiplication instead. c float ring(float radius, float width, vec2 uv) { float outer_circle = circle(radius, uv); float inner_circle = 1.0 - circle(radius - width, uv); return outer_circle * inner_circle; } We can optimize it a little bit by using code from the circle function directly. We can also invert result of step function just by swapping arguments inside.

c float ring(float radius, float width, vec2 uv) { float len = length(uv); float outer_circle = step(len, radius); float inner_circle = step(radius - width, len); return outer_circle * inner_circle; }

Time to test this ring function!

frament_1.png

Well.. it works! But you can see it's not very practical. We have to use normalized values and ring isn't even centered. Let's fix that by modifying UV in the vertex function.

Also for the future use, we will copy value of COLOR variable from the vertex function. It's a Godot specific feature which allows for using value of modulate property (the one from the node) directly inside a shader code within the fragment function. To "transport" value from the vertex function to fragment function we will define a special varying variable.

So in the end our vertex function will look like this: ```c varying vec4 modulate;

void vertex() { // Copy value of modulate property to new variable modulate = COLOR;

// Read a node scale from built-in matrix
vec2 node_scale = vec2(MODEL_MATRIX[0][0], MODEL_MATRIX[1][1]);

// Read texture size used in the Sprite2D node (in this case we used default 128x128 Godot icon)
vec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // = 128x128

// Let's change UV from range 0..1 to -64..64.
UV = (UV * 2.0 - 1.0) * tex_size * node_scale * 0.5; //0..1 -> -1..1 -> -64..64

} ```

And now we can finally use pixels as units! And also shader reacts to modulate property and circle is finally centered.

frament_2.png

3. Now it's time to make dashed ring instead of solid one.

First, to make a rotating dashed ring we will need few utility functions:

  • A. get_angle to get angle of the vector in range -PI to PI.
  • B. rotate which will return 2d transformation matrix to rotate any vector by specific angle.

3A. Let's start with get_angle function.

The proper formula would be like this: c float get_angle(vec2 vec) { vec2 base = vec2(1.0, 0.0); // Base vector from which we will calculate angle to `vec` float a = dot(vec, base); float b = determinant(mat2(vec, base)); return atan(a, b); } This might look like a dark magic but let's simplify some things. We can replace dot and determinant built-in functions with just plane formulas:

c float get_angle(vec2 vec) { vec2 base = vec2(1.0, 0.0); float a = vec.x * base.x + vec.y * base.y; float b = vec.x * base.y - vec.y * base.x; return atan(a, b); }

Isn't it more clear now? But that's not the end. We can replace base.x and base.y with numbers and in the end we will get this simple function:

c float get_angle(vec2 vec) { return atan(vec.x, -vec.y); }

Now when it's finally done..

3B. Let's write a rotate function!

This will return a basic rotation matrix. The theory works like this: if we will multiply any vector by such matrix it will be rotated by a specific angle.. simple enough, right? :D

The final rotate function will look like this: c mat2 rotate(float angle) { float s = sin(angle); float c = cos(angle); return mat2(vec2(c,-s),vec2(s,c)); } Now it's the hardest part.

4. Time to make holes in the ring to create a dashed ring.

The idea is simple: 1. Split space into N*2 squared pizza fragments. 2. Make only each odd fragment visible. 3. Let's combine our ring with pizza.

```c float pizza(float radius, int n, vec2 uv) { float deltaangle = TAU / (float(n) * 2.0); float angle = getangle(uv); float i = floor(angle / delta_angle); return float(int(i) % 2); }

float dashedring(float radius, float width, int n, vec2 uv) { float pizzashape = pizza(radius, n, uv); float ringshape = ring(radius, width, uv); return ringshape * pizzashape; } And now to add rotation we can just rotate `UV` by a specific angle using `rotate` function we already prepared. c float dashedring(float radius, float width, int n, float rotation, vec2 uv) { uv *= rotate(rotation); float pizzashape = pizza(radius, n, uv); float ringshape = ring(radius, width, uv); return ringshape * pizzashape; } ```

Let's test this thing!

fragment_3.gif

We are almost there. The only thing left is to add fading. We did it by combining two fades like so:

fragment_4.png

Aaand that's it!

I hope someone will find this helpful :D

Now you can check out the final result in our game here!

If you are interested more in our game, we have good news for you.

After such an amazing and positive feedback (again, thank you sooo much for that :heart:), we have decided to expand the game and release it as a full-fledged title! If there is something you would like to see in the final game, share your thoughts/ideas in the feedback section or under this post. We will see what we can do :grin: