seurimas

LD 44

I'm in!

Gearing up for Ludum Dare 44! This is probably my 10th LD or so, and I'm hoping to do better on a few things: * Properly scope. Avoid multi-screen concepts, like the "Running out of space" I did last year. * Achieve "playable" by noon Saturday. Core loop should be working, more or less! * Achieve "winnable" by noon Sunday. Game loop should be working. * Get sound and music in! I hate when I miss these.

3.5 Hour Mark

I'm about 80 minutes behind my intended Day 1 schedule. I've just gotten some top down movement working. Next is some hitbox and collision work. Hopefully, I can hit a virtual wall soon, instead of just a figurative one.

Ludum Dare 46

LD46 Hype

How's everyone feeling? I'm pretty hyped. I've lost count of how many times I've done this, but I'll be bringing a few new tools this time: * Not so new, but I'm using Rust! I'm much better practiced this time around and hopefully won't lose hours to silly lifetime issues. * n2physics! I've sorted out some nice integration with Amethyst that'll let me hit the ground running with physics. I feel like I'm finally going to be on even footing with 90% of people using Unity and happily throwing collision objects willy nill. * prefabs? Amethyst is very prefab-centric and, hopefully, they might prove useful for me this time.

Anyhow, I know lots of folks are quarantined in one degree or another this week so I'll just add: stay safe, stay inside, and have a great Ludum Dare!

Happy Boy

Happy Boy.png Look at this happy boy, running around, colliding with things without bugs. You'd think this took more than 20 minutes to set up! Pretty pleased I went with a pre-built physics engine this time, rather than rolling my own everything!!

It Takes a Village

It Takes a Village.png In keeping with not rolling everything on my own, this uses Tiled and .tmx files. I did have to roll up an asset loader trait, but piggy-backed on the tiled-rs crate to do most of the processing.

There was some silliness with this (expected) and I ended up about an hour behind schedule. I'll hopefully make it up tomorrow, or have to reevaluate my scope later tomorrow.

Ludum Dare 53

Signs of Corruption - Web Build!

Cover.png

Signs of corruption has a web build now! I'm very proud of it. The game turned out a bit complex, needing an explainer on the game page, but the whole package is my best entry ever, I think.

Please check it out, if you want to dig in to an ambitious multiplayer strategy game!

Ludum Dare 55

Impractical Encoding: Futhark Runes ᚨᚡᛏᛞᛖᛒᚢ

I just wanted to share a deep dive into my copy-pastable runes feature that I've used in a couple games now. It's on my blog, here: https://write.as/comments-and-code/impractical-ish-encoding-intro-and-futhark-runes

Ludum Dare 56

Plans!

Going into Ludum Dare, I like to make some loose plans. So far, I have three loose ideas I might implement: * Autosave - I want to create a very dynamic world which autosaves frequently, so the player can hop in and out seamlessly. Will this fit the theme? Maybe. If not... * Cursed words - Much like my Futhark Encoding that I've used a few times, I really like the idea of sharing c̷͎̈́u̶̠͌ȑ̷͙ś̴̜ê̷̤ḑ̷͗ text as a game mechanic. Will the theme provide? We shall see. But maybe... * Penrose tiling - Turns out it might be pretty easy to generate an infinite grid of penrose tiling. Will this look cooler than a square/isometric/hex grid system? Probably! Can I fit it into a game I make in 48 hours? Maybe!

Some of these are aesthetic desires that feel great for a game, while others are just things I want to code. What are your plans?

C͉̞͂‍h͙̺̐‍ä̝͖‍r̀̄̊‍l̗ͨ͐‍e̛͍ͨ‍ś̕.

My Compo entry is pretty unfinished, though the (simplified) core loop is mostly there. This is not a post about "please play my game" because I don't think anyone should, but...

I've shared my silly encoding journey before, with Futhark Encoding (used in a couple previous Compo entries). This time, I used a different method, which I haven't written up yet, which uses diacritics to bake data into text. You can copy a bit of text to your clipboard, my game will read it, and then it will use that in some way! It's a cool bit of technical magic that I'm very proud of, even if the whole game wasn't everything I was hoping for this time.

Anyhow, you can summon C͉̞͂‍h͙̺̐‍ä̝͖‍r̀̄̊‍l̗ͨ͐‍e̛͍ͨ‍ś̕ if you want. image.png Just copy his name, start my game, and light the candles at the doorway at the top of the desk. I'd love to know if people want a write-up of the cursed encoding algorithm, too! The code is public here, but it can be a bit dense for people who aren't Rust-literate.

Ludum Dare 57

Memory Lane - 10 Years of Ludum Dare

Who else is excited for Ludum Dare 57!? I know I am. I've lost count of exactly how many times I've done this, but I can see at least 15 Ludum Dare repositories in my GitHub. Looking back, I am incredibly proud of what I've done in that time.

The first game I did was probably lost to time, but the first I can find was Ludum Dare 34. That was "Bouncy Blob" - a flappy-bird inspired game about bouncing a blob through a bunch of obstacles (https://github.com/seurimas/ludumdare34). "Two Button Controls" and "Growing" were apparently the theme, so you would grow your blob with one button (sending you towards the ground faster) and you could dash with another. It was full of a bunch of cute details I sometimes forget to make time for in modern Ludum Dares.

A few jams later, I tackled Ludum Dare 39 with "Mystic Power". The theme was "Running Out of Power", and you would have spells that ran out fairly quickly (https://ldjam.com/events/ludum-dare/39/mystic-power). It wasn't the best game, but it was a fun exploration of using the Elm programming language for game development.

Now firmly in the modern Ludum Dare era, Ludum Dare 47 was "Stuck in a Round". Very close to the theme of "Stuck in a loop", the conceit was that you were stuck in a "Round", a style of repetitive music (https://ldjam.com/events/ludum-dare/47/stuck-in-a-round). You'd have to run around and grab a scale of notes while the songs played obstacles raining down upon you. This was the first game where I really tried to lock in with the scope, and I think the results were pretty clean.

I did some Jams over the years, but, mostly, I've stuck to the Compo. I get some really cool games I'm proud of in these past 5 years: LD49 Kinetic Space Mining was pretty clever and complete (https://ldjam.com/events/ludum-dare/49/kinetic-space-mining); LD51 10 Second Tower Defense got my best Fun score at #67 (https://ldjam.com/events/ludum-dare/51/10-second-tower-defense-1); LD53 I impressed some people with an innovative runes system in Signs of Corruption (https://ldjam.com/events/ludum-dare/53/signs-of-corruption); and LD55 my auto-chess battler, Summoner Chess, got my best Overall score at #147 (https://ldjam.com/events/ludum-dare/55/summoner-chess).

I'm not sure what I'm doing for Ludum Dare 57. Sometimes, I go into a Ludum Dare with a mechanic I really want to use (the runes in Signs of Corruption), or a genre to explore (auto-chess for Summoner Chess), or just a library to kick the tires on (physics in Amethyst for Kinetic Space Mining). Some of that kind of thinking has been kicking around in my head lately, particularly with a few new tools in my toolkit I'd like to showoff. Looking back on this history, though, I just want to make a cool game I can be proud of. Here's hoping it's a great jam, for me and all of you!

Ludum Dare 59

Github Copilot, are you okay?

Screenshot 2026-04-19 214301.png

I've never seen you like this 😥

===

Seriously, though, I ran Copilot and Claude both during this jam and it was equal parts smooth and frustrating. Some things went SWIMMINGLY (like redesigning my whole UI in Bevy, whose UI developer experience is non-existent). Others went okay; despite a lot of concern about software quality, I think the end result is better in quality than many of my other jams.

What went poorly was... well, the quirkiness of these systems. It's all new, running full speed ahead towards some unknown goal. Why does Copilot hardcode a 5 minute limit on their tasks? I thought I was clever by baking in user feedback into my agent loop...