Ludum Dare 29 — April 25th-28th Weekend — Theme: Beneath the Surface

Event Links: [ MiniLD 50 | Warmup Weekend | Real World Gatherings | Ludum Deals | Wallpaper ]

Back to Browse Entries

Crushing Depth

by zzorn - Jam Entry

Crushing Depth

Ludumdare29 entry by zzorn

This is a submarine fight simulator. Your objective is to destroy the enemy submarines before they destroy you.

The actual gameplay is pretty unfinished, I ended up putting most time into creating the physics and simulation again.


Make sure you have Java installed.


Extract the zip file, then:

On Linux

Run the script, for example by opening the terminal in the directory you unpacked the game in and typing
and enter.

On Windows

Double-click on start.bat


Press space to fire a torpedoe.
There is a reload time of a few seconds.

Press Enter to switch views.

The following keys are also visible in the UI, so no need to memorize them:

Surface diesel engines / Underwater electric motor:
Increase speed with W, decrease it with S.

Turn left with A, right with D.

Dive fin:
Dive down with F, up with R.

Ballast tank:
Pump water into the tank with Down Array (makes submarine heavier) , and pump water out with Up Arrow (makes submarine lighter).

Recharge batteries with diesel engines (works only at surface):
Turn on with C, off with X.
(Not needed unless you want to play a _really_ long time).

The red hand on each gauge indicates the player selected level, while the white hand indicates the actual level.


There is no death screen - if you get destroyed, the camera and UI just stays floating at the point where you died.

There is no win condition either.

There is no sound.

Torpedoes tend to explode after having traveled too short a distance.

Torpedo hit detection is somewhat buggy.

The enemy is pretty stupid (read, random).

Downloads and Links




Kwrky says ...
Apr 29, 2014 @ 10:50am

I think there is something here, but it needs to the have the gameplay finished. The graphics have a kind of Bioshocky vibe =D

popogames says ...
Apr 29, 2014 @ 10:50am

The keys you have to use are all over the keyboard and there is still a lot missing. The idea is nice though, but it needs more improvement.

Mekuri says ...
Apr 29, 2014 @ 10:55am

I really liked the controls, took me a while to figure it out, but awesome! - I managed to hit another sub multiple times, but the torpedoes just went through it- This all happened on the surface, so I don't know if that had anything to do with it. Sounds would've added a lot to this game- The graphics was nice and your underwater mood was nice- But that mood would've rocked with a few underwater sound effects.
All in all, I was impressed with this game - Good job!

SuperIzzo says ...
Apr 29, 2014 @ 12:50pm

The scene does not render for me. I can see the HUD and behind it is a black screen. Pressing keys shows changes in the meters (so the game logic is fine). I'm running Windows 7 (64bit) on a laptop with a moderate graphics card (ATI Mobility Radeon HD 4200 Series); I extracted the game and ran using the bat and later using just the jar. Not rating for now.

Ludonaut says ...
Apr 29, 2014 @ 1:10pm

Nice take on the theme. I like the gauges.

Ragzouken says ...
Apr 29, 2014 @ 1:12pm

like the visuals :)

some simple ambient sounds would have really improved this!

i think i zoomed out of the map by accident

javifugitivo says ...
Apr 29, 2014 @ 1:15pm

Nice try but the gameplay seems a bit unfinished, with more time, I'm sure that you would had done a very promising game, good job!

Aomeas says ...
Apr 29, 2014 @ 1:16pm

I have an issue while trying to launch it on Mac OSX :
"Exception in thread "main" java.lang.UnsupportedClassVersionError: org/ludumdare29/Game : Unsupported major.minor version 51.0"
I have tried launching it with the command line "java -jar ludum[...].jar" and with the sh script, resulting in this error.

zzorn says ...
Apr 29, 2014 @ 1:16pm

Thanks for the comments everyone!

SuperIzzo: Probably some issue with the shader then, the UI is rendered with the default LibGdx shader, but the ocean uses my custom shader. I'll need to look into compatibility issues with different cards more in the future, there's probably no quick fix I can do for this Jam.

Mekuri: Agreed, I'd have loved to add sounds for all the different motors and systems if I would have had more time. The torpedo hit detection was a last minute addition, I'll check if there is some obvious bug.

zzorn says ...
Apr 29, 2014 @ 1:19pm

Aomeas: What version of Java do you have? (The output of java -version ).

I compiled it with Oracle Java 1.7, so it might not work with older Java versions.

SoupWithBits says ...
Apr 30, 2014 @ 12:50pm

Looks awesome! With some polish and juice, I think you'll have a winner!

Empyrealhell says ...
May 1, 2014 @ 1:42am

Just a black screen for me. I can see the gauges, and I can interact with them, but the middle of the screen is solid black. On Windows 7 x64, java 1.7. I have a Radeon video card that's about five years old, my best guess is itas a shader compatibility issue.

zzorn says ...
May 1, 2014 @ 8:21am

Empyrealhell: Thanks for reporting. So far two radeon cards that my custom shader fails on, so we could have a pattern there.

dertom says ...
May 1, 2014 @ 9:14am

Too bad I also can't run it. Only the hud. It looked very promising...maybe later!

byExclusive says ...
May 2, 2014 @ 7:16am

Nice game!!!!!!

GreatBigJerk says ...
May 3, 2014 @ 11:50am

Didn't run on OSX. Tried just the jar and the shell script. The shell script gave me this error:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/ludumdare29/Game : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(
at java.lang.ClassLoader.defineClass(
at Method)
at java.lang.ClassLoader.loadClass(
at sun.misc.Launcher$AppClassLoader.loadClass(
at java.lang.ClassLoader.loadClass(

kibertoad says ...
May 14, 2014 @ 8:05pm

Kinda freaking fantastic. All it lacks is sound and gamepad support. This could be seriously fun to play online with friends.

You must sign in to comment.

IMPORTANT NOTE: If you want to place in the final results, you NEED votes. The easiest way to get votes is by rating other games. Judging lasts for 3 weeks following the end of Ludum Dare. For best effect, rate 20 games as soon as possible. Rating more games is encouraged.


TEAMS: Teams entering the Jam should pick a single representative to submit your game, or create a team specific account you can share. We currently do not support Team Voting, but sharing an account and together playing and rating games is acceptable.

NOT LOGGED IN?: If you get a message about not being logged in, even though you are, it’s because your web browser cached the non-logged in page. You can fix this by either refreshing your cache or clearing your cache. CTRL+F5 in many browsers. Chrome is a bit more work. Press F12 to enable Developer Mode, then you can right click on the refresh button and select “Empty Cache and Hard Reload”. This option is unavailable if you are not in Developer Mode.

PORTS: Ports to other platforms can be done after the deadline. That said, the sooner you finish your port, the sooner people can play your game, improving your chances of placing in the final results. For best results, provide a Web version of your game, or a Windows version with no dependencies. Also be sure to rate about 20 games to improve your visibility.

MY GAME DOESN’T SHOW UP: If you can’t find your game, it’s usually because the URL to your downloads are missing ‘http://‘. Fix your URLs ( and you will show up.

MY GAME CRASHES, IS UNBEATABLE, OR I MADE A TYPO: We allow you to fix crash or win condition bugs after the deadline (in a sense, like “porting” to support more players). We also allow “typo” bugs. I.e. A true that should have been a false, a word that should have been a different word, very tiny changes that you would have caught if you had more sleep. We leave this open to interpretation, but generally speaking your game should be identical to the game you submitted. No new features, just things you messed up last minute. Typos.

[cache: storing page]