Deck & Conn, Log 8 – Designing Weaponry

Okay, so I got both a lot less and a lot more done in the past week than I’d hoped. Wait, week? Was it a week? Two? Week and a half? What even IS time? Regardless, it’s partly because I actually let myself relax a bit – saw friends, went on photography expeditions, and just generally made my time off work just a bit more holiday and a bit less… work

But then there’s the fact that what I ended up doing took more work than I’d presumed. Or, rather, I forced it to take longer.

So let me explain…

Over the last week, I essentially did two things, and just two things. Firstly, I implemented the magnetic hull plating panel (centre bottom panel, bottom right of the panel). Secondly, and doing what took most of the week… I designed and implemented the torpedo control panel.

Both of them took a lot longer than expected, for two reasons. Let’s start with the magnetic hull plating…

Sheer Magnetism

The first thing you may notice is that there’s a new section beside the Mags. Originally, it was intended to be part of the mags – you use a big scissor switch to toggle the magnetic hull plating. Then, as I stared at it, I realised three things:

  1. I liked the feel of that switch.
  2. It looked like an even more important switch than that – like, one to call General Quarters for all the crew when entering combat.
  3. Wait, holy shit! I forgot the GQ switch!

I knew what I had to do. The GQ switch now works, albeit… doing nothing but lighting up the GQ light and making a noise.

This also meant I had to make the Mags lights… buttons. This is fine, of course. I already had the code for lights. And buttons. Just not… both at once. And on top of that, ironically, the buttons themselves were about 2px too wide for the space. I fidgeted with it a lot, and ended up deciding to bite the bullet and implement both light-up buttons to support 9-sliced sprites, giving them dynamic sizes (which would become hugely important later on for the torpedo console).

With this done, I was able to get precisely the size of light-up buttons I wanted for the ON/OFF switches for the mags. Saves space, and looks unique.

Which then took me to the torpedo control panel..

Torpedoes Ready

I knew, from the out-set, roughly how the torpedoes would work.

Each tube you’d have to mark a target, load a torpedo, charge the weapon, open outer doors, then… fire. That’s fine enough in your head, but when you consider all those things, you have the following interactables:

  • Select Weapon (is that a drop-down? I hate those. What else could it be? A toggle switch for just torpedo or probe? What if I want to add more later?)
  • Mark Target (this one’s easy, at least)
  • Charge Torpedo (also easy)
  • Open Outer Doors (simple enough
  • Fire (simple, until you consider how many buttons this already is)
  • And finally… how do you cancel each process? It’s not a real-time game, so you need not only a “cancel the whole thing quickly” and just the ability to un-do various things in case you click accidentally.

You also need to indicate what state the torpedo is in. Is it charging? Charged? Uncharged? That’s three states for just one of the toggle buttons above.

So I turned to Sonalysts submarine simulators, made myself a coffee, opened my design notebook… and figured out a way to make it all work.

Coffee: it’s Game Dev Fuel(tm)

After some time futzing with design concepts, scrawling UI in pencil and figuring out what might work, I concluded that re-inventing the wheel was just… a bad idea. It is most of the time, but why bother doing it here when sub sims have had things like this for years?

Which brings us to what the torpedo panel looks like in the three submarine sims that Sonalysts did.

Launch tube controls from 1997’s 688(i) Hunter/Killer

The big thing I concluded while musing on this, however, is that if you have a light-up button and want to display THREE states rather than two… you need to indicate it with multiple colours.



Or, at least, wrong to me. Yes, I could have a traffic light system for the charge state of the torpedoes. But what about players who are colour-blind? Do I add tool-tips? Text beneath each one? All valid options, of course, but still felt inelegant to me. So, I figured I’d once again turn to 688(i)…

Button flashing.

Charge light off? It’s uncharged. Flashing? It’s charging. On solid? Charged.

Easy, and could be used consistently across the whole panel – and even other places on the various panels and consoles in the game, should I need them.

This left me with one remaining choice – selecting your weapon load-out.

Now, a big part of Deck & Conn is that your limited number of munitions is one of the main factors in determining when you might give up on a patrol and return to base. This means, fortunately for me, that you don’t carry tons of torpedoes. Just 4 in a torpedo battery, to be precise. With up to 4 batteries/banks/launchers in a ship, depending on its class.

I ended up deciding that I wanted, therefore, an icon for each possible weapon. That way you could pick an individual torpedo, not just a type. This might be good to future-proof the design a bit – if I want to add different kinds of torpedoes, it becomes easier this way.

Beyond that, it also gives me an easy visual way to clearly show the player – at all times – how low on munitions they are.

At a certain point in your patrol, you’ll see a series of empty holes in that console, where torpedoes used to be, and know it’s time to go home.

Next time, on Baywatch…

With this all done and hooked up (and my work made easier by having created 9-slice sprite buttons that light up earlier, it’s time to pick the next thing to do.

I think it’s going to be ASRs (Anti-Ship Railguns). That should be a LOT easier, but it’s important to get right – I have to fit it in the space not occupied by the torpedo launcher panel now.

And then on to the ship status console…