Who doesn't love a good platformer? Jacky doesn't, but Harrison does. That's why our group split into two: one group to make a precision platformer-- and one group to break it. With both groups not knowing what the other was accomplishing until both had a completed product.

What it does

Dessert Dive is a precision platformer that anyone can play on their computer. platformer-input is an application that will play the game for you! The unique factor of Dessert Dive is the "diving" mechanic. Being a momentum-based precision platformer means that every input counts. However, when a computer can create a unique input every frame of a game, there are many unintended consequences. While Harrison can play the game smoothly like it was designed, the computer can finish a level in half the time. Watch it yourself to find out how!

How we built it

Dessert Dive was made in GameMaker Studio 2 with a de-emphasis on aesthetic, but a high emphasis on gameplay. platformer-input is a python application that allows a user to input json that will emulate an individual playing the game.

Challenges we ran into

Collisions! GameMaker Studio 2 has many ways to check collisions, and in an effort to simplify our struggles we used rectangular hitboxes. This was a mistake as we spent more time working on collision checking than adding new elements to the game (not that we didn't have enough).
GameMaker also had issues with a Mac OS library called mono, which had us spending about an hour at 1AM trying to reinstall libraries so we could test our game. There was also a time near around 4AM where we a had a variable that was not supposed to exist but still worked due to the very loose language of GML.
The keyboard virtualization initially used the library re (regular expressions), which turned out too complicated for the simple task of listing button presses. We switched to JSON instead. Also, creating the tool assisted speedrun (TAS) files to automatically play the levels took a long time.

Accomplishments that I'm proud of

Both applications work! That speaks for itself. Also the fact that we, as a group, stayed awake for over 24 hours. You'll have to play the game yourself to appreciate how tight the mechanics are.

What we learned

Harrison and Jackie learned GameMaker Studio 2's proprietary language GML. Jacky and Kaleb learned python (again!), and python's keyboard library and json syntax. Together we learned that no matter how specific a program can be, there is a way to break it.

What's next for Dessert Dive

Harrison has always wanted to design a precision platformer. Maybe we'll continue with it. And thanks to platformer-input, we have a way to systematically test any changes we make.

Stretch Goals

Manually create the rest of the TAS runs. Incorporating machine learning and artificial intellience. Better graphics.

Note: The name Dessert Dive is a joke. We know how to spell Desert.

Built With

Share this project: