Item Placement, and Reactors

Today's progress was impacted by a trip to town for some errands. Unfortunately, a shipment was late, meaning I had to sit around for a while and wait. So, I decided to use the time to work out some problems on good old fashioned paper. Namely, I wanted to see how I could represent complex equipment in the game. Here's the result

IMAGE( Dear NSA, it's not what it looks like. Okay, it kinda is.

This is a crude representation of a nuclear reactor using simplified block elements on a grid (specifically, the cross-section of a tokamak's toroidal reaction chamber). Individual component squares are described in the key at the left, and their failure states are listed below.

I was trying to figure out how I could simultaneously let the player see and tweak complex equipment designs without needing to know nuclear and high-energy physics to do it. In this case, grid squares represent individual components of the reactor such as sensors, radiation shields, gas pumps, and magnets. Each piece serves a purpose, and if it fails, can cause issues ranging from fusion shutdown to containment breach.

The player may not understand how exactly this works, but they'd understand that the cooling superconductors, for example, are better if they cool more or use less energy, or even withstand more radiation before failing. So a player could theoretically see loot on another ship such as "Li-shielded superconducting coils" and look back at their existing "Unshielded superconducting coils" and think, "maybe these new ones would last longer?"

Similarly, if their reactor had a blown Deuterium pump, maybe they could turn up a replacement in a junkyard and install it, allowing them to power-up again. Or even keep a few spares on hand in the ship's cargo hold for emergencies.

The point of this is threefold.

First, it gives players a chance to tinker with ship designs in a more meaningful way. Instead of swapping "fusion reactor mk1" out and replacing it with "fusion reactor mk2," they can fine-tune the performance of their ship to their own tastes. Games like EVE Online allow ship mods, but they're limited to a few hardpoints and off-the-shelf systems. Gearheads like to get in there and mess with the guts.

Second, this makes failure more interesting. "How did your last character die?" "Well, the Lithium tank blew when we were en route to Jupiter, unloading gas all over the engine room. We were able to contain it by locking the room down, but the pressure drop caused radiation to start escaping the reactor. We either had to shut down the reactor and hope for a rescue, or limp with an unshielded reactor and hope we survived the rads..."

"We didn't."

Third, I like this kind of stuff. Realism in sci-fi is more interesting to me than hand-wavium, and I love it when I'm playing a game that treats the subject matter with respect. And bonus if I can inspire players to learn more about these things (or even subtly trick them into learning)!

This may be pie-in-the-sky, but this seems a bit more workable than my original idea. (Which was basically to simulate all the science down to the atom. Yeah, I know. I have a problem :)

In other news, once I got home and back to my computer, I jumped back on the item placement problem. There was still a niggling problem of accurately showing where the current item would drop into the ship as the cursor moved around while at a non-zero rotation. This was just a matter of adjusting the item's offset for the rotation.

Then, just as I was about to start working on items-within-items (i.e. containers), I realized I should probably add some UI helpers to make my life easier. Namely, I need to see the current item's grid fitting rules and how that fits the ship underneath. Since containers will be leaning on grid-fitting a lot, it makes sense to tackle this first.

So I started work on a sprite overlay that shows me per-grid-cell fit feedback. This way, I can visually tell which tile is blocking the item I'm trying to fit, instead of tracing through code and checking each cell.

That's probably where I'll pick-up tomorrow. Have a good night, all!


linibot's picture

So yep, this is the stuff I read devlogs for. :D

You gotta realize, I've never been good at physics, but that doesn't mean I don't find it endlessly fascinating as a science, especially when it's broken down into easily manageable systems that I can wrap around words that can tell me a story. And while I am now mildly worried at the grandeur of your vision, I absolutely love where this could be heading.

Basically yes, "Li-shielded superconducting coils" do sound like they would last longer and be less willing to kill me than "Unshielded superconducting coils". I've never heard of "li" before, but I know what happens when you put the un- prefix before a word. ;) I'm not entirely persuaded this will work as smoothly with all the other words you'll have there, so I don't expect this will be as easy and un-problematic as you just made it sound, but it's a nice goalpost to aim for.

At the end of the day some of the most interesting aspects of NEO had to do with this type of bedrock of realism in the underlying systems. So please don't simulate all the science down to the atom, and also please start becoming mildly concerned about whether the majority of us will need to be playing the game with a science textbook on the side, but yes, colour me very much excited. :)

NEO Scavenger: FAQ
10 Ways (not) to Die - A beginner's guide

dcfedor's picture

Glad to hear it entertained! Believe me, I get it. This is what I do game dev for :)

And don't worry too much about the science. The broad strokes of it aren't too hard to get. I think a lot of it is just obscured by vocabulary. E.g. Li is just lithium, and it's used because it absorbs radiation well, so it makes a good lining for the reactor. And the superconductors are just strong magnets that work better when cold, hence the coolant. And "poloidal" is just a fancy word for how they're wrapped around the chamber.

See, easy! :)

But you're right that this is a rabbit-hole that may have diminishing returns, so I need to be careful. I want people to feel like they're a mechanic, jury-rigging their outdated hot rod to keep it running like Han Solo and Kaylee. But I don't want them to feel frustrated. So striking the right balance of depth and simplicity will be key.

In the end, I think I can make it as easy to understand as choosing equipment for a character in NEO Scavenger. E.g. bluejeans are warmer and more durable than cargo pants, but cargo pants have more pocket space. Except in this case, the cargo pants are a reactor part that produces more efficiency at the cost of more radiation to shield against.

In theory, anyway :)

Dan Fedor - Founder, Blue Bottle Games

matsy's picture

I can't help but get more and more excited as you write your blogs!

I think this would work really well with an import/export feature so you could share your designs with other players. Going a whole massive step further, some sort of metagaming feature where top engine/ship/weapon designs of other players turn up in game shops/garages/space stations or etc but I guess metagaming is a whole different beast!

dcfedor's picture

Exactamundo :)

Dan Fedor - Founder, Blue Bottle Games