Something Old, Something New

In the past few weeks, I’ve been super busy with job searching, and my shooter project got away from me - my enemy AI was functional but messy, my goals were unclear, and I couldn’t quite find the fun, even as several pieces started to come together. In the future I’ll likely revisit that project, but building so much from the ground up alone was a bit too ambitious. Instead, I’ve changed my focus to something smaller and more focused.

I’ve always loved space travel in science fiction - doubly so when vessels are old, breaking down, or roughly made. The image of a crew traveling from place to place, scraping to get by and constantly replacing parts of their ship, really speaks to me, and I wanted to try to capture that with a rough game prototype.

Years ago I created a very simple 2D game which primarily involved pushing crates around in space. Ambitiously titled “Crates In Space,” the game’s main challenge came from a deliberately messy traversal system - one axis of rotation and a single thrust direction. Drag was deliberately turned down, so once the player started moving, they’d struggle to stop. Various hazards, like gravity wells and repelling fields, added even more wrinkles. That original game struggled with consequences - in theory, the hazards were simply bumps in the road, but in practice the player spent a lot of time painstakingly pushing crates out of physics zones. This was incredibly tedious, and while I can appreciate a game deliberately slowing down to establish a mood, build tension, or just provide some room to breathe, Crates In Space didn’t really need any of that.

Still, I ultimately had a lot of fun with this design, and sought to re-implement it (with needed changes) as the basis for this new prototype. I also added fuel money, and a rough inventory system to provide a layer of planning and hopefully make players think more about navigating efficiently.

First, the movement. Thrust, activated simply by holding a button, applies a force to the ship’s RigidBody2D component, and I deliberately capped the max speed. The player can rotate left and right, but doing so doesn’t affect their momentum - precise turns at any significant speed are therefore quite difficult. To ensure players could actually tell what’s going on, I stuck a simple particle system onto the ship that only emits when thrust is active. I also threw a repeating space-like background into the scene; to avoid hand-placing a bunch of images, I set up a script to auto-generate the background. Straightforward, but a serious time-saver. The final result?

This is more than serviceable for my purposes - as it stands, deliberately managing thrust without bumping into stuff should be a challenge. Which is good! I have plans for a sort of modular ship health system, so asking players to be conscious about how they’re traversing their environment will ultimately have consequences.

What’s that random grey structure, you ask? Good question! My biggest breakthrough has been a rough framework for an economy system. The player is able to stop at spacedocks - currently, a place to purchase fuel and other goods, putting that money system to use. I’ve got a set of ten goods, which each spacedock tracks prices for individually. If the player sees large discrepancies in one good’s price between two spacedocks, they could make a very lucrative shipment!

Clearly I’m no UI designer, but this does it’s job well enough. Notice the player’s inventory display at the bottom of the screen - that shows everything the player is carrying. Making an inventory system that allows for buying and selling sounds easy, but took a surprising amount of work. Fortunately, I expected as much - this isn’t the first inventory system I’ve built. I’m hopeful that my future-proofing ensures that I’ll have little trouble building more systems on top of this.

That’s what I’ve got so far! I’m working on a few other pieces - navigation systems, the aforementioned modular health system, and a number of player verbs which will let players interact with their environment in more ways. I also intend to design a system that modifies prices at various spacedocks automatically, simulating shifting markets. Looking forward, I’m anticipating balancing these prices will be a pain point, and I’ll probably be digging through spreadsheets a lot. Stay tuned for more updates!

Previous
Previous

Sprinting Up That Hill

Next
Next

Abilities & Enemies