Cosmic Junker Simulator - Ludum Dare 57 Postmortem

CosmicJunkerSimulatoremCoverImage/em.png

Same post on Itch.io: https://aizomon.itch.io/cosmic-junker-simulator/devlog/932744/cosmic-junker-simulator-ludum-dare-57-dev-log

Cosmic Junker Simulator Game Page: https://ldjam.com/events/ludum-dare/57/keep-the-lights-on

Play on Itch.io: https://aizomon.itch.io/cosmic-junker-simulator

===========================Postmortem Starts Here===========================

The initial idea was to create a survival horror co-op experience set aboard an abandoned spaceship, where players must share each other's light sources to survive illusions caused by anomalies.

I used Unreal Engine 5 and the First Person Shooter Template Pack (FPSTP). Being a dad, I could only spare about 5 hours a day over the weekend for the game jam, totaling around 10–15 hours. It went horribly, as I spent most of my time debugging replication blueprints.

Looking back, the prototype was clearly overscoped given my speed (or lack thereof) in writing replication code. Here's what I initially planned:

  • A generator emitting light to maintain both players' sanity, which could be picked up and dropped.

  • Each player equipped with a headlamp providing a cone of light to resist sanity loss.

  • An enemy that spawns from an alien sac when touched or shot, featuring basic AI.

  • A spawn manager to handle random distribution of ammo, alien sacs, and fuel barrels.

  • Sanity-draining volumes assigned to dark zones.

  • An engine room that accepts fuel to trigger the end-game condition and update the UI panel in the pilot room.

  • A basic circular layout containing around six rooms (excluding tunnels).

  • Sanity-dropping screen effects.

  • Alien sacs or enemies spawning based on player sanity.

All of this needed to be fully replicated. Debugging replication was extremely slow, and testing the core loop was painful — it was tricky to control two windows at once just to keep the headlight trained on the other player.

https://youtu.be/azSLPCNkJww

While most features were technically implemented, some didn't replicate correctly, breaking the gameplay loop by the end of the 72 hours. I soon decided to return to the drawing board and move the game to the Extra category.

This time, I chose to start small, focusing on a simple but immersive single-player experience. After playing a few other jam entries from the Jam category, I decided to pivot to a lonely space scavenger concept — salvaging junk in hopes of bringing something valuable back to the ship.

The new, smaller scope included:

  • A gravity gun to attract and launch space junk and creatures.

  • A gravity-switching room to separate two drastically different experiences: flying in space and walking inside the ship.

  • Doors that could be locked and unlocked at runtime.

  • A first type of collectible junk: food items.

I spent a fair amount of time ensuring that the atmosphere, especially during gravity transitions, felt immersive. This even involved some early SFX work — which was necessary for me to feel confident about the game's tone.

Following that, I allowed myself to "noodle" — experimenting with ideas without a concrete plan, freely shifting between prototyping and market research. This creative phase was crucial to discovering what made the experience special.

Eventually, I found inspiration by looking at space scavenging from a Slime Rancher-style perspective. Capturing alien creatures as part of the scavenging loop felt interesting and unique. I spent some more time experimenting with this mechanic and soon faced a design choice: Should I give players a clear end goal or leave it as an open sandbox?

This challenge pushed me to rethink my initial design pillars. I decided I wanted a soft end goal — something to gently motivate players, without undermining the atmospheric experience. My first idea was to display a "total estimated scavenged value" at the end, but it felt hollow. Worse, it encouraged players to speedrun scavenging, which directly clashed with the mood and immersion I had worked hard to build.

I realized the core of the game wasn't about speed; it was about soaking in the lonely, strange, atmospheric journey.

With little time left, and knowing polish would matter more than a forced end goal, I prioritized meteor impacts, an additional SFX pass, and small tweaks to deepen immersion. As a compromise, I added a nickname system at the end screen, based roughly on what players had collected — a fun touch, though admittedly rushed and needing more refinement if I ever return to this project.

That pretty much sums up the journey of Cosmic Junker Simulator! Thank you to everyone in the Ludum Dare community — your passion and feedback mean a lot.

Key Takeaways: - Co-op games are risky for jams unless you're very experienced with replication coding. Debugging eats up precious design time.

  • Giving ideas time to "cook" matters, even in a jam setting. Having design pillars early on helped me prioritize when under pressure.

  • Validating a core gameplay loop always takes longer than it seems. Even small end-goal tweaks cost more time than I expected. Luckily, focusing on atmosphere from the start allowed me to deliver a playable experience even without a fully fleshed-out loop.

https://youtu.be/7IrllvSalf0