Platformer Stack is a single-player game where the players use dexterity, timing, and quickness to stack platforms to help escape rising lava by reaching the top of the mines.
The basic premise of this project was taking the idea of using one button and coming up with a fun iteration to the challenge of one button.
Role: Solo
Duration: 2 Weeks
Tools Used: Unity
Genre: Platformer
I wanted to run through a list of ideas for one-button games that made sense to me and didn't seem redundant or a rip-off of another game in that genre. The classic one-button game is an endless runner or an auto scroller but to me, this seemed too easy. So I stumbled on the idea of the classic platform stacker game, that used one button, but still, I figured what could make this different?
Around this time I saw Tricky Towers, a party game that used physics to create gravity that would affect the concept of stacking a tower, like Tetris, to make it tall. I knew I wanted to create a similar experience but my Ah-Ha moment was the line of thought, "What if I made it so there was a player avatar that you must get to the top of the level vertically, and doing so would require you to stack platformers underneath."
The Challenge from here was, how can I make this only using one button?
The gameplay loop that rewards the player is the finesse in trying to line up the platforms to harmoniously work with gravity, not against it. With only one button to press, the gameplay loop starts with a jump. After the player presses that first jump, a platform is spawned from either the left or right platform spawner. You next must hit the same button to have the platform moving horizontally to stop when the button is pressed, which creates a platform underneath the player if you've lined it up correctly, helping you escape. You continue this loop until you can reach the surface of the mines. As you’re racing against the clock.
The player experience was to encapsulate the feeling that you are rigorously trying to balance under extreme pressure.
Immersion:
The goals for immersion in this project were to make the player feel like they were actually threatened and one small mistake could end it for them. The goal to push immersion was to add partical systems and player feedback to help sell the experience. The decisions made were to place the player into an environment that was consistently under threat with rising lava that could kill the player, this helped the immersion of threat. This became validated by creating an internal clock that the player had to beat, this inherently put them into a flow state of focus that helped immerse the player in the feeling of threat. In my immersion case study, the biggest thing learned from playtesting is that there needed to be a ramp of threat and consequence, not only the lava but other external forces, such as random object threats and the player feedback when they die.
Storytelling:
On the storytelling side of things, I wanted the player to play as a miner that just struck lava and is now trying to escape. I imagined this kind of absurdity would fit pretty well for the style of the game. The design decisions made were determined through the mechanics of being restrained to one button. I felt that it would be appropriate to identify what kind of theme focuses on ascending and jumping, the decision to make the level as a mine and the character as a miner seemed to work. This decision was validated by the rising lava idea which pushed the player to ascend and climb a narrow mining shaft to reach the top of the pit. The playtesting helped reinforced that this was a suitable story and environment which was relayed back to me with satisfaction and understanding.
User Experience:
The experience for the player, to me, had to feel good. In doing so I made tweaks to the spawn timer as well as the amount of differentiation amongst platforms that would be spawned so it wasn't too easy or too hard. The platform sizing and timing created an experience that many players enjoyed. The goal was to create enough variability to keep the player on their toes and reward them for placing the platform right. In addition to the randomness, dying needed to feel good and not frustrating so I made it more fun by playing a nice audio cue to relieve some frustrations felt. These three design decisions became validated by allowing players to enjoy the game and giving them enough variety in which platforms showed up. The playtesting of this became imperative to finding which times were too fast or too slow. It also helped showed the frustrations of dying and bugs that arose such as being stun-locked until the lava inevitably killed you. I change this by allowing the platforms which spawned to kill you if you touched it anywhere other than the top.
System Design:
The system design for this was a bit tricky in the time allotted to finish this prototype. I tried to fit a handful of different types of platforms as well as different threats for the player to catch them off guard to help keep them in a flow state. The systems were broken down into mainly the platform category due to the simplification of the jump, which doesn't have many external states influencing it. I had 3 types of platforms and 1 type of threat that would spawn. Working with gravity-based physics shed light on the problem that there needed to be a way to stabilize the platforms and that was the 2/16 chance that when the player landed on that platform it would create a new layer for them to fail. The way the platforms were spawned was by using two "list" containers which essentially would remove 1 platform at random and add it to another list where then it would fill it back up before spawning it out at random and transferring that into the first "list" container. The platform had to be broken down into, what effects could each platform has that make them unique and how often should they appear. These decisions were validated in playtesting when the brown platform that extends needed to be rare or it proved to be too boring and not challenging enough.
The two core mechanics of the game require the player to jump to escape the rising lava, and the other mechanic is spawning platforms which you must stack on top of previous platforms to gain stability with your landing and balancing.
Core Game Mechanic #1
Ideation:
Research:
Through figuring out the process of the multiple platforms that did different things, I needed to find a way to spawn them randomly.
The primary learnings from this project came in the form of progress from ideation to finished prototype. Learning how to code the list to spawn a random platform was another piece of knowledge that strengthened my understanding of loops in relation to adding and subtracting objects from a list. I used unity's particle system for the first time which added a great deal to the player feedback and the experience. Another thing I learned what referencing code inside other scripts and using that information to make decisions. Understanding the idea of referencing code in other scripts has been my biggest learning from this project.
The challenges presented for this game were the following.
1. Make a fun 1 button game.
2. Make a game that breaks the player’s flow in an enjoyable way by throwing out random threats.
3. Make a semi-polished game with a score and particles.
I managed to complete most of the goals through this project though due to time constraints, I wasn't able to take it to the polish I would have enjoyed. I think landing on the right idea through intuition and ideation helped me decide if this will be a game to further polish. One-button games can be either extremely boring, or something that has been done time and time again, so I wanted to end up with that could push this genre.