Over the course of 3 days my team designed a puzzle platformer named Dropped. I will discuss how my role as programmer/producer on the project lead me to create a game that others found fun to play.
Play Dropped by downloading here.
In working with my team I stuck to the principle that if it wasn't ready fast, it had a high probability of being cut from the project (I had us look at Design from a production perspective). This lead us to scrap our original, blue sky design document.
Coming from a programming background I typically approach games utilizing the technique of mechanics driven design. As such, if a mechanic presents itself emergently that is better than my original idea of a mechanic, I am not afraid to make that dynamic, the core mechanic of the game. Such was he case with dropped.
As I was programming the physics of Dropped, I would stop to test it in between additions. On one attempt, I added collisions on the vertical axis using
place_meeting(), but not on the horizontal axis. When I tested this in game, it came to life. It turned out to be a lot of fun. I immediately scrapped my old idea and built a game around this as the core mechanic. A player could pass through a platform while jumping, creating a sort of "Chain Linking" effect which proved to be quite fun to play with.
This left me with the game's 3 core mechanics:
- Chain Jumping
- Clinging (Walking through platforms horizontally)
Level Design:: While there were other important things to code, I felt it immediately important to give this game its life. The life would obviously come through from its levels. The first thing I drew on screen was a faucet, this was to be the players spawn, since he is a water drop named Splash.
Next I began to place platforms, and programmed an exit pipe for the player to escape through. This gave the game an immediately linear path.
However, I now had a game with no threat. So up next was the creation of hazards. Initially I only included spikes. I would later create spectral spikes that would ghost in and out. By this point I had created 11 levels. It was time to step up the game's challenge again. So we designed spinners of a large, and small variety. By level 20, I wanted to offer a new, more challenging level, so I made the player control 2 drops of water. This offered an interesting twist. Finally, I programmed moving platforms, and moving enemies, which I utilized on the final 4 levels of the game.
It was important to add music and jumping sounds to the game for me, so I programmed audio to start at the now existent splash screen. When going from one audio track to another (particularly with looped audio) it was important to call
I also programmed 3 separate jump sounds that would alternate each jump. Unfortunately the sound assets we were using didn't sound different enough for these to be noticeable.
NOTE: Whoever is importing the audio be sure to make check of the bitrate of the audio, the specifying the wrong bitrate, or not changing it to the correct one will cause a windows error sound to play when someone is playing your Gamemaker game.
Since I did work on the main character's art, I was able to have a better grasp on how the code should transition between each animation. The character has an animated idle, and a right and left walking sprite. Our artist also made a falling sprite.
Currently, Dropped's only scoring system is a
global.deathCount variable which stores the players deaths during the game. I also intend to program a speedrun timer for the game by the final iteration.
While playtesters were playing I had one rule:
Do not tell them how to do anything.
This rule served me well. I got to see the things the players stumbled on, and those they didn't. Something we took great pride in was the fact that upon being told they would not be told anything, the playtesters were easily able to pick up and play the game. More than 70% of the testers were using the core mechanics within the first 3 levels.
Afterwords, rather than fatigue them with 100 questions I only asked them between 1 and 3 of the following 3 questions.
- Was this game fun? If so why or why not?
- Did you feel like the game was fair? Why or why not?
- What would you add, change, tweak to improve the experience?
Among the feedback that we got here is some of the kind feedback, and helpful feedback:
- Taking a picture of the win screen (hell yeah, people thought the game was complete enough / challenging enough to take a picture of their success)
- Cohesive theme, cute art assets.
- Fun mechanics, easy to learn.
- Collisions were a tad larger than certain objects (too challenging).
- Game was too easy
- Game was too hard
- Drop should have a falling animation
- Spikes do not fit the theme well
- Music can be too loud at first boot
- Did you Intend to let the player walk through walls?
- Sometimes play falls a little bit lower on a platform when landing on it from a large height.
- Moving platforms would be an interesting challenge