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

Delve Into the Deep

by frogcheese - 48 Hour Compo Entry

Delve into the deep oceans and gather treasure. Trade that treasure with your old pal Santiago for equipment to help you delve further, faster. The world is procedurally generated (though not in any impressive fashion), so you can swim as far as you like in any direction.

HOWTO: Click and hold the mouse to guide your diver. Don't drown or be crushed by water pressure.

The connection to the theme is pretty obvious - Beneath The [ocean] Surface there lies hidden loot that a dedicated diver can use as he or she pleases. The game uses pretty weird screen dimensions to let you better feel the surface-breaching that's going on. Art. The long and short of it is that you're a diver and that your passion and profession is diving, preferably in water.

Game was made with LibGDX, sounds with Bfxr.

Tested on Windows, OS X and Ubuntu. You will have to mark the file as executable to run it on later versions of Ubuntu - you can do this by right-clicking the .jar file and going into its Properties. There should be an "executable" checkbox there.

Version 1.01 - Updated LibGDX from 0.9.8 to 1.0.1. Hopefully this fixes the startup crashes some have experienced. As a side effect, the source now needs Gradle in order to build.

Downloads and Links




Apr 28, 2014 @ 12:22pm

Really well put-together little game! The audio and graphics worked brilliantly, and the game was very good at making me push my luck and try to stay down a *little* bit longer to find more treasure. I like it!

eugman says ...
Apr 30, 2014 @ 12:08am

Well designed game and very beautiful. It's a shame there weren't enemies or anything like that. I feel like it would do well with some additional risk.

Apr 30, 2014 @ 1:42am

Cute game, I keep getting claimed by the deep :P Like something similar said, the audio and graphics are well done, give the game a nice atmosphere !

Boodog says ...
May 1, 2014 @ 2:12pm

Good job! Nice audio and graphics!

Nichii says ...
May 1, 2014 @ 2:29pm

I love the theme of this game. It reminds me of the old Atari era XD. The graphics are well done. Though it would be nice if the screen was bigger XD

UnixXNova says ...
May 1, 2014 @ 2:35pm

Awsome game i really like the music gets hard when you don't look at your oxygen

Cirrial says ...
May 1, 2014 @ 2:55pm

Wow, I love the style going on in this entry. Graphics and sound are great and it feels pretty polished for what it is!

thaaks says ...
May 4, 2014 @ 2:32pm

Wonderful game! Being a fan of the old Durrell classic "Scuba Dive" for the ZX Spectrum this little gem brings back lots of fond memories for me :-) Thanks for that alone!
The controls are great, the combination of air and pressure are increasing the difficulty.
I would have loved a bit more cave like underwater scenery instead of "platforms" and maybe different treasure types (pearls, dublons, goblets, etc.). Also sharks, octopusses, sharp corals and other obstacles would have been nice ;-)
Well done and you just made my day with your game!

Joshua_Burr says ...
May 4, 2014 @ 2:36pm

This failed to run for me on OSX.

JavaVM WARNING: JAWT_GetAWT must be called after loading a JVM
JavaVM WARNING: JAWT_GetAWT must be called after loading a JVM
JavaVM WARNING: JAWT_GetAWT must be called after loading a JVM
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Unable to create OpenGL display.
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Unable to create OpenGL display.
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setupDisplay(
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$
Caused by: org.lwjgl.LWJGLException: Could not get the JAWT interface
at org.lwjgl.opengl.AWTSurfaceLock.lockAndInitHandle(Native Method)
at org.lwjgl.opengl.AWTSurfaceLock.access$100(
at org.lwjgl.opengl.AWTSurfaceLock$
at org.lwjgl.opengl.AWTSurfaceLock$
at Method)
at org.lwjgl.opengl.AWTSurfaceLock.privilegedLockAndInitHandle(
at org.lwjgl.opengl.AWTSurfaceLock.lockAndGetHandle(
at org.lwjgl.opengl.MacOSXCanvasPeerInfo.initHandle(
at org.lwjgl.opengl.MacOSXDisplayPeerInfo.doLockAndInitHandle(
at org.lwjgl.opengl.PeerInfo.lockAndGetHandle(
at org.lwjgl.opengl.MacOSXContextImplementation.create(
at org.lwjgl.opengl.ContextGL.<init>(
at org.lwjgl.opengl.Display.create(
at org.lwjgl.opengl.Display.create(
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(
... 3 more

frogcheese says ...
May 4, 2014 @ 2:46pm

Hey Joshua. From looking at the log, I think your version of Java is probably incompatible with the version of the bundled LWJGL. Do you know what Java version you use?

czery says ...
May 4, 2014 @ 3:11pm

Does not work on Ubuntu 14.04.
It is blocked for some reason.
I got a link to this page which may help you resolve the problem (if you are interested in doing so - it's probably not worth the time imo )

Good luck.

k.escoe says ...
May 4, 2014 @ 3:27pm

the audio and graphics are wonderful! i really enjoyed playing this

frogcheese says ...
May 4, 2014 @ 4:00pm

@czery .jar files aren't executable as standard in Ubuntu as a protection against malware. You can mark a .jar as executable by right-clicking on it, going into Properties and marking a checkbox. I don't know if there's anything I can do to make a .jar executable by default when downloaded onto Ubuntu, but I doubt it.

pvwradtke says ...
May 4, 2014 @ 4:26pm

Thanks there were no sharks or other enemies, I had a hard time to balance oxygen and pressure alone :). Nice work!

minibutmany says ...
May 4, 2014 @ 4:36pm

This is a really excellent game! The upgrades system made a simple concept very addictive. The whole style is very appealing as well.

Ragzouken says ...
May 4, 2014 @ 4:43pm

One of my favourites so far! Loved everything about it, awesome graphics and music, very addictive gameplay, nice simple idea that works really well!

miwuc says ...
May 4, 2014 @ 4:45pm

Awesome game, really fun to play! I love how the music fades in as you dive. The graphics are very cute too and Santiago/Michael is a funny dude. Great job!

PaperBlurt says ...
May 4, 2014 @ 6:08pm

Don't understand it but the mood really got to me.
It's something lonely about sinking to the bottom.

HybridMind says ...
May 4, 2014 @ 6:35pm

I really enjoyed playing this a lot. Eventually committed suicide because there was nothing left to do. :) Used my advanced weight suit to kill myself. Definitely wish you had had time to expand it a bit to add further reason to go deeper / more things to see down deeper.

dector says ...
May 4, 2014 @ 7:03pm

Excellent entry! Like this.

badlydrawnrod says ...
May 4, 2014 @ 9:28pm

I agree with @HybridMind about having more things to do, but on the whole this is an excellent entry. Give it more of an objective, port it to mobile (should be straightforward given that you're using the most excellent libgdx) and you could have a hit on your hands. Very nice job.

Marcellus says ...
May 5, 2014 @ 4:09pm

Wow, that is a great game. music is very nice and graphics are really cute. Well done !

Make A Game says ...
May 5, 2014 @ 6:30pm

Great! Liked the progression, would be great if you could improve on even more to do at bigger depths, more upgrades and more things to discover/avoid.
Very good all around :)

SlipperyPete says ...
May 6, 2014 @ 7:28am

Doesn't work for me, Error code is as follows

Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
at java.lang.reflect.Method.invoke(
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/jn/vbbyqht51z1gwgnnrwnxv8r40000gn/T/libgdxScott/3741154320/liblwjgl.dylib
at java.lang.ClassLoader.loadLibrary(
at java.lang.Runtime.load0(
at java.lang.System.load(
at org.lwjgl.Sys$
at Method)
at org.lwjgl.Sys.doLoadLibrary(
at org.lwjgl.Sys.loadLibrary(
at org.lwjgl.Sys.<clinit>(
at org.lwjgl.openal.AL.<clinit>(
at com.badlogic.gdx.backends.openal.OpenALAudio.<init>(
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.<init>(
at se.frog.beneaththesurface.Main.main(
... 5 more

if you want I can check out what the 5 more are, it's easy enough, I saw the other comment about the java version, I have both 6 & 8 installed, so it shouldn't be an issue, & if it only works with 7 then you really need to fix that.

mons657 says ...
May 6, 2014 @ 7:28pm

Very nice game. I really like the shop UI. Its amazing to think you made this in 48 hours.

01101101 says ...
May 8, 2014 @ 10:27am

Nice game, very consistent! Everything works well together: the art, the music, the "dialogs"... Makes for a great mood that serves the gameplay well. Good job!

KevinWorkman says ...
May 9, 2014 @ 5:18pm

It started as a casual hobby: I'd swim along the surface, admiring the glints of silver and gold that caught my eye from just below me. Almost like a daydream, something that I'd like to reach... someday. People have these kinds of dreams all the time; the kind that never quite turn into plans, but aren't just mere fantasies either. I could have gone my entire life just looking and thinking without actually doing anything. Most people do.

Eventually, I became determined to turn my dreams into reality. Maybe the key was letting go of the plans and schemes that occupy the human mind and just allowing the sea to claim me. Without really thinking about it, I dove below the surface. It felt as natural -and as clumsy- as a child taking her first steps. I probably made a few mistakes. Hell, I probably still do. But the point is, I did it. I reached down and grabbed the treasure that had been haunting my imagination, and I dragged it back to the surface.

But now what? That's when I met Santiago, a man with a past befitting a sailor: half mysterious, half embellishment, and pinch of downright insane thrown in. But Santiago was a good guy. We quickly hit it off, and he agreed to purchase any treasure I found. After that, Santiago followed me everywhere, almost like a shadow.. or maybe I was his shadow? I would look up to the daylight, and there he was. Greatest man I've ever known.

All of a sudden, what was once just a dream became my daily life. And I loved it. Forgive me the pun, but I dove right into the lifestyle. Diving for treasure and bringing it back to Santiago quickly became my life. My flesh, my blood, my being. My life. Down. Up. Down. Up. It was thrilling, it was an adventure, and it was everything I had dreamt of come true. Soon I was not just diving, but hurtling towards the abyss, collecting more gold in one trip than most men see in a lifetime. I was the best. I had the best gear. Nothing stopping us. We were rich, not just in treasure but in company, health, and aliveness.

But the tragedy of the human condition is that the thrill of the chase quickly becomes the burden of having. The girl who once longed for the 50s was now bored with the 2500s, the monotony of being unchallenged. Luckily Santiago was always down for a chat, which became as necessary as oxygen towards the end.

The day started out like any other: I put on my oxygen mask, my pressure suit, and my delving apparatus, just like I had done a million times. I had a few light-hearted words with Santiago, and I wished him well. “Goodbye, Holly.” He knew. But he also knew not to stop me. Maybe it was the look in my eyes. Maybe he was as finished as I was. I'll never know.

I dove, flying towards the murky depths like a rocket in reverse. Listening to the music of the ocean. Ignoring my oxygen and pressure warnings. Waiting to be claimed by the depths one last time.

Taffaz says ...
May 9, 2014 @ 5:44pm

Awesome game, looking forward to digging through your code to try and get some tips.

frogcheese says ...
May 9, 2014 @ 7:54pm

@KevinWorkman oh goodness, you almost brought a tear to my eye! That was absolutely amazing. Thank you - if comments had mood ratings you'd get five stars in a heartbeat. :)

copain says ...
May 10, 2014 @ 7:02pm

little repetitive but so good graphics!

JoshOS says ...
May 10, 2014 @ 7:46pm

I really liked your game. Graphics are nice, music is relaxing. I like the fact that the volume increases as you get deeper. Good job.

Delca says ...
May 10, 2014 @ 8:07pm

Music and graphics were both great, and the gameplay was really pleasant. Excellent game!

frogcheese says ...
May 11, 2014 @ 5:17pm

Thank you so much everyone for your comments and ratings! I was using an outdated version of LibGDX for this game, but I've now updated it. This hopefully solves the crashing problems some of you have encountered. If not, leave a comment; I'm very busy on weekdays, but I'll try to get a look at it as quickly as I can!

XenosNS says ...
May 12, 2014 @ 12:55am

Love the art style and screen size. Single button controls also great.

ninjacharlie says ...
May 12, 2014 @ 8:59pm

There were some really solid mechanics in this one. It would have been cool to maybe have a gun to shoot at sharks, or some other extra mechanic like that, but I'm glad there was still some progression. Good job :)

SnoringFrog says ...
May 14, 2014 @ 5:06am

Lovely game! The odd window sizing really fit the game, as it made everything feel deeper. I also enjoyed how the music faded out as you approached the surface. Like others, I eventually committed suicide when there were no upgrades left for me to buy. I bought my final item--new ballast--gave it one test dive to see how it worked, returned to the surface, and then took a dive I knew I would never return from. I skirted along the limits of the pressure my adamantium suit could withstand, then, eventually, went down anyways to be forever claimed by the depths.

Maxom says ...
May 18, 2014 @ 4:34pm

Really nice mood and gameplay is also very interesting!

Blokatt says ...
May 19, 2014 @ 12:01pm

Very well-made game! I liked every aspect of it and enjoyed playing it. :)

minibutmany says ...
May 20, 2014 @ 11:23pm

Congratulations on the high rating!

frogcheese says ...
May 25, 2014 @ 11:37am

Wow, 39th place? That's better than I even hoped for. :) Thanks a lot to everyone who played and rated Delve Into the Deep - I hope your games did well too, and that you stick around 'til august!

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]