Building The Torpedo Data Computer, And What I Learned From The Battle of Helm's Deep
We’re now down to the last two major building blocks comprising the combat gameplay: the torpedo data computer (TDC), allowing the player to set up attacks, and the end of turn sequence, which closes the loop. The end of turn isn’t mocked up yet, but I envision it as a non interactive succession of animations showing the resolution of every event, from ships movement to U-boat actions, like diving, and of course attacks.
The tactical chart and exterior views work well at this point
The Computer
The amount of information communicated by the TDC may look intimidating to the new player. My main concern was to communicate well the computer’s function, and to make the UI simple and effective.
A real torpedo data computer isn't easy to simplify
The top half of the screen is the computer itself. It gives all the measurements relative to the selected target. The idea is to use the TDC gauges to find the target with the best odds. It’s simpler than it first looks. All gauges are broken down into three zones (white, grey, and black), showing how to read them, from most favorable to least favorable value. I owe this idea in part to a comment made by someone on itch.
The new TDC, now with "odds" segments in every gauge
In 1-bit, three distinctive shades are more legible and easier to achieve than a smooth gradient, but under the hood odds decrease linearly, or follow a mathematical equation. For instance, looking at the angle on bow, the most favorable configuration is when the needle is horizontal, on either side, when the target is perpendicular to the bearing.
Size of gauges indicate weight in the equation. Range and angle on bow matter more, then speed, then length
Another notable observation: the size of each gauge is proportional to its impact on the firing solution. In other words, the bigger it is, the more it weights in the final equation. Even if the player doesn’t remember the function of each gauge, they just need to look for indicators in the white, and prioritize the large gauges.
Right next to the TDC is the arms panel, but I’ll come back to this further down.
The Logs
The top sheet shows the data relative to the target’s class. These are constant for every ship within a class. This tells the player what they need to evaluate how dangerous and valuable is the target. Historically, U-boat aces were ranked by tonnage sunk. But I think that military vessels should be worth more, given how much more difficult they are to take down, and the crippling impact their destruction had on the enemy. For instance it’s safe to assume that the loss of the HMS Ark Royal, an aircraft carrier, was a harder blow for the allies than that of the Orcades, a troop transport, even though the latter displaced 800 more tons. In the game, score will be calculated by multiplying the tonnage with a class rank. Unique ships, like the HMS Hood, will have an additional multiplier, symbolizing the prestige gained for sinking a legendary vessel.
The idea is that the class sheet shows risk versus reward, while the TDC represents the odds of the attack. The two being available on the same screen simplifies the process of selecting the best target.
The log has two more layers: right underneath the class report is the situation report, which gives specific data about the target, and sums up the U-boat ammunition stock. The left side is dedicated to the U-boat ammunition, and reminds the player of the sea conditions. Rough seas make target speed and angle on bow measurements less accurate, which affects torpedo accuracy, but they better conceal the periscope. The rule is that in calm seas it’s better to stay further away from the target to avoid detection. In bad weather, you can afford to get closer to improve your chances of hitting the target.
The Situation report
Behavior signals any additional observation about the target, like zigzagging, which usually means that the crew is alerted of the possible presence of U-boats, and makes it more difficult to hit. The infamous tragedy of the USS Indianapolis illustrates the importance of zigzagging. The heavy cruiser, after delivering uranium and components for "Little Boy", the first atomic bomb dropped on Japan, was sunk by the Japanese submarine I-58, captained by Commander Mochitsura Hashimoto. Captain Charles B. McVay III was court-martialed for not zigzagging, which was the mandatory procedure.
He was defended by his crew for having done everything in his power to avoid the sinking and for his exemplary leadership during their three day ordeal at sea, attacked by thousands of sharks. The Japanese commander talked in his favor as well, explaining that zigzagging would have not prevented the loss of the Indianapolis. Captain Charles B. McVay III never recovered from the guilt and disgrace and committed suicide in 1968. In July 2001, 56 years after the sinking, he was posthumously rehabilitated by the Navy, and his record cleared.
Finally, the bottom sheet of the log is an illustration of the target’s class. Historically, captains used illustrated booklets to identify their targets. They also contained detailed data such as as length and mast height, required to calculate target distance, speed, and angle on bow. In the game, the illustration has mere cosmetic functions, and helps the player make a mental picture of the little pixelated sprites in the periscope.
These images may also be part of an in-game encyclopedia, with technical and historical data about all the ships, U-boats, and technology featured in the game. I’ve always loved the educational aspect of simulations, so I hope that Atlantic’41 can not only entertain, but teach players key events and characters of world war 2 as a whole, and of the Battle of the Atlantic in particular.
I’ll come back to this closer to release, but I have the ridiculous idea of crowd funding a numbered physical release, with paper manual, charts, historical booklet, and even feelies, in the grand tradition of retro PC games. This is likely just a pipe dream, which makes it even more exciting.
Look Alive
But even though the ensemble worked as a still image, I was concerned with its lack of animation. Scrolling of the TDC being out of the question, as I wanted all the information readily available, I began to think of other ways to keep the screen alive.
The gauges of the TDC are the obvious opportunity. I programmed them to adjust naturally to the selected target, with a curved deceleration. Like the chart centering on the U-boat, this simple effect turned to be effective.
The only issue is that the motion is dependent on the user; without input, the image still looks dead. As a flight simulation fan, I’ve always liked the slight jitter of needles on aircraft controls. However it posed a problem with historical accuracy. The TDC didn’t measure anything in real time. Most of the data was dialed in manually, based on observations and estimates taken from the attack periscope or the UZO. Then the computer could at best update a few parameters based on the boat’s motion, like a gyro compass would.
I’ve never seen a real torpedo data computer working, and couldn't find any video reference. But I doubt that there was any secondary motion in the controls. In all logic they were dead locked. But let’s face it: my TDC looks like a toy next to the real thing anyways, and Atlantic ‘41 twists and simplifies the U-boat’s operation in a number of ways. To decide, it’s about balancing the gravity of the offense with the benefits for the game. I tend to avoid changing the core nature of the experience; the fundamental principles that affect what the game is about, historically or technically. I don’t believe that it’s the case here (Further down I’ll discuss an example where the opposite is true). However the game would greatly benefit from the effect, as one of the numerous little polishing touches that make a compelling experience. So it’s decided.
The effect turned harder to do than anticipated. I found that good frame rate (50 fps) worked against me, as high frequency twitching looked like a bug. I had to slow it down enough to feel natural, but not too much that it wouldn’t register at such a small size. Because of the poor performance of real time rotation, I was forced to pre render all the positions. But then even 10 degrees steps revealed too large for the effect to work, and I had to store 72 steps for each gauge. Thankfully 1-bit assets aren’t quick to fill the 16 Mb of the Playdate.
Additionally, for the log part (bottom half), I wanted to emphasize the paper trail idea, with every target’s details written down on a dedicated note, and notes being shuffled around as the player browses targets. In reality, target data was passed orally, but the written form is my only way of communicating them to the player. Plus, Germans were known for their detailed records, so summing up each ship’s condition on a note doesn’t feel too much out of place.
Since not everything can fit on the screen at one time, up and down on the pad allow to shift between class report, target/U-boat information, and target illustration. I tried multiple control schemes but the simplest seems to be up on the pad acting as a toggle between the written information, while down must be held down to show the ship illustration. It’s the opportunity for more animation, the notes sliding down to reveal the identification booklet illustration. The class report folding over the situation report adds a more human touch, which I hope makes the data a bit more fun to navigate.
Left and right browse through the available targets, with the papers sliding on and off the screen. The only potential downside is that it slows down user interaction. I tried to find a good balance between look and speed, to avoid breaking the flow of the game. For convenience, the game always opens to the most useful page (U-boat/target) when changing the target.
The B button reverts back to the chart screen, with the chart centered on the last viewed target in the TDC screen. It feels nice and responsive to me, but I’m open to change any of this based on beta testers feedback.
With this, all that was left was the armament panels, where the player can direct torpedo launches and deck gun attacks. And that is when it all came to a crashing halt.
Let me explain.
The Issue With Loading Times
I knew that I couldn't implement the armament panel without a full and precise idea of the UI around managing attacks; questions like "how does the player choose between deck gun and torpedoes?, "how do they assign tubes to a target?", "How many tubes can be fired per turn?", "how do I visually convey unavailable tubes?"...and at this point of course I already had an answer to most of them. Except for the loading of torpedoes. Being too preoccupied with everything else, I had put it in the back of my mind.
I knew that reloading torpedoes at sea was a difficult, exhausting, and even dangerous task. But it seemed like an additional step that would slow down the flow of gameplay and make attacks needlessly complicated. I'm already concerned that the game is becoming too convoluted for the Playdate, so every action required from the player needs to be weighted against its historical and gameplay relevance. Initially I considered ignoring the reloading altogether. Immediately after being used, a tube would be ready for action. But remember earlier when I mentioned that sometimes you can't take shortcuts without altering the essence of the experience? That’s now.
That Scapa Flow post drove me to read more about the question. I researched reloading times from various sources, mainly U-boat veterans accounts, and the indispensable "U-boat Attack Logs", and came down to the conclusion that a tube could be reloaded anywhere between 15 minutes to an hour. Several factors explain this large range. Mainly crew fatigue, urgency (whether reloading had to be done while in combat under pressure, or surfaced, away from danger), and sea conditions.
To reload a torpedo, the crew had to hoist it from metal plates under the torpedo room via a system of chains and pulleys. A German steam torpedo was 7 meters long (23 feet), and weighed 1.5 tons (3300 pounds). Imagine trying to stick a car dangling from chains into a hole while it's swinging all over the place as the boat rocks in the middle of a storm, and you get a sense of how long this could take to do safely.
Now here's the problem: a combat turn is 10 minutes. This number can't be changed. It was determined for a number of reasons that would be too long and boring to explain here. This means that reloading a tube should take between two to six turns. That's many turns sitting idle. We could ignore the reloading, but this would fundamentally change the nature of U-boat warfare. There's nothing inherently wrong about that, if that's what you're after, but I've always imagined Atlantic '41 as a different kind of submarine game; an experience less focused on action than the tension and the uneven rhythm of U-boat combat. And I began to wonder if instead of fighting this reloading time, I shouldn't make it an integral part of the gameplay, and turn it to my advantage.
So rather than rushing to move on with the implementation of the armament panel, I figured: let's slow down and really think about this. And part of the answer came from an unpredictable source: The Lord of the Rings.
What Tolkien Taught Me
In an epic night battle, the orcs give siege to the fortress of Helm’s Deep. The tension builds up as the evil army swarms the hills outside the castle and we get shots of frightened kids with oversized helmets. Then all hell breaks lose for a few minutes, with the action reaching a peak when a particularly tough orc scores a touchdown at the feet of the outside wall, blowing it up for the hordes of mobs to breach the place.
But you see, human architects had a plan for this. Inside the first perimeter, there’s a second high wall, with only a narrow ramp leading up to the gates, and limiting the approach to just a few attackers shoulder to shoulder. The defenders regroup inside the new perimeter. The frenetic action slows down, and we get a new phase of Aragorn pep talks, strategic planning, and isolated heroic actions. Then the tension rises again with the resourceful orcs pushing their favorite battering ram up the ramp, knocking off their own guys in the process because they’re that determined. The tension peaks again as the gate gives in to the awesome ram, and evil breaches the place, this time for good it seems.
But nuh huh. You see, architects had thought of that too, because they built a third fortress to fall back to, at the highest point of Helm’s Deep (which should be called Helm’s High if you ask me). So now Aragorn picks up what’s left of the human force and grants Theoden king with one of his famous motivation speeches. The tension builds up one more time, to reach an all time high as they decide to go for a last Hail Mary charge, which orcs didn’t see coming.
It’s a memorable scene, one of the greatest battles put on film. But the reason for that isn’t just the sheer scale, spectacular stunts, and beautiful art direction. It owes its success in great part to its pacing. It’s an emotional roller coaster, which alternates bursts of frantic action with breathers allowing for suspense and anticipation. Tension plateaus three times, with each new phase reaching higher stakes.
Back to the Deep
Then the captain fires a number of torpedoes, usually in a fan shape, either concentrated at one target, or hoping to cripple multiple ships. It’s the high tension siege phase.
At that point the escorts are alerted and converge toward the area, hoping to destroy the submarine or drive it away. The U-boat has lost the surprise advantage, and must take measures to survive, either sitting at the bottom, or preferably running away quick. The roles are switched, but fast action makes way to slow regrouping, and quiet tension. It’s the defenders falling back to the smaller perimeter.
Then the U-boat must reload the tubes, which takes a very long time as we know. It’s the cat and mouse game where the captain must ghost the convoy while remaining at safe distance. This is a suspenseful slow burn, where tension builds up in anticipation of the next round of attacks. Once the tubes are full, the situation is reset, ready for a new rise. An alternative is the boat trying to evade the escorts, possibly being depth charged for hours. It maintains a different kind of tension that eventually dies down when the escorts give up, or the U-boat is sunk.
Now that doesn’t sound like a bad gameplay loop to me. And the reloading times, forcing the U-boat to fall back, are at the core of the cycle. Especially considering that doing it with escorts echo locating the boat was very dangerous, with the noise of tools banging and chains rattling. Without the obligation to find a safe spot to reload, the boat would spam torpedoes Willy nilly until it’s out or everybody else is dead. And that isn’t just unfaithful to the real experience. It also sounds like less fun to me.
There’s an additional factor that works in favor of implementing accurate loading times in the game. A Type VIIC U-boat, by far the most common, could carry 14 torpedoes. Now if I let the player fire all five tubes at every turn, it will run out of torpedoes in three turns. That’s 30 minutes of game time. But a patrol would last between two to six weeks (if the boat was able to restock at sea). The player would end up in the awkward and unrealistic position of going back to base right after the first enemy encounter, sometimes a day into the patrol.
Letting the player exhaust every torpedo on the first encounter in a matter of minutes would break the structure of the patrols. With long loading times, we get the cycle of tension build up, but also the sense that every decision matters. It gives a lot of weight to each shot. And this torpedo scarcity explains the cheers you see in Das Boot every time they register a hit. Firing a torpedo was a big deal, and hitting anything, without a dud, was even more significant.
In the end I think it’s worth going down that route, so in the following days I’m going to implement the arms panel with reloading times. To what extent the times will stick to reality will depend on feedback from testers. I would like the game to feel like patrols happen over long periods of time and space, with quiet boat maintenance, training, convoy search, and crew management, and where combat is somewhat rare, but meaningful; the culminating point, where decisions have weight, life or death stakes, and potentially high reward.
I’ll leave with an account that will help you understand the core idea behind Atlantic ‘41. In his book “Neither Sharks Nor Wolves”, Timothy Mulligan says: “The history of the Type VIIC in microcosm can be seen in the fates of twenty-five VIIC and VIIC/41 boats…one of their number sank an American destroyer and a British steamer and a second sank an American merchantman. The rest sank nothing, and only five even had the opportunity to fire torpedoes at targets.”
On this thought, more soon.
Atlantic '41
A WW2 U-boat Simulation for the Playdate
Status | In development |
Author | StephanRewind |
Genre | Simulation |
Tags | 1-bit, Pixel Art, Playdate, Turn-based Strategy, World War II |
More posts
- Next devlog a bit delayed23 days ago
- First Blood68 days ago
- Peril or SalvationJul 12, 2024
- An Important MilestoneMay 23, 2024
- Under the HoodFeb 09, 2024
- Tactical Chart Deep DiveDec 08, 2023
- Building The Engagement Loop (Part three)Sep 29, 2023
- The Sound of SilenceAug 14, 2023
- Building the Engagement Loop (Part two)Jun 24, 2023
Comments
Log in with itch.io to leave a comment.
Really looking forward to this title. It'll be great to have a game of this scope and depth coming to Playdate.
Thank you!
This looks amazing, I am impressed at the amount of information you have managed to cram on this little display without compromising on readability or style in the slightest.
Your game & dev logs are one of the main reasons I got a Playdate, so really looking forward to firing some eels.
Huge pressure! I hope you like your Playdate regardless because I would hate for you to have bought it for Atlantic ‘41 and then the game not living up to your expectations :)
The art style continues to charm and amaze me.
Perhaps for the TDC you could include the gyro angle, which constantly moved and whirled around as you adjusted the settings. You could fudge it a little by having the gyro angle show the average chance of success, similarly to your three colored bars on each gauge. Just a thought
Also, beta testers?? Where and how do I make this happen
And yes, I do want to buy a physical copy 1000%
Very glad that you like that art, thank you! The gyro angle I thought about, but I was concerned of overwhelming the player. I hope that it’s not too much already as it is.
I will post here when the time comes to have people test the game, and let people apply freely, and we’ll go from there. It’s not going to soon though.
A great read once more, I felt like printing this and reading by the window. I guess this just really is my cup of tea :-)
It all looks great as always, and I like the human factor of skewed pages as you mentioned.
One thing that threw me off was the 8.8mm shell sprite. I considered it an oddly shaped torpedo or when stretching my imagination a looking glass maybe. Having something as large as a torpedo side by side with something as small as bullet just prevented the correct association for me, I think.
Thank you! Yes I agree about the shell. The problem is that respecting the scale would make the shell too small and unrecognizable. I may ditch the propellant case and have just a few projectiles side by side. I’m sure this can be fixed. Thank you for the feedback.
Perhaps a sprite or silhouette of the deck gun itself would work best?
A silhouette of the gun would be very hard to make readable at that resolution. And then it poses the question of what do you do for the torpedoes? There has to be some consistency within the icon.
As a LOTR fan I approve the mini Helm's Deep review :D
The game looks great as always.
Making reloading a part of the pacing sounds like it'll add all sorts of strategy!
Might be the exaggerated gifs, but not sold on the TDC animation without user input. The eye is attracted to things in motion, and since the user may be reading lower half seems counterproductive application. Confuses player input and gives the dials a rough and chaotic feel. I think that because of the contrast between the precision modern for the time engineering of TDC vs scrappy handwritten paper works so well! Personally would suggest some ambient audio for breathing life in this case.
Was wondering if the dials have frames for turning vs locked into position? Like have it more freely move when being turned but stop at specific set intervals? Since the dials drawn for various granularity but the needles seem to have same degrees of rotation between them?
Very excited for the game and always a joy to read your write ups and thought process. Have to ask: do you have a beta sign up? Thanks!
I agree about the TDC animation. I find it to be a little distracting. It would be great if this feature could be disabled or enabled as desired.
After seeing the pixel art reddit gif, I realize had a mistaken impression the player turned the dials (crank and all that)! Still feel the animation is a bit twitchy but might be recording. Def downloading the gif and taking a look on device later!
Thanks for the feedback. That’s why I show the game in development. The twitching is easy to remove, so will wait for more feedback. We don’t need to decide now. Regardless I’m not a huge fan of forcing the player to customize the game. I think a good game should own its decisions and limit the options to the very strict minimum. Stuff like accessibility issues. Let’s shelf the question for now and see what comes.
Funny how so many (well, many is relative) people have asked about the beta recently. I guess I should takes this as a sign that the project starts to look like a real game now. Still, we’re quite far from it being in the state where it can be tested.
I’ll have a post for that purpose here when the time comes and you’ll be able to apply. I’m not sure how many I will need, and what form the process will take, but we’ll figure this out then.
Happy to offer a bit of feedback at this developing stage! 100% support the process. I agree that it isn't worth option in a menu.
You did mention beta in the post, I think that's what got us all circling like sharks! Sounds good, will def apply if time comes.
True! I need to be careful with what I write :) In the meantime always feel free to offer any feedback and suggestion here. I’ll take anything that can improve the game.