Show HN: I made a tactical map-based WWII submarine simulator (public beta)

silentshark.app

125 points by epaga 6 days ago

I've seen quite a few simming discussions on HN, so thought some of you might like this - I've created a map-centered, tactical submarine simulator and it's been a blast to make.

I grew up playing Silent Service II on Atari ST with my dad, then got into Silent Hunter IV in the 2000s, and most recently have been loving the more recent UBoat. In each case, the part I always enjoy the most is the plotting and charting aspect - essentially beating uncertain estimates with geometry.

So I decided to see how far I could get making my own sim that focused nearly entirely on that aspect. You listen on the hydrophone, estimate course and speed, identify ships through the periscope to get the mast height, use a working stadimeter for range estimates, and then try to build a good enough firing solution before getting discovered and hunted by any escorts.

Things I'm particularly proud of are the working stadimeter, the dynamic music (Holst Mars stings when your torpedo is nearing a ship), and pretty intelligent destroyer logic. I've found great reference materials online and have modeled several of the gauges directly after actual submarine instruments.

Tech-wise it’s a Vite/TypeScript app which enables me to offer the whole free version of the app as a browser version.

The Steam page is here => https://store.steampowered.com/app/4705650

The landing page is here => https://silentshark.app

I plan on releasing a full version soonish, including a WWII campaign with progression, patrol zones, and much more on Steam (PC, Mac, Linux/Steam Deck), App Store (iPhone, iPad, Mac), and Play Store (Android).

Would highly appreciate any feedback anyone has!

epaga 3 days ago

Oh wow, guess this is getting auto-reposted! I posted it a while back to 0 upvotes...

Anyways, this project has been a blast to make especially with all the free and public domain resources that are out there on WW2 stuff.

A few fun examples that helped me:

- an original Torpedo Data Computer manual https://maritime.org/tech/tdc.php

- an original recognition book of Japanese merchant ships https://www.ibiblio.org/hyperwar/NHC/NewPDFs/USN/ONI%20Recog...

- an original report of the Battle of Leyte Gulf including a patrol zone map of US submarines on page 166 https://apps.dtic.mil/sti/tr/pdf/ADA003030.pdf

sublinear 3 days ago

I have a couple of first impressions trying the basic tutorial on my phone. I like the idea a lot, so I hope the criticism isn't taken as spoilsport negativity by others.

Immediately, the music is way over the top. I had to turn down the volume and hope I wasn't missing out on anything important. I do get that it tries to set a mood, but without some flavor text or other introduction it feels incongruous to what is being presented.

Then, I found that the instructions given are very tool-oriented instead of goal-oriented. If I understood why I'm doing what I'm being asked to do I'd be a lot more motivated to keep going. Instead I'm being given a tour of "what all the buttons do". Meanwhile, I can't really see any of the tooltips/labels that pop up because my fingers are in the way.

Without some more polish, this feels more like a "take your kids to work day" simulator than a submarine warfare simulator. It's a bit of a shame because I am a fan of the simulator genre.

  • kqr 3 days ago

    For me, part of the fun is in figuring out the "why" behind the "what". I really enjoyed getting a rundown of which tools were available to me, and then I get to figure out on my own how best to use them.

  • epaga 3 days ago

    I super appreciate this feedback and don't at all take it as overly negative.

    I have gone back and forth on whether to describe how to use the tools or instead to explain goals. I get what you're saying and will give this more thought.

    (And the fact remains that with this many tools, it's simply really challenging to explain it in a clear and elegant way on a small device.)

    Once you "get it" and know how everything works, then I think it can work well...but for something this complex, the issue is definitely going to be onboarding.

    • ramses0 3 days ago

      Read the guides on BGG (Board Game Geek) on rules explainers: "Work backwards from the goal!"

      The goal is to sink the ship

      You sink the ship by hitting it with a torpedo

      You hit it with a torpedo by inputting numbers ...etc...

fraXis 3 days ago

This is so cool. Awesome job! I grew up playing submarine games: Gato, Silent Service, The Hunt for Red October, Up Periscope!, and Aces of the Deep. I wishlisted it on Steam and will be purchasing it when it is released.

Can you talk about the development process? How long did it take you? Is any of it vibe-coded? As you already stated, the browser version is a Vite/TypeScript app, but what programming language is the actual game in?

Edit: Also, nice website!

  • epaga 2 days ago

    Thanks so much for the kind words!

    > How long did it take you?

    It's taken about 3 months of my spare time (some evenings and a few weekend afternoons) so far.

    > Is any of it vibe-coded?

    I actually started the project back in February as an experiment to train myself in prompting and to see how far I could get using Codex and letting it do literally all the coding for me. It turned out, I could go all the way. I have not touched a single line of code myself (I have only tweaked some CSS from time to time). This project has led me to realizing my 20+ years of professional experience in coding are clearly worth far less than they were just a couple years ago...

    > As you already stated, the browser version is a Vite/TypeScript app, but what programming language is the actual game in?

    The actual game is written in TypeScript. For the Windows/Mac/Linux/Steam Deck/iOS/iPadOS/Android builds I'm using Electron to package it (which has surprised me for how well it's working even though I always kind of hated Electron...)

dwroberts 3 days ago

I would like to try this, but would strongly prefer a demo on Steam that starts and runs fullscreen rather than playing it in the browser.

Can obviously fullscreen a browser tab etc - just that, playing it in the browser has a sense of impermanence that doesn’t mesh with needing to take a long time to learn and play it? I dunno, just feels like the wrong place for it

  • epaga 3 days ago

    Definitely planning on getting a demo out. Which device are you on? I could add you as a beta tester if you're interested.

    Edit: Also, you can add the page to your Home Screen on most browsers as a PWA app, and it's nearly like a full screen app.

cbm-vic-20 3 days ago

"Wow, it looks amazing, honey!" -John's Mom

hah!

znip 3 days ago

Great job and kudos! Spent 4 hours in tutorials, but damn destroyer always get's me in last step. Anyhow will wait for steam release. Cheers.

kqr 3 days ago

I was able to delete the target ship in the tutorial by selecting it and pressing delete, when I wanted to delete a mark next to it. Is that intentional?

  • epaga 3 days ago

    Whoops, that is a debug functionality that I accidentally left in. Thanks, fixed!

stefan_hagen 3 days ago

Very cool! I love the "dry" part of it: actual calculations of angles and speed estimations etc. Will keep an eye out for the launch!

abrookewood 3 days ago

Congrats on the launch. Looks interesting, though maybe a tad dry. Love the authenticity though. Have wish listed it and will keep an eye out.

  • epaga 3 days ago

    Thanks a lot! Any ideas how to make it less dry? :) That's kind of par for the course for submarine sims, I suppose...

    • conception 3 days ago

      I would say in this case dry is preferred. It’s a niche thing. Let it be niche :) we need less common denominator content in the world.

    • applfanboysbgon 3 days ago

      Is it? I'd really expect submarine sims to be wet. Rather extremely so.

      In more seriousness, I think it's fine for this kind of simulator to be 'dry'. There are a million games on the market, each can have its own niche, I think this one appeals to a very specific type of nerd and doesn't need to appeal to the mass market (and really, probably can't without a degree of production value that goes beyond the scope of an indie game; I think to get mass appeal you would probably need hyperrealistic 3D graphics and such).

oezi 3 days ago

I tried the tutorial, but got confused by when to start/stop time and it made everything become desynchronized from your tutorial instructions.

I then started the time again, when I shouldn't have and realized that I would have to do all the calculations all over.

You should either manage the time or give dynamic instructions.

  • epaga 3 days ago

    Thanks - yeah this is a tricky problem since on the one hand I don't want to frustrate users not being able to pause/unpause but on the other hand I need to not let them unpause too soon and have the ship be in the wrong position.

    Currently it should be blocking unpausing until step 7 or so... and it also should auto-pause once the ship reaches step 8(?). I did both of these things for the reason you're saying, but maybe I need to do it even more "locked down", at least for the Basic Tutorial.

    • kqr 3 days ago

      For what it is worth, I ended up playing the tutorial mostly in real time, i.e. without pausing, because that felt more authentic. Under that constraint, I did have to play it three times to get proficient enough with the tools to succeed, but it was a lot of fun to figure it out under time pressure too.

      Something that helped me a lot was exploring how the firing solution changed when I changed various parameters in the TDC. I don't know if there's a way to build that kind of exploration into the tutorial. Maybe by splitting it up into segments, asking the user to handle only one measurement at a time, and illustrating how the firing solution changes?

      It is, however, annoying to start up the tutorial and click next-next-next-next to dismiss all the text when playing around with its scenario. Maybe a "dismiss tutorial text" button somewhere in the start of the tutorial?

      • epaga 3 days ago

        Great feedback, thanks - and I'll think about a good way to let you just dismiss the tutorial text entirely...

        • kqr 3 days ago

          Something else it took some time to understand was how the TDC evolved the firing solution over time. I really appreciate the yellow ghost ship on the map, but maybe there could be four more ghost ships indicating computed positions one minute, two minutes, etc. into the future? Possibly with increasing transparency.

          • epaga 3 days ago

            Loved this idea, so I put it in the game. Check it out and tell me what you think. :)

            • kqr 3 days ago

              Yeah, I noticed when I tried the second tutorial mission. That mechanic worked out great!

              My first attempt at the second mission I had the periscope up too much and forgot to dive so the escort vessel rammed me. Maybe tell the player to pay attention to the detection-o-meter?

              Second time I was very careful and managed to get hits with four torpedoes on the first salvo. I had to bring up the scope to watch. I had no expectation of even getting close so it was INCREDIBLY satisfying. Then at first it seemed like I'd escape but I lost track of the escort and then got blown up by depth charges.

              I'm absolutel going to try again, though. This was a lot of fun.

yread 3 days ago

Nice game. It's a pity that the stadimeter is so small. I can't read it at all and have to trust the computer (if I wanted to trust the computer I would probably play a different game)

  • epaga 3 days ago

    Note that the periscope has an expand button to make the view bigger (though if you are on your phone there’s not much more for it grow)

throwaway2037 3 days ago

If anyone is curious, the music was composed by Gustav Holst and is called The Planets, Op. 32. I am curious for OP: What made you choose this soundtrack?

  • epaga 3 days ago

    Primarily because I always loved those pieces growing up, it was my first real exposure to classical music. :)

    (And another reason is that it was a simple way to get some stirring music without needing to find a way to write my own.)

asimovDev 3 days ago

i think you marked the game as a 32 bit macOS game, cause i get the warning notification on the steam store page. You should check that just in case

  • epaga 3 days ago

    Thanks! I noticed that, too and will be getting it set straight. Still learning the Steamworks ropes, it's a colossal administrative tool.

  • epaga 2 days ago

    Found the setting and fixed that.

mujib77 1 day ago

waiting for it to be available on app store

  • epaga 1 day ago

    If you join our Discord and ping me there, I can add you to TestFlight for beta testing the App Store version!

ezconnect 3 days ago

The submarine don't look like a submarine.

  • ezconnect 3 days ago

    I reloaded my torpedoes but it is taking so long and it just keeps on blinking.

butz 3 days ago

Sorry, but your app icon is 3.66 MB PNG. A quick optimization to save some network requests.

  • epaga 3 days ago

    Whoops thank you! Will optimize soon.

  • epaga 2 days ago

    Optimized to webp. Thanks again!

crimsoneer 3 days ago

Is that comic sans or am I having a moment

  • epaga 3 days ago

    It should be Patrick Hand, and Special Elite for typewriter stuff...but are you seeing Comic Sans, seriously?

    • Citizen_Lame 3 days ago

      Nah, it is Patrick Hand, but it looks bit off for this kind of game. I would expect more "serious" kind of font. Like typewriter or similar.

iberator 3 days ago

please make the whole planet a single map. like fsx did

yarekt 3 days ago

very cool, i’m in