PhD Candidate in Computational Media at UCSC

Don't Get Glooped

Don’t Get GLOOPED: A Very Bad Jumpman Clone with PCG levels

Controls: WASD for Hero movement, SPACE for Hero jump.
Gameplay: Help BLUE SHIRT GUY reach the BLACK DOOR.
Run/walk across RED BEAMS, jump over GAPS, and climb YELLOW LADDERS.
Avoid the GREEN GLOB monsters.

Design & Implementation Post-Mortem:

This game was created as a final project for a graduate level intro game design course at UCSC, working with a discontinued JavaScript port for processing (processing.js). I created a simple version of a Jumpman/Donkey Kong type game. Initially I intended to include feature characters made from photos of my brother-in-law and his cat “Magic" but abandoned that as collision ended up being handled by raycasting to check object colors and would have been disrupted by an image with a variety of pixel colors.

I was going to generate a hardcoded static gameboard and call it done. But I ran into an issue because of how the hero dealt with moving up ladders that essentially made it so the ratio had to be exactly the same for each segment of ladders and beams on the map. This wasn’t a big deal but in talking it over with someone I realized we could just divide the game space up into segments which could be populated by beams gaps and ladders to create a procedurally generated random game board each time.

Generating new random maps each time turned out to actually be a good deal more complicated than I thought it would. In truth, I only started working on it because I thought it would be simple. However, I figured out a logic check to randomly place a beam or a gap, then—if there were no gaps at the end of building the level—to randomly pick a position and add one, each level had to have at least one gap but no more than five, this meant that the game could never become unsolvable by ensuring that a high enough ratio of red beams would exist on each level. Coupled with the Pacman style ability to move off one side of the map and onto the other the player was always able to traverse the entire map.

I then decided that having created a way to generate random maps I wanted to make better use of them than drawing 1 each game. So I added a black door sprite at the top of the game map which, when the hero entered the space, would essentially move the hero to a new level, rerun the PCG elements to for a new map, show a text saying you did a good job, reset the hero position to the ground level, and delete all current globs. (Note: new levels don’t work on the embedded version of the game)