500 Fathoms

by SuperSaiyanGokuX
Take the Plunge
ID:1400902
 
Control a surface-breathing aquatic predator as you dive towards the bottom of the sea on a quest to seek and destroy. Eat the passive creatures floating around you to absorb their traits (offensive spikes, defensive armor, bioluminescence) so help find your way to your goal.

As mentioned, the game has no real instructions, so here's the run-down:

1) The objective is to make your way to the bottom of the sea (500 tiles down!), and find and destroy something special there (you'll know it when you see it) All racing against the clock, because your air is running out (did I mention you're a surface-breathing aquatic animal?)

You air will dwindle on its own, or in chunks when you take damage.

The round/run is over when you drown or when you find and eliminate your target.

2) Along the way, you'll run into (literally; Bump() into things to "attack") several creatures and obstacles:

  • "Puffer" - This round creature has sharp spikes hidden inside its spongy body. It can contract its body to expose these spikes. Eat these to increase your offensive capability, but beware of the spikes!

  • "Spinner" - Also known as the "quatropus". This creature is mostly harmless, but they are too chewy to eat until you've bulked yourself up quite a bit. In the meantime, bumping into them will cause them to squirt ink into the surrounding water, slowing you down.

  • "Basher" - This little crawling creature is covered in a very hard shell (which may be rocks it has picked up, or perhaps some sort of rock-like biological armor) Eat these to increase your body's defensive strength (and durability against the increasing pressure of the depths below!) Beware, though, they are very tough.

  • "Glower" - These benign little spinning disks have a form of bioluminescence that can grant you the ability to see better in the depths.

  • "Zapper" - These little eel/worm things stretch themselves out of holes in the rocks, and flail bakc and forth, periodically zapping anything near them. Steer clear!

  • "Bubbler" - These little sponges sit calmly on rocks, filter-feeding and periodically expelling bubbles of waste air. Float over them to recharge your lungs!

  • The rocks - The rock formations jutting up from the bottom have outcroppings that are very hard and you wouldn't want to bump your head on them!

  • The "mystery" goal - This special target lies somewhere near the bottom of the sea. It is your task to find this target and destroy it. Why? No one knows. Perhaps the contents are a delicacy. Perhaps you've got some grudge. Whatever the reason, this is your whole purpose for risking your life to dive down this deep!


Dive in and enjoy! (beware, the terrain generation (and post-round tear-down) take a pretty large chunk of time. I'll work on this in the future to carve away at that delay)
Very cools! Idk if it's just my crappy computer but it was laggy as hell at times.
It's pretty cool, but the load times are brutal, I only ended up playing it once because of that (I tried a second time, but when I switched windows while it loaded, I drowned).
In response to Cubanbling
Cubanbling wrote:
Very cools! Idk if it's just my crappy computer but it was laggy as hell at times.

It's not just you. I worked on/playtested it on two separate computers, and on both it bogged down from time to time.

I've got a few theories, but didn't have the time pre-deadline to work everything out.

It really shouldn't be too taxing, in theory... It uses, on average, 7000 objects on the map, but only those within your view are active. Mobs spawn just outside of your view, and delete themselves once you're out of range. It uses Deadron's Eventloop to drive all looping actions ("while()" is only used in the code once; driving the timer). Etc.

But there's still something that causes a spike now and then. I'm still not sure what it is.

I've noticed that it tends to get worse the deeper you go, but really, the only real difference at lower depths is that there are more rock turfs. Perhaps that there are more bubblers and zappers, but again, only the ones within a small range (just larger than the view distance) should be doing anything (the ones outside of your range are actually removed from the Eventloop list, so they're not even getting sent the call)

Megablaze wrote:
It's pretty cool, but the load times are brutal, I only ended up playing it once because of that (I tried a second time, but when I switched windows while it loaded, I drowned).

I'm about out of ideas to lighten the load of the terrain generation. The basic problem is that virtually everything is procedurally generated. The rock turfs "grow" from seed objects at the bottom of the map, they re-color and re-size themselves, some add the sand overlay, some spawn kelp or coral (both of which build themselves through spawning multiple "segments" which then have pixel offsets and color shifts applied), and so on and so on.

Lots of stuff going on on the fly.

It then tears it all down at the end of a round as well (which actually seems to take longer than the generation, for some reason) I'm tempted to just throw in a world.Reboot() after round end to skip that mess...lol
In response to SuperSaiyanGokuX
SuperSaiyanGokuX wrote:
Megablaze wrote:
It's pretty cool, but the load times are brutal, I only ended up playing it once because of that (I tried a second time, but when I switched windows while it loaded, I drowned).

I'm about out of ideas to lighten the load of the terrain generation. The basic problem is that virtually everything is procedurally generated. The rock turfs "grow" from seed objects at the bottom of the map, they re-color and re-size themselves, some add the sand overlay, some spawn kelp or coral (both of which build themselves through spawning multiple "segments" which then have pixel offsets and color shifts applied), and so on and so on.

Lots of stuff going on on the fly.

It then tears it all down at the end of a round as well (which actually seems to take longer than the generation, for some reason) I'm tempted to just throw in a world.Reboot() after round end to skip that mess...lol

Would you be able to generate it in the reverse, that is, top to bottom? Then you could thrown in some delays in the generation, or generate it in small chunks and have it generate as you play.
I was thinking of that. Most of the other game elements generate around the player (just out of view range). The terrain could/probably should work the same.

I suspect that much of the time is coming from creating the objects (the kelp, coral, zappers, and bubblers; the first three of which involve creating a base object, which then spawns the rest of the structure, which comes with appearance changes and whatnot) and those could easily wait to be generated as the player aproaches.

I'll start there, and see if the bare turf generation runs fast enough by itself to just leave it the way it is (if not, those will be the next to get the treatment).
I finally did it! I finally had a successful run!

I've been trying and trying, and failing and failing, but I finally made it! (which confirms that it's even possible; I was unsure until now...lol)

My time was only 15:47, too! lol I may have been a bit conservative, running to the nearest bubblers every time my air dipped below half, but maybe that's what it takes?

The end is sort of anti-climactic, though. I need to make it more special.

I think I'll throw a scoreboard onto the hub to record people's times for successful runs.