Ludum Dare 52 January 6–9, 2023

Would you like to shred zombies in slow-mo?

I passed the 50 ratings and I cannot thank you enough for this. To those who didn't try my game yet, I would love to hear your feedbacks because I plan to keep developing this game for a market release: https://ldjam.com/events/ludum-dare/52/shred-a-bunch

game bg3_2-min.png 5603d.gif

Goblo OST

Here is the OST of our game.

https://www.youtube.com/watch?v=2mOdCzvXoLg

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

Tell me about mindless stupid fun kind of action games

More minimal the control scheme is, less there is features the better. Fast action, no tutorials, nothing to understand, just stupid fun.

I left some examples of what I'm after, first is my own game:

https://ldjam.com/events/ludum-dare/52/elonkorjuu-the-life-harvesting-game

https://ldjam.com/events/ludum-dare/52/shred-a-bunch

https://ldjam.com/events/ludum-dare/52/turbo-trash-truck

Help Harvey Harvest in Harveyster!

Harveyster is a hack and slash where you control Harvey the pumpkin scarecrow in his duties to keep the crows at bay before the harvest… the only problem is Harvey can get a little over zealous, so try not to cut the crops too much before they grow!

Let us know your highscores in the comments! :jackolantern:

Play Now!

Combat.gif

Harvest.gif

You asked for it, you got it

You complained about the game difficulty and wanted guide lines to make it easier to hit the notes - you got it!

Try the new updated game here (The polished version!)

harvestscreen.png

The third LD Score Chasers Tournament will be on January 21, 2023 at 17:00 GMT!

This is a tournament to get the high scores in games that were be submitted for LD 52! The first and second one were a lot of fun and we are excited to return for our third one. If you are interested in participating please join our discord and read the rules, the event will be live streamed somewhere to be decided at a later date! https://discord.gg/FhP4jaZ7KS

LDScoreChasers.png

They don't like the moonlight!

Since our animations in the game are quite small I wanted to share it this way.

ad-ghostsheep.gif

Thank you so much for your feedback so far! Each time we join ludum dare we learn something new about how to focus and what is more important than other things.

This time I can definitely say that omitting the sound effects wasn't a good idea. I guess next time we will start with focusing on a MVP and extend afterwards if there is time left. Managing and planning what parts should be done first is the hardest part in my opinion.

If you haven't tried yet - please check out our game Moonlight!

Fruit Fall - The Techy Stuff

First off, an apology: I've been suffering from debilitating migraines for the past few days and haven't been able to do much in the way of game-rating. Sorry about that. I'm feeling better today, plus it's the weekend, so I should have time to catch up on my backlog.

For now, though, it's time for my traditional post delving under the hood of my entry, and the tricks and techniques that went into making it. If you haven't played Fruit Fall already, please do! I'd like to make it to 20 reviews sooner rather than later.


It's a small game after all...

Fruit Fall is the smallest game I've ever made for Ludum Dare, in terms of both code size (8.9 KB) and cartridge size (42.7 KB). I didn't do anything in particular to make it this small -- I could probably crunch the code down significantly if I felt like it. All I did was keep the concept as simple as possible. It also helps that there's no storyline, and hence, no dialogue to bloat the code size.

So there's not much under the hood for me to analyse, but the hood itself is nicely polished:

The visuals

With less time spent on coding, I was able to spend more time on graphics. Carrying on from LD51, I tried to experiment with larger, more detailed sprites. I'm quite proud of the results:

logo.png

This is the first Ludum Dare game where I've had to adjust TIC-80's default colour palette, as the apples were the same colour as the tree and were blending into it. I had two shades of blue that I wasn't using, so I swapped them for two shades of brown, which made the tree look much nicer and also allowed me to shade the inside of the wicker basket. I also tweaked a couple of the other colours just to make them pop a little bit more.

I couldn't think of a way to distinguish rotten fruit from good fruit, so eventually I just made the rotten fruit grey. Then I thought, "wait, colour-blind people might not be able to tell the difference!" Since I had plenty of time, I was able to create a "Colour-Blind Mode" option where the rotten fruit have a dark splodge on them, making them more obvious:

fruit.png

One final thing of note is the dithering pattern for the sky, which was based on the first level of Sonic Triple Trouble:

stt.png

The bouncing

Now, this is simple enough in theory: take the distance between the centre of the fruit and the centre of the trampoline, multiply it, and use that as the angle of the fruit's new trajectory. Simple -- wait, why are they bouncing at random angles?!

step1.gif

You see, when programming, I always calculate angles in degrees, because they're easier for me to work with. But TIC-80 doesn't use degrees, it uses radians! 1 degree of difference isn't much, but 1 radian of difference is a lot, hence the seemingly random angles. So you gotta throw a math.rad() in there and...

step2.gif

Much better! But it still feels... off somehow. The fruit feel weightless, and are hard to aim. So let's reduce their momentum by 20% each time they hit the trampoline.

step3.gif

Perfect! It's still something that takes a bit of practice, but the momentum loss makes it easier to aim. On a related note:

Difficulty

My previous arcade-style entries have been endless games, where you keep going until you die, but I struggled with getting the difficulty to escalate properly. For Fruit Fall, I opted to take a different approach and broke it up into levels, with the difficulty scaling each time you beat you a level. To be exact:

  • The target score increases by 20% up until Level 5, then by 10% for each subsequent level
  • The percentage of rotten fruit starts at 0% and rises by 3% each level, maxing out at 24% from Level 9 onwards
  • The rate at which fruit spawn increases starting at Level 3, and maxes out at Level 20

In theory, the game just keeps going forever, but in practice it becomes impossible somewhere around Level 10. I haven't had any complaints about the difficulty, so I think I did a good job.

One other comment regarding the difficulty is that the collision detection for the basket and bin is deliberately naive: fruit can pass through the sides as well as falling in from above. This gives you more of a target to aim at and makes the game a bit less frustrating than it might be otherwise.


There's a couple of other things I wanted to mention, but I think this post has gone on long enough. I'm gonna get on with the game-rating, and I'll be back next weekend to do the post-mortem. In the meantime, if there’s anything more you’d like to know about the game, or its creative process, feel free to ask in the comments!

Harvest Timing: Post-Mortem

It's taking me a little longer than usual to hit 20 ratings, but I've had enough time and feedback to reflect on how things went with Harvest Timing.

title.png

Preparation

In the lead up to the last few Ludum Dare weekends, I've tried to jot down at least one idea for each theme from the final round of voting, and to do get a basic Godot template ready. I've got two kids under 3 and only work on my games while they're sleeping, so I have to make every minute count! :laughing:

I didn't do any preparation for this event, which I really regret. I hadn't planned to enter at all, and decided to join at the last minute when I saw that the theme was "Harvest". My wife is a huge fan of Harvest Moon, and I figured this would be a good opportunity to try and get a basic farm-sim engine up and running.

Modularity == Reuse

Six months ago I built a Godot plugin for input prompts, mainly so that I could learn how Godot's plugin system works. At the time, I thought the plugin was pretty cool: ActionPrompt nodes are associated with an action from the Input Map, automatically show the right key or gamepad button, and fire a signal when the right input is detected.

This was the first game I've built using those nodes, and now I think the plugin is really cool :sunglasses:. It took me about 5 minutes to build the game's Control screen:

controls.png

My experience has convinced me to start converting more of the systems I use regularly into modular plugins, rather than trying to cram everything into one (bloated) template.

I imagine I'll be working on breaking out my Player and StateMachine code, next; I wasted about an hour trying to get the tile-based movement to work the way I wanted, and I'm still not entirely happy with it.

Humor

I normally aim to score high in "Humor", but I don't think I left myself enough room. I managed to fit in some truly terrible puns, but only left myself room for 2-3 word jokes. In hindsight, I should have provided some more opportunities around the farm to interact with objects, rather than populating it solely with objects tied to the game mechanics.

20230108.png

Difficulty and Play-testing

I knew if I just made a Harvest Moon clone I'd score poorly, so I thought I'd ramp up the difficulty a little bit by making the plants hard to care for. This is a mechanic I experimented with before in a previous Ludum Dare, but I hoped I could do it better this time. I'm not sure if I succeeded :sweat_smile:

I'm proud of the fact that each plant has its own watering schedule, and I think the idea has legs. People have played for a lot longer than I expected, suggesting that requiring some thought be put into caring for the plants is keeping people engaged.

But I clearly didn't spend long enough on the instructions, or thinking through how confusing certain number sequences could be. There's not enough feedback to the player, and the only way to learn the rules of the game is through trial and error. In short, I made the game far too hard. I asked my wife to play-test things right before submission to make sure there weren't any game-breaking bugs, but I should have asked for some earlier feedback on whether the number sequences made any sense. Lesson learnt. :pensive:

Thanks for reading, and thanks to everybody who has already taken the time to rate and leave feedback. Back to rating!

Brain Crops: A simplified date game

Brain Crops Still 2.png

I'm playing and rating!

Harvest your best words for Tim's first date

You are a hopeful idea floating on Tim's brain, he has been through a lot so a first date although exciting it can easily be awkward. Your goal is to harvest his best words so he can answer to his date.

* How to Play *

The game is about movement and dashing. You just need to touch the Idea Bulb to release a word, then grab the word and pu it in the correct location.

Avoid Green Toxic Thought and Loose Dark Memories.

*Play and Rate: https://ldjam.com/events/ludum-dare/52/brain-crops *

Embedding Unity WebGL directly in your LDJam game page

I don't know how long it's been a feature, but it looks like you can now embed WebGL games directly in the LDJam page instead of just hosting it on something like itch.io. If you happen to use Unity and WebGL, here's how you do it:

  • File > Build Setting... > Player Settings...
  • Resolution and Presentation > Resolution > Default Canvas Width = 948
  • Resolution and Presentation > Resolution > Default Canvas Height = 489
  • Publishing Settings > Data Caching = false
  • Publishing Settings > Compression Format = Disabled
  • Create an archive of your WebGL build by selecting everything in it (Build, index.html, StreamingAssets, and TemplateData) and compressing that (ie., don't just compress the folder that contains these things because "index.html" needs to be at the top-level of the archive).
  • Go to the "Embed HTML5" of your game page and hit "Upload .zip file" to upload that archive.
  • Save, wait a few minutes for it to go live, and play the game directly on your game page!

The resolution comes from the fact that the LDJam page allocates a 948x533 canvas for the WebGL. If you use the default WebGL template in Unity, there's a 44 pixel height bar at the bottom for the logos and the full-screen button so that gives us 533 - 44 = 489 height for the game itself.

The Data Caching disabling is recommended by the LDJam Embedding Guide. They also recommend setting the compression to Brotli, but I've seen my game hang while trying to load and this YouTube video recommended disabling compression to fix that.

To see an example of this working, check out my game.

A look at turnout for each LD since the pandemic

Number of entries in Ludum Dare since 2019

The numbers

You might already know that LD46 was the biggest event in Ludum Dare history, with a whopping 4959 entries mostly attributed to the lockdowns in place in April 2020. In fact, that number dropped quite a bit in October and went back up in April 2021, when at least part of the world was staying at home again.

At any rate, the popularity of LD was at its highest during that time. In fact that's when I started participating regularly as well. However, the trend seems to have run its course, with low turnout for LD51 (2421 entries) and particularly the ongoing event (1601 entries).

Of course, LD52 had a few things working against it: the new January date which is still a novelty, a lack of communication both when it was announced and leading into the weekend (partly because Mike was sick), and probably some amount of holiday hangover. There were also far fewer theme suggestions than usual this time, which was a telltale sign.

Smaller LDs?

The turnout is now lower than before the pandemic and even a few years before that. Setting aside the January issues, I wonder if this shows some amount of burnout among regular participants? There is likely a number of people who joined almost every LD since 2020 and now need a little break. It's certainly true for me, as I skipped LD51 because the previous one had made me unusually tired.

I don't mind smaller events at all, in fact it's probably a little better for rankings if there are fewer games fighting for the same decimal. While I'm not the competitive type, the jam experience can be exhausting and it's certainly rewarding to get a sub-100 ranking in one category.

Anyway, I made this chart for myself and thought it might be of interest to others. What are your takeaways?

Any Linux Games out there for LD52?

Usually I play on Windows, but I also use the Windows Subsystem for Linux. I am interested to know if anyone has ported their game to Linux. I'm wanting to see if I can run it on the WSL in Windows 11.

Go ahead and share the links if you know of any!

Thanks!

The Harvest Official OST

https://ldjam.com/events/ludum-dare/52/the-harvest

We received a lot of compliments about the soundtrack to our Game Boy game, The Harvest. So here is a remastered recording of the music for you all to enjoy!

https://youtu.be/JNVL5Er-xzU

Note: This is an actual game that runs on the 8-bit Nintendo Game Boy handheld!

New! Possessed ducks fight back!

Well, not new-new.

It was also in the submitted version, but you could not see it because of a bug with the collision boxes.

Now after our team did some bug hunting, we gave the ducks a fair chance!

And if read about our chaotic dev story, you'll understand.

ezgif-4-780f9cf8f9.gif

Come and tell us how it turned out: Play Hermesh!

How I convinced my non-gamedev brother to join Ludum Dare 52

Hi everyone! I'd like to share my experience with trying to convince my brother to try out game development, and jumping into the discipline by joining this Ludum Dare 52. If you haven't yet, do check out his game Dice Wheat Me.

I'd also like to thank those who've played the game! Your feedback will surely help my brother further develop his game if he wish to, and will serve as motivation for him.

https://neilmarkcorre.wordpress.com/2023/01/15/how-i-inducted-my-brother-into-game-development-and-his-first-ever-game-jam/

Here's a screenshot of the game:

5500e.png 55010.png