Game Overview

Dungeon-ous Crab was a solo project I made for the Game Design Studio class at UC Santa Cruz. In this game, the player is a crab exploring a dungeon of sand and water. The crab must find sand castles to continue along the beach, avoiding any vile seagulls along the way. Seagulls will defend their towels from the crab, so the crab must find a way past them. While seagulls can eat the crab, the crab is not entirely defenseless and can find items such as a bucket to use as armor or a knife to fend off the seagulls. The crab gets points for dispatching seagulls and for finding and entering the sandcastle on each level.

Code:
Repo:

This image shows the player with a bucket equipped, standing between a knife power-up and a seagull on its towel.

This image shows the player with both the knife and bucket power-ups equipped about to enter a sand castle.

My Contributions

This being a solo project, I made everything in the game using the JavaScript game library called the Crisp Game Library. This library is intended for rapid arcade game development, offering one button of user input as well as color based collision detection and 5x5 sprites. Using the sprite feature, I designed the sprites for my game by combining multiple 5x5 sprites to form larger images. Because of both the class this was made for as well as the affordances of this library, I was only able to receive one button of user input. Using this one button, a mouse click and its screen position, I created an arcade dungeon crawler.

To accommodate this limitation, I designed the sole player control to be clicking to move. To add more facets of gameplay to this base mechanic, I designed the items in my game to be like power-ups, so all the player would have to do is walk over them. There are 2 power-ups in the game: the bucket and the knife. The buckets serves as armor that will stay on the player until they take damage, in which the bucket is expended, but the player avoids losing. The knife serves as a one time use item as well, but will eliminate an enemy during collision instead of the player losing the game like normal.

Since the player can only click to move, the gameplay had to revolve around this feature. Like the power-up, I designed the enemies to chase and attack the player, ending the game if the player was hit. To balance the enemies (the seagulls), I designed them to only chase the player whenever the player gets too close to their towels. The objective of the game is to get a high score, and defeating the seagulls with the knife power-up rewards points as well as finding and entering the sand castle.

The mechanics of this game such as the movement with the panning camera and the minimap were both non-native to the Crisp Game Library. To implement the panning camera, I created a global offset variable to render every world object relative to an offset from the center of the screen. As for the minimap, I defined map chunks as simplified tiles, then constructed the minimap as the map chunks were generated. Then, to handle the player marker, I calculated the player's position relative to the world and converted that position to minimap space in order to draw it.