Game Design Game Development Geek / Technical

LD50: How My Entry Disaster City Did #LDJam #LD50

Late last week was the end of Ludum Dare 50, culminating in Results Day.

After giving everyone a few weeks to play and rate everyone else’s games, the final numbers were calculated, and the ratings announced.

Congratulations to those who ranked at the top in both the Compo and Jam categories! And congratulations to everyone who managed to finish and submit a game in a weekend!

So, how did my entry, Disaster City, do?

There were about 2,900 games entered. Of those, 1,413 were in the 72-hour Jam category, which is the one I ended up entering my game. I intended to submit it for the 48-hour Compo, but I ran out of time and needed the extra day to finish the game.

Here are my game’s final stats:

Overall: 1137th / 1413 (3.136 average from 35 ratings)
Fun: 987th / 1413 (3.106 average from 35 ratings)
Innovation: 783rd / 1412 (3.212 average from 35 ratings)
Theme: 947th / 1398 (3.424 average from 35 ratings)
Graphics: 1206th / 1279 (2.682 average from 35 ratings)
Audio: 870th / 943 (2.734 average from 34 ratings)
Humor: 602nd / 1147 (3.078 average from 34 ratings)
Mood: 1068th / 1353 (3.109 average from 34 ratings)

So, Disaster City was pretty much in the bottom of the pack, with my worst scores in the Graphics and Audio categories, which…ok, fair. Jam entries are made by teams usually, and I did everything solo, and I am not an artist or great with audio. I do wonder how it would have compared to other Compo games though. My Overall, Graphics, Audio, and Mood scores were in the 1st quartile, which feels a bit disappointing.

All of my other scores were in the 2nd quartile. My best scores came from the Innovation and Humor categories. While they were in the 2nd quartile, they were near the top of it.

LD50: Monster emerging mock-up

I could spend a lot of time analyzing it, but Honest Dan shared a post titled “Why didn’t my game rate higher?” and other similar questions which made me realize something: I’ve had a low-priority bucket list item to create a #1 game for Ludum Dare (despite not having participated in years), but that goal is kind of out of my hands to make happen.

My ratings/rankings don’t matter?

35 people submitted ratings for my game out of thousands of players. That’s not statistically significant. Out of the “winning” entries for LD50, I think I only played one of them. The others were mostly off of my radar. And I imagine it is the same for many participants.

I set a goal to review at least 40 games, as reviewing more games means the Ludum Dare algorithm will show your game to more people who are looking to review games.

One person managed to review 400 games, which is prolific! When I checked their own game, though, I saw that while they had way more than the 35 reviews I did, it was still only about 100 ratings for their game. So there is a limit to how much the algorithm helps players find your game, I suppose. Also, having 100 ratings means you can be more confident about what people generally thought of your game, but it still isn’t much more statistically significant.

The winners of LD didn’t have more participants rating their game than others. They had a small subset of people rate their game, and those ratings were higher than the subset that rated someone else’s game.

In a way, it’s hard to say how someone’s game actually compared to someone else’s game because there’s some randomness in terms of who played which games and how they felt about them.

And as Honest Dan pointed out, you can’t even really compare your previous LD results to your current results, as it isn’t like you had the same 20 or so people rate your game in each. It’s an apples and oranges comparison. You can’t say whether you improved based on how others rated you in two different LD compos.

So despite leading with the stats up above, I’m trying not to take them terribly seriously. Maybe the general average ratings can give me a sense of what someone’s gut feel for my entry was.

But what I found incredibly valuable was the comments section of my game. I think even though there was a major bug that people reported that they exploited, and even though they said the game was too easy, a lot of them also reported that they basically saw the promise of the game. They liked the turn phases, the general concept, the mechanics and dynamics. They enjoyed playing it.

Which tells me that in a weekend I was able to put together something that other people found entertaining, if flawed. And that’s an accomplishment, something a low-ish rating can’t take away.

Now what?

I would like to make a post-LD version of Disaster City. My task list was incomplete, so what you can play now is a subset of what I envisioned. Adding more disasters and more things for the player to do to mitigate or rebuild after them should make it more compelling. And balancing the game should help, too.

But if I do, I want it to be part of my Freshly Squeezed Entertainment line of games, and I want to be deliberate here. Rather than build onto what I did, I might start over without the time crunch of a weekend deadline.

More on those plans later.

Ludum Dare 51 is scheduled for September 30th, and I would love to participate in it. I’ve marked it on my calendar, and I’ll need to work out logistics with my wife in terms of how to ensure I can focus on the compo that weekend. She arranged multiple outings with the kids and babysitters so I could fully participate in LD50, and I am incredibly grateful.

More immediately, this LD got me focused on putting together desktop ports of my entry so that people could more easily play them, which is something I’ve been meaning to work on for my existing games. So I’m going to tweak some build scripts, create some desktop ports of Toy Factory Fixer and Toytles: Leaf Raking, and then look into how easy it would be to create a web build using Emscripten.

Thanks for reading, and thanks for a great weekend and past few weeks!

Game Design Game Development Geek / Technical

LD50: My Favorite Entries So Far #LDJam #LD50

Ludum Dare 50 is almost over, with the review/ratings period and the new Extra option continuing until April 21st.

In the roughly two weeks after the Compo and Jam deadlines ended, entrants are expected to play and rate other games, leave feedback, and otherwise enjoy the number of new games created.

An entry needs 20 ratings to receive a score, and I am happy to say that so far my entry Disaster City has 27.875. While I have 28 ratings in each of the other categories, I only have 27 for audio. Weird. Also, someone live streamed playing it, so that was exciting to see!

I’ve played and rated only 23 games as of writing this post, and my goal is to try to play and rate at least a total of 40 entries before the 21st.

In the meantime, I want to highlight a few of my favorites so far.

Compo Entry: Ready, uNsTeAdY, FIRE!

The genre is familiar, the production values look and sound simple, and yet the mechanics are compelling. You have to move your ship to prevent your gun from firing too early, you have to move to avoid crashing into the Space Beasts, and if you fire your laser but don’t manage kill any of the Space Beasts, the power of the laser overloads your ship and you die. The fact that some of the Space Beasts can only be killed by a much more charged up laser blast means that you spend a lot of time trying to watch your meter while moving to both keep the laser charging more and avoid enemies at the same time.

I know it was the creator’s voice the entire time, but I found the music catchy (it was stuck in my head while I was washing dishes) and the sound effects effective as well as hilarious. The highest laser beam charge is incredibly satisfying to fire off, too.

Extra Entry: Princess: Unwed

You play a medieval princess trying to use her carrier pigeon to send and receive messages across the land, getting the dirt on potential suitors, all in the name of convincing your mother to call off any arranged marriages.

It’s a mystery game, in which you try to gather clues to piece together where the suitor might be, what they might be up to, and what kind of person they are.

And there’s a pigeon. What’s not to love.

Jam Entry: 22h38

A mystery adventure with a very intimidating end of the world. The art and audio works well together, and the concept kind of reminded me of a few time-based scifi stories I’ve read or watched.

Jam Entry: Kiwis Can’t Fly

This game is emotional, both thanks to the excellent audio design and to the writing. The art is adorable, and as some of the reviewers have mentioned, it is reminiscent of Orisinal. It feels like playing a musical instrument, and it brought a smile to my face. The ending is both sad and beautiful. I loved the entire experience.

It’s been years since I last participated, but I am once again loving the variety of concepts that people have implemented in a short period of time. Good work, everyone!

What have been your favorite entries so far?

Game Design Game Development Geek / Technical

LD50: Disaster City Ports and a Time Lapse #LDJam #LD50

Disaster City, my Ludum Dare 50 entry in which you must try to R&D your way to averting a seemingly inevitable disaster while dealing with other disasters at the same time, was originally released with a Linux-based build.

I have since ported it to Android in the form of an APK you can sideload.

And now I have a Windows version of the game!

You can find my LD 50 entry page and the download links at:

LD50: Disaster City entry

Thanks for playing!

In the meantime, here’s a time lapse of my desktop during the 48 hours of the compo, plus a few more hours as I tried to see how far I could get even when the deadline passed. I didn’t record the next day when I finally got the entry in by the Jam deadline, though.

Game Design Game Development Geek / Technical

LD50: Introducing Disaster City, Submitted as a Jam Entry #LDJam #LD50

I squeezed in a few more hours of development today, and in between picking up kids from school, meetings, dinner, play time with the kids and getting them ready for bed, I managed to get my game to a somewhat finished state, enough that I can call it enough of a game to feel comfortable submitting it.

And then of course I discovered a number of game-breaking bugs with my submission that I managed to fix shortly after.

But I did it. You can learn more about Disaster City at the official Ludum Dare 50 entry page.

LD50: Disaster City entry

I’m going to try to create an Android port next, but for now, I need to rest and prepare for the rest of the week.

Happy 20th birthday, Ludum Dare! I’ve missed this. B-)

Game Design Game Development Geek / Technical

LD50: Didn’t Make the Compo Deadline, Switching to Jam/Extra? #LDJam #LD50

So a lot got done in the final 12 hours of Ludum Dare 50 before the compo deadline.

Just not enough of it.

Disaster City already had the super secret anti-meteor R&D base (modeled off of the NASA Langley Research Center) and some skyscraper buildings. There was a river nearby that I intended to cause floods.

I set about creating the core game loop. Each turn would occur in phases.

There would be an report phase, in which you learn about any new disasters as well as how the previous day went. Then there would be a player command phase, in which you can decide to do various repairs or investments. Then the day would resolve based on what you did and what was going on.

Getting these turn phases in meant I could quickly put together an ending in which the inevitable meteor hits and you lose the game.

Then I created the ability to invest in R&D to prevent it.

Once I did so, I could make a happy ending, in which you successfully divert the meteor.

Then, the real game development needed to happen to make it interesting. Basically, I wanted a lot of disasters to befall the well-named city that you needed to spend your time and resources on instead of spamming the Invest button.

And since I didn’t have much time, I changed priorities to get the monster attack in sooner because I really wanted to take advantage of the drawing I had made earlier haphazardly and because I thought it would be more interesting than a flood or fire.

LD50: A disaster alert

LD50: A disaster warning

LD50: Changed scale of game

LD50: Monster attack

Unfortunately, getting the monster to appear, attack a building a bit, and disappear took a very long time. There were weird bugs, like when the monster teleported back into the water and kept coming at the same building turn after turn but never did anything. It was weird, and there was one defect I couldn’t figure out but somehow seemed to have resolved, and as I didn’t have a lot of time, I had to just hope I truly fixed it.

I changed the scale of the game up since I obviously wasn’t going to get to implement other features of the city that I wanted, like parks that could be destroyed (people leave when there isn’t greenery nearby), fire departments to handle fires, roads that could get destroyed and need repairing, etc. Luckily, I learned from a previous project to create my art at 1024×1024, then scale it down, which made it easier to scale up without it looking wrong. The game and the monster looks slightly more interesting without all of the blank space.

As for meals, I ate a quick lunch of a hamburger with a veggie patty and some condiments, plus some veggie straws, and later as there were only a few hours left in the compo my wife brought me the pasta and salad dinner she made to my office on a tray.

LD50: Veggie patty burger and veggie straws

LD50: Pasta and salad and a jealous Gizmo

Anyway, right around the deadline, I finally got buildings to get destroyed when attacked enough, and the population loss (uh, the people had to move because their home was destroyed, obviously) reduces your income, which means it is harder to win.

Except not yet, because all you need to do is spam that invest button still, and you can still win by ignoring the destruction.

You have no other meaningful actions yet, so the main dynamic of figuring out your immediate and long-term priorities isn’t in.

About half of my task list got done yesterday, so that’s a big accomplishment on its own. I went from having a title screen and some paper prototypes and notes to having a playable experiment to build upon.

I only blocked off this past weekend to work on it, though. I took today off from the day job to recover from LD, and there is a lot of catching up to do from the weekend in terms of the rest of my life and obligations.

The LD 50 Jam deadline is in 9 hours, and practically speaking I won’t be able to dedicate the entirety to game development.

But what can I do with a few more hours?

I have a monster that successfully attacks buildings. My intention was to have only one monster, as a monster attack was but one disaster possibility out of many, but I could easily make more instead of trying to make random fires or cause flooding.

So maybe there is a meteor coming, and you have to deal with multiple simultaneous monster attacks? Eh.

Giving you the ability to repair buildings that are damaged is my first priority.

Then I can balance the numbers and see if it might be enough to feel like a compelling game.

Then I’ll worry about multiplying monsters.

Oh, I guess I decided I was going to continue working on this game today after all.

Game Design Game Development Geek / Technical

LD50: A Very Long Task List, Only 12 Hours Left, and a Short Pep Talk for You #LDJam #LD50

Last night I realized that other than a bunch of disconnected notes and a few disconnected images I made, I didn’t have a rough plan in place, and it made it more difficult to move the project forward.

So I made myself a plan. Normally I use a spreadsheet and track weekly tasks, but I think for a 48-hour compo a simple TODO list in a text file works.

Right away, it felt simultaneously daunting (that was a very big task list, and I know I will discover more work as I go) and manageable (just start from the top and work my way down).

So I set to work, first by creating a city layout. It’s simple at the moment, and the most immediate urgency was putting in the river tiles, the ground tiles, and the super secret anti-meteor research and development center. I can put in other buildings (already drawn) later.

But then I thought it would make for a slightly better screenshot if skyscrapers and other buildings were there, too, and I was pleased that the work to add it was almost nothing.

LD50: Initial city layout

It’s not much now, but I hope to make this a more bustling metropolis soon.

I called it a night around midnight (so technically a morning?), even though I still don’t have game play in, but that’s a bigger lift than I was ready for without sleep.

This morning, I did some light exercise and ate breakfast.

Behold, my peanut butter, cinnamon, raisin, and pickle sandwich.

LD50: the classic PB, raisin, and pickle sandwich

If you know, you know.

I washed it down with some orange juice (hah, classic Me, amirite?), and since there was only so much left in the bottle, I finished it off.

LD50: Small glass of OJ

LD50: There wasn't enough left in the bottle to put back in the fridge

And my mother-in-law left us some cinnamon rolls, which my wife baked just now.

LD50: Cinnamon rolls!

So before I get back to game development, I did want to give you a pep talk if you need one.

Whether this is your first time participating in Ludum Dare, your first time doing game development, or even if you have been doing game development for a long time, you might look around at what everyone is accomplishing around you and think to yourself, “I don’t belong here.”

And I’m here to tell you that you do, in fact, belong here.

My first LD was #11 in 2008, but my first game jam was Game in a Day in 2005. I remember early on in the 24 hours I had to make a game that I kind of froze up.

I remember feeling like I simultaneously could do it but also that I should stop. It was a weird mix of fear and confusion. I didn’t know why I felt like I should stop other than a vague fear that I shouldn’t even bother, that I didn’t know what I was doing, etc.

I pushed through somehow, and even though the game I made was a very, very far cry from what I set out to do (24 hours isn’t a lot, it turns out), and even though it was buggy, and even though other game developers participating were professionals who made amazing things in those same 24 hours while I was merely an aspiring wannabe, I can say that I participated and I did, in fact, make a game that day.

When I participated in LD #11 a few years later, that same weird fear gripped me shortly after starting, but this time I recognized it. In hindsight, maybe it was Imposter Syndrome? But whatever it was, I successfully ignored it. I managed to successfully make a game and rank relatively highly, too!

And maybe it was because Ludum Dare in 2008 had something like tens of entries rather than thousands, and the community was smaller and more intimate, but there was definitely a home base in that IRC channel of supportive people who made you feel like you belong there just as much as they did. Game in a Day was even smaller, and I wish I could remember the name of the person who gave me advice to cut my scope, but that person also made me feel like I was being taken under his wing, that I was encouraged to be part of that community, too.

We have less than 12 hours to finish a game for the compo. Maybe you’re like me and have a large task list in front of you and you worry you might not finish in time. Maybe you don’t even have an idea yet, or you gave up on one project already. Maybe you see some of the amazing things that people are posting and think, “I am nowhere near that level!”

But don’t compare your efforts and struggles to published, polished efforts of a team of veterans. It is easy to imagine that everyone else knows what they are doing, but you’re only seeing the people willing to post their awesome stuff and not seeing the mistakes, dead-ends, and struggles behind the scenes for them and for many others.

Don’t compare your efforts except to your own previous experiences. And if you have no previous experiences, then consider this your baseline to compare yourself to next time.

And if you feel like you failed Ludum Dare because you couldn’t get it all together in time and publish a game, I’m here to say that after LD 11, I failed to put together a playable game in LD 14 and again in LD 32. There were Mini LDs that I “failed” as well. It was disappointing, but I never felt like I didn’t belong and shouldn’t have made the attempt.

Now, part of that might be cishet white privilege talking, but part of it was that by that point I was part of the Ludum Dare community.

So I want you to know that you belong and are welcome here, too.

Game Design Game Development Geek / Technical

LD50: More Notes, Meals, Conversation, but Less Game Dev #LDJam #LD50

After my last post, I continued writing down ideas and creating sketches.

But then I got an invite to participate in a chat with some of the people from the original LD community, and it was fantastic. I had a great time catching up and/or getting to know people, talking about how far things have come, and also expressing gratitude that all of us were still here.

But it also meant I was not working on game development, so I eventually jumped out of that virtual chat and got back to work.

For lunch, I scarfed down some leftover veggie pizza.

Leftover veggie pizza

I felt like I needed to catch up, so I put together a paper prototype and tried playing through a bit. I did get some insight and realized I was missing something key, but I don’t think I’ve done nearly enough to explore this design.

LD50: Paper prototype

My wife had taken the kids out for a trip, and she brought me a veggie croissant sandwich and chips for dinner when she returned.

LD50: Veggie croissant sandwich and chips

We chatted a bit, then I jumped back into my office.

So paper prototypes are great, but I definitely wanted to get something playable as quickly as possible, which means I needed to start implementing things in digital form.

LD50: Title screen

I put together the title screen earlier, using the concept art as the background. It felt temporary at the time, but now feels likely to become permanent.

I drew a few icons and sprites, but I implemented the HUD first.

LD50: In-game HUD

You can see the main stats include your money, your population, how many days until the meteor inevitably hits the planet, and how much anti-meteor R&D you’ve got left to do to maybe make things not so inevitable.

Then I wanted to draw the city, so I created a tile-based layout. So far, I only have a river tile to start with.

LD50: The city is flooded?

What’s not obvious in this still-frame is that the water is animated using a flipped version of the water tile. It’s not fancy or time-consuming to make, but it does make it feel more alive as a game.

My intention is for the monster to emerge from the water, as you can see in this mock-up.

LD50: Monster emerging mock-up

There is now less than 24 hours in the compo, and I’m about to lose some of that time to a good night’s sleep. I wish I was further along than I was, but I need to focus on getting that game play in more than ever.

Game Design Game Development Geek / Technical

LD50: Good Morning! Yoga, Breakfast, and Notes #LDJam #LD50

Last night I created some concept art for what I am currently calling Disaster City:

Ludum Dare 50 - Concept Art for Disaster City

When I went to bed, I thought of how the screen might look and what the player might do.

So this morning, despite wanting to exercise and get some breakfast first, I tried to write down some ideas, but Gizmo decided I shouldn’t be too hasty getting into game development.

Gizmo wouldn't let me jot down notes

So I did some yoga and other light exercise, which is good because my back was bothering me earlier this week but seems fine now.

Then I made breakfast. I fried up some eggs, toasted some waffles, smeared them with peanut butter, sprinkled some cinnamon, put the eggs on top, and had a messy, drippy breakfast of game development champions.

Ludum Dare 50 breakfast: peanut butter, cinnamon, egg on waffles with a small glass of orange juice

I learned long ago that orange juice is basically full of sugar, so I no longer have a large glass and now make use of the juice glasses that I thought were ridiculously small when we got them shortly after getting married almost 10 years ago.

Finally, I pulled out my Ludum Dare t-shirt from 2011, when I went to an Ludum Dare gathering at GDC. It’s fitting a little tighter around my midsection but otherwise seems to still fit.

My Ludum Dare t-shirt from 2011 still kinda fits!

I spent more time than I maybe should have reading through other people’s posts. We’re now past the first 12 hours of the compo, and my goal is to have something playable within the next 12 hours.

So, Disaster City. I think the “Delay the Inevitable” theme seems to push me to make the kinds of games I started out making, in which there is no victory condition, just a game in which you see how long you can last before you lose. I want to resist this tendency, so what’s inevitable that isn’t also an ending?

Or maybe it is fine for it to be an ending, and the focus is on what you do before then?

Originally, my thought was that Disaster City would constantly be hit with multiple disasters, and you have limited resources to repair and restore what’s happening. Your efforts never make it 100% better, so it’s more about reducing the impact rather than eliminating it. And eventually it all comes crumbling down.

But now I’m sad. What’s the point?

Instead, what if there was a way to achieve victory?

I’m thinking that you are part of the city council. There is a meteor heading towards the planet, and you need to fund R&D and eventually a mission to divert it.

Unfortunately, Disaster City earned its name. You also need to deal with disasters such as monster attacks, floods, fires, etc. These disasters damage and eventually destroy homes, roads, utilities, commercial centers, entertainment options like stadiums, etc. As you lose those things, you lose people, income sources, and your capabilities to prevent and repair the damage.

So it’s a balancing act. You have an ultimate big bad thing coming, but you also have the more immediate things to worry about. You need to decide when to let go of the immediate consequences to focus on the long-term without letting the short-term consequences prevent your long-term goal from being achieved. The game ends when you manage to prevent the meteor from hitting the planet, or when it hits the planet, or when your city’s population disappears.

It feels overscoped at the moment.

I jotted down some notes and started trying to come up with a screen layout.

LD50 notes

LD50 notes

I think I still need to do some prototyping on paper to get a feel for how the game will actually work instead of hand-wavy vagueness,m but otherwise, I think this direction might work.

Game Design Game Development Geek / Technical

LD50: A Game about Urban Decay? #LDJam #LD50

Ok, so after I published my first round of ideas for the theme Delay the Inevitable, I started to really like the idea of a game about urban decay.

A reverse city builder?

I thought about a city block that would slowly get potholes in its streets, broken windows, crumbling building foundations, etc. You need to fix things, and you have to prioritize what gets fixed because there aren’t enough resources to go around.

On top of it all, your fixes won’t restore things beyond a certain point, so everything gets worse, but you can at least slow it down.

But as I looked up urban decay to see if there was anything I could use to inspire the mechanics or theme, I realized that a lot of urban decay is the direct result of white supremacy, systemic racism, and redlining.

I think it would make for an excellent educational game topic, but I don’t think I have the ability to gain enough expertise on this topic to treat it with the justice and sensitivity it deserves in 48 hours.

I tweeted about it, and Jayenkai suggested I could still use the urban decay concept in a non-realistic world:

So now I am thinking about where else urban decay could apply. An ant hill? A rabbit burrow? A castle dealing with dragons, wizards, and angry villagers? An open office space?

I’m about 2 hours into the compo, and it is getting late. I think I’ll draw some concept art and then go to bed.

Game Design Game Development Games Geek / Technical Linux Game Development

LD50: The Theme is Delay the Inevitable #LDJam

The Ludum Dare compo has started, and the theme has been announced.

I am trying to remember if “Delay the Inevitable” was a theme I submitted, but I can’t seem to determine if that information is available.

My plan is to spend the first hour or so coming up with ideas. During Ludum Dare, there is usually an obvious idea that many people might try to pursue, so digging a little bit deeper should result in something more unique.

I just finished watching West Side Story (2021), so the inevitable violence and death that prevents two lovers from being together is top of mind.

Death is inevitable for all of us, and so delaying death might be one of the obvious ideas, but even so it seems like it could be a rich vein.

Taxes are also inevitable, but meh.

And in some areas people might argue that construction is inevitable. A game about constantly fixing roads? So are you delaying the construction, or is the construction delaying the entropy?

“Curse your sudden but inevitable betrayal!” That line from Firefly is classic, and perhaps a game could be built around the idea of joining forces with an enemy that you know is going to target you once your common foe has been defeated or problem has been solved.

Climate change is feeling inevitable. Perhaps a game about being a representative of a corporation trying to convince people that climate change is a personal responsibility despite that corporation being directly responsible for most of the greenhouse gases.

The expansion of the universe seems unending and ultimately results in heat death. I remember learning that Newton’s math, pre-relativity, didn’t actually work, as it predicted that the planets would spin out of orbit. Or was it Kepler? Either way, he suggested that it was God’s hand that was keeping everything in place. So perhaps a game about keeping celestial bodies in place by manually (and frantically) putting them back when they go where they aren’t supposed to. Maybe you start with the Earth-Moon system, then branch out into the solar system, then into the galaxy, etc. Might be a math/physics heavy project. But maybe it will be more enjoyable if the physics was a hand-rolled hack job anyway.

Looking at the time, I see almost an hour has passed. Eep! I want to think a bit more before deciding.