Space and Repair
Concept
Explore the universe with minimal training and a ship that’s components are constantly falling apart. Journey alone or together discovering lost treasures and unknown tech, selling everything that isn’t bolted down just so that you can buy enough supplies for the next trip.
Space and Repair is a co-op roguelite aiming to combine simple player interactions with an increasingly chaotic journey. The planning portion for this project was fairly straightforward;
Core Loop
Travel through space
Gather resources
Craft items from resources
Use crafted items to repair and fuel the ship
Survive catastrophe
Repeat
Design Pillars
Power balance; everything in someway connects to or uses power which needs to be maintained
Simple travel; the focus of the game is about what is happening inside the ship, not outside
If it works, it breaks; systems and tools all play a role in each run and players need to maintain them to be successful
Insanity; doing the same thing over and over expecting the same result, so change it up each run to keep the player guessing
Once I had the general idea, it was time to start prototyping. Since I knew that I wanted the game to by co-op, I had to make sure everything accounted for that which meant building each aspect with networking in mind.
Interactions
Any good space vessel has buttons, levers, screens and knobs that interact with various components of the ship. Rather than building them all within the level, I opted to make each one a separate Actor. This provided flexibility with where each interaction could live while still being a reliable interface for the player. The primary machines used are:
Navigation - used for choosing a destination and locking it in for travel
Thrusters- used for moving the ship toward the next objective giving players the ability to adjust the speed of travel
Collector- used to slowly collect raw items from the space outside of the ship, changing based on the event biome the ship is in
Recycler- used to breakdown items into the 4 crafting components
Printer- used to print items and supplies by consuming crafting components
Power Console - used to manage the power across the ship, reset power when needed and engage the shielding
Fuel Pump- used to refill the Thruster fuel reserves
Communications- used to interact with points of interest
Sales Console- used for buying and selling supplies from the ship
Other planned machines include:
Defense Matrix- used for engaging automated defense blasters
Ammo Loader- used to reload the ammo for the ships automated defense blasters
Piloting Station- used for defensive measures and extra travel options
Research Console- used to study and research tech for player and ship upgrades
Tech
Unreal Engine 5 (and Blueprints)
Blender for 3d models
Miro for planning and documentation
First Steps
Getting networked players into a lobby proved easier than initially expected, especially when utilizing Steam’s API and allowing players to host from their machine. After that was working, I started building the machines that players would need to operate. At the beginning, I knew that I needed the following to incorporate the core loop economy:
As a player, I want to…
travel without actually travelling so that I can focus on keeping the ship alive (Simple travel)
collect items to fund my travels and keep my ship alive (Gather resources)
convert items into useful parts or tools to keep my ship alive (Craft items)
manage power so that I can can keep the ship alive for as long as possible (Power balance)
Since I had an item spawning platform already, I started with the Recycler. This takes any recyclable item (defined in the Recipes data table) and converts them into four basic resources akin to Prey (2017); Scrap, Organic, Electronic and Alien. After making the model and setting up some new interaction rules, I focused my attention on building an inventory system for the ship so that recycled resources were stored somewhere.
Above: Version 1 and 2 of the Recycler. The visuals and functions shifted to match the ship themes.
The logic process behind resource storage was pretty simple in that I didn’t want player to manage each individual element. They will have enough going on with the ship so instead I have resources apart of the ships inventory which is shown above.
Fun fast: the monitor showcasing the resources in the picture above can also be used to show the ship health, power usage and distance traveled simply by changing an enum on it.
So now that we had a machine that Recycles items, I needed a way for players to gather the items. Initially I was considering having the player venture out of the ship, but that would then defeat the purpose of pillar 2; Simple travel. Since the game is intended to focus on the use of machines and items, I started thinking about the net in Raft (2016) and how it just collected items for players. Enter the Collector.
The Collector requires power to function and spawns items overtime based on a specific Data Table and the weights attached to the items. For testing purposes the items dropped are just raw resources that recycle into their counterpart, but I have hooks built in so I can adjust these later. Planned adjustment to this will be to use a weight modifications based on where players are at in their “travels”, similar to how standard RPGs adjust loot spawns when the player has a passive that increases drop quality.
You’ll notice that the Collector hasn’t received it’s glamour update just yet. Stay tuned for an update soon.
As this project is being continually updated, feel free to reach out and ask about the other items and systems in place. For now I’ll continue to add images and videos below as things come online.
Current features include:
Ship-wide Power System (power management and overload handling)
Ship-wide Resource Inventory
Ship-wide Fuel and Reserve system
Travel tracking
Collector machine (for collecting items)
Recycler machine (for recycling items into resources)
Printer machine (for printing new items from resources)
Thrusters machine (for starting, adjusting and ending travel)
Navigation machine (for setting new courses and tracking current distance to target)
Fuel Pump machine (for adding fuel to reserve from printer Fuel Rods)
Fuel Nozzle (for moving fuel from reserve to tank when Thrusters are off)
Power Control machine (for maintaining power, resetting the system, monitoring fuel and reserve, enabling Defenses and dynamically keeping track of broken breakers)
Power Breakers (maintains functioning power to the ship, and set up in a way that the ship can have between 1 and 8 of them in random locations during level spawn)