Cosmic Junker Simulator - Ludum Dare 57 Postmortem

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