Welcome to Ludum Dare 53!
Hey folks! It's April and that means it's time for Ludum Dare!
Final Round Theme Voting

Final Round Theme Voting has kicked off! Cast your vote here:
https://ldjam.com/events/ludum-dare/53/theme
Due to an unfortunate weekend I had, the initial Theme Voting round kicked off rather late, but I took the opportunity to try something new: one BIG theme voting round, instead of 3 smaller rounds. Initial response has been positive (Twitter, Mastodon). While I do prefer the hype build-up we get by releasing the theme lists over 3 days, one big round might have some practical advantages:
- We can release it "bright and early" Monday morning instead of at weird-o-clock Sunday.
- There no need to explain the previous pages (tabs) of themes.
- There's no risk of the "day one theme list advantage" phenomenon that folks worry about.
The post-sluaghter theme list has been getting smaller over the years. It began with about 60 themes (20 per round), to 48 in recent years (16 per round). For this event I further reduced the count to about 40, to not overwhelm folks. My goal was 36, but IMO there were some gems near the bottom that I wanted to get their fair shake. I'm not yet sure which way this will go, but it's given me a lot to think about.
(PS: Thanks @shreemp, calling it "Mike's Top 40" made me chuckle :laughing:)
The plan coming out of January's experimental "New Years Resolution" event was to dive in and rebuild the Theme Voting system ahead of April, but something more sinister pulled me away.
Hello ~~darkness~~ spam my old friend
Over the past few months we've seen an unbelievable uptick in spam. This is a huge ongoing problem still, but thanks to some code changes and some help from my friends at Akamai, we've been able to fight back.
The most regrettable change is that we had to limit who appears on the ldjam.com homepage: everyone with previously rated Ludum Dare games. It wasn't enough to go with "published" creators (such as Unfinished and Extra creators), as there's no simple way to tell them apart from the spammers. :cry:
I'll be working to bring more creators into the home feed while you all prep for the event and build your games. :thumbsup:
I need to give a huge shout-out (:heart:) to the community here. It saddened me to see many of you trying and failing to be active while the spam flowed--I'll never look at John Wick the same way. But once the feed was clean, many of you came back and immediately starting having conversations again, which was humbling to see. :blush:
You're the reason I keep going, all of you that care so much of about what we do. I can't thank you all enough. :two_hearts:
The recent changes and fragmentation of the developer community on Twitter has given me a lot to think about. I was well aware we depended too much on Twitter, but I didn't appreciate that many of you might want to make Ludum Dare your home community, like how many of us did with online forums decades ago. Making connections with "your people", like-minded individuals with similar interests is incredibly valuable. Seeing the homepage filled with event and game making discussion after the torrent of spam reminded me that folks are here for that too. :handshake:
It's been ~20 years since Ludum Dare was a forum, and I wonder if that's something we should strive to be again? :thinking:
Things get nasty
Back on the subject of spam, a rather scary thing that has been happening recently is that Google has been getting DMCA takedown requests for the spam pages on our website.

When the first DMCA notice showed up, I immediately disabled links posted by "untrusted" users. If you see <link /> instead of actual links in your published posts and comments, that means the website doesn't (currently) trust you. You'll see these in the raw feed (and possibly in previews, until I fix a bug, oops :sweat_smile:).
Unfortunately they adapted, and I'm still getting take-down notices. :cry:

I was honestly shocked to see that our pages were suddenly indexed by Google, given that our website is generated by JavaScript. That must have been a fairly recent change, or one I hadn't noticed until we were overwhelmed by movie piracy spam.

We're setting records in Google search for all the wrong reasons. :face_palm:
Putting an end to the problem
There's a few sides to the spam problem:
- our value as a target
- the spam itself
- that spammers can sign-up in the first place

Spam is a long game. The users above account for about 5% of the accounts I blacklisted by hand. These few were from this month, but the vast majority are older than that. Some of these names are obviously spammers, but others not so much. We can't infer from name alone if someone will be trouble or not.
Until someone misbehaves, we don't know they are a spammer.
Luckily our current spammers are obvious to you and I, but detecting them with code is non-trivial.
I'm frustrated that I've had to switch away from improving the event to this, but I guess this is what it's like to run an online service these days.
Here's a few things I'm working on:
Improving our SEO to control our search rank
Being a well established website makes us a valuable target to improve the search ranking of others. The crazy part is that we do next to nothing for SEO, yet we're still big enough for the spammers to care. :shrug:
The DMCA notices were a wake-up call for me. Our lack of SEO effort made us easy to manipulate it. It's ironic that we're going to have to take steps to improve our search rank to fight spam, but here we are.
The last thing I need is John Wick breathing down my neck. :wink: :gun:

Restricting sign-ups, invitation codes
While I've had reCAPTCHA suggested to me a few times, I'm not confident it'll make much of a difference, especially down the road as AI/machine learning becomes so much more available.
Starting shortly after Ludum Dare 53, sign-ups for the website will be closed until a few weeks before the next event (mid September). To bypass this, you can use an invitation code. Invitation codes can be generated by established users.
I'd like the bar for becoming an "established" user to be really low. Something like, as soon as you get some posts/comments approved, that's enough for you to start inviting your friends. Educators and jam-site operators can reach-out to be whitelisted, but my intention is to make the bar to become "established" extremely low.
Consensus moderation
Instead of selecting and vetting individual moderators, every user with a published and scored game is automatically part of the moderator consensus group. Actions such a flagging spammers and approving new users will require consensus from multiple users.
Exact amounts we'll figure out as we go, but it's likely that after 2-3 posts/comments get flagged, those accounts will be locked.
We are lucky that spammers haven't begun compromising existing user accounts, but that's something we'll have to be careful of.
Fighting fire with fire
I honestly never had much interest in machine learning, but due to the recent AI explosion, it seemed important that I become an "overnight expert". :wink:
Ha, I'm not that good yet, but the past several weeks I have been crash coursing myself in machine learning everything, from tooling to how it even works, to upgrading and searching for cheapest ways to start taking advantage of and training natural language models.
I had to learn Python too, which is something I've avoided for the past 20 years. :sweat_smile: :snake:
Machine learning isn't my forte, so no I wont be handing moderation duties over to GPT4. That said I will be exploring ways of making things easier. As an example, we could feed comments into an existing language detection model. A somewhat lazy assumption we could make is that non-English (or non-Germanic) posts and comments are suspicious, and should be reviewed by the moderation consensus group.
I don't want to set the bar too high, but I know we'd all rather spend our time making things. So once we're sure we can trust it, I'd like to get the monotonous tasks off everyone's plate.
The road ahead
I've gone on long enough, so I'm going to stop myself here.
I'm frustrated that I need to focus on so much that has nothing to do with the event, but we need the website to organize and share. It makes me appreciate the days when our only problem was that the servers couldn't handle the load. :laughing:
Anyway, thanks for coming out and best of luck this weekend!